The Python Function to Retrieve the Producer Reward for Witness

in #codeonsteem4 years ago

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

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.

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

Every little helps! I hope this helps!

Steem On!~
Reposted to Blog


If you like my work, please consider voting for me, thanks!
https://steemit.com/~witnesses type in justyy and click VOTE



Alternatively, you could proxy to me if you are too lazy to vote!

Also: you can vote me at the tool I made: https://steemyy.com/witness-voting/?witness=justyy

Visit me at: https://steemyy.com

Sort:  

Your Post has been voted by steem communication project led by @steem-supporter

Use #codeonsteem on your posts

Steem Has a lot of Posibilities , Lets harnesh this together

Thank you very much.

Coin Marketplace

STEEM 0.33
TRX 0.11
JST 0.034
BTC 66363.68
ETH 3207.73
USDT 1.00
SBD 4.27