Validator Management Contract
endrmng.sat
Actions
Add evm proxy account
Delete evm proxy account
Add whitelist (
proxyreg
orevmcaller
)Delete whitelist (
proxyreg
orevmcaller
)Staking, unstaking, changing staking, and claiming rewards on native chains and EVM
Validator claiming rewards
Batch allocation of validator rewards from rwddist.xsat
Quickstart
# setdonateacc @endrmng.xsat
$ cleos push action endrmng.xsat setdonateacc '{"donation_account": "alice", "min_donate_rate": 2000}' -p endrmng.xsat
# setdonate @validator
$ cleos push action endrmng.xsat setdonate '{"validator": "alice", "donate_rate": 100}' -p alice
# addevmproxy @endrmng.xsat
$ cleos push action endrmng.xsat addevmproxy '{"caller": "caller1", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5"}' -p endrmng.xsat
# delevmproxy @endrmng.xsat
$ cleos push action endrmng.xsat delevmproxy '{"caller": "caller1", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5"}' -p endrmng.xsat
# addcrdtproxy @endrmng.xsat
$ cleos push action endrmng.xsat addcrdtproxy '{"proxy": "e4d68a77714d9d388d8233bee18d578559950cf5"}' -p endrmng.xsat
# delcrdtproxy @endrmng.xsat
$ cleos push action endrmng.xsat delcrdtproxy '{"proxy": "e4d68a77714d9d388d8233bee18d578559950cf5"}' -p endrmng.xsat
# addwhitelist @endrmng.xsat type = ["proxyreg", "evmcaller"]
$ cleos push action endrmng.xsat addwhitelist '{"type": "proxyreg", "account": "alice"}' -p endrmng.xsat
# delwhitelist @endrmng.xsat type = ["proxyreg", "evmcaller"]
$ cleos push action endrmng.xsat delwhitelist '{"type": "proxyreg", "account": "alice"}' -p endrmng.xsat
# setstatus @endrmng.xsat
$ cleos push action endrmng.xsat setstatus '{"validator": "alice", "disabled_staking": true}' -p endrmng.xsat
# regvalidator @validator
$ cleos push action endrmng.xsat regvalidator '{"validator": "alice", "financial_account": "alice"}' -p alice
# proxyreg @proxy
$ cleos push action endrmng.xsat proxyreg '{"proxy": "alice", "validator": "alice", "financial_account": "alice"}' -p alice
# config @validator decimal = 10000
$ cleos push action endrmng.xsat config '{"validator": "alice", "commission_rate": 2000, "financial_account": "alice"}' -p alice
# stake @staking.xsat
$ cleos push action endrmng.xsat stake '{"staker": "alice", "validator": "alice", "quantity": "0.00000020 BTC"}' -p staking.xsat
# unstake @staking.xsat
$ cleos push action endrmng.xsat unstake '{"staker": "alice", "validator": "alice", "quantity": "0.00000020 BTC"}' -p staking.xsat
# newstake @staker
$ cleos push action endrmng.xsat newstake '{"staker": "alice", "old_validator": "alice", "new_validator": "bob", "quantity": "0.00000020 BTC"}' -p alice
# claim @staker
$ cleos push action endrmng.xsat claim '{"staker": "alice", "validator": "alice"}' -p alice
# evmstake @auth scope is `evmcaller` evmproxies account
$ cleos push action endrmng.xsat evmstake '{"caller": "evmutil.xsat", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "validator": "alice", "quantity": "0.00000020 BTC"}' -p alice
# evmunstake @auth scope is `evmcaller` evmproxies account
$ cleos push action endrmng.xsat evmunstake '{"caller": "evmutil.xsat", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "validator": "alice", "quantity": "0.00000020 BTC"}' -p evmutil.xsat
# evmnewstake @auth scope is `evmcaller` evmproxies account
$ cleos push action endrmng.xsat evmnewstake '{"caller": "evmutil.xsat", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "old_validator": "alice", "new_validator": "bob", "quantity": "0.00000020 BTC"}' -p evmutil.xsat
# evmclaim @caller whitelist["evmcaller"]
$ cleos push action endrmng.xsat evmclaim '{"caller": "evmutil.xsat", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "validator": "alice"}' -p evmutil.xsat
# evmclaim2 @caller whitelist["evmcaller"]
$ cleos push action endrmng.xsat evmclaim2 '{"caller": "evmutil.xsat", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "validator": "alice", "donate_rate": 100}' -p evmutil.xsat
# vdrclaim @validator
$ cleos push action endrmng.xsat vdrclaim '{"validator": "alice"}' -p alice
# distribute @rwddist.xsat
$ cleos push action endrmng.xsat distribute '{"height": 840000, [{"validator": "alice", "staking_rewards": "0.00000020 XSAT", "consensus_rewards": "0.00000020 XSAT"}]}' -p rwddist.xsat
# stakexsat
$ cleos push action endrmng.xsat stakexsat '{"staker": "alice", "validator": "alice", "quantity": "0.00000020 XSAT"}' -p xsatstk.xsat
# unstakexsat
$ cleos push action endrmng.xsat unstakexsat '{"staker": "alice", "validator": "alice", "quantity": "0.00000020 XSAT"}' -p xsatstk.xsat
# restakexsat
$ cleos push action endrmng.xsat restakexsat '{"staker": "alice", "old_validator": "alice", "new_validator": "bob", "quantity": "0.00000020 XSAT"}' -p alice
# evmstakexsat @auth scope is `evmcaller` evmproxies account
$ cleos push action endrmng.xsat evmstakexsat '{"caller": "evmutil.xsat", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "validator": "alice", "quantity": "0.00000020 XSAT"}' -p evmutil.xsat
# evmunstkxsat @auth scope is `evmcaller` evmproxies account
$ cleos push action endrmng.xsat evmunstkxsat '{"caller": "evmutil.xsat", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "validator": "alice", "quantity": "0.00000020 XSAT"}' -p evmutil.xsat
# evmrestkxsat @auth scope is `evmcaller` evmproxies account
$ cleos push action endrmng.xsat evmrestkxsat '{"caller": "evmutil.xsat", "proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "old_validator": "alice", "new_validator": "bob", "quantity": "0.00000020 XSAT"}' -p evmutil.xsat
# creditstake @auth custody.xsat
$ cleos push action endrmng.xsat creditstake '{"proxy": "e4d68a77714d9d388d8233bee18d578559950cf5", "staker": "bbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000", "validator": "alice", "quantity": "0.00000020 XSAT"}' -p custody.xsat
# newregvalidator @auth validator
$ cleos push action endrmng.xsat newregvldtor '{"validator": "alice", "role": 0, "stake_addr": "e4d68a77714d9d388d8233bee18d578559950cf5", "reward_addr": "e4d68a77714d9d388d8233bee18d578559950cf5", "commission_rate": 2000}' -p alice
# evmconfigvald @auth validator
$ cleos push action endrmng.xsat evmconfigvald '{"validator": "alice", "commission_rate": 2000, "donate_rate": 100}' -p alice
# evmsetstaker @auth validator
$ cleos push action endrmng.xsat evmsetstaker '{"validator": "alice", "stake_addr": "e4d68a77714d9d388d8233bee18d578559950cf5"}' -p alice
# setrwdaddr @auth validator
$ cleos push action endrmng.xsat setrwdaddr '{"validator": "alice", "reward_addr": "e4d68a77714d9d388d8233bee18d578559950cf5"}' -p alice
# setstakebase @auth get_self()
$ cleos push action endrmng.xsat setstakebase '{"xsat_base_stake": "2100 XSAT", "btc_base_stake": "100 BTC"}' -p endrmng.xsat
# updcreditstk @auth get_self()
$ cleos push action endrmng.xsat updcreditstk '{"is_close": true}' -p endrmng.xsat
# endorse @auth BLOCK_ENDORSE_CONTRACT
$ cleos push action endrmng.xsat endorse '{"validator": "alice", "height": 840000}' -p block_endorse.xsat
Table Information
$ cleos get table endrmng.xsat endrmng.xsat config
$ cleos get table endrmng.xsat evmcaller whitelist
$ cleos get table endrmng.xsat proxyreg whitelist
$ cleos get table endrmng.xsat <evmcaller> evmproxies
$ cleos get table endrmng.xsat endrmng.xsat creditproxy
$ cleos get table endrmng.xsat endrmng.xsat evmstakers
$ cleos get table endrmng.xsat endrmng.xsat stakers
$ cleos get table endrmng.xsat endrmng.xsat validators
$ cleos get table endrmng.xsat endrmng.xsat stat
TABLE globalid
globalid
scope
endrmng.sat
params
{uint64_t} staking_id
- the latest staking id
example
{
"staking_id": 1
}
TABLE config
config
scope
endrmng.sat
params
{string} donation_account
- the account designated for receiving donations{binary_extension<uint16_t>} min_donate_rate
- minimum donation rate
example
{
"donation_account": "donate.xsat",
"min_donate_rate": 2000
}
TABLE whitelist
whitelist
scope proxyreg
or evmcaller
proxyreg
or evmcaller
params
{name} account
- whitelist account
example
{
"account": "alice"
}
TABLE evmproxies
evmproxies
scope
whitelist of type evmcaller
params
{uint64_t} id
- evm proxy id{checksum160} proxy
- evm proxy account
example
{
"id": 1,
"proxy": "bb776ae86d5996908af46482f24be8ccde2d4c41"
}
TABLE creditproxy
creditproxy
scope
the account whose scope is evmcaller in the whitelist
table
params
{uint64_t} id
- evm proxy id{checksum160} proxy
- evm proxy account
example
{
"id": 1,
"proxy": "bb776ae86d5996908af46482f24be8ccde2d4c41"
}
TABLE evmstakers
evmstakers
scope
endrmng.sat
params
{uint64_t} id
- evm staker id{checksum160} proxy
- proxy account{checksum160} staker
- staker account{name} validator
- validator account{asset} quantity
- total number of staking{asset} xsat_quantity
- the amount of XSAT tokens staked{asset} total_donated
- the total amount of XSAT that has been donated{uint64_t} stake_debt
- amount of requested stake debt{asset} staking_reward_unclaimed
- amount of stake unclaimed rewards{asset} staking_reward_claimed
- amount of stake claimed rewards{uint64_t} consensus_debt
- amount of requested consensus debt{asset} consensus_reward_unclaimed
- amount of consensus unclaimed rewards{asset} consensus_reward_claimed
- amount of consensus claimed rewards
example
{
"id": 4,
"proxy": "bb776ae86d5996908af46482f24be8ccde2d4c41",
"staker": "e4d68a77714d9d388d8233bee18d578559950cf5",
"validator": "alice",
"quantity": "0.10000000 BTC",
"xsat_quantity": "0.10000000 XSAT",
"total_donated": "1.00000000 XSAT",
"stake_debt": 1385452,
"staking_reward_unclaimed": "0.00000000 XSAT",
"staking_reward_claimed": "0.00000000 XSAT",
"consensus_debt": 173181,
"consensus_reward_unclaimed": "0.00000000 XSAT",
"consensus_reward_claimed": "0.00000000 XSAT"
}
TABLE stakers
stakers
scope
endrmng.sat
params
{uint64_t} id
- staker id{name} staker
- staker account{name} validator
- validator account{asset} quantity
- total number of staking{asset} xsat_quantity
- the amount of XSAT tokens staked{asset} total_donated
- the total amount of XSAT that has been donated{uint64_t} stake_debt
- amount of requested stake debt{asset} staking_reward_unclaimed
- amount of stake unclaimed rewards{asset} staking_reward_claimed
- amount of stake claimed rewards{uint64_t} consensus_debt
- amount of requested consensus debt{asset} consensus_reward_unclaimed
- amount of consensus unclaimed rewards{asset} consensus_reward_claimed
- amount of consensus claimed rewards
example
{
"id": 2,
"staker": "alice",
"validator": "alice",
"quantity": "0.10000000 BTC",
"xsat_quantity": "0.10000000 XSAT",
"total_donated": "1.00000000 XSAT",
"stake_debt": 1385452,
"staking_reward_unclaimed": "0.00000000 XSAT",
"staking_reward_claimed": "0.00000000 XSAT",
"consensus_debt": 173181,
"consensus_reward_unclaimed": "0.00000000 XSAT",
"consensus_reward_claimed": "0.00000000 XSAT"
}
TABLE validators
validators
scope
endrmng.sat
params
{name} owner
- staker id{name} reward_recipient
- receiving account for receiving rewards{string} memo
- memo when receiving reward transfer{uint16_t} commission_rate
- commission ratio, decimal is 10^4{asset} quantity
- the amount of BTC staked by the validator{asset} qualification
- the qualification of the validator{asset} xsat_quantity
- the amount of XSAT tokens staked by the validator{uint16_t} donate_rate
- the donation rate, represented as a percentage, ex: 500 means 5.00%{asset} total_donated
- the total amount of XSAT that has been donated{uint128_t} stake_acc_per_share
- staking rewards earnings per share{uint128_t} consensus_acc_per_share
- consensus reward earnings per share{asset} staking_reward_unclaimed
- unclaimed staking rewards{asset} staking_reward_claimed
- amount of stake claimed rewards{asset} consensus_reward_unclaimed
- amount of consensus unclaimed rewards{asset} consensus_reward_claimed
- amount of consensus claimed rewards{asset} total_consensus_reward
- total consensus rewards{asset} consensus_reward_balance
- consensus reward balance{asset} total_staking_reward
- total staking rewards{asset} staking_reward_balance
- staking reward balance{time_point_sec} latest_staking_time
- latest staking or unstaking time{uint64_t} latest_reward_block
- latest reward block{time_point_sec} latest_reward_time
- latest reward time{bool} disabled_staking
- whether to disable staking{checksum160} stake_address
- stake address{checksum160} reward_address
- reward address{uint64_t} consecutive_vote_count
- consecutive vote count{uint64_t} latest_consensus_block
- latest consensus block{uint8_t} active_flag
- active flag{uint8_t} role
- role
example
{
"owner": "alice",
"reward_recipient": "erc2o.xsat",
"memo": "0x5EB954fB68159e0b7950936C6e1947615b75C895",
"commission_rate": 0,
"quantity": "102.10000000 BTC",
"qualification": "102.10000000 BTC",
"xsat_quantity": "1000.10000000 XSAT",
"donate_rate": 100,
"total_donated": "100.00000000 XSAT",
"stake_acc_per_share": "39564978",
"consensus_acc_per_share": "4945621",
"staking_reward_unclaimed": "0.00000000 XSAT",
"staking_reward_claimed": "0.00000000 XSAT",
"consensus_reward_unclaimed": "0.00000000 XSAT",
"consensus_reward_claimed": "0.00000000 XSAT",
"total_consensus_reward": "5.04700642 XSAT",
"consensus_reward_balance": "5.04700642 XSAT",
"total_staking_reward": "40.37605144 XSAT",
"staking_reward_balance": "40.37605144 XSAT",
"latest_staking_time": "2024-07-13T09:16:26",
"latest_reward_block": 840001,
"latest_reward_time": "2024-07-13T14:29:32",
"disabled_staking": 0,
"stake_address": "e4d68a77714d9d388d8233bee18d578559950cf5",
"reward_address": "e4d68a77714d9d388d8233bee18d578559950cf5",
"consecutive_vote_count": 1,
"latest_consensus_block": 840000,
"active_flag": 1,
"role": 0
}
TABLE stat
stat
scope
endrmng.sat
params
{asset} total_staking
- btc total staking amount{asset} xsat_total_staking
- the total amount of XSAT staked{asset} xsat_total_donated
- the cumulative amount of XSAT donated
example
{
"total_staking": "100.40000000 BTC",
"xsat_total_staking": "100.40000000 XSAT",
"xsat_total_donated": "100.40000000 XSAT"
}
ACTION setdonateacc
setdonateacc
authority: endrmng.sat
Update donation account.
params
{string} donation_account
- account to receive donations{uint16_t} min_donate_rate
- minimum donation rate
example
$ cleos push action endrmng.xsat setdonateacc '["alice", 2000]' -p endrmng.xsat
ACTION addwhitelist
addwhitelist
authority: endrmng.sat
Add whitelist account
params
{name} type
- whitelist type @seeWHITELIST_TYPES
{name} account
- whitelist account
example
$ cleos push action endrmng.xsat addwhitelist '["proxyreg", "alice"]' -p endrmng.xsat
ACTION delwhitelist
delwhitelist
authority: endrmng.sat
Delete whitelist account
params
{name} type
- whitelist type @seeWHITELIST_TYPES
{name} account
- whitelist account
example
$ cleos push action endrmng.xsat addwhitelist '["proxyreg", "alice"]' -p endrmng.xsat
ACTION addevmproxy
addevmproxy
authority: endrmng.sat
Add evm proxy account
params
{name} caller
- caller account{checksum160} proxy
- proxy account
example
$ cleos push action endrmng.xsat addevmproxy '["evmcaller", "bb776ae86d5996908af46482f24be8ccde2d4c41"]' -p endrmng.xsat
ACTION delevmproxy
delevmproxy
authority: endrmng.sat
Delete evm proxy account
params
{name} caller
- caller account{checksum160} proxy
- proxy account
example
$ cleos push action endrmng.xsat delevmproxy '["evmcaller", "bb776ae86d5996908af46482f24be8ccde2d4c41"]' -p endrmng.xsat
ACTION addcrdtproxy
addcrdtproxy
authority: endrmng.sat
Add credit proxy account
params
{checksum160} proxy
- proxy account
example
$ cleos push action endrmng.xsat addcrdtproxy '["bb776ae86d5996908af46482f24be8ccde2d4c41"]' -p endrmng.xsat
ACTION delcrdtproxy
delcrdtproxy
authority: endrmng.sat
Delete credit proxy account
params
{checksum160} proxy
- proxy account
example
$ cleos push action endrmng.xsat delcrdtproxy '["bb776ae86d5996908af46482f24be8ccde2d4c41"]' -p endrmng.xsat
ACTION setstatus
setstatus
authority: endrmng.sat
Set validator staking status
params
{name} validator
- validator account{bool} disabled_staking
- whether to disable staking
example
$ cleos push action endrmng.xsat setstatus '["alice", true]' -p alice
ACTION regvalidator
regvalidator
authority:
validator
Registering a validator
params
{name} validator
- validator account{name} financial_account
- financial accounts{uint16_t} commission_rate
- commission ratio, decimal is 10^4
example
$ cleos push action endrmng.xsat regvalidator '["alice", "alice", 1000]' -p alice
ACTION proxyreg
proxyreg
authority:
proxy
Proxy account registration validator
params
{name} proxy
- proxy account{name} validator
- validator account{string} financial_account
- financial accounts{uint16_t} commission_rate
- commission ratio, decimal is 10^4
example
$ cleos push action endrmng.xsat proxyreg '["test.xsat", "alice", "alice", 1000]' -p test.xsat
ACTION config
config
authority:
validator
Validator sets commission ratio and financial account
params
{name} validator
- validator account{optional<uint16_t>} commission_rate
- commission ratio, decimal is 10^4{optional<string>} financial_account
- financial accounts
example
$ cleos push action endrmng.xsat config '["alice", 1000, "alice"]' -p alice
ACTION setdonate
setdonate
authority:
validator
Configure donate rate.
params
{name} validator
- synchronizer account{uint16_t} donate_rate
- the donation rate, represented as a percentage, ex: 500 means 5.00%
example
$ cleos push action endrmng.xsat setdonate '["alice", 100]' -p alice
ACTION stake
stake
authority:
staking.xsat
Staking BTC to validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- staking amount
example
$ cleos push action endrmng.xsat stake '["alice", "alice", "1.00000000 BTC"]' -p staking.xsat
ACTION unstake
unstake
authority:
staking.xsat
Unstaking BTC from a validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- cancel staking amount
example
$ cleos push action endrmng.xsat unstake '["alice", "alice", "1.00000000 BTC"]' -p staking.xsat
ACTION newstake
newstake
authority:
staker
Staking BTC to a new validator
params
{name} staker
- staker account{name} old_validator
- old validator account{name} new_validator
- new validator account{asset} quantity
- the amount of stake transferred to the new validator
example
$ cleos push action endrmng.xsat newstake '["alice", "alice", "bob", "1.00000000 BTC"]' -p alice
ACTION claim
claim
authority:
staker
Claim staking rewards
params
{name} staker
- staker account{name} validator
- validator account
example
$ cleos push action endrmng.xsat claim '["alice", "bob"]' -p alice
ACTION evmstake
evmstake
authority:
caller
Staking BTC to validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount
example
$ cleos push action endrmng.xsat evmstake '["evmutil.xsat", "bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice", "1.00000000 BTC"]' -p evmutil.xsat
ACTION evmunstake
evmunstake
authority:
caller
Unstake BTC from validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount
example
$ cleos push action endrmng.xsat evmunstake '["evmutil.xsat", "bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice", "1.00000000 BTC"]' -p evmutil.xsat
ACTION evmnewstake
evmnewstake
authority:
caller
Staking BTC to a new validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} old_validator
- old validator account{name} new_validator
- new validator account{asset} quantity
- staking amount
example
$ cleos push action endrmng.xsat evmnewstake '["evmutil.xsat", "bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice", "bob", "1.00000000 BTC"]' -p evmutil.xsat
ACTION evmclaim
evmclaim
authority:
caller
Claim staking rewards through evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account
example
$ cleos push action endrmng.xsat evmclaim '["evmutil.xsat", "bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice"]' -p evmutil.xsat
ACTION evmclaim2
evmclaim2
authority:
caller
Claim staking rewards through evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{uint16_t} donate_rate
- the donation rate, represented as a percentage, ex: 500 means 5.00%
example
$ cleos push action endrmng.xsat evmclaim2 '["evmutil.xsat", "bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice", 100]' -p evmutil.xsat
ACTION vdrclaim
vdrclaim
authority:
validator->reward_recipient
orevmutil.xsat
Validator Receive Rewards
params
{name} validator
- validator account
example
$ cleos push action endrmng.xsat vdrclaim '["alice"]' -p alice
STRUCT reward_details_row
reward_details_row
params
{name} validator
- validator account{asset} staking_rewards
- staking rewards{asset} consensus_rewards
- consensus rewards
example
{
"validator": "alice",
"staking_rewards": "0.00000010 XSAT",
"consensus_rewards": "0.00000020 XSAT"
}
ACTION distribute
distribute
authority:
rwddist.xsat
Distributing validator rewards
params
{uint64_t} height
- validator account{vector<reward_details_row>} rewards
- validator account
example
$ cleos push action endrmng.xsat distribute '[840000, [{"validator": "alice", "staking_rewards": "0.00000020 XSAT", "consensus_rewards": "0.00000020 XSAT"}]]' -p rwddist.xsat
ACTION stakexsat
stakexsat
authority:
xsatstk.xsat
Staking XSAT to validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- staking amount
example
$ cleos push action endrmng.xsat stakexsat '["alice", "alice", "1.00000000 XSAT"]' -p xsatstk.xsat
ACTION unstakexsat
unstakexsat
authority:
xsatstk.xsat
Unstaking XSAT from a validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- cancel staking amount
example
$ cleos push action endrmng.xsat unstakexsat '["alice", "alice", "1.00000000 XSAT"]' -p xsatstk.xsat
ACTION restakexsat
restakexsat
authority:
staker
Staking XSAT to a new validator
params
{name} staker
- staker account{name} old_validator
- old validator account{name} new_validator
- new validator account{asset} quantity
- the amount of stake transferred to the new validator
example
$ cleos push action endrmng.xsat restakexsat '["alice", "alice", "bob", "1.00000000 XSAT"]' -p alice
ACTION evmstakexsat
evmstakexsat
authority:
caller
Staking XSAT to validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount
example
$ cleos push action endrmng.xsat evmstakexsat '["evmutil.xsat", "bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice", "1.00000000 XSAT"]' -p evmutil.xsat
ACTION evmunstkxsat
evmunstkxsat
authority:
caller
Unstake XSAT from validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount
example
$ cleos push action endrmng.xsat evmunstkxsat '["evmutil.xsat", "bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice", "1.00000000 XSAT"]' -p evmutil.xsat
ACTION evmrestkxsat
evmrestkxsat
authority:
caller
Staking XSAT to a new validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} old_validator
- old validator account{name} new_validator
- new validator account{asset} quantity
- staking amount
example
$ cleos push action endrmng.xsat evmrestkxsat '["evmutil.xsat", "bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice", "bob", "1.00000000 XSAT"]' -p evmutil.xsat
ACTION creditstake
creditstake
authority:
custody.xsat
Unstake BTC from validator via credit
params
{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount{checksum160} stake_address
- stake address{checksum160} reward_address
- reward address{uint64_t} consecutive_vote_count
- consecutive vote count{uint64_t} latest_consensus_block
- latest consensus block{uint8_t} active_flag
- active flag (0: inactive, 1: active, 2: credit staking validator){uint32_t} role
- role (0: BTC, 1: XSAT)
example
$ cleos push action endrmng.xsat creditstake '["bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5", "alice", "1.00000000 BTC"]' -p custody.xsat
ACTION newregvldtor
newregvldtor
authority:
validator
Register a new validator with additional parameters
params
{name} validator
- validator account{uint32_t} role
- role (0: BTC, 1: XSAT){checksum160} stake_addr
- stake address{optional<checksum160>} reward_addr
- reward address{optional<uint16_t>} commission_rate
- commission ratio, decimal is 10^4
example
$ cleos push action endrmng.xsat newregvldtor '["alice", 0, "e4d68a77714d9d388d8233bee18d578559950cf5", "e4d68a77714d9d388d8233bee18d578559950cf5", 2000]' -p alice
ACTION evmconfigvald
evmconfigvald
authority:
validator
Configure validator commission and donate rates
params
{name} validator
- validator account{optional<uint16_t>} commission_rate
- commission ratio, decimal is 10^4{optional<uint16_t>} donate_rate
- the donation rate, represented as a percentage
example
$ cleos push action endrmng.xsat evmconfigvald '["alice", 2000, 100]' -p alice
ACTION evmsetstaker
evmsetstaker
authority:
validator
Set validator stake address
params
{name} validator
- validator account{checksum160} stake_addr
- stake address
example
$ cleos push action endrmng.xsat evmsetstaker '["alice", "e4d68a77714d9d388d8233bee18d578559950cf5"]' -p alice
ACTION setrwdaddr
setrwdaddr
authority:
validator
Set validator reward address
params
{name} validator
- validator account{checksum160} reward_addr
- reward address
example
$ cleos push action endrmng.xsat setrwdaddr '["alice", "e4d68a77714d9d388d8233bee18d578559950cf5"]' -p alice
ACTION setstakebase
setstakebase
authority: endrmng.sat
Set base stake amounts for validators
params
{asset} xsat_base_stake
- XSAT base stake amount{asset} btc_base_stake
- BTC base stake amount
example
$ cleos push action endrmng.xsat setstakebase '["2100 XSAT", "100 BTC"]' -p endrmng.xsat
ACTION updcreditstk
updcreditstk
authority: endrmng.sat
Update credit staking settings
params
{bool} is_close
- whether to close credit staking
example
$ cleos push action endrmng.xsat updcreditstk '[true]' -p endrmng.xsat
ACTION endorse
endorse
authority:
BLOCK_ENDORSE_CONTRACT
Endorse a validator for a specific block height
params
{name} validator
- validator account{uint64_t} height
- block height
example
$ cleos push action endrmng.xsat endorse '["alice", 840000]' -p block_endorse.xsat
ACTION setdepproxy
setdepproxy
authority: endrmng.sat
Set deposit proxy accounts
params
{checksum160} btc_deposit_proxy
- BTC deposit proxy{checksum160} xsat_deposit_proxy
- XSAT deposit proxy
example
$ cleos push action endrmng.xsat setdepproxy '["bb776ae86d5996908af46482f24be8ccde2d4c41", "e4d68a77714d9d388d8233bee18d578559950cf5"]' -p endrmng.xsat
Last updated