Skip to content

Commit

Permalink
added deneb and capella support
Browse files Browse the repository at this point in the history
  • Loading branch information
Sidu28 committed Jan 23, 2024
1 parent 72f38e1 commit b2d2bc4
Show file tree
Hide file tree
Showing 8 changed files with 1,140 additions and 19 deletions.
2 changes: 2 additions & 0 deletions beacon_constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ const blockBodyMerkleSubtreeNumLayers = uint64(4)
// Number of layers for the merkelization of the Execution Payload
const executionPayloadMerkleSubtreeNumLayers = uint64(5)

const executionPayloadMerkleSubtreeNumLayersCapella = uint64(4)

// Number of layers for the merkleixation of the Validator List in the Beacon State
const validatorListMerkleSubtreeNumLayers = uint64(40)

Expand Down
26 changes: 26 additions & 0 deletions eigen_pod_proofs.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"strconv"
"time"

"github.com/attestantio/go-eth2-client/spec/capella"
"github.com/attestantio/go-eth2-client/spec/deneb"
"github.com/attestantio/go-eth2-client/spec/phase0"
"github.com/hashicorp/golang-lru/v2/expirable"
Expand Down Expand Up @@ -85,6 +86,31 @@ func (epp *EigenPodProofs) ComputeBeaconStateTopLevelRoots(beaconState *deneb.Be
return beaconStateTopLevelRoots, nil
}

func (epp *EigenPodProofs) ComputeBeaconStateTopLevelRootsCapella(beaconState *capella.BeaconState) (*BeaconStateTopLevelRoots, error) {
// check if the beacon state top level roots are cached
beaconStateTopLevelRootsSlice, found := epp.oracleStateCache.Get(key(BEACON_STATE_TOP_LEVEL_ROOTS_PREFIX, uint64(beaconState.Slot)))
// if the beacon state top level roots are cached, return them
if found {
beaconStatbeaconStateTopLevelRoots := &BeaconStateTopLevelRoots{}
err := json.Unmarshal(beaconStateTopLevelRootsSlice, beaconStatbeaconStateTopLevelRoots)
return beaconStatbeaconStateTopLevelRoots, err
}

// compute the beacon state top level roots
beaconStateTopLevelRoots, err := ComputeBeaconStateTopLevelRootsCapella(beaconState)
if err != nil {
return nil, err
}

// cache the beacon state top level roots
beaconStateTopLevelRootsSlice, err = json.Marshal(beaconStateTopLevelRoots)
if err != nil {
return nil, err
}
_ = epp.oracleStateCache.Add(key(BEACON_STATE_TOP_LEVEL_ROOTS_PREFIX, uint64(beaconState.Slot)), beaconStateTopLevelRootsSlice)
return beaconStateTopLevelRoots, nil
}

