nimbus-eth1/hive_integration/nodocker/engine/withdrawals/wd_block_value_spec.nim

54 lines
1.5 KiB
Nim
Raw Normal View History

2023-11-01 03:32:09 +00:00
# Nimbus
# Copyright (c) 2023-2024 Status Research & Development GmbH
2023-11-01 03:32:09 +00:00
# Licensed under either of
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
# http://www.apache.org/licenses/LICENSE-2.0)
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
# http://opensource.org/licenses/MIT)
# at your option. This file may not be copied, modified, or distributed except
# according to those terms.
2023-08-21 02:08:54 +00:00
import
stint,
chronicles,
eth/common/eth_types_rlp,
./wd_base_spec,
../test_env,
../engine_client,
../types,
../../../../nimbus/transaction
2023-08-21 02:08:54 +00:00
type
BlockValueSpec* = ref object of WDBaseSpec
proc execute*(ws: BlockValueSpec, env: TestEnv): bool =
2023-08-21 02:08:54 +00:00
WDBaseSpec(ws).skipBaseVerifications = true
testCond WDBaseSpec(ws).execute(env)
2023-08-21 02:08:54 +00:00
# Get the latest block and the transactions included
2023-11-01 11:09:49 +00:00
let b = env.client.latestBlock()
2023-08-21 02:08:54 +00:00
b.expectNoError()
2023-11-01 11:09:49 +00:00
let blk = b.get
2023-08-21 02:08:54 +00:00
var totalValue: UInt256
testCond blk.txs.len > 0:
error "No transactions included in latest block"
for tx in blk.txs:
let txHash = rlpHash(tx)
let r = env.client.txReceipt(txHash)
2023-08-21 02:08:54 +00:00
r.expectNoError()
let
rec = r.get
txTip = tx.effectiveGasTip(blk.header.baseFee)
totalValue += txTip.uint64.u256 * rec.gasUsed.u256
doAssert(env.cLMock.latestBlockValue.isSome)
testCond totalValue == env.cLMock.latestBlockValue.get:
2023-08-21 02:08:54 +00:00
error "Unexpected block value returned on GetPayloadV2",
expect=totalValue,
get=env.cLMock.latestBlockValue.get
2023-08-21 02:08:54 +00:00
return true