apply latest EIP-6404 field renames

In https://github.com/ethereum/EIPs/pull/8886 certain fields related to
the `from` address and signature have been renamed. Sync those changes.
This commit is contained in:
Etan Kissling 2024-09-17 15:08:03 +02:00
parent dcb268e307
commit d31f4cde3a
No known key found for this signature in database
GPG Key ID: B21DA824C5A3D03D
7 changed files with 53 additions and 53 deletions

2
.gitmodules vendored
View File

@ -44,7 +44,7 @@
path = vendor/nim-web3 path = vendor/nim-web3
url = https://github.com/status-im/nim-web3.git url = https://github.com/status-im/nim-web3.git
ignore = untracked ignore = untracked
branch = feat/eip-6493 branch = feat/fusaka-light
[submodule "vendor/nim-nat-traversal"] [submodule "vendor/nim-nat-traversal"]
path = vendor/nim-nat-traversal path = vendor/nim-nat-traversal
url = https://github.com/status-im/nim-nat-traversal.git url = https://github.com/status-im/nim-nat-traversal.git

View File

@ -150,9 +150,9 @@ func asConsensusType*(payload: engine_api.GetPayloadV3Response):
func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4): func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
electra.ExecutionPayload = electra.ExecutionPayload =
template getTransaction( template getTransaction(
tt: engine_api_types.Transaction): electra.Eip6493Transaction = tt: engine_api_types.Transaction): electra.Eip6404Transaction =
electra.Eip6493Transaction( electra.Eip6404Transaction(
payload: Eip6493TransactionPayload( payload: Eip6404TransactionPayload(
`type`: `type`:
if tt.payload.`type`.isSome: if tt.payload.`type`.isSome:
Opt.some(tt.payload.`type`.get.uint64.uint8) Opt.some(tt.payload.`type`.get.uint64.uint8)
@ -170,7 +170,7 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
Opt.none(uint64), Opt.none(uint64),
max_fees_per_gas: max_fees_per_gas:
if tt.payload.maxFeesPerGas.isSome: if tt.payload.maxFeesPerGas.isSome:
Opt.some(Eip6493FeesPerGas( Opt.some(Eip6404FeesPerGas(
regular: regular:
if tt.payload.maxFeesPerGas.get.regular.isSome: if tt.payload.maxFeesPerGas.get.regular.isSome:
Opt.some(tt.payload.maxFeesPerGas.get.regular.get) Opt.some(tt.payload.maxFeesPerGas.get.regular.get)
@ -182,7 +182,7 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
else: else:
Opt.none(Uint256))) Opt.none(Uint256)))
else: else:
Opt.none(Eip6493FeesPerGas), Opt.none(Eip6404FeesPerGas),
gas: gas:
if tt.payload.gas.isSome: if tt.payload.gas.isSome:
Opt.some(tt.payload.gas.get.uint64) Opt.some(tt.payload.gas.get.uint64)
@ -206,19 +206,19 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
Opt.none(List[byte, Limit MAX_CALLDATA_SIZE]), Opt.none(List[byte, Limit MAX_CALLDATA_SIZE]),
access_list: access_list:
if tt.payload.accessList.isSome: if tt.payload.accessList.isSome:
Opt.some(List[Eip6493AccessTuple, Limit MAX_ACCESS_LIST_SIZE].init( Opt.some(List[Eip6404AccessTuple, Limit MAX_ACCESS_LIST_SIZE].init(
tt.payload.accessList.get.mapIt( tt.payload.accessList.get.mapIt(
Eip6493AccessTuple( Eip6404AccessTuple(
address: ExecutionAddress(data: distinctBase(it.address)), address: ExecutionAddress(data: distinctBase(it.address)),
storage_keys: storage_keys:
List[Eth2Digest, Limit MAX_ACCESS_LIST_STORAGE_KEYS] List[Eth2Digest, Limit MAX_ACCESS_LIST_STORAGE_KEYS]
.init(it.storage_keys.mapIt( .init(it.storage_keys.mapIt(
Eth2Digest(data: distinctBase(it)))))))) Eth2Digest(data: distinctBase(it))))))))
else: else:
Opt.none(List[Eip6493AccessTuple, Limit MAX_ACCESS_LIST_SIZE]), Opt.none(List[Eip6404AccessTuple, Limit MAX_ACCESS_LIST_SIZE]),
max_priority_fees_per_gas: max_priority_fees_per_gas:
if tt.payload.maxPriorityFeesPerGas.isSome: if tt.payload.maxPriorityFeesPerGas.isSome:
Opt.some(Eip6493FeesPerGas( Opt.some(Eip6404FeesPerGas(
regular: regular:
if tt.payload.maxPriorityFeesPerGas.get.regular.isSome: if tt.payload.maxPriorityFeesPerGas.get.regular.isSome:
Opt.some(tt.payload.maxPriorityFeesPerGas.get.regular.get) Opt.some(tt.payload.maxPriorityFeesPerGas.get.regular.get)
@ -230,7 +230,7 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
else: else:
Opt.none(Uint256))) Opt.none(Uint256)))
else: else:
Opt.none(Eip6493FeesPerGas), Opt.none(Eip6404FeesPerGas),
blob_versioned_hashes: blob_versioned_hashes:
if tt.payload.blobVersionedHashes.isSome: if tt.payload.blobVersionedHashes.isSome:
Opt.some( Opt.some(
@ -241,16 +241,16 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
Opt.none( Opt.none(
List[stable.VersionedHash, List[stable.VersionedHash,
Limit MAX_BLOB_COMMITMENTS_PER_BLOCK])), Limit MAX_BLOB_COMMITMENTS_PER_BLOCK])),
signature: Eip6493TransactionSignature( `from`: Eip6404ExecutionSignature(
`from`: address:
if tt.signature.`from`.isSome: if tt.`from`.address.isSome:
Opt.some(ExecutionAddress( Opt.some(ExecutionAddress(
data: distinctBase(tt.signature.`from`.get))) data: distinctBase(tt.`from`.address.get)))
else: else:
Opt.none(ExecutionAddress), Opt.none(ExecutionAddress),
ecdsa_signature: secp256k1_signature:
if tt.signature.ecdsaSignature.isSome: if tt.`from`.secp256k1Signature.isSome:
Opt.some(array[65, byte](tt.signature.ecdsaSignature.get)) Opt.some(array[65, byte](tt.`from`.secp256k1Signature.get))
else: else:
Opt.none(array[65, byte]))) Opt.none(array[65, byte])))
@ -293,7 +293,7 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
rpcExecutionPayload.extraData.bytes), rpcExecutionPayload.extraData.bytes),
base_fee_per_gas: rpcExecutionPayload.baseFeePerGas, base_fee_per_gas: rpcExecutionPayload.baseFeePerGas,
block_hash: rpcExecutionPayload.blockHash.asEth2Digest, block_hash: rpcExecutionPayload.blockHash.asEth2Digest,
transactions: List[Eip6493Transaction, MAX_TRANSACTIONS_PER_PAYLOAD].init( transactions: List[Eip6404Transaction, MAX_TRANSACTIONS_PER_PAYLOAD].init(
mapIt(rpcExecutionPayload.transactions, it.getTransaction)), mapIt(rpcExecutionPayload.transactions, it.getTransaction)),
withdrawals: List[capella.Withdrawal, MAX_WITHDRAWALS_PER_PAYLOAD].init( withdrawals: List[capella.Withdrawal, MAX_WITHDRAWALS_PER_PAYLOAD].init(
mapIt(rpcExecutionPayload.withdrawals, it.asConsensusWithdrawal)), mapIt(rpcExecutionPayload.withdrawals, it.asConsensusWithdrawal)),
@ -409,7 +409,7 @@ func asEngineExecutionPayload*(executionPayload: deneb.ExecutionPayload):
func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload): func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
ExecutionPayloadV4 = ExecutionPayloadV4 =
template getTypedTransaction( template getTypedTransaction(
tt: electra.Eip6493Transaction): engine_api_types.Transaction = tt: electra.Eip6404Transaction): engine_api_types.Transaction =
engine_api_types.Transaction( engine_api_types.Transaction(
payload: engine_api_types.TransactionPayload( payload: engine_api_types.TransactionPayload(
`type`: `type`:
@ -429,7 +429,7 @@ func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
Opt.none(Quantity), Opt.none(Quantity),
maxFeesPerGas: maxFeesPerGas:
if tt.payload.max_fees_per_gas.isSome: if tt.payload.max_fees_per_gas.isSome:
Opt.some(engine_api_types.TransactionFeesPerGas( Opt.some(engine_api_types.FeesPerGas(
regular: regular:
if tt.payload.max_fees_per_gas.get.regular.isSome: if tt.payload.max_fees_per_gas.get.regular.isSome:
Opt.some(tt.payload.max_fees_per_gas.get.regular.get) Opt.some(tt.payload.max_fees_per_gas.get.regular.get)
@ -441,7 +441,7 @@ func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
else: else:
Opt.none(UInt256))) Opt.none(UInt256)))
else: else:
Opt.none(engine_api_types.TransactionFeesPerGas), Opt.none(engine_api_types.FeesPerGas),
gas: gas:
if tt.payload.gas.isSome: if tt.payload.gas.isSome:
Opt.some(tt.payload.gas.get.Quantity) Opt.some(tt.payload.gas.get.Quantity)
@ -473,7 +473,7 @@ func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
Opt.none(seq[AccessTuple]), Opt.none(seq[AccessTuple]),
maxPriorityFeesPerGas: maxPriorityFeesPerGas:
if tt.payload.max_priority_fees_per_gas.isSome: if tt.payload.max_priority_fees_per_gas.isSome:
Opt.some(engine_api_types.TransactionFeesPerGas( Opt.some(engine_api_types.FeesPerGas(
regular: regular:
if tt.payload.max_priority_fees_per_gas.get.regular.isSome: if tt.payload.max_priority_fees_per_gas.get.regular.isSome:
Opt.some( Opt.some(
@ -487,22 +487,22 @@ func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
else: else:
Opt.none(UInt256))) Opt.none(UInt256)))
else: else:
Opt.none(engine_api_types.TransactionFeesPerGas), Opt.none(engine_api_types.FeesPerGas),
blobVersionedHashes: blobVersionedHashes:
if tt.payload.blob_versioned_hashes.isSome: if tt.payload.blob_versioned_hashes.isSome:
Opt.some(distinctBase(tt.payload.blob_versioned_hashes.get) Opt.some(distinctBase(tt.payload.blob_versioned_hashes.get)
.mapIt(FixedBytes[32](it))) .mapIt(FixedBytes[32](it)))
else: else:
Opt.none(seq[FixedBytes[32]])), Opt.none(seq[FixedBytes[32]])),
signature: engine_api_types.TransactionSignature( `from`: engine_api_types.ExecutionSignature(
`from`: address:
if tt.signature.`from`.isSome: if tt.`from`.address.isSome:
Opt.some(Address(tt.signature.`from`.get.data)) Opt.some(Address(tt.`from`.address.get.data))
else: else:
Opt.none(Address), Opt.none(Address),
ecdsaSignature: secp256k1Signature:
if tt.signature.ecdsa_signature.isSome: if tt.`from`.secp256k1_signature.isSome:
Opt.some(FixedBytes[65](tt.signature.ecdsa_signature.get)) Opt.some(FixedBytes[65](tt.`from`.secp256k1_signature.get))
else: else:
Opt.none(FixedBytes[65]))) Opt.none(FixedBytes[65])))

View File

@ -129,7 +129,7 @@ type
# Extra payload fields # Extra payload fields
block_hash*: Eth2Digest # Hash of execution block block_hash*: Eth2Digest # Hash of execution block
transactions*: List[Eip6493Transaction, MAX_TRANSACTIONS_PER_PAYLOAD] transactions*: List[Eip6404Transaction, MAX_TRANSACTIONS_PER_PAYLOAD]
withdrawals*: List[Withdrawal, MAX_WITHDRAWALS_PER_PAYLOAD] withdrawals*: List[Withdrawal, MAX_WITHDRAWALS_PER_PAYLOAD]
blob_gas_used*: uint64 blob_gas_used*: uint64
excess_blob_gas*: uint64 excess_blob_gas*: uint64

View File

@ -21,7 +21,7 @@ const
MAX_BEACON_BLOCK_BODY_FIELDS* = 64 MAX_BEACON_BLOCK_BODY_FIELDS* = 64
MAX_BEACON_STATE_FIELDS* = 128 MAX_BEACON_STATE_FIELDS* = 128
# https://eips.ethereum.org/EIPS/eip-6493 # https://eips.ethereum.org/EIPS/eip-6404
MAX_CALLDATA_SIZE* = 16_777_216 MAX_CALLDATA_SIZE* = 16_777_216
MAX_ACCESS_LIST_STORAGE_KEYS* = 524_288 MAX_ACCESS_LIST_STORAGE_KEYS* = 524_288
MAX_ACCESS_LIST_SIZE* = 524_288 MAX_ACCESS_LIST_SIZE* = 524_288
@ -37,17 +37,17 @@ type
ChainId* = uint64 ChainId* = uint64
Eip6493FeesPerGas* {.sszStableContainer: 16.} = object Eip6404FeesPerGas* {.sszStableContainer: 16.} = object
regular*: Opt[UInt256] regular*: Opt[UInt256]
# EIP-4844 # EIP-4844
blob*: Opt[UInt256] blob*: Opt[UInt256]
Eip6493AccessTuple* = object Eip6404AccessTuple* = object
address*: ExecutionAddress address*: ExecutionAddress
storage_keys*: List[Eth2Digest, Limit MAX_ACCESS_LIST_STORAGE_KEYS] storage_keys*: List[Eth2Digest, Limit MAX_ACCESS_LIST_STORAGE_KEYS]
Eip6493TransactionPayload* {.sszStableContainer: 32.} = object Eip6404TransactionPayload* {.sszStableContainer: 32.} = object
# EIP-2718 # EIP-2718
`type`*: Opt[uint8] `type`*: Opt[uint8]
@ -55,29 +55,29 @@ type
chain_id*: Opt[ChainId] chain_id*: Opt[ChainId]
nonce*: Opt[uint64] nonce*: Opt[uint64]
max_fees_per_gas*: Opt[Eip6493FeesPerGas] max_fees_per_gas*: Opt[Eip6404FeesPerGas]
gas*: Opt[uint64] gas*: Opt[uint64]
to*: Opt[ExecutionAddress] to*: Opt[ExecutionAddress]
value*: Opt[UInt256] value*: Opt[UInt256]
input*: Opt[List[byte, Limit MAX_CALLDATA_SIZE]] input*: Opt[List[byte, Limit MAX_CALLDATA_SIZE]]
# EIP-2930 # EIP-2930
access_list*: Opt[List[Eip6493AccessTuple, Limit MAX_ACCESS_LIST_SIZE]] access_list*: Opt[List[Eip6404AccessTuple, Limit MAX_ACCESS_LIST_SIZE]]
# EIP-1559 # EIP-1559
max_priority_fees_per_gas*: Opt[Eip6493FeesPerGas] max_priority_fees_per_gas*: Opt[Eip6404FeesPerGas]
# EIP-4844 # EIP-4844
blob_versioned_hashes*: blob_versioned_hashes*:
Opt[List[VersionedHash, Limit MAX_BLOB_COMMITMENTS_PER_BLOCK]] Opt[List[VersionedHash, Limit MAX_BLOB_COMMITMENTS_PER_BLOCK]]
Eip6493TransactionSignature* {.sszStableContainer: 16.} = object Eip6404ExecutionSignature* {.sszStableContainer: 16.} = object
`from`*: Opt[ExecutionAddress] address*: Opt[ExecutionAddress]
ecdsa_signature*: Opt[array[65, byte]] secp256k1_signature*: Opt[array[65, byte]]
Eip6493Transaction* = object Eip6404Transaction* = object
payload*: Eip6493TransactionPayload payload*: Eip6404TransactionPayload
signature*: Eip6493TransactionSignature `from`*: Eip6404ExecutionSignature
# https://eips.ethereum.org/EIPS/eip-7688 # https://eips.ethereum.org/EIPS/eip-7688
StableAttestation* {. StableAttestation* {.
@ -119,7 +119,7 @@ type
# Extra payload fields # Extra payload fields
block_hash*: Opt[Eth2Digest] # Hash of execution block block_hash*: Opt[Eth2Digest] # Hash of execution block
transactions*: Opt[List[Eip6493Transaction, MAX_TRANSACTIONS_PER_PAYLOAD]] transactions*: Opt[List[Eip6404Transaction, MAX_TRANSACTIONS_PER_PAYLOAD]]
withdrawals*: Opt[List[Withdrawal, MAX_WITHDRAWALS_PER_PAYLOAD]] withdrawals*: Opt[List[Withdrawal, MAX_WITHDRAWALS_PER_PAYLOAD]]
blob_gas_used*: Opt[uint64] blob_gas_used*: Opt[uint64]
excess_blob_gas*: Opt[uint64] excess_blob_gas*: Opt[uint64]

View File

@ -67,11 +67,11 @@ RestJson.useDefaultSerializationFor(
DepositRequest, DepositRequest,
DepositTreeSnapshot, DepositTreeSnapshot,
DistributedKeystoreInfo, DistributedKeystoreInfo,
Eip6493AccessTuple, Eip6404AccessTuple,
Eip6493FeesPerGas, Eip6404FeesPerGas,
Eip6493Transaction, Eip6404Transaction,
Eip6493TransactionPayload, Eip6404TransactionPayload,
Eip6493TransactionSignature, Eip6404ExecutionSignature,
ElectraSignedBlockContents, ElectraSignedBlockContents,
EmptyBody, EmptyBody,
Eth1Data, Eth1Data,

View File

@ -303,7 +303,7 @@ type
bellatrix.Transaction, MAX_TRANSACTIONS_PER_PAYLOAD] bellatrix.Transaction, MAX_TRANSACTIONS_PER_PAYLOAD]
of RestTransactionsKind.Electra: of RestTransactionsKind.Electra:
electraData*: List[ electraData*: List[
electra.Eip6493Transaction, MAX_TRANSACTIONS_PER_PAYLOAD] electra.Eip6404Transaction, MAX_TRANSACTIONS_PER_PAYLOAD]
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/capella/beacon-chain.md#executionpayload # https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/capella/beacon-chain.md#executionpayload
RestExecutionPayload* = object RestExecutionPayload* = object

2
vendor/nim-web3 vendored

@ -1 +1 @@
Subproject commit c6ab73f485c9db140b47012621ad0b775d70124e Subproject commit 3a5afc8ea7c42cb3e62646f13e0c21ddf2c08797