Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Partial Withdrawal Oracle Slot Proof #16

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
Binary file removed ProofGeneration
Binary file not shown.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ This package allows you to generate withdrawal credential proofs, withdrawal pro
## Build the Executable

```
$cd proofGenCli
$go build
```

Expand All @@ -21,7 +22,7 @@ $ ./proof-gen -command ValidatorFieldsProof -oracleBlockHeaderFile [ORACLE_BLOCK
```
Here is an example of running this command with the sample state/block files in the `/data` folder
```
./proof-gen -command ValidatorFieldsProof -oracleBlockHeaderFile "data/goerli_block_header_6399998.json" -stateFile "data/goerli_slot_6399998.json" -validatorIndex 302913 -outputFile "withdrawal_credential_proof_302913.json" -chainID 5
./proof-gen -command ValidatorFieldsProof -oracleBlockHeaderFile "../data/goerli_block_header_6399998.json" -stateFile "../data/goerli_slot_6399998.json" -validatorIndex 302913 -outputFile "withdrawal_credential_proof_302913.json" -chainID 5
```
### Generate Withdrawal Proof
Here is the command:
Expand All @@ -31,7 +32,7 @@ $ ./proofGeneration -command WithdrawalFieldsProof -oracleBlockHeaderFile [ORACL
Here is an example of running this command with the sample state/block files in the `/data` folder

```
./proofGeneration -command WithdrawalFieldsProof -oracleBlockHeaderFile "data/goerli_block_header_6399998.json" -stateFile "data/goerli_slot_6399998.json" -validatorIndex 200240 -outputFile "withdrawal_proof_302913.json" -chainID 5 -historicalSummariesIndex 146 -blockHeaderIndex 8092 -historicalSummaryStateFile "data/goerli_slot_6397852.json" -blockHeaderFile "data/goerli_block_header_6397852.json" -blockBodyFile "data/goerli_block_6397852.json" -withdrawalIndex 0
./proofGeneration -command WithdrawalFieldsProof -oracleBlockHeaderFile "../data/goerli_block_header_6399998.json" -stateFile "../data/goerli_slot_6399998.json" -validatorIndex 200240 -outputFile "withdrawal_proof_302913.json" -chainID 5 -historicalSummariesIndex 146 -blockHeaderIndex 8092 -historicalSummaryStateFile "../data/goerli_slot_6397852.json" -blockHeaderFile "../data/goerli_block_header_6397852.json" -blockBodyFile "../data/goerli_block_6397852.json" -withdrawalIndex 0
```

### Generate a Balance Update Proof.
Expand All @@ -40,7 +41,7 @@ $ ./proofGeneration "BalanceUpdateProof" -oracleBlockHeaderFile [ORACLE_BLOCK_H
```
Here is an example of running this command with the sample state/block files in the `/data` folder:
```
./proof-gen -command BalanceUpdateProof -oracleBlockHeaderFile "data/goerli_block_header_6399998.json" -stateFile "data/goerli_slot_6399998.json" -validatorIndex 302913 -outputFile "withdrawal_credential_proof_302913.json" -chainID 5
./proof-gen -command BalanceUpdateProof -oracleBlockHeaderFile "../data/goerli_block_header_6399998.json" -stateFile "../data/goerli_slot_6399998.json" -validatorIndex 302913 -outputFile "withdrawal_credential_proof_302913.json" -chainID 5
```

# Proof Generation Input Glossary
Expand Down
Binary file modified data/.DS_Store
Binary file not shown.
10 changes: 8 additions & 2 deletions generate_withdrawal_fields_proof.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,16 +99,22 @@ func GenerateWithdrawalFieldsProof(
if err != nil {
log.Debug().AnErr("GenerateWithdrawalFieldsProof: error with ProveWithdrawal", err)
}
stateRootProof, err := ProveStateRootAgainstBlockHeader(&oracleBeaconBlockHeader)
stateRootProofAgainstBlockHeader, err := ProveStateRootAgainstBlockHeader(&oracleBeaconBlockHeader)
if err != nil {
log.Debug().AnErr("GenerateWithdrawalFieldsProof: error with ProveStateRootAgainstBlockHeader", err)
}
slotProofAgainstBlockHeader, err := ProveSlotAgainstBlockHeader(&oracleBeaconBlockHeader)
if err != nil {
log.Debug().AnErr("GenerateWithdrawalFieldsProof: error with ProveSlotAgainstBlockHeader", err)
}

validatorProof, err := epp.ProveValidatorAgainstBeaconState(&state, oracleBeaconStateTopLevelRoots, uint64(validatorIndex))
if err != nil {
log.Debug().AnErr("GenerateWithdrawalFieldsProof: error with ProveValidatorAgainstBeaconState", err)
}
proofs := WithdrawalProofs{
StateRootAgainstLatestBlockHeaderProof: ConvertBytesToStrings(stateRootProof),
StateRootAgainstLatestBlockHeaderProof: ConvertBytesToStrings(stateRootProofAgainstBlockHeader),
SlotAgainstLatestBlockHeaderProof: ConvertBytesToStrings(slotProofAgainstBlockHeader),
BeaconStateRoot: "0x" + hex.EncodeToString(beaconStateRoot[:]),
WithdrawalProof: ConvertBytesToStrings(withdrawalProof.WithdrawalProof),
SlotProof: ConvertBytesToStrings(withdrawalProof.SlotProof),
Expand Down
File renamed without changes.
Binary file added proofGenCli/proofGenCLI
Binary file not shown.
161 changes: 161 additions & 0 deletions proofGenCli/withdrawal_proof_302913.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add binaries to gitignore

"StateRootAgainstLatestBlockHeaderProof": [
"0x5e83fd9f12a10bd0aa14d9300f245cdc5ffaabec780453c1638eaf6177dd64f1",
"0x336f092b490e7794f3f013536c0fb0b40195fff09689811c1a0887b3bfbc10ae",
"0xde1c709ab0e3d3fb72c4e5805bb81fae2b2d55c5da32ed1c0b995e7b5793b930"
],
"SlotAgainstLatestBlockHeaderProof": [
"0x0f2e070000000000000000000000000000000000000000000000000000000000",
"0x1002c447a7359ec77b5cf85c928a6bdb0f08131e5a0593a621e8d818c940e3cc",
"0xde1c709ab0e3d3fb72c4e5805bb81fae2b2d55c5da32ed1c0b995e7b5793b930"
],
"beaconStateRoot": "0x9150ef194c1028ae7b938602b896a5c3649f8bb37943a0d742f0e675e1af71cf",
"WithdrawalProof": [
"0xa3d843f57c18ee3dac0eb263e446fe5d0110059137807d3cae4a2e60ccca013f",
"0x87441da495942a4af734cbca4dbcf0b96b2d83137ce595c9f29495aae6a8d99e",
"0xae0dc609ecbfb26abc191227a76efb332aaea29725253756f2cad136ef5837a6",
"0x765bcd075991ecad96203020d1576fdb9b45b41dad3b5adde11263ab9f6f56b8",
"0x1000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x9d9b56c23faa6a8abf0a49105eb12bbdfdf198a9c6c616b8f24f6e91ad79de92",
"0xac5e32ea973e990d191039e91c7d9fd9830599b8208675f159c3df128228e729",
"0x38914949a92dc9e402aee96301b080f769f06d752a32acecaa0458cba66cf471"
],
"SlotProof": [
"0x89c5010000000000000000000000000000000000000000000000000000000000",
"0xab4a015ca78ff722e478d047b19650dc6fc92a4270c6cd34401523d3d6a1d9f2",
"0xb25904ef9045e860747d260b8d0d8aea5b082430a72209fc43757c68b23d541a"
],
"ExecutionPayloadProof": [
"0xb6a435ffd17014d1dad214ba466aaa7fba5aa247945d2c29fd53e90d554f4474",
"0x336488033fe5f3ef4ccc12af07b9370b92e553e35ecb4a337a1b1c0e4afe1e0e",
"0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71",
"0x5ec9aaf0a3571602f4704d4471b9af564caf17e4d22a7c31017293cb95949053",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b",
"0xc1f7cb289e44e9f711d7d7c05b67b84b8c6dd0394b688922a490cfd3fe216db1"
],
"TimestampProof": [
"0x28a2c80000000000000000000000000000000000000000000000000000000000",
"0xa749df3368741198702798435eea361b1b1946aa9456587a2be377c8472ea2df",
"0x4d8ad7ffe6efda168a4d2a908228a88e5c03553d422e6e65e350b6fc4beea417",
"0x38914949a92dc9e402aee96301b080f769f06d752a32acecaa0458cba66cf471"
],
"HistoricalSummaryProof": [
"0x050b5923fe2e470849a7d467e4cbed4803d3a46d516b84552567976960ff4ccc",
"0x6ab9b5fc357c793cc5339398016c28ea21f0be4d56a68b554a29766dd312eeeb",
"0xb8c4c9f1dec537f4c4652e6bf519bac768e85b2590b7683e392aab698b50d529",
"0x1cae4e7facb6883024359eb1e9212d36e68a106a7733dc1c099017a74e5f465a",
"0x616439c1379e10fc6ad2fa192a2e49c2d5a7155fdde95911f37fcfb75952fcb2",
"0x301ab0d5d5ada4bd2e859658fc31743b5a502b26bc9b8b162e5a161e21218048",
"0x9d2bc97fffd61659313009e67a4c729a10274f2af26914a53bc7af6717da211e",
"0x4bdcbe543f9ef7348855aac43d6b6286f9c0c7be53de8a1300bea1ba5ba0758e",
"0xb6631640d626ea9523ae619a42633072614326cc9220462dffdeb63e804ef05f",
"0xf19a76e33ca189a8682ece523c2afda138db575955b7af31a427c9b8adb41e15",
"0x221b43ad87d7410624842cad296fc48360b5bf4e835f6ff610db736774d2f2d3",
"0x297c51f4ff236db943bebeb35538e207c8de6330d26aa8138a9ca206f42154bf",
"0x129a0644f33b9ee4e9a36a11dd59d1dedc64012fbb7a79263d07f82d647ffba8",
"0x763794c2042b9c8381ac7c4d7f4d38b0abb38069b2810b522f87951f25d9d2be",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0xee0639a2ada97368e8b3493f9d2141e16c3cd9fe54e13691bb7a2c376c56c7c8",
"0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71",
"0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c",
"0xba2bc704559c23541f0c9efa0b522454e8cd06cd504d0e45724709cf5672640f",
"0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30",
"0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1",
"0xff857f4c17c9fb2e544e496685ebd8e2258c761e4636cfb031ba73a4430061c7",
"0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193",
"0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1",
"0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b",
"0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220",
"0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f",
"0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e",
"0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784",
"0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb",
"0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb",
"0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab",
"0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4",
"0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f",
"0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa",
"0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c",
"0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167",
"0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7",
"0x9300000000000000000000000000000000000000000000000000000000000000",
"0xd9ed050000000000000000000000000000000000000000000000000000000000",
"0xd824a89a9d5dd329a069b394ddc6618c70ed784982061959ac77d58d48e9d7c8",
"0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71",
"0x8dc0b81ebe27fb91663a74713252d2eae5deb3b983374afc3c2d2f6b254128f1",
"0xe237bc62b6b5269da5f4093c292d0f3bf2cf4d2eb93b4f366dba675c4df9cc62"
],
"blockHeaderRootIndex": 8092,
"historicalSummaryIndex": 146,
"withdrawalIndex": 0,
"blockHeaderRoot": "0x602079191479eb9a5dce271b11aa16c5035795f44e3deb4bb02bc6f7f4fd15a6",
"slotRoot": "0x9c9f610000000000000000000000000000000000000000000000000000000000",
"timestampRoot": "0xb06fed6400000000000000000000000000000000000000000000000000000000",
"executionPayloadRoot": "0x7a882c601a1e6bb6d76fbff30cd46ec84bf7eccced88e085f1c5a291fd9c5c00",
"ValidatorProof": [
"0xa551043de43704c1ec4ea19cf0f78b0fd0435f8ed4b9239a4ecf45146c992055",
"0x7d00fbb77892999b9a3c9a59aae241405c7d28985ec1cf3bc4141371fde86236",
"0x578200ee4a0b0203db67a6d85bb6e826e2dda09c0e558099743800b805ee9d83",
"0xad3f688069225989095e1d4ba532d85f18812c26678f4ecd6ef9481f976ab112",
"0xee691172855dcfdaf3ac4fde83e16c81a8dc4bf1a936088245efce61ea62e7a1",
"0x6a421ff9e5121f54b9eab04758cfd01942079a7c6959b1c5fdad7972d8133ffd",
"0x8a631b87145c9ac69adc27a08b11e237c07458e889e183528e3852fc94b9ec4f",
"0xacab6be49023dadb3a2ab84c1b20e2abbaf92788091768178236a5fe5afe39d0",
"0x0759f08bd9d31971ada5f94a21e5a616871f10865893b0e4172e01178fb903db",
"0x87d65be424fb1debe7a20b26ef5f968d7961a1adaecb258540440d7cee3d4cdc",
"0x30e8565ca8cc1c1465b8a3342a79c4ea16e12ff46734bf5c6aeb2e4517e0f50b",
"0xd84dedf5932c76cca76fc185bb20af4ea0917fb45f79107c3444392eb1de949e",
"0x3c1735187981807ec62005c128ddbf1793c1a4d78c39e191249332452ebb9e14",
"0x5bd5dfe5ed45182bf45a7af5a4b088ed4408ec3018b2a5ca1f4cebbdead3164a",
"0x4eff245fad29ee570349a5001e3e62c7cb7e0fe0f49172e3bfa5b7b6c5c03b5e",
"0xe039e904678355d2de44d93ee3537061634425e41d243520d36129792852215d",
"0x7319b9f76b971853f0e6e2fe0cc559edb31c1370642be78f1d25a6c2bfb92103",
"0x036fd6439ae6e618ef00290144d95d21d71b9d6118bc72eb0af4e5d5a025941a",
"0xcce600acb536bbaf3ee8c74f9a573717eedb2756b9bf92983455b536084a6057",
"0x3d3aabf6c36de4242fef4b6e49441c24451ccf0e8e184a33bece69d3e3d40ac3",
"0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa",
"0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c",
"0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167",
"0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7",
"0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0",
"0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544",
"0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765",
"0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4",
"0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1",
"0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636",
"0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c",
"0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7",
"0xc6f67e02e6e4e1bdefb994c6098953f34636ba2b6ca20a4721d2b26a886722ff",
"0x1c9a7e5ff1cf48b4ad1582d3f4e4a1004f3b20d8c5a2b71387a4254ad933ebc5",
"0x2f075ae229646b6f6aed19a5e372cf295081401eb893ff599b3f9acc0c0d3e7d",
"0x328921deb59612076801e8cd61592107b5c67c79b846595cc6320c395b46362c",
"0xbfb909fdb236ad2411b4e4883810a074b840464689986c3f8a8091827e17c327",
"0x55d8fb3687ba3ba49f342c77f5a1f89bec83d811446e1a467139213d640b6a74",
"0xf7210d4f8e7e1039790e7bf4efa207555a10a6db1dd4b95da313aaa88b88fe76",
"0xad21b516cbc645ffe34ab5de1c8aef8cd4e7f8d2b51e8e1456adc7563cda206f",
"0x846b080000000000000000000000000000000000000000000000000000000000",
"0x5a6c050000000000000000000000000000000000000000000000000000000000",
"0x47314ebc95c63f3fd909af6442ed250d823b2ee8a6e48d8167d4dfdab96c8b5e",
"0xce3d1b002aa817e3718132b7ffe6cea677f81b1b3b690b8052732d8e1a70d06b",
"0x4715bf9a259680cd06827b30bddb27ad445506e9edeb72a3eab904d94dea816b",
"0x5ba049ff558dd0ff1eadf2cef346aac41b7059433f21925b345f1024af18057d"
],
"ValidatorFields": [
"0xf5636344319e7ca95ab4767480405cddbbbb7fcf437c5504fe336ae7995ce1fc",
"0x01000000000000000000000059b0d71688da01057c08e4c1baa8faa629819c2a",
"0x0040597307000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0xffffffffffffffff000000000000000000000000000000000000000000000000",
"0xffffffffffffffff000000000000000000000000000000000000000000000000"
],
"WithdrawalFields": [
"0x45cee50000000000000000000000000000000000000000000000000000000000",
"0x300e030000000000000000000000000000000000000000000000000000000000",
"0x59b0d71688da01057c08e4c1baa8faa629819c2a000000000000000000000000",
"0xbd56200000000000000000000000000000000000000000000000000000000000"
]
}
1 change: 1 addition & 0 deletions proof_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (

type WithdrawalProofs struct {
StateRootAgainstLatestBlockHeaderProof []string `json:"StateRootAgainstLatestBlockHeaderProof"`
SlotAgainstLatestBlockHeaderProof []string `json:"SlotAgainstLatestBlockHeaderProof"`
BeaconStateRoot string `json:"beaconStateRoot"`
WithdrawalProof []string `json:"WithdrawalProof"`
SlotProof []string `json:"SlotProof"`
Expand Down
31 changes: 4 additions & 27 deletions proofs.go
Original file line number Diff line number Diff line change
Expand Up @@ -462,33 +462,10 @@ func ProveExecutionPayloadAgainstBlockBody(beaconBlockBody *capella.BeaconBlockB
// refer to this: https://github.com/attestantio/go-eth2-client/blob/654ac05b4c534d96562329f988655e49e5743ff5/spec/phase0/beaconblockheader_encoding.go
func ProveStateRootAgainstBlockHeader(b *phase0.BeaconBlockHeader) (Proof, error) {

beaconBlockHeaderContainerRoots := make([]phase0.Root, 5)
hh := ssz.NewHasher()

// Field (0) 'Slot'
hh.PutUint64(uint64(b.Slot))
copy(beaconBlockHeaderContainerRoots[0][:], hh.Hash())
hh.Reset()

// Field (1) 'ProposerIndex'
hh.PutUint64(uint64(b.ProposerIndex))
copy(beaconBlockHeaderContainerRoots[1][:], hh.Hash())
hh.Reset()

// Field (2) 'ParentRoot'
hh.PutBytes(b.ParentRoot[:])
copy(beaconBlockHeaderContainerRoots[2][:], hh.Hash())
hh.Reset()

// Field (3) 'StateRoot'
hh.PutBytes(b.StateRoot[:])
copy(beaconBlockHeaderContainerRoots[3][:], hh.Hash())
hh.Reset()

// Field (4) 'BodyRoot'
hh.PutBytes(b.BodyRoot[:])
copy(beaconBlockHeaderContainerRoots[4][:], hh.Hash())
hh.Reset()
beaconBlockHeaderContainerRoots, err := GetBlockHeaderFieldRoots(b)
if err != nil {
return nil, err
}

return GetProof(beaconBlockHeaderContainerRoots, stateRootIndex, blockHeaderMerkleSubtreeNumLayers)
}
Expand Down
10 changes: 10 additions & 0 deletions prove_withdrawal.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ type WithdrawalProof struct {
type StateRootProof struct {
BeaconStateRoot phase0.Root `json:"beaconStateRoot"`
StateRootProof Proof `json:"stateRootProof"`
Slot phase0.Slot `json:"slot"`
SlotRootProof Proof `json:"slotRootProof"` //Note: this slot root is oracle block root being used to prove partial withdrawals is after the specified range of blocks requested by the user
}

const FIRST_CAPELLA_SLOT_GOERLI = uint64(5193728)
Expand Down Expand Up @@ -101,6 +103,14 @@ func (epp *EigenPodProofs) ProveWithdrawals(
return nil, err
}

// Note: this slot and slot root proof are used for partial withdrawal proofs to ensure that the oracle root slot is after the specified range of blocks requested by the user
verifyAndProcessWithdrawalCallParams.StateRootProof.Slot = oracleBlockHeader.Slot

verifyAndProcessWithdrawalCallParams.StateRootProof.SlotRootProof, err = ProveSlotAgainstBlockHeader(oracleBlockHeader)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need this now? why wasn't it here before?

if err != nil {
return nil, err
}

verifyAndProcessWithdrawalCallParams.OracleTimestamp = GetSlotTimestamp(oracleBeaconState, oracleBlockHeader)

verifyAndProcessWithdrawalCallParams.WithdrawalProofs = make([]*WithdrawalProof, len(withdrawalBlocks))
Expand Down
Loading