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 alice

Table Information

TABLE config

scope

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

scope

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

scope

poolreg.xsat

params

  • {uint64_t} id - primary key

  • {name} synchronizer - synchronizer account

  • {string} miner - associated btc miner account

example

TABLE stat

scope

poolreg.xsat

params

  • {asset} xsat_total_donated - the cumulative amount of XSAT donated

example

ACTION setdonateacc

  • authority: poolreg.xsat

Update donation account.

params

  • {string} donation_account - account to receive donations

  • {uint16_t} min_donate_rate - minimum donation rate

example

ACTION updateheight

  • authority: 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

  • authority: 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

  • authority: poolreg.xsat

Erase synchronizer.

params

  • {name} synchronizer - synchronizer account

example

ACTION unbundle

  • authority: poolreg.xsat

Unbind the association between synchronizer and btc miner.

params

  • {uint64_t} id - primary key of miners table

example

ACTION config

  • authority: 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

  • authority: 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

  • authority: 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

  • authority: synchronizer

Configure financial account.

params

  • {name} synchronizer - synchronizer account

  • {string} financial_account - financial account to receive rewards

example

ACTION claim

  • authority: synchronizer->to or evmutil.xsat

Receive award.

params

  • {name} synchronizer - synchronizer account

example

Last updated