def make_supply_table(self, supply_divide=1, table_format='simple'): eras = self.supply_data.get('eras') if not eras and self.supply_data['method'] == 'standard': eras = make_standard_halfing_eras( start=0, interval=self.supply_data['blocks_per_era'], start_reward=self.supply_data['start_coins_per_block']) tag = "" if supply_divide == 1e6: tag = " (in millions)" if supply_divide == 1e9: tag = " (in billions)" total_supply = (self.supply_data.get('full_cap') or 0) / supply_divide rows = [] running_total = 0 for era, data in enumerate(eras, 1): start = data['start'] end = data['end'] reward = data['reward'] total = ((end - start) * reward) / supply_divide if end else "" running_total += total or 0 percent = "%.2f" % (float(running_total * 100) / total_supply) if total_supply else None date = self.estimate_date_from_height(end) if end else None row = [ era, start, "{0:%m-%d-%Y}".format(date) if date else "", end, reward, total, running_total ] if total_supply: row.append(percent) rows.append(row) headers = [ 'Era', 'Start Block', 'End Date', 'End Block', 'Reward per block', 'Total Created This Era' + tag, "Total Existing" + tag ] if total_supply: headers.append("Percentage Issued") return tabulate(rows, headers=headers, tablefmt=table_format)
def make_supply_table(self, supply_divide=1, table_format='simple'): eras = self.supply_data.get('eras') if not eras and self.supply_data['method'] == 'standard': eras = make_standard_halfing_eras( start=0, interval=self.supply_data['blocks_per_era'], start_reward=self.supply_data['start_coins_per_block'] ) tag = "" if supply_divide == 1e6: tag = " (in millions)" if supply_divide == 1e9: tag = " (in billions)" total_supply = (self.supply_data.get('full_cap') or 0) / supply_divide rows = [] running_total = 0 for era, data in enumerate(eras, 1): start = data['start'] end = data['end'] reward = data['reward'] total = ((end - start) * reward) / supply_divide if end else "" running_total += total or 0 percent = "%.2f" % (float(running_total * 100) / total_supply) if total_supply else None date = self.estimate_date_from_height(end) if end else None row = [era, start, "{0:%m-%d-%Y}".format(date) if date else "", end, reward, total, running_total] if total_supply: row.append(percent) rows.append(row) headers = [ 'Era', 'Start Block', 'End Date', 'End Block', 'Reward per block', 'Total Created This Era' + tag, "Total Existing" + tag ] if total_supply: headers.append("Percentage Issued") return tabulate(rows, headers=headers, tablefmt=table_format)
'start': 1, 'end': 100000, 'reward': 500000 }, # reward was random, average used { 'start': 100001, 'end': 144999, 'reward': 250011 }, # reward was random, average used { 'start': 145000, 'end': 200000, 'reward': 250000 }, ] + make_standard_halfing_eras(start=200000, interval=100000, start_reward=125000, total_eras=4) + [{ 'start': 600001, 'end': None, 'reward': 10000 }], 'minutes_per_block': 1.0, 'full_cap': None, }, 'services': { 'current_price': [Bittrex, Poloniex, Cryptonator, ChainSo, BTER], 'address_balance': [ BlockCypher, ChainSo, DogeChainInfo, ProHashing, HolyTransaction, Bcoin