Source code for serenity_types.refdata.token

from enum import Enum
from uuid import UUID

from serenity_types.refdata.asset import Asset


[docs] class TokenAsset(Asset): """ A tokenized asset. """ token_issuance_id: UUID """ A reference to the Exposure UUID for the underlying token issuance. This is to allow for the fact that a number of tokens have been issued on more than one blockchain, e.g. DAI on Ethereum and Solana in our model would be two different assets, tok.dai.ethereum and tok.dai.solana, both pointing to a single DAI exposure linked to MakerDAO. """ network_id: UUID """ The blockchain on which this particular asset has been tokenized. """
[docs] class PegMechanism(Enum): """ The mechanism used to establish and maintain the peg of one asset's price ot another. """ TOKENIZED_CASH = 'TOKENIZED_CASH' """ Pegging to a currency reserve-backed holding, e.g. USDC and BUSD. """ TOKENIZED_ASSET = 'TOKENIZED_ASSET' """ Pegging to an asset reserve-backed holding, e.g. PAXG. """ ALGOSTABLE = 'ALGOSTABLE' """ Pegging via an algorithmic stabilization mechanism, e.g. FRAX. """ COLLATERIZED_DEBT_POSITION = 'COLLATERIZED_DEBT_POSITION' """ A tokenized CDP (Collateralized Debt Position), generally over-collateralized with cryptoassets, e.g. DAI. """
[docs] class PeggedTokenAsset(TokenAsset): """ A token whose price aims to track the price of an Exposure. """ referenced_exposure_id: UUID """ The exposure that is being pegged to, e.g. USD (for USDC) XAU (for PAXG). """ peg_mechanism: PegMechanism """ How the peg is established and maintained, e.g. backed 100% by reserves of assets with an identical exposure as referenced_exposure_id, or algorithmically stabilized via an arbitrage mechanism, etc.. """
[docs] class WrappedTokenAsset(TokenAsset): """ A token that allows another token Exposure to be represented on a non-native network. Typically this is done by locking the asset in a smart contract or by a custodian holding the asset in reserve and then issuing a token. At any time the holder has a right to redeem the wrapped asset for the underlying asset one for one, though there is implicit smart contract / counterparty risk involved as this is not guaranteed. """ wrapped_token_issuance_id: UUID """ The token issuance that this asset is wrapping, e.g. BTC for WBTC. """ origin_network_id: UUID """ The original network that the wrapped asset sits on, e.g. bitcoin for WBTC, or ethereum or WETH. Note in the case of WETH on Ethereum as an asset, the origin_network_id and network_id are the same, because it's just an ERC20 encapsulation of the native ETH token. """