From a29cdd2967d9bad24f8b3aa9ca8e5fa91e8d071e Mon Sep 17 00:00:00 2001 From: Julink Date: Tue, 18 Apr 2023 15:16:38 +0200 Subject: [PATCH] feat: changed L2 resolver to ERC721Enumerable --- .../contracts/l1/LineaResolverStub.sol | 4 ++- .../contracts/contracts/l2/LineaResolver.sol | 4 +-- packages/contracts/scripts/deployL2.ts | 2 +- packages/contracts/test/mocks/proof.ts | 26 +++++++++--------- packages/gateway/Dockerfile | 2 +- packages/gateway/src/index.ts | 27 ++++--------------- 6 files changed, 25 insertions(+), 40 deletions(-) diff --git a/packages/contracts/contracts/l1/LineaResolverStub.sol b/packages/contracts/contracts/l1/LineaResolverStub.sol index fee3e0b6a..66b41356c 100644 --- a/packages/contracts/contracts/l1/LineaResolverStub.sol +++ b/packages/contracts/contracts/l1/LineaResolverStub.sol @@ -109,7 +109,9 @@ contract LineaResolverStub is IExtendedResolver, SupportsInterface { ); // step 2: check storage values, get itemId first and then get the address result - bytes32 tokenIdSlot = keccak256(abi.encodePacked(node, uint256(7))); + // the index slot 11 is for 'mapping(bytes32 => uint256) public addresses' in the L2 resolver + // the index slot 2 is for 'mapping(uint256 => address) private _owners' in the L2 resolver + bytes32 tokenIdSlot = keccak256(abi.encodePacked(node, uint256(11))); (bool tokenIdExists, bytes32 tokenId) = getStorageValue( l2resolver, tokenIdSlot, diff --git a/packages/contracts/contracts/l2/LineaResolver.sol b/packages/contracts/contracts/l2/LineaResolver.sol index 67ba4ae8f..ceef4c997 100644 --- a/packages/contracts/contracts/l2/LineaResolver.sol +++ b/packages/contracts/contracts/l2/LineaResolver.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.18; -import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; import "@openzeppelin/contracts/utils/Counters.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; @@ -12,7 +12,7 @@ import "@ensdomains/ens-contracts/contracts/utils/NameEncoder.sol"; @dev A Solidity contract that implements an ERC721 token for resolving Ethereum domain names to addresses. @author ConsenSys */ -contract LineaResolver is ERC721, Ownable { +contract LineaResolver is ERC721Enumerable, Ownable { // Mapping to store Ethereum domain names (as bytes32) and their corresponding addresses (as uint256) mapping(bytes32 => uint256) public addresses; // Mapping to store token IDs (as uint256) and their corresponding domain name (as string) diff --git a/packages/contracts/scripts/deployL2.ts b/packages/contracts/scripts/deployL2.ts index b6ac39e21..eba810eae 100644 --- a/packages/contracts/scripts/deployL2.ts +++ b/packages/contracts/scripts/deployL2.ts @@ -24,7 +24,7 @@ async function main() { address: lineaResolver.address, constructorArguments: [nftName, symbol, baseUri], }); - }, 20000); + }, 30000); } } diff --git a/packages/contracts/test/mocks/proof.ts b/packages/contracts/test/mocks/proof.ts index 052edfa53..1021852ad 100644 --- a/packages/contracts/test/mocks/proof.ts +++ b/packages/contracts/test/mocks/proof.ts @@ -1,30 +1,30 @@ export const MOCKED_PROOF = { - blockHash: "0x7bda9dc09b4f45e50edc2250f3d8b6394ffd91d886bc20d74c39e5d9887fad02", + blockHash: "0x94ea534b47baee0ba1b851ea15ffd0435de5389022baf665d5f59dac55c140b0", encodedBlockArray: - "0xf9025ea029d7e819fc0c1a07c5c589c425072077d0573f73a4b7cfadb44d1ff76271eeaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a4bd84c5d1760b1a7beb85ecd92670fae3430585d3a65e223c79e283c3d23fe6a0d4c6b7f51e5bdeedf97274369c28ad6d9a8640c9060e7e0fc82c366cb3c1cc18a0fd9b7754811f9ba8d4747471b4a5201e52498f619c05cbcfd7eb0bb5eff47423b90100843801016008800000000080800000480000102100068c000000030014008100000000020000a20200000000014080800100020000d22440404800080022381600101440401108088000003c002200600220000000500428048000009504000008501400820000800002011004000840000000680508040000040050300f010008008000c2000200a4000000800000100080284100080008a0000040a0204000020800800420001800000000224601100080800c14018a00000100080005400080000003100040000001822000030144030001200001081000100422000023000010052030000000000020000001808004d092000040d8400014400240400008028307afd88403a2c94083279b2e84643e4f7eb861d883010b04846765746888676f312e31392e38856c696e757800000000000000791c9ec8a27b87f59f8d95b7eb023c77599755c742a83b60d75f012888de0e90047536d996226c6879e5a5e77cd907b95c7efd6c71ff427cfa4b33fa2f18ee0e01a0000000000000000000000000000000000000000000000000000000000000000088000000000000000008", + "0xf9025ea04f35bbdcb5d60e547d7ae1feef8bd9616025d32022442891821988873934af90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0834eba60b0c12e36268806a52a5bbd413a6b257ed3c21acc24be5de25896532ea0951a5249a56eb3d1591b93fbc0d7e87c28080a59e36802b12325cf8ab1e652c8a0b41b99b7da3d7a1eadc1c12914b03a85c6cec6523bd0faaad4e849fea066ba6ab9010001310100450880000000108082004048000140a040040801000052410404800888000011200080220000200000048904000002400482e0004620008880a0181a08109c44702108288000000c04a20060a00204000040002c00000200850001000860100c820200008a010100000008404010118a0c0c640300022010200800000000002a8b002022c1012400060010100082a8010200010aa410024081200004220b86825420421804090000aa04011000008001000028080c03004008010000008001130000400140048800000000008000020000000a70004001320000200100102c08c204002000002040822980806d509300014080610014c20220400a00028307b56c8403a2c9408338fbbe84643e926eb861d883010b04846765746888676f312e31392e38856c696e757800000000000000af4a64920b330a443df1f988de15554889598e2bd7f95ab95a8cd45fb463d4a93edd60fee2a293dab6eb2ff2487668397bf028301739abfbbd64e85f58b0a27100a0000000000000000000000000000000000000000000000000000000000000000088000000000000000008", accountProof: - "0xf90a45b90214f90211a0b28ffffa90d46312fd52912cf2cf0a882075da01f5264e0335c77c260766f4d6a06b057e24c612b5f707da6b6e92c22ec55062c8608cd316cd6e2ffae8048534eea0e6197db77c64710b332669fd8bf7346d2c1ca523712866f3e97c23763a85e009a03d268908e4b5f3e00c1e7e624e1218fd2eea42804f0a8bcea9f6cd85e6ada7aaa0aa8d58e4acab4f5544a1e7c3a598b6c01f6670cf2fd265bef1995278a3f4cef6a0c89392c4d6ccecf46a336789efeccc154412d23ea473dc58e454c6894818571ca0ec1dd38954d2766460651ba552a604960612272707d988409a8e1e2050f07466a0549925a73751eca20180622d7dea4d4fe89ced4e15107aaf1d84e6900abf54cba0228fb03624b6ba0588ba72fb8c1fead5d7c8b169a6221c430a252f7d9c9fd691a0fc799a0927cb2c7a6ccd8276e0f2edbdc527a5159fe8be71fbe5bb194868c5b7a0a35abf963efef00f3f2cc1e30a7a6d85ada57fbb7a3e4f2a73c75b4f15d5487ca0e969e0fd62e75f48a31ce10067c3aae2b78fce694eadabce3e7506ae6eac013aa03fa448d2a4ba7506434f1a910358e2a4108c2ee24ad792c944de887b20aca8cfa0cbda97be5119076d07216ae3cd969be41a704a853c7d0c4af7ed44520a7b3800a00ac2d8f846548063697f7ba5c1ca64e36c3ea153bd34db53e01573eec9db82a8a06122f520ab1a59eca6d42310211af2709d0cbc0aa25b0dd1a777d974f46116be80b90214f90211a025a7c9be592a850f1202d765eee1b9f62897cc493a2c1415319766d41f427fe4a09e35e86b0a0e212bd28afd5883b6f3fd66ac0c49f7f3b619b88ee3e636da9afca0d54694685637fe1798b1dc462002aea0552d9720e4ffdfbdb3ed22058a08ddada0f514908ea345797fccc9d1ed1b9a037804afca1402fc3b873e2b6a001c61c915a0ff4fb84f41c726fe4fd04569358fc62fabcd2fcef37f0368470b0ccd212347c7a0ab1f3f9131e5cfb83d014fe5c41b5fbe1c157fba5ba126967d2bd22c6533c105a004956596a8199c8b86610f5a8168bee6fadbe14e48cdd09bd27588a6604d4528a077c299ac7b10675d81fb2d16e26a77087d42ac199ddd64118c33cd05922ecf09a0767e0645a3219e7ef05d7d608a49ea1b1381533cf611b00882fe75c9d6f5ef73a0a605d1464f0b62bae8633352feb9bc6979148edda2cfc18fecbce3b680ab9e26a0f0bcfe2bd0fe2ddf6dc1d513ac714db016a607de65da2867aee9942e92f5ef9ba0fb97223708ffdb1811b7e38e23dd4d16727a42a23e726d54ab6c863ee082547aa03617af9ecf3f7b346f9ad1624d04863b7dca6ec92e49476abc99a0c4bd388dd4a070a44b80cf46246664aa7dfda479b2c12b2968b23aa690cb002558c216841651a0fb1a775fce16b21a1cd8e7f858071a3d3e6826027d68c78c18af0d421d27ef16a024ee48716b3e048e9c6d9d16850fcecf408102dfb935d9bd2a5bea627689a66680b90214f90211a09b64d4b617e36584ca2bd000eabebee987eefab41b3ebe2c1360850fa4546e60a03b162ffe535be6ee2d369d1ba8b7ebd1102ae1ed37927dab987a02c0e8027a4ea0b2bb5c3dd48627e22eaeeee263991f9c43e9dbae3243ed0a0aa2d07c6ee7ca55a0f9d9ded8a3e4f38a0b273a2afc8ba0bb3e8751d38ed9961bd3cfe3e0e3f7f0e1a0dd5088d7951711e5f9e915e9925a85e0a1723bc3bfc1ea01d369d7d4227b721da037215195f9359284c6f848664bf00e8f52c2fed1d8af8deca3806c16c71a66bca0a38ad3c82754d3510bcd385d7e77753527bdcb7daf545feb543e0d9b4c2480b6a0faced160ba2db0314378d2e79ce74e41ab96893c7b3ad4e6bae6031573011928a08e20fb4ffc699a89fe39a96989e05056ee84a0a0ba799b20ed12f2656914bd47a0180ea843212bc7b1d5782e55f1ad698524102dbbfe93128e9193ae2e90604683a0430f2f4f75576c301fc710d0b73725975a983aaeaaab1a9dc27e3b315b014193a0f32558f540d1d357fa6a3bebb590081db6a42221d6729c27c389798e85bdcd84a04d557c0d02a39743757b9b41da4c9a6e8df0d0585bd9e11ad9254f12a92ab8c3a02cedc619fa55d219246620bfd498845010d4f6c11ba0c4b6a0fc16399ae1bbb7a036d688546775351286674c98748faecfe2bd7f4bd55e133c74856ff8252844bfa069667061b253fe2535e2b2b8f4efafcf0871e38bf5632ade29d47d3d37c1fa5980b90214f90211a0e99edd82c800901b5e2ba0fc639a1abb45276a431bcc2ebd2ecbf12ffce777bba0a56fa91a39758ebf41085a2318588c5a17567813b038ca1170bbef155ad219a8a00c2789df60d1a32c04f45cba4659237c77e75d0d9236fdabeb3d9cd8bc369986a0cff8b43a1471d101a0a06aa46b90c7a981e3383de6668d9944e9e6307d14d73ea0f4153a33d0605b6a89b96ff2eda1343175c114aa05fcd900357e6cd92336d2a3a01b5d5307806224f45ea4306567b29653dbf39babf8b2450d456a7526f9c9512aa0c9a537eb8e7b7aa29c3e57bfddf36071dc91735863ad3012926279c1ae95384aa0be64c5922059212ec64b9f60abc30b0cb5800a1d43903f2eea4312473ca447f0a007d2cc0a06064e5b1ab87696c3365ca63aafdea495f66191c84304c1c7be70f8a06ff6b46af3d2ab1e413d236a4f7d79cb828acf2c7b1ea6f2ce08d0f706565fd0a0b850d5309cf976e7298899e75ec818c81df50fa8ded101bfd6145d0309d7e550a0c6e8355e775022277dc4aa23f7fb8a51a6396c692ed8769085709a5c15fa0e6ba090412e72ac507d8de3f1f1cf5263e5569c05de530cafe3fd1102b80cc5bba1c1a04702488dbfccead15cde1bd61d4308eaf92c469ffa96e2d4e42b8a3b69fb61f4a0a286c7abdfb97780d0994aeb770a8037ffb6168b00d18852a1491a98abb518a1a0563614c11dcfa5cd7b1075dc4bc61f0b0adc0c37d8723feb57ab8dd0e1aded1480b90174f90171a0f8e8cb0bd5d9fdf8ad8d6de0d648c3afaf4a82f4607e73e92a5dd8f1170d3465a0c6a2ae1bb20205f45c881a18917122d1ff03635cf912e367353357db27ef4cc0a08aa2bc4bbad19ef58961042d22a002d6862b445fb72e404f7f7ccbf40d00958c80a09c215b1560006634b4c4f9472f379bb69ef86e0fa1366b0a5cdfcf6b486cfb448080a07a0ec91c2e0f08826e0302e39387717934ad8c6e84b66a514db8d17cde174d4ca0f2f9088d55ffb103c0bb61386af00703b1a71d9960705ca77b681b7b2da6b1a1a0e556b8d46aeb28f690c9a42a6047841cc1bc71e079991c26e97db18298ddc964a015ce3e52fbf82477eec87b68b950689fb1db8325487b7c76ee8c5630d199cbe9a005428bca35be566eb8c260e44d3f17476459b11540e319666ba4956e9e0ef1ea80a03118a0649f1c07b9760c1aecf307bc5654c50b1fb2546f65bb5d996dbf648a86a0bffd0c8ee730ac6f8782ed1ff4108455b824e50d2fb4f544d48c44ea2dd254f08080b870f86e9e3a7ee92a2e8a5570d78d46d16b43a536494eec581add678d165f3f62280ab84df84b0187038d7ea4c68000a0ab113e41d5a3f4cf35a33fc0472fd558aaa91d976d850db0a2c74286c8176738a0e7ff32e8fdfd649efac3148d1654d5adf1fb637bef7e0947ad78ca5dd00b922f", - stateRoot: "0xa4bd84c5d1760b1a7beb85ecd92670fae3430585d3a65e223c79e283c3d23fe6", + "0xf909e5b90214f90211a0a073f34d783564b57f46ea862ea8d74f65532cea66627f088238e1b1afc1e7a6a0890ede9860658234e38bbd0f89e8f93ec8d5360dccfc4d838a3df39d749945b5a02724ed656c42d1489553f0b05a8b9de7ed8c491c4a73a714f34f4f88efb0b640a036714e0be3b79f6904a324710a25b75154bbebcfdfcbeb84cf4097bb48c869c5a07ac3c268c9ba1d7fd82ad16498c0321e39f6f3bb6f649fd01428d42fb4627793a001f0defbdf50335314b00d20b1a6ef66915a631f535d568a9d65ac63383f1c65a0f405371c689cf0d30ad3ae307c4f220ca1e3316a0cc47d56884b8b2698fbaa51a0af040dd5524c5a1a808307300e306a517a0d95e381e953c02f75baa42788ccdfa04e7b2cb478434ac1de2c1e07789e0dba47cb812857359e02e11afb1b8b35dc77a0a379e0bd2bb2545c9e1c6ed513811221ba4c4be854affa933424eca4e708155ea05c5e756040a395b170dfb6899b3d25347eced6f227d15f5318b1bb5c95e1e304a0f2806974ae01e36efe51bbd4130c35a3633d967e3fb2291b0662bdeb8092bbb6a0d04d9e2c957dc1dd39f04191c5458a66be0df9a9bb66adfc2b979a0c92c0ae65a0c2e926d99aa53d6648d67dbffab6ff54a128fdf9e56e0796057666c4d91716d5a0ef176b7a1ecf2373c22a628b642e22d53b5ef7b435d61bdd1aa672dd3850d2eba01bd53ba095f0555d0feed6e0f3cf0b3496de26eca799e13d679c7d327ad92aca80b90214f90211a00a78a11c2b18c21fb1c80ebd58039dfceeb10516aad0c752c454776f7b58ee1ea00b5d5ca2af69b7215f71c06f1e5f3fc1be92b019828720b79625e3c8ac789608a03a371d5896a70bd564e7cc0bc60377d1c7c0b89026206ac382dac3c3a64b5f78a03c2d3851831f41afbc5da9047744d199b5ed3a6d844afa5da0f4a9637d88368fa0ed9d1ccdbf713ce0d60ef9eb36b44a38cdf1f1ece3d3236240fe036cf3c2bd26a09ef0eb2ecc2d9c345b12a0301b6c7c5b4dbdaf4a297a902cab18f8fa3e2f4db2a03cb2b134178e1880cb67b54589866b09fd9771624ea7f682dda10154d101104ba0371b5194f12a66dc83b8006dcd4aa27b8a7f66f47a58a4826b7ae5b30e4a8a4aa067ba4ef3c6688391f73b731fca49df805ca6474c6ae3a1e00e50627350d3fea5a087b936c4904b2413a060ab7739395b167708f699be8937d8022225c5d9d57702a0273b60e47c79d913376632b2ad6820602a53c60198f28bca2d0967e6fecb749ca0076e4f424e9abe83adfd2dac3e62675eed13f93d06b81906b425edc6c7e278b4a0c981a86f3ac2835718301fb581420ccd226410196a3f491c5895683240844f6ea0d81acfb9028ed61c2c61ffba6cebcfe7c557198ebbc2e76b5ca5dc48302c9bada033fccf7997aa0d8c47867a519192bcc071ec10bbbb5a4c76ee4401a433ca0778a0b2b193dd82c7143fa92f9ef331abf4d02fba794580a9706586bb02e398822ab380b90214f90211a049612650b8ac195cfc4220837c044440fda36d2648ea6c83ad93908d04b30088a09617b49d3cc25afaed903966b4aca6593a510f347f667dd743107feba1eb2718a0399d489a6d8a527f113f98f64f4bb7749bdae3d3437e95c831e1bb337fe65fa0a06d24da1013c3d759421e60923de10d39d62a2b998d28caa8c8cde1836eb8db0ea0ab6994a26afe88dca905b66ab1447685d5b72944cbbcdd41c42e352b2be1b229a04515e49f6485fac7a93bbaecc23f5726eb6719ba1303e2bb37b8f2579057ca03a038059ac0b425a44554a875e9dc2362caec9f9545339a01966ae6c797b6b78fe8a07dbd61b901d72d1608b4cb1ff8d3de84e187b8c075ebd3b9a385ff22f4eeecbfa07ed40287509ff04852d8e8b3943b8c4533265d94c071162c3781596b756d468ba04eb877477813b83506a82335e6f47323c194a2e43ca8f50194c6090105df7c64a05a6eaa66db8156b88cbfdaca7acea22b537245333bf47df9ccc891db9e9fb9c8a09caaa7c225e04fc6c8c3e246ebc2e46745bb1114e83950aa3c04d9d1cf88c729a0662628c775290e364a28e28731309b86e7d1a2cca34dc4eb1e0db698d00985fca05ea3fd6acce0b3224de3e04698df565e01f24d72d6110ac8c0be41f90b808a06a079a9dde970272b020024904966fcc6653ac8fb851dd37fe85364523d2c8a1f3ea02aa5a7ab45d38d6c72e5c5603f876bf39cd110406ec95336bd233c6fec96cac980b90214f90211a03d3b59e28fecbe77dc2ce232ad69c04949cd086876e5d1377e05e50a9057bc42a0f8fbbe10a65fb85fa03dfb46c15f9ddd51611e9d893f4ef185031d9763b2993da04be00fd8b25cc0e66301241aeb7cb30cc9d2773a462526f505902e88c6e2b88aa03ccccfaf73b7021bbd84bdad8870b617001764327bf5a82ddc3408cb9c7f3c01a0c0d2b6cb18864033480fdc26ff90b0cc0b04a09dda996497d16aa7952c3c121aa0b187c359a02c322f518e60cc2fc0a853cbc7a12df9f2c3a61247db06d9609df2a06a6099f353cde0ee1dbbc437f04d85e900a2ce0022c39e5d1ce46bcd6efa633aa06a6f60049f9b98081bbb2460190093dd213f0c91d07a08225edb58a58c9dd878a0005685c259277e8ec0cd600206292435992217ba806295655a541db3dc3125eda0710477ce5bd6be49d929668b2b84532e5a9ee396e9a4d10dda00dfa4c27034d1a06df3edc55487ea93d6dc44cf15efc0ee3e6242e9abd69d39043f1fcaee8ab407a01c2603f2c69e0981e4c128309923b3c933b650e1a823f4ecf11bad366f917fcca0e707ac2041e3831be48842bea4f4e20ee5e1d7ae482320f97aa41bafa243cc56a0684d3dd8456691012cf873221a525978a6440fed69622beb11df70d1d4c5875ba002a1401bc6d917f7703c47328b87f8d1be0cc7eeb99f36220840400134d6a13fa086db68a4407388cdd3bb34b72c2296a816c50eb9228980c4b6e8e48bdcebe1f380b90114f90111a0b59085aa2abb7812f3f2cc1d17a541310dfba1f6724e6a58766b192c1ea45243a0386b4a3942bce86ab23f2f7aeb7744af83c05641dcceaf770a9b6709eb3a447a8080a067397e43cb539a79da4340afae2b733a73aff5a1f679e7d9bc93de6725911a4da00b49ee125a599730261e6bdd1e1bb194113b6da92645dc0b9f89720a2741ca1e80a0dcac12b7868711641c89e4716a7ee427a326dc2123108f9b26d54c69221319618080a0da3902685c6d4320b26835329a709ecacec70c9e66dadabe1739ca8e359b57f58080a0c645e35e3b423c52d50817d3f579a1e03bc8a940119aa52900ee12ff3b062d95a06dc776e64ca9e4e7b3cf7204b10014440ea3285aca4b76e5117536cb6e6828f38080b870f86e9e36014c0bf3b41fc7436da630e78e411d38c9242a73abc51b180191a01824b84df84b0187038d7ea4c68000a0d29e463cdb3cc38cda0e5e5850b09492bfad390fb672fccc26b6275d6b8d9ce6a02e047f4e06813a21fc8af6d939644b383ec1652eff5a01e6eb5e2b5deaa38973", + stateRoot: "0x834eba60b0c12e36268806a52a5bbd413a6b257ed3c21acc24be5de25896532e", tokenIdStorageProof: - "0xf90190b90114f90111a09ae2d42574572fefe17c3fc7682bba16cc867798e23f90e69637e98f89e67dd580a060029653a062b2bf03b431c3aeec206f9ac4b079f6e47bb59236cbce30a4211c808080a00429664d55b4b47affb0645da2274d2cfa2dfd965a04cfbbdd072720898b9588a0197e1e050dd1156f4a2043797a2277cacbcc7d465ab12d5a7c75d74369b09701a055dd4bf519367f9acaa0381d117a392b2e9c0b66cc5a9d927392a17286f938c18080a07fe5dee9f1ee822caa56be7b6065c5d62e72a4247aacf091afe0b96859ab8352a00a88b6cc3b8c1c6cd9d6e352b9ea215061ff716fa924ce9e7f15d6ded830f4be8080a0a105ff835f97c9fea82b9e88316b60c8bb4c9da1bcba25bc9513d94e189aa5c880b853f85180a05a0588d00e1c292945eaf25483398366768ce8a1d49fee8f007265d470de1c19a0a1ad7ef4bdd4c2d4110bee727cdb4666ddec70bd7eed3612d60b4481332403688080808080808080808080808080a3e2a020109db22eea7264df433ae6d6078d397ef08349e8da009a4ad7ceeef8e6c61301", + "0xf9017bb90154f901518080a0f8f3e007292de6e4179e42ae51769409b82d31493a25b9f6982ef1a23d46b922a0c65eef82e01ae62449b2295b122ab27ff7766c9bfaef63b3fdf901fc5515d426808080a0197e1e050dd1156f4a2043797a2277cacbcc7d465ab12d5a7c75d74369b09701a05520ade2c25169337f7c03951d2791f9d0512f8342065094c9c64d6af5105d28a08c02f38d4248404a1c6cf395cd4f2b3503db40a41ca0bc8941db4ab26c0c9f04a0debd4817a92c06919b4edbd0e2d3de900aca85c57609d2fa4e2c1a4742b49f4fa00311f922e9a033ce3000961292327f7086850a426c3ffe1659f07877c2f730eaa062b7bd637d643d9f8f94919f2c0642d76cdff3a01c69590885b4f6341534ddfda08302f3aa719b49a87ea68fa3d4c9042727c292abc28457deeb600edb80665e6380a03a1e44d3669992d3ac3f750a1159442ba1d83432cb03e5815d7eed7d97c7e90380a3e2a03dc81fc0d63b4b79a382ecda3e900b78a575416921e100c555979d75c1ac862e01", ownerStorageProof: - "0xf90151b90114f90111a09ae2d42574572fefe17c3fc7682bba16cc867798e23f90e69637e98f89e67dd580a060029653a062b2bf03b431c3aeec206f9ac4b079f6e47bb59236cbce30a4211c808080a00429664d55b4b47affb0645da2274d2cfa2dfd965a04cfbbdd072720898b9588a0197e1e050dd1156f4a2043797a2277cacbcc7d465ab12d5a7c75d74369b09701a055dd4bf519367f9acaa0381d117a392b2e9c0b66cc5a9d927392a17286f938c18080a07fe5dee9f1ee822caa56be7b6065c5d62e72a4247aacf091afe0b96859ab8352a00a88b6cc3b8c1c6cd9d6e352b9ea215061ff716fa924ce9e7f15d6ded830f4be8080a0a105ff835f97c9fea82b9e88316b60c8bb4c9da1bcba25bc9513d94e189aa5c880b838f7a03fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc539594f110a41f75edeb224227747b64be7f6a7f140abc", + "0xf90191b90154f901518080a0f8f3e007292de6e4179e42ae51769409b82d31493a25b9f6982ef1a23d46b922a0c65eef82e01ae62449b2295b122ab27ff7766c9bfaef63b3fdf901fc5515d426808080a0197e1e050dd1156f4a2043797a2277cacbcc7d465ab12d5a7c75d74369b09701a05520ade2c25169337f7c03951d2791f9d0512f8342065094c9c64d6af5105d28a08c02f38d4248404a1c6cf395cd4f2b3503db40a41ca0bc8941db4ab26c0c9f04a0debd4817a92c06919b4edbd0e2d3de900aca85c57609d2fa4e2c1a4742b49f4fa00311f922e9a033ce3000961292327f7086850a426c3ffe1659f07877c2f730eaa062b7bd637d643d9f8f94919f2c0642d76cdff3a01c69590885b4f6341534ddfda08302f3aa719b49a87ea68fa3d4c9042727c292abc28457deeb600edb80665e6380a03a1e44d3669992d3ac3f750a1159442ba1d83432cb03e5815d7eed7d97c7e90380b838f7a03fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc539594f110a41f75edeb224227747b64be7f6a7f140abc", }; export const MOCKED_PROOF_UNDEFINED = { - blockHash: "0x7bda9dc09b4f45e50edc2250f3d8b6394ffd91d886bc20d74c39e5d9887fad02", + blockHash: "0x94ea534b47baee0ba1b851ea15ffd0435de5389022baf665d5f59dac55c140b0", encodedBlockArray: - "0xf9025ea029d7e819fc0c1a07c5c589c425072077d0573f73a4b7cfadb44d1ff76271eeaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a4bd84c5d1760b1a7beb85ecd92670fae3430585d3a65e223c79e283c3d23fe6a0d4c6b7f51e5bdeedf97274369c28ad6d9a8640c9060e7e0fc82c366cb3c1cc18a0fd9b7754811f9ba8d4747471b4a5201e52498f619c05cbcfd7eb0bb5eff47423b90100843801016008800000000080800000480000102100068c000000030014008100000000020000a20200000000014080800100020000d22440404800080022381600101440401108088000003c002200600220000000500428048000009504000008501400820000800002011004000840000000680508040000040050300f010008008000c2000200a4000000800000100080284100080008a0000040a0204000020800800420001800000000224601100080800c14018a00000100080005400080000003100040000001822000030144030001200001081000100422000023000010052030000000000020000001808004d092000040d8400014400240400008028307afd88403a2c94083279b2e84643e4f7eb861d883010b04846765746888676f312e31392e38856c696e757800000000000000791c9ec8a27b87f59f8d95b7eb023c77599755c742a83b60d75f012888de0e90047536d996226c6879e5a5e77cd907b95c7efd6c71ff427cfa4b33fa2f18ee0e01a0000000000000000000000000000000000000000000000000000000000000000088000000000000000008", + "0xf9025ea04f35bbdcb5d60e547d7ae1feef8bd9616025d32022442891821988873934af90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0834eba60b0c12e36268806a52a5bbd413a6b257ed3c21acc24be5de25896532ea0951a5249a56eb3d1591b93fbc0d7e87c28080a59e36802b12325cf8ab1e652c8a0b41b99b7da3d7a1eadc1c12914b03a85c6cec6523bd0faaad4e849fea066ba6ab9010001310100450880000000108082004048000140a040040801000052410404800888000011200080220000200000048904000002400482e0004620008880a0181a08109c44702108288000000c04a20060a00204000040002c00000200850001000860100c820200008a010100000008404010118a0c0c640300022010200800000000002a8b002022c1012400060010100082a8010200010aa410024081200004220b86825420421804090000aa04011000008001000028080c03004008010000008001130000400140048800000000008000020000000a70004001320000200100102c08c204002000002040822980806d509300014080610014c20220400a00028307b56c8403a2c9408338fbbe84643e926eb861d883010b04846765746888676f312e31392e38856c696e757800000000000000af4a64920b330a443df1f988de15554889598e2bd7f95ab95a8cd45fb463d4a93edd60fee2a293dab6eb2ff2487668397bf028301739abfbbd64e85f58b0a27100a0000000000000000000000000000000000000000000000000000000000000000088000000000000000008", accountProof: - "0xf90a45b90214f90211a0b28ffffa90d46312fd52912cf2cf0a882075da01f5264e0335c77c260766f4d6a06b057e24c612b5f707da6b6e92c22ec55062c8608cd316cd6e2ffae8048534eea0e6197db77c64710b332669fd8bf7346d2c1ca523712866f3e97c23763a85e009a03d268908e4b5f3e00c1e7e624e1218fd2eea42804f0a8bcea9f6cd85e6ada7aaa0aa8d58e4acab4f5544a1e7c3a598b6c01f6670cf2fd265bef1995278a3f4cef6a0c89392c4d6ccecf46a336789efeccc154412d23ea473dc58e454c6894818571ca0ec1dd38954d2766460651ba552a604960612272707d988409a8e1e2050f07466a0549925a73751eca20180622d7dea4d4fe89ced4e15107aaf1d84e6900abf54cba0228fb03624b6ba0588ba72fb8c1fead5d7c8b169a6221c430a252f7d9c9fd691a0fc799a0927cb2c7a6ccd8276e0f2edbdc527a5159fe8be71fbe5bb194868c5b7a0a35abf963efef00f3f2cc1e30a7a6d85ada57fbb7a3e4f2a73c75b4f15d5487ca0e969e0fd62e75f48a31ce10067c3aae2b78fce694eadabce3e7506ae6eac013aa03fa448d2a4ba7506434f1a910358e2a4108c2ee24ad792c944de887b20aca8cfa0cbda97be5119076d07216ae3cd969be41a704a853c7d0c4af7ed44520a7b3800a00ac2d8f846548063697f7ba5c1ca64e36c3ea153bd34db53e01573eec9db82a8a06122f520ab1a59eca6d42310211af2709d0cbc0aa25b0dd1a777d974f46116be80b90214f90211a025a7c9be592a850f1202d765eee1b9f62897cc493a2c1415319766d41f427fe4a09e35e86b0a0e212bd28afd5883b6f3fd66ac0c49f7f3b619b88ee3e636da9afca0d54694685637fe1798b1dc462002aea0552d9720e4ffdfbdb3ed22058a08ddada0f514908ea345797fccc9d1ed1b9a037804afca1402fc3b873e2b6a001c61c915a0ff4fb84f41c726fe4fd04569358fc62fabcd2fcef37f0368470b0ccd212347c7a0ab1f3f9131e5cfb83d014fe5c41b5fbe1c157fba5ba126967d2bd22c6533c105a004956596a8199c8b86610f5a8168bee6fadbe14e48cdd09bd27588a6604d4528a077c299ac7b10675d81fb2d16e26a77087d42ac199ddd64118c33cd05922ecf09a0767e0645a3219e7ef05d7d608a49ea1b1381533cf611b00882fe75c9d6f5ef73a0a605d1464f0b62bae8633352feb9bc6979148edda2cfc18fecbce3b680ab9e26a0f0bcfe2bd0fe2ddf6dc1d513ac714db016a607de65da2867aee9942e92f5ef9ba0fb97223708ffdb1811b7e38e23dd4d16727a42a23e726d54ab6c863ee082547aa03617af9ecf3f7b346f9ad1624d04863b7dca6ec92e49476abc99a0c4bd388dd4a070a44b80cf46246664aa7dfda479b2c12b2968b23aa690cb002558c216841651a0fb1a775fce16b21a1cd8e7f858071a3d3e6826027d68c78c18af0d421d27ef16a024ee48716b3e048e9c6d9d16850fcecf408102dfb935d9bd2a5bea627689a66680b90214f90211a09b64d4b617e36584ca2bd000eabebee987eefab41b3ebe2c1360850fa4546e60a03b162ffe535be6ee2d369d1ba8b7ebd1102ae1ed37927dab987a02c0e8027a4ea0b2bb5c3dd48627e22eaeeee263991f9c43e9dbae3243ed0a0aa2d07c6ee7ca55a0f9d9ded8a3e4f38a0b273a2afc8ba0bb3e8751d38ed9961bd3cfe3e0e3f7f0e1a0dd5088d7951711e5f9e915e9925a85e0a1723bc3bfc1ea01d369d7d4227b721da037215195f9359284c6f848664bf00e8f52c2fed1d8af8deca3806c16c71a66bca0a38ad3c82754d3510bcd385d7e77753527bdcb7daf545feb543e0d9b4c2480b6a0faced160ba2db0314378d2e79ce74e41ab96893c7b3ad4e6bae6031573011928a08e20fb4ffc699a89fe39a96989e05056ee84a0a0ba799b20ed12f2656914bd47a0180ea843212bc7b1d5782e55f1ad698524102dbbfe93128e9193ae2e90604683a0430f2f4f75576c301fc710d0b73725975a983aaeaaab1a9dc27e3b315b014193a0f32558f540d1d357fa6a3bebb590081db6a42221d6729c27c389798e85bdcd84a04d557c0d02a39743757b9b41da4c9a6e8df0d0585bd9e11ad9254f12a92ab8c3a02cedc619fa55d219246620bfd498845010d4f6c11ba0c4b6a0fc16399ae1bbb7a036d688546775351286674c98748faecfe2bd7f4bd55e133c74856ff8252844bfa069667061b253fe2535e2b2b8f4efafcf0871e38bf5632ade29d47d3d37c1fa5980b90214f90211a0e99edd82c800901b5e2ba0fc639a1abb45276a431bcc2ebd2ecbf12ffce777bba0a56fa91a39758ebf41085a2318588c5a17567813b038ca1170bbef155ad219a8a00c2789df60d1a32c04f45cba4659237c77e75d0d9236fdabeb3d9cd8bc369986a0cff8b43a1471d101a0a06aa46b90c7a981e3383de6668d9944e9e6307d14d73ea0f4153a33d0605b6a89b96ff2eda1343175c114aa05fcd900357e6cd92336d2a3a01b5d5307806224f45ea4306567b29653dbf39babf8b2450d456a7526f9c9512aa0c9a537eb8e7b7aa29c3e57bfddf36071dc91735863ad3012926279c1ae95384aa0be64c5922059212ec64b9f60abc30b0cb5800a1d43903f2eea4312473ca447f0a007d2cc0a06064e5b1ab87696c3365ca63aafdea495f66191c84304c1c7be70f8a06ff6b46af3d2ab1e413d236a4f7d79cb828acf2c7b1ea6f2ce08d0f706565fd0a0b850d5309cf976e7298899e75ec818c81df50fa8ded101bfd6145d0309d7e550a0c6e8355e775022277dc4aa23f7fb8a51a6396c692ed8769085709a5c15fa0e6ba090412e72ac507d8de3f1f1cf5263e5569c05de530cafe3fd1102b80cc5bba1c1a04702488dbfccead15cde1bd61d4308eaf92c469ffa96e2d4e42b8a3b69fb61f4a0a286c7abdfb97780d0994aeb770a8037ffb6168b00d18852a1491a98abb518a1a0563614c11dcfa5cd7b1075dc4bc61f0b0adc0c37d8723feb57ab8dd0e1aded1480b90174f90171a0f8e8cb0bd5d9fdf8ad8d6de0d648c3afaf4a82f4607e73e92a5dd8f1170d3465a0c6a2ae1bb20205f45c881a18917122d1ff03635cf912e367353357db27ef4cc0a08aa2bc4bbad19ef58961042d22a002d6862b445fb72e404f7f7ccbf40d00958c80a09c215b1560006634b4c4f9472f379bb69ef86e0fa1366b0a5cdfcf6b486cfb448080a07a0ec91c2e0f08826e0302e39387717934ad8c6e84b66a514db8d17cde174d4ca0f2f9088d55ffb103c0bb61386af00703b1a71d9960705ca77b681b7b2da6b1a1a0e556b8d46aeb28f690c9a42a6047841cc1bc71e079991c26e97db18298ddc964a015ce3e52fbf82477eec87b68b950689fb1db8325487b7c76ee8c5630d199cbe9a005428bca35be566eb8c260e44d3f17476459b11540e319666ba4956e9e0ef1ea80a03118a0649f1c07b9760c1aecf307bc5654c50b1fb2546f65bb5d996dbf648a86a0bffd0c8ee730ac6f8782ed1ff4108455b824e50d2fb4f544d48c44ea2dd254f08080b870f86e9e3a7ee92a2e8a5570d78d46d16b43a536494eec581add678d165f3f62280ab84df84b0187038d7ea4c68000a0ab113e41d5a3f4cf35a33fc0472fd558aaa91d976d850db0a2c74286c8176738a0e7ff32e8fdfd649efac3148d1654d5adf1fb637bef7e0947ad78ca5dd00b922f", - stateRoot: "0xa4bd84c5d1760b1a7beb85ecd92670fae3430585d3a65e223c79e283c3d23fe6", + "0xf909e5b90214f90211a0a073f34d783564b57f46ea862ea8d74f65532cea66627f088238e1b1afc1e7a6a0890ede9860658234e38bbd0f89e8f93ec8d5360dccfc4d838a3df39d749945b5a02724ed656c42d1489553f0b05a8b9de7ed8c491c4a73a714f34f4f88efb0b640a036714e0be3b79f6904a324710a25b75154bbebcfdfcbeb84cf4097bb48c869c5a07ac3c268c9ba1d7fd82ad16498c0321e39f6f3bb6f649fd01428d42fb4627793a001f0defbdf50335314b00d20b1a6ef66915a631f535d568a9d65ac63383f1c65a0f405371c689cf0d30ad3ae307c4f220ca1e3316a0cc47d56884b8b2698fbaa51a0af040dd5524c5a1a808307300e306a517a0d95e381e953c02f75baa42788ccdfa04e7b2cb478434ac1de2c1e07789e0dba47cb812857359e02e11afb1b8b35dc77a0a379e0bd2bb2545c9e1c6ed513811221ba4c4be854affa933424eca4e708155ea05c5e756040a395b170dfb6899b3d25347eced6f227d15f5318b1bb5c95e1e304a0f2806974ae01e36efe51bbd4130c35a3633d967e3fb2291b0662bdeb8092bbb6a0d04d9e2c957dc1dd39f04191c5458a66be0df9a9bb66adfc2b979a0c92c0ae65a0c2e926d99aa53d6648d67dbffab6ff54a128fdf9e56e0796057666c4d91716d5a0ef176b7a1ecf2373c22a628b642e22d53b5ef7b435d61bdd1aa672dd3850d2eba01bd53ba095f0555d0feed6e0f3cf0b3496de26eca799e13d679c7d327ad92aca80b90214f90211a00a78a11c2b18c21fb1c80ebd58039dfceeb10516aad0c752c454776f7b58ee1ea00b5d5ca2af69b7215f71c06f1e5f3fc1be92b019828720b79625e3c8ac789608a03a371d5896a70bd564e7cc0bc60377d1c7c0b89026206ac382dac3c3a64b5f78a03c2d3851831f41afbc5da9047744d199b5ed3a6d844afa5da0f4a9637d88368fa0ed9d1ccdbf713ce0d60ef9eb36b44a38cdf1f1ece3d3236240fe036cf3c2bd26a09ef0eb2ecc2d9c345b12a0301b6c7c5b4dbdaf4a297a902cab18f8fa3e2f4db2a03cb2b134178e1880cb67b54589866b09fd9771624ea7f682dda10154d101104ba0371b5194f12a66dc83b8006dcd4aa27b8a7f66f47a58a4826b7ae5b30e4a8a4aa067ba4ef3c6688391f73b731fca49df805ca6474c6ae3a1e00e50627350d3fea5a087b936c4904b2413a060ab7739395b167708f699be8937d8022225c5d9d57702a0273b60e47c79d913376632b2ad6820602a53c60198f28bca2d0967e6fecb749ca0076e4f424e9abe83adfd2dac3e62675eed13f93d06b81906b425edc6c7e278b4a0c981a86f3ac2835718301fb581420ccd226410196a3f491c5895683240844f6ea0d81acfb9028ed61c2c61ffba6cebcfe7c557198ebbc2e76b5ca5dc48302c9bada033fccf7997aa0d8c47867a519192bcc071ec10bbbb5a4c76ee4401a433ca0778a0b2b193dd82c7143fa92f9ef331abf4d02fba794580a9706586bb02e398822ab380b90214f90211a049612650b8ac195cfc4220837c044440fda36d2648ea6c83ad93908d04b30088a09617b49d3cc25afaed903966b4aca6593a510f347f667dd743107feba1eb2718a0399d489a6d8a527f113f98f64f4bb7749bdae3d3437e95c831e1bb337fe65fa0a06d24da1013c3d759421e60923de10d39d62a2b998d28caa8c8cde1836eb8db0ea0ab6994a26afe88dca905b66ab1447685d5b72944cbbcdd41c42e352b2be1b229a04515e49f6485fac7a93bbaecc23f5726eb6719ba1303e2bb37b8f2579057ca03a038059ac0b425a44554a875e9dc2362caec9f9545339a01966ae6c797b6b78fe8a07dbd61b901d72d1608b4cb1ff8d3de84e187b8c075ebd3b9a385ff22f4eeecbfa07ed40287509ff04852d8e8b3943b8c4533265d94c071162c3781596b756d468ba04eb877477813b83506a82335e6f47323c194a2e43ca8f50194c6090105df7c64a05a6eaa66db8156b88cbfdaca7acea22b537245333bf47df9ccc891db9e9fb9c8a09caaa7c225e04fc6c8c3e246ebc2e46745bb1114e83950aa3c04d9d1cf88c729a0662628c775290e364a28e28731309b86e7d1a2cca34dc4eb1e0db698d00985fca05ea3fd6acce0b3224de3e04698df565e01f24d72d6110ac8c0be41f90b808a06a079a9dde970272b020024904966fcc6653ac8fb851dd37fe85364523d2c8a1f3ea02aa5a7ab45d38d6c72e5c5603f876bf39cd110406ec95336bd233c6fec96cac980b90214f90211a03d3b59e28fecbe77dc2ce232ad69c04949cd086876e5d1377e05e50a9057bc42a0f8fbbe10a65fb85fa03dfb46c15f9ddd51611e9d893f4ef185031d9763b2993da04be00fd8b25cc0e66301241aeb7cb30cc9d2773a462526f505902e88c6e2b88aa03ccccfaf73b7021bbd84bdad8870b617001764327bf5a82ddc3408cb9c7f3c01a0c0d2b6cb18864033480fdc26ff90b0cc0b04a09dda996497d16aa7952c3c121aa0b187c359a02c322f518e60cc2fc0a853cbc7a12df9f2c3a61247db06d9609df2a06a6099f353cde0ee1dbbc437f04d85e900a2ce0022c39e5d1ce46bcd6efa633aa06a6f60049f9b98081bbb2460190093dd213f0c91d07a08225edb58a58c9dd878a0005685c259277e8ec0cd600206292435992217ba806295655a541db3dc3125eda0710477ce5bd6be49d929668b2b84532e5a9ee396e9a4d10dda00dfa4c27034d1a06df3edc55487ea93d6dc44cf15efc0ee3e6242e9abd69d39043f1fcaee8ab407a01c2603f2c69e0981e4c128309923b3c933b650e1a823f4ecf11bad366f917fcca0e707ac2041e3831be48842bea4f4e20ee5e1d7ae482320f97aa41bafa243cc56a0684d3dd8456691012cf873221a525978a6440fed69622beb11df70d1d4c5875ba002a1401bc6d917f7703c47328b87f8d1be0cc7eeb99f36220840400134d6a13fa086db68a4407388cdd3bb34b72c2296a816c50eb9228980c4b6e8e48bdcebe1f380b90114f90111a0b59085aa2abb7812f3f2cc1d17a541310dfba1f6724e6a58766b192c1ea45243a0386b4a3942bce86ab23f2f7aeb7744af83c05641dcceaf770a9b6709eb3a447a8080a067397e43cb539a79da4340afae2b733a73aff5a1f679e7d9bc93de6725911a4da00b49ee125a599730261e6bdd1e1bb194113b6da92645dc0b9f89720a2741ca1e80a0dcac12b7868711641c89e4716a7ee427a326dc2123108f9b26d54c69221319618080a0da3902685c6d4320b26835329a709ecacec70c9e66dadabe1739ca8e359b57f58080a0c645e35e3b423c52d50817d3f579a1e03bc8a940119aa52900ee12ff3b062d95a06dc776e64ca9e4e7b3cf7204b10014440ea3285aca4b76e5117536cb6e6828f38080b870f86e9e36014c0bf3b41fc7436da630e78e411d38c9242a73abc51b180191a01824b84df84b0187038d7ea4c68000a0d29e463cdb3cc38cda0e5e5850b09492bfad390fb672fccc26b6275d6b8d9ce6a02e047f4e06813a21fc8af6d939644b383ec1652eff5a01e6eb5e2b5deaa38973", + stateRoot: "0x834eba60b0c12e36268806a52a5bbd413a6b257ed3c21acc24be5de25896532e", tokenIdStorageProof: - "0xf9013bb90114f90111a09ae2d42574572fefe17c3fc7682bba16cc867798e23f90e69637e98f89e67dd580a060029653a062b2bf03b431c3aeec206f9ac4b079f6e47bb59236cbce30a4211c808080a00429664d55b4b47affb0645da2274d2cfa2dfd965a04cfbbdd072720898b9588a0197e1e050dd1156f4a2043797a2277cacbcc7d465ab12d5a7c75d74369b09701a055dd4bf519367f9acaa0381d117a392b2e9c0b66cc5a9d927392a17286f938c18080a07fe5dee9f1ee822caa56be7b6065c5d62e72a4247aacf091afe0b96859ab8352a00a88b6cc3b8c1c6cd9d6e352b9ea215061ff716fa924ce9e7f15d6ded830f4be8080a0a105ff835f97c9fea82b9e88316b60c8bb4c9da1bcba25bc9513d94e189aa5c880a3e2a03e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af02", + "0xf90191b90154f901518080a0f8f3e007292de6e4179e42ae51769409b82d31493a25b9f6982ef1a23d46b922a0c65eef82e01ae62449b2295b122ab27ff7766c9bfaef63b3fdf901fc5515d426808080a0197e1e050dd1156f4a2043797a2277cacbcc7d465ab12d5a7c75d74369b09701a05520ade2c25169337f7c03951d2791f9d0512f8342065094c9c64d6af5105d28a08c02f38d4248404a1c6cf395cd4f2b3503db40a41ca0bc8941db4ab26c0c9f04a0debd4817a92c06919b4edbd0e2d3de900aca85c57609d2fa4e2c1a4742b49f4fa00311f922e9a033ce3000961292327f7086850a426c3ffe1659f07877c2f730eaa062b7bd637d643d9f8f94919f2c0642d76cdff3a01c69590885b4f6341534ddfda08302f3aa719b49a87ea68fa3d4c9042727c292abc28457deeb600edb80665e6380a03a1e44d3669992d3ac3f750a1159442ba1d83432cb03e5815d7eed7d97c7e90380b838f7a03fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc539594f110a41f75edeb224227747b64be7f6a7f140abc", ownerStorageProof: - "0xf90151b90114f90111a09ae2d42574572fefe17c3fc7682bba16cc867798e23f90e69637e98f89e67dd580a060029653a062b2bf03b431c3aeec206f9ac4b079f6e47bb59236cbce30a4211c808080a00429664d55b4b47affb0645da2274d2cfa2dfd965a04cfbbdd072720898b9588a0197e1e050dd1156f4a2043797a2277cacbcc7d465ab12d5a7c75d74369b09701a055dd4bf519367f9acaa0381d117a392b2e9c0b66cc5a9d927392a17286f938c18080a07fe5dee9f1ee822caa56be7b6065c5d62e72a4247aacf091afe0b96859ab8352a00a88b6cc3b8c1c6cd9d6e352b9ea215061ff716fa924ce9e7f15d6ded830f4be8080a0a105ff835f97c9fea82b9e88316b60c8bb4c9da1bcba25bc9513d94e189aa5c880b838f7a03fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc539594f110a41f75edeb224227747b64be7f6a7f140abc", + "0xf90191b90154f901518080a0f8f3e007292de6e4179e42ae51769409b82d31493a25b9f6982ef1a23d46b922a0c65eef82e01ae62449b2295b122ab27ff7766c9bfaef63b3fdf901fc5515d426808080a0197e1e050dd1156f4a2043797a2277cacbcc7d465ab12d5a7c75d74369b09701a05520ade2c25169337f7c03951d2791f9d0512f8342065094c9c64d6af5105d28a08c02f38d4248404a1c6cf395cd4f2b3503db40a41ca0bc8941db4ab26c0c9f04a0debd4817a92c06919b4edbd0e2d3de900aca85c57609d2fa4e2c1a4742b49f4fa00311f922e9a033ce3000961292327f7086850a426c3ffe1659f07877c2f730eaa062b7bd637d643d9f8f94919f2c0642d76cdff3a01c69590885b4f6341534ddfda08302f3aa719b49a87ea68fa3d4c9042727c292abc28457deeb600edb80665e6380a03a1e44d3669992d3ac3f750a1159442ba1d83432cb03e5815d7eed7d97c7e90380b838f7a03fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc539594f110a41f75edeb224227747b64be7f6a7f140abc", }; -export const L2_RESOLVER_ADDRESS = "0xc83661315d6197D5e17E10Ce52282aF8a461c411"; +export const L2_RESOLVER_ADDRESS = "0x117F113aEFb9AeD23d901C1fa02fDdaA1d20cCaB"; export const DOMAIN_NAME = "julink.lineatest.eth"; diff --git a/packages/gateway/Dockerfile b/packages/gateway/Dockerfile index 3ff69adb5..12080852c 100644 --- a/packages/gateway/Dockerfile +++ b/packages/gateway/Dockerfile @@ -12,4 +12,4 @@ COPY --from=build /gateway . ARG L1_PROVIDER_URL ARG L2_PROVIDER_URL ARG L2_RESOLVER_ADDRESS -CMD yarn start \ No newline at end of file +CMD yarn start --l2_resolver_address 0x117F113aEFb9AeD23d901C1fa02fDdaA1d20cCaB --l1_provider_url https://goerli.infura.io/v3/9ed1bd75f3d14307b365c2270d2ea66f --l2_provider_url https://consensys-zkevm-goerli-prealpha.infura.io/v3/16fff764ff2145c2b137fbe8013730c6 \ No newline at end of file diff --git a/packages/gateway/src/index.ts b/packages/gateway/src/index.ts index 8fa98b284..865c54cf1 100644 --- a/packages/gateway/src/index.ts +++ b/packages/gateway/src/index.ts @@ -64,12 +64,8 @@ server.add(IResolverAbi, [ console.log("encodedName", encodedName); console.log("name", name); console.log("node", node); - // Slot Index of "mapping(bytes32 => uint256) public addresses" = 7 - const tokenIdSlot = ethers.utils.keccak256( - node + "00".repeat(31) + "07" - ); const to = request?.to; - console.log(1, { + console.log({ node, to, data, @@ -77,20 +73,6 @@ server.add(IResolverAbi, [ l2_provider_url, l2_resolver_address, }); - const blockNumber = (await l2provider.getBlock("latest")).number; - console.log(2, { blockNumber, tokenIdSlot }); - let tokenData; - try { - tokenData = await l2provider.getStorageAt( - l2_resolver_address, - tokenIdSlot - ); - } catch (e) { - console.log(3, { e }); - } - console.log(4, { - tokenData, - }); } const lastBlockFinalized = await rollup.lastFinalizedBatchHeight(); @@ -102,7 +84,6 @@ server.add(IResolverAbi, [ blockHash, false, ]); - console.log(5, { l2blockRaw }); const stateRoot = l2blockRaw.stateRoot; const blockarray = [ l2blockRaw.parentHash, @@ -124,7 +105,9 @@ server.add(IResolverAbi, [ ]; const encodedBlockArray = ethers.utils.RLP.encode(blockarray); - const tokenIdSlot = ethers.utils.keccak256(node + "00".repeat(31) + "07"); + // we get the slot address of the variable 'mapping(bytes32 => uint256) public addresses' + // which is at index 11 of the L2 resolver contract + const tokenIdSlot = ethers.utils.keccak256(node + "00".repeat(31) + "0B"); const tokenId = await l2provider.getStorageAt( l2_resolver_address, tokenIdSlot @@ -165,7 +148,7 @@ server.add(IResolverAbi, [ tokenIdStorageProof, ownerStorageProof, }; - console.log(6, { finalProof }); + console.log({ finalProof }); return [finalProof]; }, },