func (epp *EigenPodProofs) ComputeValidatorTree(slot uint64, validators []*phase0.Validator) ([][]phase0.Root, error) {
// check if the validator tree leaves are cached
validatorTreeSlice, found := epp.oracleStateCache.Get(key(VALIDATOR_TREE_PREFIX, slot))
Expand Down
1 change: 1 addition & 0 deletions fullWithdrawalProof_CapellaAgainstDeneb.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"slot":6397852,"validatorIndex":302913,"historicalSummaryIndex":146,"withdrawalIndex":0,"blockHeaderRootIndex":8092,"beaconStateRoot":"0x426cc7e4b6a9be3a44e671c99eb62f27dd956d5db33aa8f05d07c3e8b05cb38f","slotRoot":"0x9c9f610000000000000000000000000000000000000000000000000000000000","timestampRoot":"0xb06fed6400000000000000000000000000000000000000000000000000000000","blockHeaderRoot":"0x8b036996f94e940c80c5c692fd0e25467a5d55f1cf92b7808f92090fc7be1d17","blockBodyRoot":"0x542df356d51eb305cff8282abe6909504b8c6d7bd4598b43aa7d54be13e44e9c","executionPayloadRoot":"0xe628472355543b53917635e60c1f924f111f7a3cd58f2d947e8631b9d9924cb1","latestBlockHeaderRoot":"0xb00368eaa2de6ca1e83d610be190a397668215a337837e1ad23241373d1c2dd0","SlotProof":["0x89c5010000000000000000000000000000000000000000000000000000000000","0xab4a015ca78ff722e478d047b19650dc6fc92a4270c6cd34401523d3d6a1d9f2","0xf4e65df697eb85f3ab176ac93b6ad4d96bd6b04bdddcc4f6c98f0fa94effc553"],"WithdrawalProof":["0xa3d843f57c18ee3dac0eb263e446fe5d0110059137807d3cae4a2e60ccca013f","0x87441da495942a4af734cbca4dbcf0b96b2d83137ce595c9f29495aae6a8d99e","0xae0dc609ecbfb26abc191227a76efb332aaea29725253756f2cad136ef5837a6","0x765bcd075991ecad96203020d1576fdb9b45b41dad3b5adde11263ab9f6f56b8","0x1000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x9d9b56c23faa6a8abf0a49105eb12bbdfdf198a9c6c616b8f24f6e91ad79de92","0xac5e32ea973e990d191039e91c7d9fd9830599b8208675f159c3df128228e729","0x38914949a92dc9e402aee96301b080f769f06d752a32acecaa0458cba66cf471"],"ValidatorProof":["0x9e06c3582190fe488eac3f9f6c95622742f9afe3e038b39d2ca97ba6d5d0de4e","0x3eb11a14af12d8558cc14493938ffa0a1c6155349699c2b9245e76344d9922ee","0x81c959aeae7524f4f1d2d3d930ba504cbe86330619a221c9e2d9fb315e32a4d1","0x9b9adf5d31a74f30ae86ce7f7a8bfe89d2bdf2bd799d0c6896174b4f15878bf1","0xdfe7aa4a49359b80e66fbdc8cbbf5d2014868aaf8dee25848f1b6494cb56231f","0xeec50554b6994496920a265643520c78ff05beec8015c6432f72b0cac5af510c","0x949da2d82acf86e064a7022c5d5e69528ad6d3dd5b9cdf7fb9b736f0d925fc38","0x9c797e45839da75fea2190bf7a2735e68d8e4bd3cdbc82498491debb3acce128","0x2c693b02fbff3f4f659bfb8414a9ba27bbfdc1baf65317f05a84a85552628bd6","0x6f853a43c11ab3ac27f5ea8dd9e6dc825216114dee8e5db2306b97723048daaa","0x620fe1c260fcea9fb7ca0b7cd64f88aa906c88a8efc136317d88483f8a99d5ae","0xccfc09edfaa6bb8f9a1db781f1104b3aeb2a45799c898df57f3610b9ffc255de","0x8c5a00d96b9eb727a5a4aec2fd6b9771cb0c5be3a8b5588aff54b2ee36792af2","0x48fc48699053f4bd8f986f4216e2728f11e0d53ebeaf13bc9d287d2e099e7196","0xac88ce300b12047d9131a651417b624f206b742080c28c347873a7706897b379","0xe373b48074ce47d30b57509e85e905e42e8dbc869bb7c436553326a7a65e22ec","0x358c6950cfb1fb035e1e2506bddf5a1dc1f87d699a464a7eb05b87ce699942ce","0x040e77e06c4d45802b2093e445e56a1ed5d5afbd1c3393806b006b7f40a17148","0xcfb3f924f2e8810a349041676060bbf55113cbc00270f778723dbac055c8ba2b","0xa4b4bda96e8ae5a441b128b339ed3776f6105d24fcaa288cad2a3153e430a9ea","0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa","0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c","0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167","0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7","0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0","0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544","0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765","0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4","0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1","0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636","0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c","0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7","0xc6f67e02e6e4e1bdefb994c6098953f34636ba2b6ca20a4721d2b26a886722ff","0x1c9a7e5ff1cf48b4ad1582d3f4e4a1004f3b20d8c5a2b71387a4254ad933ebc5","0x2f075ae229646b6f6aed19a5e372cf295081401eb893ff599b3f9acc0c0d3e7d","0x328921deb59612076801e8cd61592107b5c67c79b846595cc6320c395b46362c","0xbfb909fdb236ad2411b4e4883810a074b840464689986c3f8a8091827e17c327","0x55d8fb3687ba3ba49f342c77f5a1f89bec83d811446e1a467139213d640b6a74","0xf7210d4f8e7e1039790e7bf4efa207555a10a6db1dd4b95da313aaa88b88fe76","0xad21b516cbc645ffe34ab5de1c8aef8cd4e7f8d2b51e8e1456adc7563cda206f","0x0b430a0000000000000000000000000000000000000000000000000000000000","0x3b4f070000000000000000000000000000000000000000000000000000000000","0x7e71eb9ab70a9ac86179e04cc156a3a6efd5d49e864b1def60d045fe88ae53db","0x042f04ac64635d44bd43c48c5504689a119901947ed7cfca6ce6f7171d29b696","0x560c8c92a1425b1c928f582f64de643e17290760d4ecb242afb53b62d51ea918","0xf426ceebf070d088972f46060f72b9fa35ebb90e8d18af341b698d359ab8366f"],"TimestampProof":["0x28a2c80000000000000000000000000000000000000000000000000000000000","0xa749df3368741198702798435eea361b1b1946aa9456587a2be377c8472ea2df","0xb1c03097a5a24f46cdb684df37e3ac0536a76428be1a6c6d6450378701ab1f3d","0x38914949a92dc9e402aee96301b080f769f06d752a32acecaa0458cba66cf471"],"ExecutionPayloadProof":["0xb6a435ffd17014d1dad214ba466aaa7fba5aa247945d2c29fd53e90d554f4474","0x336488033fe5f3ef4ccc12af07b9370b92e553e35ecb4a337a1b1c0e4afe1e0e","0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71","0x5ec9aaf0a3571602f4704d4471b9af564caf17e4d22a7c31017293cb95949053","0x0000000000000000000000000000000000000000000000000000000000000000","0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b","0xc1f7cb289e44e9f711d7d7c05b67b84b8c6dd0394b688922a490cfd3fe216db1"],"ValidatorFields":["0xe36689b7b39ee895a754ba878afac2aa5d83349143a8b23d371823dd9ed3435d","0x0100000000000000000000008e35f095545c56b07c942a4f3b055ef1ec4cb148","0x0040597307000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0xea65010000000000000000000000000000000000000000000000000000000000","0xf265010000000000000000000000000000000000000000000000000000000000","0xffffffffffffffff000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"WithdrawalFields":["0x45cee50000000000000000000000000000000000000000000000000000000000","0x419f040000000000000000000000000000000000000000000000000000000000","0x59b0d71688da01057c08e4c1baa8faa629819c2a000000000000000000000000","0xe5015b7307000000000000000000000000000000000000000000000000000000"],"StateRootAgainstLatestBlockHeaderProof":["0xc055061b6674f3bac542b141b441b476130d17dacc3e61d6ce01a6b8528f7de7","0xfd8af94401badce5dd4588a22c605e197a51b17e696f761aed06819a98645f03","0xdeb9a60cdd0908457ff962da3895ffcf1a1e479b633e3427ac9b1166e006c8f7"],"HistoricalSummaryProof":["0x96d85b451bb1df5314fd3fd3fa4caa3285796905bc8bba6eee5e3e1539cf2695","0x354f5aaff1cde08c6b8a7ef8610abf62a0b50339d0dd26b0152699ebc2bdf785","0xb8c4c9f1dec537f4c4652e6bf519bac768e85b2590b7683e392aab698b50d529","0x1cae4e7facb6883024359eb1e9212d36e68a106a7733dc1c099017a74e5f465a","0x616439c1379e10fc6ad2fa192a2e49c2d5a7155fdde95911f37fcfb75952fcb2","0x9d95eefbaff153d6ad9050327e21a254750d80ff89315ab4056574275ce2a751","0x20cdc9ec1006e8bc27ab3e0a9c88a8e14c8a9da2470f8eaf673ee67abcfd0342","0x4bdcbe543f9ef7348855aac43d6b6286f9c0c7be53de8a1300bea1ba5ba0758e","0xb6631640d626ea9523ae619a42633072614326cc9220462dffdeb63e804ef05f","0xf19a76e33ca189a8682ece523c2afda138db575955b7af31a427c9b8adb41e15","0x221b43ad87d7410624842cad296fc48360b5bf4e835f6ff610db736774d2f2d3","0x297c51f4ff236db943bebeb35538e207c8de6330d26aa8138a9ca206f42154bf","0x129a0644f33b9ee4e9a36a11dd59d1dedc64012fbb7a79263d07f82d647ffba8","0x763794c2042b9c8381ac7c4d7f4d38b0abb38069b2810b522f87951f25d9d2be","0x4ee09be5d00612fc8807752842f0839656107b50699330ecf09825466576a8e5","0xee0639a2ada97368e8b3493f9d2141e16c3cd9fe54e13691bb7a2c376c56c7c8","0xc9394eeb778485920ae0bc45a6f0e5f1b43f3aeadc24b24e7a655582aa87aede","0xfc3f3efb849bf652aa632502c004af0f78dfe1a75902f33bbce3ca3d1cc3bfea","0xba2bc704559c23541f0c9efa0b522454e8cd06cd504d0e45724709cf5672640f","0x4644f74cc7fedf973ef015906df9ba97729b04395a70ff170bee8c40ffed8f0f","0xb5202e0c2d48a246c5b45e30d3bf0a89f3d3ea5e4591db5ec39efc1ed1e0a2a2","0xff857f4c17c9fb2e544e496685ebd8e2258c761e4636cfb031ba73a4430061c7","0x72cf6a5869e83ea39846cc892946c8a5e6bf3191df19ae922664504e4cf38c6b","0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1","0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b","0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220","0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f","0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e","0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784","0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb","0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb","0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab","0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4","0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f","0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa","0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c","0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167","0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7","0x1101000000000000000000000000000000000000000000000000000000000000","0xcbe0080000000000000000000000000000000000000000000000000000000000","0x8ff2572846d80ce4be83e1638164331c30cd7eadb3488f00ba2507c072929e3a","0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71","0xa6c60794743172c4a55a9fcee4a7832e5ef7b31aac1b9489b5baa1db78df5c60","0x1c8017e95f68e52210618f3802699b49a2a13a40257e97b74ee864824a73a280"]}
Loading

0 comments on commit b2d2bc4

Please sign in to comment.