implement EIP649: reduce block reward from 5 to 3 ether

This commit is contained in:
andri lim 2019-04-22 16:52:18 +07:00
parent 7940d443e9
commit b3a3814f6a
No known key found for this signature in database
GPG Key ID: 31702AE10541E6B9
1 changed files with 9 additions and 4 deletions

View File

@ -92,8 +92,6 @@ proc makeReceipt(vmState: BaseVMState, fork = FkFrontier): Receipt =
result.bloom = logsBloom(result.logs).value.toByteArrayBE
proc processBlock*(chainDB: BaseChainDB, header: BlockHeader, body: BlockBody, vmState: BaseVMState): ValidationResult =
let blockReward = 5.u256 * pow(10.u256, 18) # 5 ETH
if chainDB.config.daoForkSupport and header.blockNumber == chainDB.config.daoForkBlock:
vmState.mutateStateDB:
db.applyDAOHardFork()
@ -102,6 +100,8 @@ proc processBlock*(chainDB: BaseChainDB, header: BlockHeader, body: BlockBody, v
debug "Mismatched txRoot", blockNumber=header.blockNumber
return ValidationResult.Error
let fork = vmState.blockNumber.toFork
if header.txRoot != BLANK_ROOT_HASH:
if body.transactions.len == 0:
debug "No transactions in body", blockNumber=header.blockNumber
@ -114,11 +114,16 @@ proc processBlock*(chainDB: BaseChainDB, header: BlockHeader, body: BlockBody, v
for txIndex, tx in body.transactions:
var sender: EthAddress
if tx.getSender(sender):
let gasUsed = processTransaction(tx, sender, vmState)
let gasUsed = processTransaction(tx, sender, vmState, some(fork))
else:
debug "Could not get sender", txIndex, tx
return ValidationResult.Error
vmState.receipts[txIndex] = makeReceipt(vmState)
vmState.receipts[txIndex] = makeReceipt(vmState, fork)
let blockReward = if fork >= FkByzantium:
3.u256 * pow(10.u256, 18) # 3 ETH
else:
5.u256 * pow(10.u256, 18) # 5 ETH
var mainReward = blockReward
if header.ommersHash != EMPTY_UNCLE_HASH: