Utila's asset registry — the thing every utila_wallet_transaction.asset_id
points at, and the only place a decimals value is looked up.
Upserted from the referencedResources map that every transaction response
carries when fetched with includeReferencedResources, which ships the full
asset record (decimals included) alongside the transaction. Normalizing
assets therefore costs no extra API call.
The FK from utila_wallet_transaction keeps every wallet row pointing at a
registered asset, which is what makes attribution and per-asset scans a
column-to-column join.
decimals is nullable, and nothing scales by it. Utila's catalogue has
holes — it carries WAVAX but not WETH.e on the same chain — and amounts
arrive already normalized, so an asset it cannot describe is registered from
its id alone and its precision recorded as unknown. An earlier revision made
this column NOT NULL and scaled every amount through it, which turned one
uncatalogued token into a stalled vault walk. See § 3.3 and § 4.10.
See docs/proposals/UTILA_TRANSACTION_SYNC.md § 3.3 and § 4.10.
Utila's asset registry — the thing every
utila_wallet_transaction.asset_idpoints at, and the only place a decimals value is looked up.Upserted from the
referencedResourcesmap that every transaction response carries when fetched withincludeReferencedResources, which ships the full asset record (decimalsincluded) alongside the transaction. Normalizing assets therefore costs no extra API call.The FK from
utila_wallet_transactionkeeps every wallet row pointing at a registered asset, which is what makes attribution and per-asset scans a column-to-column join.decimalsis nullable, and nothing scales by it. Utila's catalogue has holes — it carries WAVAX but not WETH.e on the same chain — and amounts arrive already normalized, so an asset it cannot describe is registered from its id alone and its precision recorded as unknown. An earlier revision made this columnNOT NULLand scaled every amount through it, which turned one uncatalogued token into a stalled vault walk. See § 3.3 and § 4.10.See docs/proposals/UTILA_TRANSACTION_SYNC.md § 3.3 and § 4.10.