I see that block explorer

https://cryptobe.com/chain/HiroCoin shows that the blocks with payment of 100HIRO are found.

I decided to analyze the last blocks on my node:

http://crypto.mine.nu:9408 and in the block explorer

https://cryptobe.com/chain/HiroCoinAnd I see that HiroCoin blockchain has divided into 2 branches.

Proceeding from the function of calculating subsidies:

https://github.com/Hirocoin/hirocoin/blob/ef74937b92fedd35d43be1af970ab06fd74a3b09/src/main.cpp#L1064// PoW Miner Subsidy Function

int64 static GetBlockValue(const CBlockIndex* pindexLast, int64 nFees, bool addOne)

{

int nHeight = pindexLast->nHeight;

int mockSubsidy = 400;

if (addOne) {nHeight += 1;}

if (nHeight > nVolatileSubsidyFork) {

if (!addOne) pindexLast = pindexLast->pprev;

const CBlockIndex* pindexFirst = pindexLast;

mockSubsidy = 200;

double diffTotal = 0;

double lastDiff = GetDifficulty(pindexLast);

for (int i = 0; pindexFirst && i < 100; i++) {

pindexFirst = pindexFirst->pprev;

diffTotal += GetDifficulty(pindexFirst);

}

double weight = (diffTotal / 100) / lastDiff;

if (weight > 2) weight = 2; // Max 400 reward

if (weight < 0.2) weight = 0.2; // Min 40 reward

mockSubsidy *= weight;

}

// Mining Phase Subsidy

int64 nSubsidy = mockSubsidy * COIN;

// Mining Halving Phase

if (nHeight < nHalvingEnd)

{

nSubsidy >>= (nHeight / nHalvingBlock);

}

// Mineout Phase Subsidy

else if (nHeight >= nMineoutBlock)

{

nSubsidy = nMineoutBlockSubsidy;

}

// Invalid Protection

else nSubsidy = nBlockRewardInvalid;

return nSubsidy + nFees;

}

For example, I take a 1712775 block

https://cryptobe.com/block/0000000034c12cf4e6420571f50bbe42479ae59c0caad4cdb47c17a1fbe3afccThe condition "if (nHeight <nHavingEnd)" is false, because nHeight> nHalvingEnd now.

nHeight = 1712775

nHalvingEnd = 1680000 (look here

https://github.com/Hirocoin/hirocoin/blob/ef74937b92fedd35d43be1af970ab06fd74a3b09/src/main.h#L75)

So then this comparison should be performed:

else if (nHeight> = nMineoutBlock)

Since nMineoutBlock = 2978250 (look here

https://github.com/Hirocoin/hirocoin/blob/ef74937b92fedd35d43be1af970ab06fd74a3b09/src/main.h#L77)

it is false, and the subsidy should be equal to 0.0001:

nSubsidy = nBlockRewardInvalid

nBlockRewardInvalid = 0.0001 (look here

https://github.com/Hirocoin/hirocoin/blob/ef74937b92fedd35d43be1af970ab06fd74a3b09/src/main.h#L71)

I do not understand why the payout shown in the block explorer for this block is 100. If I got it right, the subsidy for the blocks from 1680000 to 2978249 should be 0.0001HIRO

On my node I receive a payment of 0.0001HIRO for the block.

Then what do I see in the block explorer?

Or did I misunderstand the function?