@cfxlabsinc/b2b-services
    Preparing search index...

    Variable utilaAssetTableConst

    utilaAssetTable: Omit<
        PgTableWithColumns<
            {
                columns: {
                    contractAddress: PgBuildColumn<
                        "utila_asset",
                        PgTextBuilder<[string, ...string[]]>,
                        {
                            data: string;
                            dataType: "string";
                            driverParam: string;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: false;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: false;
                            tableName: "utila_asset";
                        },
                    >;
                    createdAt: PgBuildColumn<
                        "utila_asset",
                        SetHasDefault<SetNotNull<PgTimestampBuilder>>,
                        {
                            data: Date;
                            dataType: "object date";
                            driverParam: string;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: true;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: true;
                            tableName: "utila_asset";
                        },
                    >;
                    decimals: PgBuildColumn<
                        "utila_asset",
                        PgIntegerBuilder,
                        {
                            data: number;
                            dataType: "number int32";
                            driverParam: string
                            | number;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: false;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: false;
                            tableName: "utila_asset";
                        },
                    >;
                    displayName: PgBuildColumn<
                        "utila_asset",
                        PgTextBuilder<[string, ...string[]]>,
                        {
                            data: string;
                            dataType: "string";
                            driverParam: string;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: false;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: false;
                            tableName: "utila_asset";
                        },
                    >;
                    id: PgBuildColumn<
                        "utila_asset",
                        HasIdentity<SetIsPrimaryKey<PgIntegerBuilder>, "byDefault">,
                        {
                            data: number;
                            dataType: "number int32";
                            driverParam: string | number;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: true;
                            hasRuntimeDefault: false;
                            identity: "byDefault";
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: true;
                            tableName: "utila_asset";
                        },
                    >;
                    networkId: PgBuildColumn<
                        "utila_asset",
                        PgTextBuilder<[string, ...string[]]>,
                        {
                            data: string;
                            dataType: "string";
                            driverParam: string;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: false;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: false;
                            tableName: "utila_asset";
                        },
                    >;
                    symbol: PgBuildColumn<
                        "utila_asset",
                        PgTextBuilder<[string, ...string[]]>,
                        {
                            data: string;
                            dataType: "string";
                            driverParam: string;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: false;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: false;
                            tableName: "utila_asset";
                        },
                    >;
                    type: PgBuildColumn<
                        "utila_asset",
                        PgTextBuilder<[string, ...string[]]>,
                        {
                            data: string;
                            dataType: "string";
                            driverParam: string;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: false;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: false;
                            tableName: "utila_asset";
                        },
                    >;
                    updatedAt: PgBuildColumn<
                        "utila_asset",
                        SetHasDefault<SetHasDefault<SetNotNull<PgTimestampBuilder>>>,
                        {
                            data: Date;
                            dataType: "object date";
                            driverParam: string;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: true;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: true;
                            tableName: "utila_asset";
                        },
                    >;
                    utilaId: PgBuildColumn<
                        "utila_asset",
                        SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                        {
                            data: string;
                            dataType: "string";
                            driverParam: string;
                            enumValues: undefined;
                            generated: undefined;
                            hasDefault: false;
                            hasRuntimeDefault: false;
                            identity: undefined;
                            isAutoincrement: false;
                            isPrimaryKey: false;
                            name: string;
                            notNull: true;
                            tableName: "utila_asset";
                        },
                    >;
                };
                dialect: "pg";
                name: "utila_asset";
                schema: "b2b";
            },
        >,
        "enableRLS",
    > = ...

    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.