Skip to content

Instantly share code, notes, and snippets.

@banteg
Created January 22, 2019 10:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save banteg/f126c350a3130f26322a9639a2fe5bbe to your computer and use it in GitHub Desktop.
Save banteg/f126c350a3130f26322a9639a2fe5bbe to your computer and use it in GitHub Desktop.
import requests
import click
LTO_NODE_URL = 'http://127.0.0.1:6869'
LTO_API_KEY = '<your api password>'
s = requests.session()
s.headers['X-API-Key'] = LTO_API_KEY
def lto(query):
return s.get(f'{LTO_NODE_URL}{query}').json()
def fetch_blocks(step=50):
last = lto('/blocks/height')['height']
blocks = []
with click.progressbar(range(0, last, step)) as bar:
for start in bar:
batch = lto(f'/blocks/seq/{start}/{min(start + step - 1, last)}')
blocks.extend(batch)
return blocks
@click.command()
@click.argument('address')
def main(address):
blocks = fetch_blocks()
generated = [x for x in blocks if x['generator'] == address]
references = {x['reference'] for x in generated}
referenced = [x for x in blocks if x['signature'] in references]
generated_fees = sum(x['fee'] for x in generated) * 0.4 / 1e8
reference_fees = sum(x['fee'] for x in referenced) * 0.6 / 1e8
total_fees = generated_fees + reference_fees
print(f'{address}')
print(f' {generated_fees:10,.2f} fees from generated')
print(f' {reference_fees:10,.2f} fees from references')
print(f' {total_fees:10,.2f} total rewards')
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment