implement EIP649: reduce block reward from 5 to 3 ether
This commit is contained in:
parent
7940d443e9
commit
b3a3814f6a
|
@ -92,8 +92,6 @@ proc makeReceipt(vmState: BaseVMState, fork = FkFrontier): Receipt =
|
||||||
result.bloom = logsBloom(result.logs).value.toByteArrayBE
|
result.bloom = logsBloom(result.logs).value.toByteArrayBE
|
||||||
|
|
||||||
proc processBlock*(chainDB: BaseChainDB, header: BlockHeader, body: BlockBody, vmState: BaseVMState): ValidationResult =
|
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:
|
if chainDB.config.daoForkSupport and header.blockNumber == chainDB.config.daoForkBlock:
|
||||||
vmState.mutateStateDB:
|
vmState.mutateStateDB:
|
||||||
db.applyDAOHardFork()
|
db.applyDAOHardFork()
|
||||||
|
@ -102,6 +100,8 @@ proc processBlock*(chainDB: BaseChainDB, header: BlockHeader, body: BlockBody, v
|
||||||
debug "Mismatched txRoot", blockNumber=header.blockNumber
|
debug "Mismatched txRoot", blockNumber=header.blockNumber
|
||||||
return ValidationResult.Error
|
return ValidationResult.Error
|
||||||
|
|
||||||
|
let fork = vmState.blockNumber.toFork
|
||||||
|
|
||||||
if header.txRoot != BLANK_ROOT_HASH:
|
if header.txRoot != BLANK_ROOT_HASH:
|
||||||
if body.transactions.len == 0:
|
if body.transactions.len == 0:
|
||||||
debug "No transactions in body", blockNumber=header.blockNumber
|
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:
|
for txIndex, tx in body.transactions:
|
||||||
var sender: EthAddress
|
var sender: EthAddress
|
||||||
if tx.getSender(sender):
|
if tx.getSender(sender):
|
||||||
let gasUsed = processTransaction(tx, sender, vmState)
|
let gasUsed = processTransaction(tx, sender, vmState, some(fork))
|
||||||
else:
|
else:
|
||||||
debug "Could not get sender", txIndex, tx
|
debug "Could not get sender", txIndex, tx
|
||||||
return ValidationResult.Error
|
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
|
var mainReward = blockReward
|
||||||
if header.ommersHash != EMPTY_UNCLE_HASH:
|
if header.ommersHash != EMPTY_UNCLE_HASH:
|
||||||
|
|
Loading…
Reference in New Issue