The Python Function to Retrieve the Producer Reward for Witness

  • 时间:2020-09-07 13:13:13
  • 分类:网络文摘
  • 阅读:144 次

As you know, the witness is rewarded for produce a block. The TOP 20 gets to produce the blocks more frequently than the backup witnesses, but the reward for each block is different: currently 484 VESTS for TOP 20 while around 2425 VESTS for others on the steem blockchain.

How do we get the reward given a block number? Unfortunately, it is not through the `get_block` api. Instead, we need to use `get_ops_in_block` which is provided by `account_plugin_history`

1
curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_ops_in_block", "params":[43880000,true], "id":1}' https://api.steemit.com
curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_ops_in_block", "params":[43880000,true], "id":1}' https://api.steemit.com

This returns like:

{"jsonrpc":"2.0","result":[{"trx_id":"0000000000000000000000000000000000000000","block":43880000,"trx_in_block":4294967295,"op_in_trx":0,"virtual_op":1,"timestamp":"2020-
06-01T17:49:18","op":["producer_reward",{"producer":"hinomaru-jp","vesting_shares":"481.663694 VESTS"}]}],"id":1}

Then, we can wrap it up in a Python function (please note that we need to scan the transactions array and look for the `producer_reward` ops.

1
2
3
4
5
6
7
8
def getReward(block):
  data={"jsonrpc":"2.0", "method":"condenser_api.get_ops_in_block", "params":[block, True], "id":1}
  result = requests.post(url="https://api.steemit.com", json = data)
  jsonData = result.json()
  for tx in jsonData:
    if tx['op'][0] == 'producer_reward':
      return tx['op'][1]['vesting_shares']
  return None
def getReward(block):
  data={"jsonrpc":"2.0", "method":"condenser_api.get_ops_in_block", "params":[block, True], "id":1}
  result = requests.post(url="https://api.steemit.com", json = data)
  jsonData = result.json()
  for tx in jsonData:
    if tx['op'][0] == 'producer_reward':
      return tx['op'][1]['vesting_shares']
  return None

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
Integration Tests Using PHPUnit to Ensure Your Website is Workin  Find Out the Longest Arithmetic Sequence in Array Using Dynamic   Find Numbers with Even Number of Digits using the Reduce Functio  How to Convert Blogging Leads into Sales  24 Things Your WordPress Form Plugin Can Do Besides Create A Con  Blogging and Finance Management: How to Secure Your Financial Fu  9 Easy-to-Use SEO Tips to Boost Your Site’s Visibility Today  How to Land Guest Blogging Opportunities in Under an Hour  Tips For Creating An Education Blog That Will Attract Followers  What Is Data Blending, And What Does It Have To Do With SEO? 
评论列表
添加评论