
Assets
Purpose: Asset registry with oracle configuration. Maps asset addresses to IDs and stores oracle feed data per asset.
List of Core Functions
Queries:
get-nonce: Get total asset count
get-reverse: Get asset ID by address
find: Get asset details by address
lookup: Get asset details by ID
get-bitmap: Get enabled assets bitmask
enabled: Check if assets are enabled
get-status: Get asset status (collateral/debt enabled)
get-asset-status: Get asset status by address
status-multi: Get status for multiple assets
Admin:
insert: Register new asset with oracle config
update: Update asset oracle configuration
enable: Enable asset for collateral or debt
disable: Disable asset for collateral or debt
Function Parameters
get-nonce
Get total number of registered assets.
(none)
-
No parameters
Returns: (response uint uint) - Asset count
get-reverse
Get asset ID by contract address.
asset
principal
Asset contract address
Returns: (response (buff 1) uint) - Asset ID buffer or error
find
Get asset details by contract address.
asset
principal
Asset contract address
Returns: (response {...} uint) - Asset details or error
Fields:
id: (buff 1) - Asset IDaddr: principal - Contract addressdecimals: uint - Token decimalsoracle: {...} - Oracle configuration
lookup
Get asset details by ID.
id
uint
Asset ID
Returns: (response {...} uint) - Asset details or error
Fields:
id: (buff 1) - Asset IDaddr: principal - Contract addressdecimals: uint - Token decimalsoracle: {...} - Oracle configuration (type, ident, callcode, max-staleness)
get-bitmap
Get enabled assets bitmask. Bits 0-63 represent collateral, bits 64-127 represent debt.
(none)
-
No parameters
Returns: uint - Enabled assets bitmask
enabled
Check if asset mask is subset of enabled assets.
mask
uint
Asset mask to check
Returns: bool - True if all assets in mask are enabled
get-status
Get asset status including collateral/debt enabled flags.
id
uint
Asset ID
Returns: (response {...} uint) - Asset status or error
Fields:
All fields from lookup()
id: uint - Asset IDcollateral: bool - Collateral enableddebt: bool - Debt enabled
get-asset-status
Get asset status by contract address.
address
principal
Asset contract address
Returns: (response {...} uint) - Asset status or error
Fields: Same as get-status
status-multi
Get status for multiple assets at once.
ids
(list 64 uint)
List of asset IDs
Returns: (list 64 {...}) - List of asset statuses
insert
Register new asset with oracle configuration. Asset IDs assigned sequentially.
ft
<ft-trait>
Asset token contract
oracle-data
{ type: (buff 1), ident: (buff 32), callcode: (optional (buff 1)), max-staleness: uint }
Oracle configuration
Returns: (response uint uint) - Assigned asset ID or error
Authorization: DAO executor only
Oracle fields:
type: Oracle type (0x00=Pyth, 0x01=DIA, 0x02=Mock)ident: Oracle feed identifier (32 bytes)callcode: Optional price transformation (0x00=stSTX ratio, 0x01-0x06=zToken indexes)max-staleness: Maximum age in seconds before price considered stale
Note: Asset decimals auto-detected from token contract
update
Update asset oracle configuration.
asset
principal
Asset contract address
oracle-data
{ type: (buff 1), ident: (buff 32), callcode: (optional (buff 1)), max-staleness: uint }
New oracle configuration
Returns: (response bool uint) - Success or error
Authorization: DAO executor only
Note: Cannot change asset address or decimals, only oracle config
enable
Enable asset for collateral or debt usage.
asset
principal
Asset contract address
collateral
bool
True to enable as collateral, false to enable as debt
Returns: (response bool uint) - Success or error
Authorization: DAO executor only
Note: Updates bitmap: collateral uses bits 0-63, debt uses bits 64-127
disable
Disable asset for collateral or debt usage.
asset
principal
Asset contract address
collateral
bool
True to disable as collateral, false to disable as debt
Returns: (response bool uint) - Success or error
Authorization: DAO executor only
Note: Updates bitmap to remove asset from enabled set
Last updated