Bank
Assets
scalar AssetID
struct Asset {
asset: AssetID
amount: Decimal
}
Escrow Accounts
enum Escrow {
ContinuousVesting(
start_time DateTime,
end_time
)
DelayedVesting()
PeriodicVesting()
ScriptEscrow(scipt ScriptID, params bytes)
}
Transactions
Send
tx Send(
from Address,
to Address,
assets Asset*
)
Burn
tx Burn(
holder Address,
assets Asset*
)
Create Escrow
tx CreateEscrow(
escrow Escrow,
initialFunds Asset*,
parties EscrowParty*
)
type EscrowParty {
party: Address,
role: uint32
}
Queries
query GetBalance(address Address, asset AssetID) Decimal
query GetSupply(asset AssetID) Decimal
query GetBurnedSupply(asset AssetID) Decimal)
State
table AssetMetadata {
asset: AssetID
authority: bytes
module: bytes
name: string
metadata: data.HashIRI?
@primary_key(asset)
}
table AssetSupply {
asset: AssetID
liquid_supply: Decimal
burned_supply: Decimal
@primary_key(asset)
}
table AssetBalance {
address: Address
asset: AssetID
balance: Decimal
burned: Decimal
@primary_key(address, asset)
@index(address)
@index(asset)
}
table EscrowAccount {
address: Address
escrow: Escow
}
table EscrowParty {
escrow_account: Address
party: Address
role: uint32
@primary_key(escrow_account, party)
@index(escrow_account)
@index(party)
}
Last updated
Was this helpful?