nim-eth/tests/common/test_receipts.nim
Jacek Sieka 4ea11b9fb9
transaction signing helpers (#742)
Transaction signing is something that happens in a lot of places - this
PR introduces primitives for transaction signing in `transaction_utils`
such that we can use the same logic across web3/eth1/etc for this simple
operation.

`transaction_utils` also contains a few more "spec-derived" helpers for
working with transactions, such as the computation of a contract address
etc that cannot easily be introduced in `transactions` itself without
bringing in dependencies like secp and rlp, so they end up in a separate
module.

Finally, since these modules collect "versions" of these transaction
types across different eips, some tests are moved to follow the same
structure.
2024-10-04 13:46:58 +02:00

40 lines
1003 B
Nim

# Nimbus
# Copyright (c) 2023-2024 Status Research & Development GmbH
# 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.
{.used.}
import
unittest2,
../../eth/common/[receipts_rlp]
template roundTrip(v: untyped) =
let bytes = rlp.encode(v)
let v2 = rlp.decode(bytes, Receipt)
let bytes2 = rlp.encode(v2)
check bytes == bytes2
suite "Receipts":
test "EIP-4844":
let rec = Receipt(
receiptType: Eip4844Receipt,
isHash: false,
status: false,
cumulativeGasUsed: 100.GasInt)
roundTrip(rec)
test "EIP-7702":
let rec = Receipt(
receiptType: Eip7702Receipt,
isHash: false,
status: false,
cumulativeGasUsed: 100.GasInt)
roundTrip(rec)