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
url = https://github.com/status-im/nim-web3.git
ignore = untracked
branch = feat/eip-6493
branch = feat/fusaka-light
[submodule "vendor/nim-nat-traversal"]
path = vendor/nim-nat-traversal
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):
electra.ExecutionPayload =
template getTransaction(
tt: engine_api_types.Transaction): electra.Eip6493Transaction =
electra.Eip6493Transaction(
payload: Eip6493TransactionPayload(
tt: engine_api_types.Transaction): electra.Eip6404Transaction =
electra.Eip6404Transaction(
payload: Eip6404TransactionPayload(
`type`:
if tt.payload.`type`.isSome:
Opt.some(tt.payload.`type`.get.uint64.uint8)
@ -170,7 +170,7 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
Opt.none(uint64),
max_fees_per_gas:
if tt.payload.maxFeesPerGas.isSome:
Opt.some(Eip6493FeesPerGas(
Opt.some(Eip6404FeesPerGas(
regular:
if tt.payload.maxFeesPerGas.get.regular.isSome:
Opt.some(tt.payload.maxFeesPerGas.get.regular.get)
@ -182,7 +182,7 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
else:
Opt.none(Uint256)))
else:
Opt.none(Eip6493FeesPerGas),
Opt.none(Eip6404FeesPerGas),
gas:
if tt.payload.gas.isSome:
Opt.some(tt.payload.gas.get.uint64)
@ -206,19 +206,19 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
Opt.none(List[byte, Limit MAX_CALLDATA_SIZE]),
access_list:
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(
Eip6493AccessTuple(
Eip6404AccessTuple(
address: ExecutionAddress(data: distinctBase(it.address)),
storage_keys:
List[Eth2Digest, Limit MAX_ACCESS_LIST_STORAGE_KEYS]
.init(it.storage_keys.mapIt(
Eth2Digest(data: distinctBase(it))))))))
else:
Opt.none(List[Eip6493AccessTuple, Limit MAX_ACCESS_LIST_SIZE]),
Opt.none(List[Eip6404AccessTuple, Limit MAX_ACCESS_LIST_SIZE]),
max_priority_fees_per_gas:
if tt.payload.maxPriorityFeesPerGas.isSome:
Opt.some(Eip6493FeesPerGas(
Opt.some(Eip6404FeesPerGas(
regular:
if tt.payload.maxPriorityFeesPerGas.get.regular.isSome:
Opt.some(tt.payload.maxPriorityFeesPerGas.get.regular.get)
@ -230,7 +230,7 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
else:
Opt.none(Uint256)))
else:
Opt.none(Eip6493FeesPerGas),
Opt.none(Eip6404FeesPerGas),
blob_versioned_hashes:
if tt.payload.blobVersionedHashes.isSome:
Opt.some(
@ -241,16 +241,16 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
Opt.none(
List[stable.VersionedHash,
Limit MAX_BLOB_COMMITMENTS_PER_BLOCK])),
signature: Eip6493TransactionSignature(
`from`:
if tt.signature.`from`.isSome:
`from`: Eip6404ExecutionSignature(
address:
if tt.`from`.address.isSome:
Opt.some(ExecutionAddress(
data: distinctBase(tt.signature.`from`.get)))
data: distinctBase(tt.`from`.address.get)))
else:
Opt.none(ExecutionAddress),
ecdsa_signature:
if tt.signature.ecdsaSignature.isSome:
Opt.some(array[65, byte](tt.signature.ecdsaSignature.get))
secp256k1_signature:
if tt.`from`.secp256k1Signature.isSome:
Opt.some(array[65, byte](tt.`from`.secp256k1Signature.get))
else:
Opt.none(array[65, byte])))
@ -293,7 +293,7 @@ func asConsensusType*(rpcExecutionPayload: ExecutionPayloadV4):
rpcExecutionPayload.extraData.bytes),
base_fee_per_gas: rpcExecutionPayload.baseFeePerGas,
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)),
withdrawals: List[capella.Withdrawal, MAX_WITHDRAWALS_PER_PAYLOAD].init(
mapIt(rpcExecutionPayload.withdrawals, it.asConsensusWithdrawal)),
@ -409,7 +409,7 @@ func asEngineExecutionPayload*(executionPayload: deneb.ExecutionPayload):
func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
ExecutionPayloadV4 =
template getTypedTransaction(
tt: electra.Eip6493Transaction): engine_api_types.Transaction =
tt: electra.Eip6404Transaction): engine_api_types.Transaction =
engine_api_types.Transaction(
payload: engine_api_types.TransactionPayload(
`type`:
@ -429,7 +429,7 @@ func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
Opt.none(Quantity),
maxFeesPerGas:
if tt.payload.max_fees_per_gas.isSome:
Opt.some(engine_api_types.TransactionFeesPerGas(
Opt.some(engine_api_types.FeesPerGas(
regular:
if tt.payload.max_fees_per_gas.get.regular.isSome:
Opt.some(tt.payload.max_fees_per_gas.get.regular.get)
@ -441,7 +441,7 @@ func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
else:
Opt.none(UInt256)))
else:
Opt.none(engine_api_types.TransactionFeesPerGas),
Opt.none(engine_api_types.FeesPerGas),
gas:
if tt.payload.gas.isSome:
Opt.some(tt.payload.gas.get.Quantity)
@ -473,7 +473,7 @@ func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
Opt.none(seq[AccessTuple]),
maxPriorityFeesPerGas:
if tt.payload.max_priority_fees_per_gas.isSome:
Opt.some(engine_api_types.TransactionFeesPerGas(
Opt.some(engine_api_types.FeesPerGas(
regular:
if tt.payload.max_priority_fees_per_gas.get.regular.isSome:
Opt.some(
@ -487,22 +487,22 @@ func asEngineExecutionPayload*(executionPayload: electra.ExecutionPayload):
else:
Opt.none(UInt256)))
else:
Opt.none(engine_api_types.TransactionFeesPerGas),
Opt.none(engine_api_types.FeesPerGas),
blobVersionedHashes:
if tt.payload.blob_versioned_hashes.isSome:
Opt.some(distinctBase(tt.payload.blob_versioned_hashes.get)
.mapIt(FixedBytes[32](it)))
else:
Opt.none(seq[FixedBytes[32]])),
signature: engine_api_types.TransactionSignature(
`from`:
if tt.signature.`from`.isSome:
Opt.some(Address(tt.signature.`from`.get.data))
`from`: engine_api_types.ExecutionSignature(
address:
if tt.`from`.address.isSome:
Opt.some(Address(tt.`from`.address.get.data))
else:
Opt.none(Address),
ecdsaSignature:
if tt.signature.ecdsa_signature.isSome:
Opt.some(FixedBytes[65](tt.signature.ecdsa_signature.get))
secp256k1Signature:
if tt.`from`.secp256k1_signature.isSome:
Opt.some(FixedBytes[65](tt.`from`.secp256k1_signature.get))
else:
Opt.none(FixedBytes[65])))

View File

@ -129,7 +129,7 @@ type
# Extra payload fields
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]
blob_gas_used*: uint64
excess_blob_gas*: uint64

View File

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

View File

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

View File

@ -303,7 +303,7 @@ type
bellatrix.Transaction, MAX_TRANSACTIONS_PER_PAYLOAD]
of RestTransactionsKind.Electra:
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
RestExecutionPayload* = object

2
vendor/nim-web3 vendored

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