Pool Register Contract
poolreg.xsat
Actions
Initialize the synchronizer
Delete the synchronizer
Unbind the miner
Configure financial account and commission rate for the synchronizer
Purchase a slot
Claim rewards for validating blocks
Update the synchronizer with the latest block height
Quickstart
# setdonateacc @poolreg.xsat
$ cleos push action poolreg.xsat setdonateacc '{"donation_account": "alice", "min_donate_rate": 2000}' -p poolreg.xsat
# setdonate @synchronizer
$ cleos push action poolreg.xsat setdonate '{"synchronizer": "alice", "donate_rate": 100}' -p alice
# updateheight @utxomng.xsat
$ cleos push action poolreg.xsat updateheight '{"synchronizer": "alice", "height": 839999, "miners": ["3PiyiAezRdSUQub3ewUXsgw5M6mv6tskGv", "bc1p8k4v4xuz55dv49svzjg43qjxq2whur7ync9tm0xgl5t4wjl9ca9snxgmlt"]}' -p utxomng.xsat
# initpool @poolreg.xsat
$ cleos push action poolreg.xsat initpool '{"synchronizer": "alice", "latest_produced_block_height": 839999, "financial_account": "alice", "miners": [""]}' -p poolreg.xsat
# delpool @poolreg.xsat
$ cleos push action poolreg.xsat delpool '{"synchronizer": "alice"}' -p poolreg.xsat
# unbundle @poolreg.xsat
$ cleos push action poolreg.xsat unbundle '{"id": 1}' -p poolreg.xsat
# config @poolreg.xsat
$ cleos push action poolreg.xsat config '{"synchronizer": "alice", "produced_block_limit": 432}' -p poolreg.xsat
# setfinacct @synchronizer
$ cleos push action poolreg.xsat setfinacct '{"synchronizer": "alice", "financial_account": "alice"}' -p alice
# buyslot @synchronizer
$ cleos push action poolreg.xsat buyslot '{"synchronizer": "alice", "receiver": "alice", "num_slots": 2}' -p alice
# claim @evmutil.xsat or @financial_account
$ cleos push action poolreg.xsat claim '{"synchronizer": "alice"}' -p aliceTable Information
TABLE config
configscope
poolreg.xsat
params
{string} donation_account- the account designated for receiving donations{binary_extension<uint16_t>} min_donate_rate- minimum donation rate
example
TABLE synchronizer
synchronizerscope
poolreg.xsat
params
{name} synchronizer- synchronizer account{name} reward_recipient- receiving account for receiving rewards{string} memo- memo when receiving reward transfer{uint16_t} num_slots- number of slots owned{uint64_t} latest_produced_block_height- the latest block number{uint16_t} produced_block_limit- upload block limit, for example, if 432 is set, the upload height needs to be a synchronizer that has produced blocks in 432 blocks before it can be uploaded.{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{asset} unclaimed- unclaimed rewards{asset} claimed- rewards claimed{uint64_t} latest_reward_block- the latest block number to receive rewards{time_point_sec} latest_reward_time- latest reward time
example
TABLE miners
minersscope
poolreg.xsat
params
{uint64_t} id- primary key{name} synchronizer- synchronizer account{string} miner- associated btc miner account
example
TABLE stat
statscope
poolreg.xsat
params
{asset} xsat_total_donated- the cumulative amount of XSAT donated
example
ACTION setdonateacc
setdonateaccauthority: poolreg.xsat
Update donation account.
params
{string} donation_account- account to receive donations{uint16_t} min_donate_rate- minimum donation rate
example
ACTION updateheight
updateheightauthority:
utxomng.xsat
Update synchronizerβs latest block height and add associated btc miners.
params
{name} synchronizer- synchronizer account{uint64_t} latest_produced_block_height- the height of the latest mined block{std::vector<string>} miners- list of btc accounts corresponding to synchronizer
example
ACTION initpool
initpoolauthority: poolreg.xsat
Unbind the association between synchronizer and btc miner.
params
{name} synchronizer- synchronizer account{uint64_t} latest_produced_block_height- the height of the latest mined block{string} financial_account- financial account to receive rewards{std::vector<string>} miners- list of btc accounts corresponding to synchronizer
example
ACTION delpool
delpoolauthority: poolreg.xsat
Erase synchronizer.
params
{name} synchronizer- synchronizer account
example
ACTION unbundle
unbundleauthority: poolreg.xsat
Unbind the association between synchronizer and btc miner.
params
{uint64_t} id- primary key of miners table
example
ACTION config
configauthority: poolreg.xsat
Configure synchronizer block output limit.
params
{name} synchronizer- synchronizer account{uint16_t} produced_block_limit- upload block limit, for example, if 432 is set, the upload height needs to be a synchronizer that has produced blocks in 432 blocks before it can be uploaded.
example
ACTION buyslot
buyslotauthority:
synchronizer
Buy slot.
params
{name} synchronizer- synchronizer account{name} receiver- the account of the receiving slot{uint16_t} num_slots- number of slots
example
ACTION setdonate
setdonateauthority:
synchronizer
Configure donate rate.
params
{name} synchronizer- synchronizer account{uint16_t} donate_rate- the donation rate, represented as a percentage, ex: 500 means 5.00%
example
ACTION setfinacct
setfinacctauthority:
synchronizer
Configure financial account.
params
{name} synchronizer- synchronizer account{string} financial_account- financial account to receive rewards
example
ACTION claim
claimauthority:
synchronizer->toorevmutil.xsat
Receive award.
params
{name} synchronizer- synchronizer account
example
Last updated