Staking Contract

staking.xsat

Actions

  • Add a staking token

  • Remove a staking token

  • Set the token's staking disable status

  • Unstake tokens

  • Withdraw tokens that have reached their expiration time

Quickstart

# addtoken @staking.xsat
$ cleos push action staking.xsat addtoken '[{ "sym": "8,BTC", "contract": "btc.xsat" }]' -p staking.xsat

# deltoken @staking.xsat
$ cleos push action staking.xsat deltoken '[1]' -p staking.xsat

# setstatus @staking.xsat
$ cleos push action staking.xsat setstatus '{"id": 1, "disabled_staking": true}' -p staking.xsat

# staking @staker
$ cleos push action btc.xsat transfer '{"from":"alice","to":"staking.xsat","quantity":"1.00000000 BTC", "memo":"alice"}' -p alice

# release @staker
$ cleos push action staking.xsat release '{"staking_id": 1, "staker": "alice", "validator": "alice", "quantity": "1.00000000 BTC"}' -p alice

# withdraw @staker
$ cleos push action staking.xsat withdraw '{"staker": "alice"}' -p alice

Table Information

TABLE globalid

scope

staking.xsat

params

  • {uint64_t} staking_id - the latest staking id

  • {uint64_t} release_id - the latest release id

example

TABLE tokens

scope

staking.xsat

params

  • {uint64_t} id - token id

  • {uint64_t} token - whitelist token

  • {bool} disabled_staking - whether to disable staking

example

TABLE staking

scope staker

params

  • {uint64_t} id - staking id

  • {extended_asset} quantity - total number of staking

example

TABLE releases

scope staker

params

  • {uint64_t} id - release id

  • {extended_asset} quantity - unpledged quantity

  • {time_point_sec} expiration_time - cancel pledge expiration time

example

ACTION addtoken

  • authority: staking.xsat

Add whitelist token

params

  • {extended_symbol} token - token to add

example

ACTION deltoken

  • authority: staking.xsat

Delete whitelist token

params

  • {uint64_t} id - token id to be deleted

example

ACTION setstatus

  • authority: staking.xsat

Set the token’s disabled staking status.

params

  • {uint64_t} id - token id

  • {bool} disabled_staking - whether to disable staking

example

ACTION release

  • authority: staker

Cancel the pledge and enter the unlocking period.

params

  • {uint64_t} staking_id - staking id

  • {name} staker - staker account

  • {name} validator - the validator account to be pledged to

  • {extended_asset} quantity - unpledged quantity

example

ACTION withdraw

  • authority: staker

Withdraw expired staking tokens.

params

  • {name} staker - staker account

example

Last updated