Links

Tables

TABLE global
  • {name} fee_contract: the name of the account that hold the fees, by default it sets to fee.metal
  • {uint16_t} last_market_id: indicates last market id(id of the pair) that was created
  • {uint64_t} last_order_id: indicates last order id that was created(used to keep track order count and assign unique ids)
  • {uint64_t} last_trade_id: indicates last trade id that was created(used to keep track trades and assign unique ids)
  • {uint8_t} contract_status: to keep track of the contract status

example

{
"fee_contract": "fee.metal",
"last_market_id": "1",
"last_order_id": "5",
"last_trade_id": "2",
"contract_status": "0"
}

TABLE markets

  • {uint16_t} market_id: id of the market pair.
  • {uint64_t} order_min: min quantity to be placed for trade
  • {status_code} status_code: represents status of the market id(can be ACTIVE, INACTIVE, NOTINUSE, DISABLE_ORDERS_FILLS, DISABLE_ORDERS and DISABLE_FILLS)
  • {uint64_t} ask_oracle_index: index of the oracles to get current price of the token
  • {extended_symbol} bid_token: represents the bid value
  • {extended_asset} ask_token: represents ask token in the form of extended asset
  • {extended_asset} total_reserves: total reserves
{
"bid_token": {
"sym": "4,XMT",
"contract": "eosio.token"
},
"ask_token": {
"quantity": "1.361708 XUSDC",
"contract": "eosio.token"
},
"order_min": 10,
"status_code": 1,
"ask_oracle_index": 1
}

TABLE balances

  • {name} account: user account for the funds/tokens
  • {vector<extended_asset>} balances: balance of each token that holds by user/trader

example

{
account: 'trader',
balances: [
{ quantity: '1000.000000 XUSDC', contract: eosioTokenContract.name.toString() }
]
}

TABLE orderq

This table stores all placed orders
  • {int64_t} order_id:id of the order that was placed.
  • {uint16_t} market_id: id of the market pair.
  • {uint64_t} quantity: represents how much quantity to buy/sell
  • {uint64_t} price: price of the trade
  • {name} account_name: represents account name of the trader
  • {uint8_t} order_side: buy or sell
  • {uint8_t} order_type: type of order, can be LIMIT, STOPLOSS and TAKEPROFIT
  • {uint64_t} trigger_price: price at which order triggered to new state, applicable for both stop loss and take profit
  • {uint8_t} fill_type: order fill types like GTC(Good Till expiry), IOC(Immediate or Cnacel) and Post_Only(used to provide liquidity)
{
"account_name": "collector",
"market_id": 1,
"order_id": 1,
"order_side": orderSide.SELL,
"order_type": orderType.LIMIT,
"price": 16374242,
"quantity": 200000000,
"fill_type": 0,
"trigger_price": 0
},
{
"account_name": "bob",
"market_id": 1,
"order_id": 2,
"order_side": orderSide.BUY,
"order_type": orderType.LIMIT,
"price": 16384000,
"quantity": 49152000,
"fill_type": 0,
"trigger_price": 0
}

TABLE order

This table represents current order book
  • {int64_t} order_id:id of the order that was placed.
  • {uint16_t} market_id: id of the market pair.
  • {uint64_t} quantity: represents how much quantity to buy/sell
  • {uint64_t} price: price of the trade
  • {name} account_name: represents account name of the trader
  • {uint8_t} order_side: buy or sell
{
"account_name": "collector",
"market_id": 1,
"order_id": 5,
"order_side": 2,
"price": 16340000,
"quantity": 199877601
}

TABLE fees

  • {name} account_name: user account to store fee related information
  • {name} referrer_name: name of the account who referred
  • {time_point} referrer_ends: referral's end time
  • {double} volume_avg_30d: users's 30 day's average traded volume
  • {time_point} volume_avg_last_update: time at which 30d avg volume updated
  • {uint8_t} tier: tier of the user, can be set through Action also

example

{
"account_name": "fee.metal",
"referrer_name": "alice",
"referrer_ends": "1696022087",
"volume_avg_30d": "1'005'000.00",
"volume_avg_last_update": "1664986087",
"tier": "1"
}

TABLE currency_stats

  • {asset} supply: supply
  • {asset} max_supply: max supply of the token
  • {name} issuer: issuer account name

example

{
"supply": "500000",
"max_supply": "10000000",
"name": "alice"
}

TABLE voters_xpr

  • {name} owner: user account holding xpr
  • {uint64_t} staked: staked amount
  • {bool} isqualified: qualified flag
  • {uint64_t} claimamount: total amount claim
  • {uint64_t} lastclaim: last claim amount
  • optional{uint64_t} startstake: the last stake amount

example

{
"owner": "alice",
"staked": "1000000",
"isqualified": "1",
"claimamount": "50000",
"lastclaim": "10000",
"strtstake": "5000"
}

TABLE assets_s

  • {uint64_t} asset_id: unique id of the nft asset
  • {name} collection_name: name of the collection
  • {name} schema_name: name of the schema to store details
  • {uint32_t} template_id: template used to mint this nft asset
  • {name} ram_payer: account to pay for the transaction
  • vector<{asset}> backed_tokens: list of tokens backed this asset
  • vector<{uint8_t}> immutable_serilized_data: immutable data to be serialized
  • vector<{uint8_t}> mutable_serilized_data: mutable data to be serialized

example

{
"asset_id": "1099511627776",
"collection_name": "bullscollect",
"schema_name": "bulls",
"template_id": "5",
"ram_payer": "alice",
"backed_tokens": {'5000, xpr', '400, XMT'},
"immutable_serilized_data":
"mutable_serilized_data":
}