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

zkevm_getProof #1014

Merged
merged 5 commits into from
Aug 29, 2024
Merged

zkevm_getProof #1014

merged 5 commits into from
Aug 29, 2024

Conversation

cffls
Copy link

@cffls cffls commented Aug 22, 2024

Background

We need a RPC endpoint similar to eth_getProof. See motivation here.

Overall design

The output format of SMT (sparse merkle tree) proof will be slightly different from MPT proof. There are three major differences:

  • SMT proof won't contain the storage root hash for a contract. The reason is that, unlike standard EVM, whose storage trie is stored separately in each contract, zkevm use one single SMT trie that stores both account data and storage slots.
  • Unlike standard EVM, an account's information is stored in different leaf node in zkevm SMT. Therefore, there will be proof of balance, nonce, code hash, and code length for each account.
  • SMT trie nodes are not RLP-encoded for simplicity. Since SMT is essentially a binary tree, there isn't much benefit of encoding trie nodes with RLP. See encoding details in the spec below.

https://hackmd.io/mZJIAVWXS9GtARxaIBNsbA

Sample output

Query for account 0x7bd831cae4406bfff37cdb73e9664e8b73969730 in Cardona testnet.

curl 127.0.0.1:8545 \
-X POST \
-H "Content-Type: application/json" \
-d '{"id": 1,"jsonrpc": "2.0","method": "zkevm_getProof","params": ["0x7bd831cae4406bfff37cdb73e9664e8b73969730",["0x0000000000000000000000000000000000000000000000000000000000000014"],"latest"]}' | jq

Output

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "address": "0x7bd831cae4406bfff37cdb73e9664e8b73969730",
    "balance": "0x0",
    "codeHash": "0xce9fc3a1fc33f1f279903b75648162fdd930a6d90be9252c84c085fb24a53d44",
    "codeLength": "0x5e07",
    "nonce": "0x33",
    "balanceProof": [
      "0xd27a2a67d42a7a50302f3e50f3d3620a16fd317450cb542d70b5af20817347931160b3cffad04d7b210a73cd72bdbd4a0ad83306cf2d47323f3bde30b50c2b5d",
      "0xa5d1f7ab79b7d3b6539af6840718d2e909d662fea311ad1dbeaeaa499ee1c737198d80a877f10ffc148eea411747c691ff7c07ee43b27d194f45522efe44c18e",
      "0x553994ac78c6c4172fe18c60cfd4778e2e2e21210fa5c389d656f98d1f59b56f457a14217cdf88b4780e745f266701cf4366e43efb6f35aa1ed3ab6241b06122",
      "0xea09c39d5aeb85404a028a756f9c763cf799a9af3c700b8dd0466614f751061638848c8e6a9f2f3635e4b0d174a9e1fcbb14ac12988094be215c054e77ade5fe",
      "0x4956eaace6d95d70240c064b079819263711f34a69a86e7525f9bbddfbebf88ebd10f99f5de6fbdf6d52f20d566bc0b4b527a95dd317b5f92c83d10a440054f1",
      "0x295119d33380ed79add04c22977fdd95a1868b804d659ec2e4bbeb022f6739005c559ea9e532555abcd03a51ff4b9e6d86e2ff5620c061bee7cf6b559437398b",
      "0x10c6d298a67382474499b66bbc2f2c623e4466acd46ebe0c261990be689742d20f39c192e3674a8ee51c106280cadfc0ee82179823b2e77914dbc1bf53d2a014",
      "0x260032b0ad67980cb1d3e2f4e2a088941d4d1a7a8ecbed7377eeec9b1350e2d955396b59513449aa6bf30b4129594cd2bbcfa49c9fa1486753d23d8458ab38dd",
      "0x299bfb7e1507072da7c24b1b8d005933950512113bae6eba774a97699b2a7595b32e9a18c990735f2e0ab262dd49af9b0b21084e9b673cfb2bed6d02664fa0fe",
      "0xe2ab7b38814720ec0e13c6f9a2c273193dcff67dde717c26bd7cee12ff470fc32aa23116005a8bc7bb90eb56d87178e19f65eeeb99358cbe97ed74b7137dc27e",
      "0xf11b6c83a07de81211e435947860d058d667870cce2159fd06eb884e4666eef98ec40a41d5e985b2b1e2008e263ba415ab3fa042985185892c0097b114d64bda",
      "0xff3c46a63a840d6eb1ab188e772e723d7753097866a37bc31e9b788a42389c08a63f0e5d89d922463d88a981e1577b725c1a740ba390d1734278d2a1f8c39d77",
      "0xa7f149874059cab9ad076aca4c10962889eec76637803cde818c5ac6e81f5212ba8d67b2b5ab4c1797d74b566b96dadbbfac2e0348d050c795d992935c818e0d",
      "0xc9dffe0ed5f2fca26846fdd8453b4327b3254b9240b9afd191c63f58a2b2916cfe9183098081b229eec7f0cee0a7a5fb541bbac8582eb9374ad3912aba2d9819",
      "0x93b9a6679fe8883608c67f64eb9bf9b3f1c7fb93a0e472cb1f31b4e8da9875914e21a78c009da1231939e052ef737f074db679b06e612470ad89d6034c07f513",
      "0x176d122693539ec2e4a15a8dfdb6a45c8aa7d95ea03b4de1e0d698b463d74d10d22cf40ace78c593773bbdbcfc8c68de19045caae1efb0dd7960260f105b1c84",
      "0xb9a4b51f1389263375052827ca1c2e1348346ba753392c869de1d89a185fcd812d4f2cee8835ec435ec690e26188cbb45679b7ffd2b52d98ced6d10ee3d3c488",
      "0x1ca633e94d2ec80de460997bb1d2d0baf835178bfe3bba85fc533dcc2d07ae500b58d34d6b45e5905cf1d6d6b17fb2ea2f0cd726134afaaac17ea090d2a50e5c",
      "0xf2174e39b2b8adbe05178fb35b734bfd65d16dde58b94aea247720f885e51483438576cf3be8f469351b43e8cd6fc8531f25d5c02fbaeedbc8ea6c766ac83c18",
      "0x1a32970d0394cb30bf7146145ff4ab205f3af2e306622645ce579f9aabbeb2df598bb54c1ddae0736df9609fd68d9391bf20fe317e13ab4925dfb9034407d7b1",
      "0xa07813c73e801694e6e4c55b1ee055734bf23f33aa5b0952187e3ff3e74bc2d92aef9b68948fbc1c5394196bd487bd4e9ee7cbe3e56da77da88ec44db410bc9b",
      "0x049d7bd21b3b0d080074679433b8d8b902b23c00d560a9ed036217ec6d77224e983d83533c0837253405059246590388d09e1e628089dca5b80941f59e9b08de01",
      "0x4a9fa160795846a44365b97b09b50ad7cd4eb0c70a9b094dc5ceced71050005f"
    ],
    "nonceProof": [
      "0xd27a2a67d42a7a50302f3e50f3d3620a16fd317450cb542d70b5af20817347931160b3cffad04d7b210a73cd72bdbd4a0ad83306cf2d47323f3bde30b50c2b5d",
      "0x09db48ae0faf00c389f27b4132e217519db0255b579ae7eef89c3c4a8be18b0cf21d874fc7a8690aea1e18c524e37e0373acd577f818fe637d7d9998bb95f826",
      "0x72ed6874d5440b9ae465fadadcf99a42cc0787abbff12c99b44618f3cdbb9572a8580836a9dcb8c3e3630f0888cf9248996dd61624367dd464ebc95967b3f9e7",
      "0xd05a595f99ac9587e18338f4d265ee904a73eb2a46acb62f65bb6d4d9d330d5f65b1a0daac9e51237a7b93a5cba7616c23412ce4ba67c56dacb744808497f3be",
      "0x62b4f02e642cc67dee1c7d6fe6e5d5323b52cd3c4952b155c51ec3c23b2353eb4bc8357edbe2cbac339618aff7739c198ecadd0dc092a194f07214e69a4a7e70",
      "0x26b3b22bc26e9ed457bb0588ddd2cce7d4d933f102e78c6be9c620a0cc50879a1d1ac74f25bc294b8362723425d1fa4e281e8fa33216141b967a9ae52a63ee9c",
      "0x880e17ed4477827464ada383ddab50fddbabccb55fc1571a048b132d939c55f5fc90c90a0f0d70c6e0e3cfb81a517d3bae5a545edf1295041b60b5b5217fa6a1",
      "0x7d6e6e1d9476a458406854c61f27e9678a6ecdf2e719adb71d1783911a5895cf2c8149c9e4337f722221750f15860b917382aff078ab6e2ae7d12722204a91a8",
      "0x0a27f5d15f1dc6bf343f7b956330f213fd4f6223e8d86bf6d8a2bd00422befd186be6d43acf02cb02c867d371bb3eabad0fccf08499521a2c94398673fb30652",
      "0xfef4f1d1af8a89d540ba768dbf3a6551beb96e12a3e32fdbb5feda7a2c13689240237b2b0cc039d609c19820e01bb0e53d10afc083298abf3aabc6f6c141c523",
      "0x884da65bdc5b0f9ce78904d591a4c0038990c3dfa941b6a7777030d84f7ef9aa66b773ba2b819bb997d3967cf94d40e5d836d28f9cba3254d9e22f6a4bab2dca",
      "0xa0a6c535bfdd55b300d5e674581c64a309002884eac2b09fc925b65d6a77fdd6d31e68b91e145e54f3cf70b4e6f20fb7608029fc1ee4b26418df78a7c4f4d43e",
      "0x75e8f566fd03cd1bbe5722341e5a26358f7bb779d5ac20621fe3e5b49d5678b0544ba821c2150be08c37587f5800e8a6ec64e2ee06ecd5b3a5867f5df4d20ff7",
      "0x19c0078da9117aae7375d801bdede521dc3f95db942d7de3610ca04f92a466c38b2c33e2d9ffba8261f1fa572b41ce5ceb0ed9cbfeb1252a4398aa7df8cbc6e9",
      "0x858dde31842928ed0acc4e01f44c404bcedfbcb4b4aa0f63433c317a9b9879bc7b6c84b4ae889e6e54e627195a71f9cfe61c7b26970de83092636916332005d8",
      "0xd3556acb9df4e35b11d1c998d60a19471e0bddc997ce0443decacb5d46d293f7aca28801bb113e5da2c9333557c89a28ceb9fdd68b72a40c7dd4cad5dde79bfc",
      "0x5600c0469a3b1ee1723860fc66e19903fff7cd30d41e3a73a24854e30e167e5f7ac8849abbf8de0ff671f8b56efd9f2e3ffae73b16aaebcd6dd6d99f11e05374",
      "0x37734500d5ea8d5436aa62884d50605627855a9faa67123d523f342c139288b5ac5f11897d48e6abb3e3e5d3ad69df4a17232e547e4a7121852c56a4d02ad101",
      "0xaf95f0cb0f066da8f1c34ae894087b4656a06c55b75f997ac91af853b129c5624f9b56fc0a8695c9d0afdcf400415f5c53e20588fa32dd17d784ae412ad62d7d",
      "0x1cb6320b394e0e9eb9f4f3d2b0ceff5b33aa0dbdb750abd4fc24a0df2f4e1cfd6046588bee3a701d4caad27889fa2f934dbac6087ec9abd6e2c4102ce1852aa4",
      "0x2fae45e25c18dcc840ae895d34f5855fa06595eb5fd84cd8a53f0f8ddd0f556c51845bdf27b8e989e184c85974a9614f025cd8c909f4c293df2f7257adb75182",
      "0x0000000000000000000000000000000000000000000000000000000000000000bd1c33d236aef81c0eb58eb3044e1b16d5771eb5c563ae6051e69a0c956672cd",
      "0xc37b5bf4a5b0e86dfbf5a5187a26966072ddc99da8d85ae9a1a935af22e62bb80000000000000000000000000000000000000000000000000000000000000000",
      "0x4850a693db05dba1d4f205a8ea57c2134f0ba83ac7919014ff648aed16751d700000000000000000000000000000000000000000000000000000000000000000",
      "0x00000000000000000000000000000000000000000000000000000000000000000499d42355fcf8918189c81d0deeb422cfe31839190df3e35b11d3f66a57ab50",
      "0xe4b368a9826d4683bb67485cbc531065b13c490bbc70451f85d604506eec19537933051d879d5427b0e23020f1a00efa52b6f89e225b57d8c19981bb9810884c",
      "0x00a305a32bd9b80e039672b52d094149010eceade9731552018af72c2fbde4c0503886f9aa5e93975aa14dac3eec3641dc4af1d09ee61f8ddce9c53203afcbdb01",
      "0x33"
    ],
    "codeHashProof": [
      "0xd27a2a67d42a7a50302f3e50f3d3620a16fd317450cb542d70b5af20817347931160b3cffad04d7b210a73cd72bdbd4a0ad83306cf2d47323f3bde30b50c2b5d",
      "0xa5d1f7ab79b7d3b6539af6840718d2e909d662fea311ad1dbeaeaa499ee1c737198d80a877f10ffc148eea411747c691ff7c07ee43b27d194f45522efe44c18e",
      "0x553994ac78c6c4172fe18c60cfd4778e2e2e21210fa5c389d656f98d1f59b56f457a14217cdf88b4780e745f266701cf4366e43efb6f35aa1ed3ab6241b06122",
      "0xfc8ffea1cc78868f68b1db6e23eb521a276ae624ff0bee05bf5d2ffd1ee34911648116974e52c7e6d6855d8abb0a7f7ea6fbeb18b1d26b45fd7cf134981e8d9f",
      "0xb4bc79b3da8bead26ac6479563c6bfd31c1a7aeb3cade2c76e88c05e138a879c110461b5c105bb86d93295a5b0d5d1f1c08f8c99d38d280f8e1fbd3b92f24342",
      "0x5b55aa27d383276296a8eb9a4c8d2f79825ab797d0c136cecf06186a02946875e7dca1a01b43246ce296e4fbda7a72b4b8aec65a6fbb25185ec9e8524281a53f",
      "0xaf0d28dc1385e0a01c2454bd0097d8bd67c2049d32353ab3666b57313858de25bd07a2fb6ed59a0d2b9ad3d4e10442e8ea5a4f0cb299112f967d40be40eea68a",
      "0x551c49fc6df0a7879c8e097770e1422856259c565e83efc25e33b14adab51faeec14b2ccd113735f3107ab2806082b8d888f9a842853de94a4e742f8d95922fe",
      "0x6fd27956c6f282aeaf0b541c9f3fe80f8a2c5d6beb5bd15f90ed9ae0b499ee599789b2cc2ee095fa39592a23f2cdb52afbd82bd0cb6a33af0416a069d6348696",
      "0x4052307b1caf6949954d5e161661ef11f617ff02bc4d3239329941553b20be98361cf679b95a8b1f825a6e5bd9b5db1eb9e3dd62ea9e071235278367a148757d",
      "0xce28b993935a98d641855a965fdbd60edd4cc408d193e53363256e861813e39c376fffde5f5ee1b898bf4ef00459a27edb13c2a6ff2cc9db3898854e4dacc805",
      "0x15b129a9a4d0430bd4ada3388044771416301324f284d8d92a09699d559dd040adabf5d03df53786a15233892747e0e1cafe111e16c9ff2c287a63fad8fda8c0",
      "0xa37f146d4870e1f90800a6989cb266ef141b345a7f5b5060bc559f75d06662d1bc2aa3a5c16225f158ceae613df3770fa6de5232962691f6d08c8775c189ff9b",
      "0xf8941828bc456b44c02727a4860e621db05481a14e972904a483fce031e545aeb1bdbbbd130de3101681c7164657ecf81d52a9c0f48a80af90ab592c0acd8e1b",
      "0x256310638b207240977dc1bd917aecab8864c3378c185b03cb674ae6b8fa23f999c89cb18afc7555d7eec1a74010730fae0360b40a34e214b591be6d208954b7",
      "0x356a124b88cafc7c0a8e942bf7e8444514ac387d4a894b633573e541ac9b392e2e8f71da355415dc35b975df68354acb1a715f1a0534cc8fb09c38fa69215f70",
      "0x4731e6c2c388138650bd8e51325195eb5e0d58028b89f4d80b0d44e56c28c5d7e52c31b25c3eaad980b6d02de25015948e0000bd457ceecf2cb63f75dbcb01bb",
      "0xb4f2e28bde45ab96fb09d3e3f1d1e4fc4ecefb0288bac7f49b42840a994c66a55bc70874124197a0fa258c21607182cbf48b978bb4f1af8e8165af30ee3b26c6",
      "0xd4e0f27356104a2b39718d501c31d405a7154d8ec390adc6ce9e65d32ec653f598c31570a6822214754bb2cb06b0b3dc060356cfd01d367fbb5045137ebf2bb2",
      "0x535dc79046a56d26e5b49706c2e991c03b2cd5378aa5f5f96435540178dbcc8f1bee8a5323d979b3add2fbdece85a299ea6e10225e4bd001aa78703a8e5b1eeb",
      "0x9b12771f14913d608be2e701112d6fdec707a1af4ae49e6a524721223d56cb2c89ef98d39df0cefdf2be92bbdd6f9f0016f492844996d9d52a9ce3df64a2c192",
      "0xa11ec89725bab0ca75286009235c2b35bc3eb686823a13477fc1c60aac8cc1293c30ad435aeec8703aad0ee979eb87a8fb7c4211577c4a9380a107506346df80",
      "0x38c54e822b906b28c786445aa6f21d8e1685a8b7c48ff21f09fe7c745cfe4e7207dbf4a62beb9b8775e7dac87eadd7f82f59a642cae858e792c997a5635fd170",
      "0x032d3a5a6776bcbb02136de4f3efe2df017ea0c57bf8974801e7bb25ca684db0d214b39a31dc33d74890f77b985d4a18a0b2d1c6c9b5afe2cadcf0b10184134101",
      "0xce9fc3a1fc33f1f279903b75648162fdd930a6d90be9252c84c085fb24a53d44"
    ],
    "codeLengthProof": [
      "0xd27a2a67d42a7a50302f3e50f3d3620a16fd317450cb542d70b5af20817347931160b3cffad04d7b210a73cd72bdbd4a0ad83306cf2d47323f3bde30b50c2b5d",
      "0xa5d1f7ab79b7d3b6539af6840718d2e909d662fea311ad1dbeaeaa499ee1c737198d80a877f10ffc148eea411747c691ff7c07ee43b27d194f45522efe44c18e",
      "0x910bf19d3021082f0c66941f09e9e07ab91e5f0c5ab6f434ba6d6c9f0e117673ebfbbda74e8b269fc4fbf8ad717462b2a29638eefc5867a74920a333a590f0a6",
      "0xf1a08a2c66255c8c4440c5586165aa4e28a3e9cc4a86cc1a59bf42d311b43762c4b2e485cc6ea5aa1aa88179cb3f720aee3b94883a7471ece7dbaef3069d3656",
      "0x8443cd520959d95f986fcab661e1c244c1063d5efe22c57c0cac8881ea565e9053a69880bd5c54d8dc0bd080b8819783b3ad341700e4213b2c006fe480df3592",
      "0x08efd3e23449939d511d835659f1228ce22ce0ddd9c8b840cc0fbf08020331b2d65406c3ac073c8a7662e6217bde86895c2176631b209cdd01ac1bfa68e9c18e",
      "0x0e9944232807c8bb3e8f8af673ddc810f2554ff75523e0dbe3336522a85e7890892db64f4606582d42a12d8aa8257a001e5d2228bac20c2af81f57703a787ba8",
      "0x0c228fb3081862da64dd22e338820369748615b8bdeb3a6191d935c6bbf30fb40bb1635feb572c670b7b9b3fce37a5d8849d11bda7ebb1c32573bcd8f79986c3",
      "0x6f42e15d4c2d6677447b7e72cacdb71943123183f5bc0e83eb42021d7a16b4ce1204d630183510e0a1d97d550c1cee95ec865883a69526b13d4d8e8070d031ba",
      "0xa7e2977dd515ddba97abc4a18dc9c5c9312774c2bc856a541be98b1ec5caae8e2e632d9d5918a09ec52cbbc02702368a646ea1699c3c7057ba97870f2e81ce02",
      "0x78d509d0ef34a89e056608df95f34a91b1e523b01e0d960fa515c77023b195f9c1df5050abcb883dfdcc66d664ec4bdb77bcf0ba101b414ec9b36151591e2265",
      "0x07388643d1ca234c52f535adf4baa5281376d61e8bd0c75fe4d609cd672741f9f05cc0a3f3442c4c0ab9c79eecfeca9fd13ca89ece7736cd1ce3d07f4892b0d5",
      "0xed47dedfa47c30cc200838ede3ebba4748215759cf607cac8e0ac564df1ce143d17f5896ea08d7b921fe09ec9a74ec77741cf807e2d9420189d0961d9594787f",
      "0xccf29441b3fcffe62e4934558810e18f890fd407a4b6f40cee6f613e4308e1684f2ecf3642822ac912c92b4e4f9a8e266282832a6e5d55028da1eeaadf27fe60",
      "0xc61712741a422cfe8fab8342d804f50cd37fdd3e09ccd60f3fe67d0041bb52da28fa4ec82496722c8206f75ea619131f737b0fa37a91aa447689ac1fbcef2287",
      "0x003d489d4f1e740fe833c420c0c7969727555665e7ed5b0abfbaf6c425e53e3786cbdf682a07aba2228f1edc0fd2ea9c4b3ba3c20f3f5591e0b391b2f7b3c538",
      "0x28858695fd7a04c96a69a8948ba8e659c5e786633a1a97d97dd289c57ea3004c9d1895caaa5a6c5456b1aebb7626929beecb35f1d92f1027781afe841f5f6edf",
      "0xa8a3c99ce48348ff81e26688f8e9349553e8b6d1aa838fbbbf363fb29153135b795284c8c38eca631a521d28685e87e12d5c6bd66a84d2ed22ba9d031ad34c0d",
      "0xbbb8e01744639be0ddf40615b1da3ee4e9b404e87a1dfbe343a7da3bd5a9fa80e99821f712e0ee13c66cbc8a2fd7a274401fb47dc87d0e8dde7373d90eb851ff",
      "0x0e9d8402c2aa6ae2000f4b82456e1edf7c269a6326a2ad3431d8e305d0bd6fcd143c02de5444c752c90c5ad6ca0ab1fd111bb843a792851ba45bf4b804953e08",
      "0x165411607a84f0227bb2f5b0b4e7e59bf0348fac0a84d89c4ab6d6a2e6c6514e9111bfd826c7fc4184a10d362f2afa057cbbac2a6432264e98f4b075508601fb",
      "0xa1a84de20db62857e4796c8a611c294a6cb7d6cc70f93d9d82f29db40e4e0abb9e8da8829269697287b09c2ce4eac4e1c8af29f6b458aed8e5bd1561f2f18db0",
      "0x064fa72a9cbc3be10337b460f7ea62ff03f707db8d21669a03870b4368b1995100fa855c15c1568fe65594fecd86be2bae4781954810be0aa4d4bfe17405a98801",
      "0x5e07"
    ],
    "storageProof": [
      {
        "key": "0x0000000000000000000000000000000000000000000000000000000000000014",
        "value": "0x10002015f90000181ef00000000008c19f5157be2ba",
        "proof": [
          "0xd27a2a67d42a7a50302f3e50f3d3620a16fd317450cb542d70b5af20817347931160b3cffad04d7b210a73cd72bdbd4a0ad83306cf2d47323f3bde30b50c2b5d",
          "0x09db48ae0faf00c389f27b4132e217519db0255b579ae7eef89c3c4a8be18b0cf21d874fc7a8690aea1e18c524e37e0373acd577f818fe637d7d9998bb95f826",
          "0x72ed6874d5440b9ae465fadadcf99a42cc0787abbff12c99b44618f3cdbb9572a8580836a9dcb8c3e3630f0888cf9248996dd61624367dd464ebc95967b3f9e7",
          "0xd05a595f99ac9587e18338f4d265ee904a73eb2a46acb62f65bb6d4d9d330d5f65b1a0daac9e51237a7b93a5cba7616c23412ce4ba67c56dacb744808497f3be",
          "0x1500fd6689701e843de34710d7f777efc319440994d061bab53fa8ab42c0de5b915b04fb164a26aa0ccfd3296df330c3772f7841fb0bfdd3ada1bbeff8e71998",
          "0xa0196eaea47a647ea8f5dd555060c595acaab14e7b018eba5dfb56014497b1b0164a946d04b874f92f5f9f1cec95b51b14734f5583ded3979bea1eb783be1261",
          "0x3098d6e91b88e87b5dd70f1d5ac006862b446301006626686ae83d194606c318c4bfa88258dbad68c883af50a9cf3d8558689ac042f2183cbd5868a28e60e4e3",
          "0x50a7470b5f10b199bf139d81340666aff7876bea01d6c31c3f7ec7f22565ac949feb0be55d7deb8087756c2e1c2535a29a14f894e226d1772334ec8a1afa74ab",
          "0xa4f014ed78edf65f9fa42415f67395605f0ccaf5350cd892cb686964e0fc3ea7116a8e75dba6c424b167b4c176f90478f3d28651b5415f97add9843e698ed4e2",
          "0x27535f1b9ebd78fa84360d05509dd169f4216679e2b85f1dcf25975760af42ded222fc591f271cc01c3e44ddf2fb813ce09c589935fae0cb97a4efc69cb0f2c2",
          "0x902380dcb7e46cea5280ddbbfe0a7883c89c52fb0e255929b33d4bc03082ad73a822b18a348ae05ad18766ef99a2c6462b3c4c7669bb6adc6d0ada84eb29ddb9",
          "0xdc0a654f555ae18f70d95c50e28eb29c33c81c04ebaee74995586444c3074582088423615ac7f4896ae3d1b1a55445dc07a4a6e2639609bff6585c579afb2424",
          "0x835e2b22804327e19def0ceec21ee43b7e86a2bbbe193a4378f7bd80c9c080e2ddc023883121b229878982532eb8e4084451ff2f4a5baf6cb1f856bf227f32a8",
          "0x8d60e4983c6049e3b79953d100e8ef5e565f0a94a84c8b600f51b4fddc68ad6b37f1e05b2e11cb35aa66d355151c6f0b45f08af02a1e2061e082b4d368a1dd5d",
          "0x4dad517d352e928374add06c497e03455fb730f8d5ad28718a2b4ff2b3cf6e4427f0f01c514efc6515e328c94850bbc6293452b7c32b1fa50273b99540305309",
          "0xe8577cfdcc647513939096c8111679a6e92783c080d843e06a98b6f829e5418f6d513e2de3e34f83d5b1a4c6c401739392ab3475e22c8cc96ca967e2631fc9b3",
          "0x3cbad1a1b8d5776130fc7f8dc2addc860e3a206c0f44efde5a307bc23b6801e197df09d2220628c7bd675b83e366475c5a1a7d64dfd5d51553a5d23e8c3791fb",
          "0x05b9318faebe1d36c4a6acde3865427e6a9ce6456234f2205ef2bb71e1895ef8bb30239cfca24cbe296b1d8db5a3cd82e0488a79f627ef10317a8da2673b17de",
          "0x6a39d6e681a8b33a50a080041c9d9bdffb473d636bcdc150530e670220f1a833c89a053ecda8d38e41a6c98ba04b5aded4996547e17057162f2dd52dcb1c83d6",
          "0x5104370d6f7e81f089e7f8e17eb25c7ef48909b7d23c0e7c76fb1941d1130cd03dd8994eedfa4e45f615e4226765bbd71cfdd0a06268657840af3cf28a16ae06",
          "0xfa9312503cda66b3d08da5117d941bc9590bce5a5a8e69c85a528b5dc7b3c53a90b49700587ec6dc235b23cbf9ed0cbc53f2cf9391594793826db37eefd3f4db",
          "0xf38da75553d49255a7588c564a88ddf7a6e4da6f3df37df32791994472bc8acaaadff1bc95da8e4fbc65c13d8de6a5c94188f52c670dcddc4966ff4d2897ad1e",
          "0x5d3cbb9fd18cd9e2c8d25a4f05c4fbe57bf0507810c0b53669bc0893f827c2ca579a57b3ac31a2a6c17e247bd0f3562eb4a00f1bbe5dcb26514abce9e55ce8db",
          "0x00000000000000000000000000000000000000000000000000000000000000009d665c530c7a552854cd03c63eec3d959e72bba06db8f394d34feba579968426",
          "0x5cf2716437ebaa158be93bcfb958e6b3f10b460134bee10e88e4ac787308efb6c2be385401816af4774b61688170ff151934323d1de1af00754686aa99c9c2dd",
          "0x019341f4949739be030fb0853a0ff07400ce2562d4eeac6300a8859b22f560d953eb8f5e0bc98b83561f150648e557a9dd748577233999a05ca37149bf8d0d4001",
          "0x010002015f90000181ef00000000008c19f5157be2ba"
        ]
      }
    ]
  }
}

<\details>

praetoriansentry and others added 3 commits August 22, 2024 14:58
This is just a proof of concept. This might not even make sense and
probably don't belong in this particular file, but wanted to see if we
could expose an implementation of
[eip-1186](https://eips.ethereum.org/EIPS/eip-1186) for the SMT +
poseidon.
The latest block should be validated with a state root hash check before becoming the "latest" block.
Copy link

sonarcloud bot commented Aug 28, 2024

@cffls cffls merged commit 64e52cf into zkevm Aug 29, 2024
10 checks passed
@cffls cffls deleted the feat/smt_get_proof branch August 29, 2024 15:56
Stefan-Ethernal pushed a commit that referenced this pull request Sep 20, 2024
* feat: adding an implementation for eth_getProof

This is just a proof of concept. This might not even make sense and
probably don't belong in this particular file, but wanted to see if we
could expose an implementation of
[eip-1186](https://eips.ethereum.org/EIPS/eip-1186) for the SMT +
poseidon.

* SMT Proof + verification

* Refactor and tests

* Use finish stage to get latest block

The latest block should be validated with a state root hash check before becoming the "latest" block.

---------

Co-authored-by: John Hilliard <praetoriansentry@gmail.com>
Co-authored-by: Valentin Staykov <79150443+V-Staykov@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants