Skip to content

Commit

Permalink
Update execution_types with latest engine_api_type changes (#156)
Browse files Browse the repository at this point in the history
  • Loading branch information
jangko committed Jun 18, 2024
1 parent fc226d4 commit 914b9ff
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 8 deletions.
26 changes: 22 additions & 4 deletions tests/test_execution_types.nim
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,17 @@ suite "Execution types tests":
index: 9.Quantity
)

exit = WithdrawalRequestV1(
withdrawal = WithdrawalRequestV1(
sourceAddress: address(7),
validatorPublicKey: FixedBytes[48].conv(9)
)

consolidation = ConsolidationRequestV1(
sourceAddress: address(8),
sourcePubkey: FixedBytes[48].conv(10),
targetPubkey: FixedBytes[48].conv(11)
)

test "payload version":
var badv31 = payload
badv31.blobGasUsed = Opt.none(Quantity)
Expand Down Expand Up @@ -168,24 +174,36 @@ suite "Execution types tests":
test "payload version 4":
var v4 = payload
v4.depositRequests = Opt.some(@[deposit])
v4.exits = Opt.some(@[exit])
v4.withdrawalRequests = Opt.some(@[withdrawal])
v4.consolidationRequests = Opt.some(@[consolidation])
check v4.version == Version.V4

var bad41 = v4
bad41.depositRequests = Opt.none(seq[DepositRequestV1])
check bad41.version == Version.V4

var bad42 = v4
bad42.exits = Opt.none(seq[WithdrawalRequestV1])
bad42.withdrawalRequests = Opt.none(seq[WithdrawalRequestV1])
check bad42.version == Version.V4

var bad43 = v4
bad43.consolidationRequests = Opt.none(seq[ConsolidationRequestV1])
check bad43.version == Version.V4

let v41 = bad41.V4
check v41.depositRequests == newSeq[DepositRequestV1]()
check v41.withdrawalRequests == v4.exits.get
check v41.withdrawalRequests == v4.withdrawalRequests.get
check v41.consolidationRequests == v4.consolidationRequests.get

let v42 = bad42.V4
check v42.depositRequests == v4.depositRequests.get
check v42.withdrawalRequests == newSeq[WithdrawalRequestV1]()
check v41.consolidationRequests == v4.consolidationRequests.get

let v43 = bad43.V4
check v43.depositRequests == v4.depositRequests.get
check v43.withdrawalRequests == v4.withdrawalRequests.get
check v43.consolidationRequests == newSeq[ConsolidationRequestV1]()

# roundtrip
let v4p = v4.V4
Expand Down
13 changes: 9 additions & 4 deletions web3/execution_types.nim
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ type
blobGasUsed*: Opt[Quantity]
excessBlobGas*: Opt[Quantity]
depositRequests*: Opt[seq[DepositRequestV1]]
exits*: Opt[seq[WithdrawalRequestV1]]
withdrawalRequests*: Opt[seq[WithdrawalRequestV1]]
consolidationRequests*:Opt[seq[ConsolidationRequestV1]]

PayloadAttributes* = object
timestamp*: Quantity
Expand Down Expand Up @@ -64,7 +65,9 @@ type
{.push raises: [].}

func version*(payload: ExecutionPayload): Version =
if payload.depositRequests.isSome or payload.exits.isSome:
if payload.depositRequests.isSome or
payload.withdrawalRequests.isSome or
payload.consolidationRequests.isSome:
Version.V4
elif payload.blobGasUsed.isSome or payload.excessBlobGas.isSome:
Version.V3
Expand Down Expand Up @@ -273,7 +276,8 @@ func V4*(p: ExecutionPayload): ExecutionPayloadV4 =
blobGasUsed: p.blobGasUsed.get(0.Quantity),
excessBlobGas: p.excessBlobGas.get(0.Quantity),
depositRequests: p.depositRequests.get(newSeq[DepositRequestV1]()),
withdrawalRequests: p.exits.get(newSeq[WithdrawalRequestV1]())
withdrawalRequests: p.withdrawalRequests.get(newSeq[WithdrawalRequestV1]()),
consolidationRequests: p.consolidationRequests.get(newSeq[ConsolidationRequestV1]()),
)

func V1*(p: ExecutionPayloadV1OrV2): ExecutionPayloadV1 =
Expand Down Expand Up @@ -391,7 +395,8 @@ func executionPayload*(p: ExecutionPayloadV4): ExecutionPayload =
blobGasUsed: Opt.some(p.blobGasUsed),
excessBlobGas: Opt.some(p.excessBlobGas),
depositRequests: Opt.some(p.depositRequests),
exits: Opt.some(p.withdrawalRequests)
withdrawalRequests: Opt.some(p.withdrawalRequests),
consolidationRequests: Opt.some(p.consolidationRequests),
)

func executionPayload*(p: ExecutionPayloadV1OrV2): ExecutionPayload =
Expand Down

0 comments on commit 914b9ff

Please sign in to comment.