mirror of
https://github.com/status-im/nim-eth.git
synced 2025-02-16 16:06:35 +00:00
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.
40 lines
1003 B
Nim
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)
|