Validator Management Contract
endrmng.xsat
endrmng.xsat
This contract manages staking and rewards claiming operations for Validators and Stakers.
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
TABLE globalid
globalid
scope
endrmng.xsat
params
{uint64_t} staking_id
- the latest staking id
example
TABLE config
config
scope
endrmng.xsat
params
{string} donation_account
- the account designated for receiving donations
example
TABLE whitelist
whitelist
scope
proxyreg or evmcaller
params
{name} account
- whitelist account
example
TABLE evmproxies
evmproxies
scope
whitelist of evmcaller
params
{uint64_t} id
- evm proxy id{checksum160} proxy
- evm proxy account
example
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
TABLE evmstakers
evmstakers
scope
endrmng.xsat
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
TABLE stakers
stakers
scope
endrmng.xsat
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
TABLE validators
validators
scope
endrmng.xsat
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
example
TABLE stat
stat
scope
endrmng.xsat
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
ACTION setdonateacc
setdonateacc
authority: endrmng.xsat
Update donation account.
params
{string} donation_account
- account to receive donations
ACTION addwhitelist
addwhitelist
authority: endrmng.xsat
Add whitelist account
params
{name} type
- whitelist type @seeWHITELIST_TYPES
{name} account
- whitelist account
ACTION delwhitelist
delwhitelist
authority: endrmng.xsat
Delete whitelist account
params
{name} type
- whitelist type @seeWHITELIST_TYPES
{name} account
- whitelist account
ACTION addevmproxy
addevmproxy
authority: endrmng.xsat
Add evm proxy account
params
{name} caller
- caller account{checksum160} proxy
- proxy account
ACTION delevmproxy
delevmproxy
authority: endrmng.xsat
Delete evm proxy account
params
{name} caller
- caller account{checksum160} proxy
- proxy account
ACTION addcrdtproxy
addcrdtproxy
authority: endrmng.xsat
Add credit proxy account
params
{checksum160} proxy
- proxy account
ACTION delcrdtproxy
delcrdtproxy
authority: endrmng.xsat
Delete credit proxy account
params
{checksum160} proxy
- proxy account
ACTION setstatus
setstatus
authority: endrmng.xsat
Set validator staking status
params
{name} validator
- validator account{bool} disabled_staking
- whether to disable staking
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
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
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
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%
ACTION stake
stake
authority:
staking.xsat
Staking BTC to validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- staking amount
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
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
ACTION claim
claim
authority:
staker
Claim staking rewards
params
{name} staker
- staker account{name} validator
- validator account
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
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
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
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
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%
ACTION vdrclaim
vdrclaim
authority:
validator->reward_recipient
orevmutil.xsat
Validator Receive Rewards
params
{name} validator
- validator account
STRUCT reward_details_row
reward_details_row
params
{name} validator
- validator account{asset} staking_rewards
- staking rewards{asset} consensus_rewards
- consensus rewards
example
ACTION distribute
distribute
authority:
rwddist.xsat
Distributing validator rewards
params
{uint64_t} height
- validator account{vector<reward_details_row>} rewards
- validator account
ACTION stakexsat
stakexsat
authority:
xsatstk.xsat
Staking XSAT to validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- staking amount
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
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
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
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
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
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
Last updated