#!/usr/bin/env perl use warnings; use strict; my $supply = 0.0; my $block = 0; my $amount = 12.5; my $halvings = 0; while ($supply <= 21_000_000) { #while ($halvings <= 64 && $amount >= 1e-8) { $block++; if ($block < 5) { $amount = 40_000; } else { # Halving every 840000 blocks if ($block % 840_000 == 0) { $amount /= 2; $halvings++; } $amount = 12.5 / (2**$halvings); } $supply += $amount; # block, current supply, block reward amount, number of halvings print "$block,$supply,$amount,$halvings\n"; }