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
$ cleos get table rescmng.xsat staking.xsat globalid
$ cleos get table rescmng.xsat staking.xsat tokens
$ cleos get table rescmng.xsat <staker> staking
$ cleos get table rescmng.xsat <staker> releases
TABLE globalid
globalid
scope
staking.xsat
params
{uint64_t} staking_id
- the latest staking id{uint64_t} release_id
- the latest release id
example
{
"staking_id": 1,
"release_id": 1
}
TABLE tokens
tokens
scope
staking.xsat
params
{uint64_t} id
- token id{uint64_t} token
- whitelist token{bool} disabled_staking
- whether to disable staking
example
{
"id": 1,
"token": { "sym": "8,BTC", "contract": "btc.xsat" },
"disabled_staking": false
}
TABLE staking
staking
scope staker
staker
params
{uint64_t} id
- staking id{extended_asset} quantity
- total number of staking
example
{
"id": 1,
"quantity": {"quantity":"1.00000000 BTC", "contract":"btc.xsat"}
}
TABLE releases
releases
scope staker
staker
params
{uint64_t} id
- release id{extended_asset} quantity
- unpledged quantity{time_point_sec} expiration_time
- cancel pledge expiration time
example
{
"id": 1,
"quantity": {
"quantity": "1.00000000 BTC",
"contract": "btc.xsat"
},
"expiration_time": "2024-08-12T08:09:57"
}
ACTION addtoken
addtoken
authority: staking.xsat
Add whitelist token
params
{extended_symbol} token
- token to add
example
$ cleos push action staking.xsat addtoken '[{ "sym": "8,BTC", "contract": "btc.xsat" }]' -p staking.xsat
ACTION deltoken
deltoken
authority: staking.xsat
Delete whitelist token
params
{uint64_t} id
- token id to be deleted
example
$ cleos push action staking.xsat deltoken '[1]' -p staking.xsat
ACTION setstatus
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
$ cleos push action staking.xsat setstatus '[1, true]' -p staking.xsat
ACTION release
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
$ cleos push action staking.xsat release '[1, "alice", "alice", "1.00000000 BTC"]' -p alice
ACTION withdraw
withdraw
authority:
staker
Withdraw expired staking tokens.
params
{name} staker
- staker account
example
$ cleos push action staking.xsat withdraw '["alice"]' -p alice
Last updated