regen-docs
  • Regen Ledger
  • DRAFT
    • Users and Organizations
      • Account
      • Group
    • Bank
    • Data
    • Simple Credit
    • Fractional NFT Credit
    • Semantic Data
    • Coin
    • Script
    • Market
    • Chain Schema
    • Basic Types
Powered by GitBook
On this page
  • Assets
  • Escrow Accounts
  • Transactions
  • Send
  • Burn
  • Create Escrow
  • Queries
  • State

Was this helpful?

  1. DRAFT

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)
}
PreviousGroupNextData

Last updated 5 years ago

Was this helpful?