@aztec/archiver 0.0.1-commit.fce3e4f → 0.0.1-commit.ff7989d6c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +156 -22
- package/dest/archiver.d.ts +139 -0
- package/dest/archiver.d.ts.map +1 -0
- package/dest/archiver.js +699 -0
- package/dest/config.d.ts +30 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/{archiver/config.js → config.js} +21 -5
- package/dest/errors.d.ts +41 -0
- package/dest/errors.d.ts.map +1 -0
- package/dest/errors.js +62 -0
- package/dest/factory.d.ts +9 -7
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +97 -13
- package/dest/index.d.ts +11 -4
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +9 -3
- package/dest/interfaces.d.ts +9 -0
- package/dest/interfaces.d.ts.map +1 -0
- package/dest/interfaces.js +3 -0
- package/dest/l1/bin/retrieve-calldata.d.ts +3 -0
- package/dest/l1/bin/retrieve-calldata.d.ts.map +1 -0
- package/dest/l1/bin/retrieve-calldata.js +148 -0
- package/dest/l1/calldata_retriever.d.ts +118 -0
- package/dest/l1/calldata_retriever.d.ts.map +1 -0
- package/dest/l1/calldata_retriever.js +484 -0
- package/dest/l1/data_retrieval.d.ts +89 -0
- package/dest/l1/data_retrieval.d.ts.map +1 -0
- package/dest/{archiver → l1}/data_retrieval.js +80 -153
- package/dest/l1/debug_tx.d.ts +19 -0
- package/dest/l1/debug_tx.d.ts.map +1 -0
- package/dest/l1/debug_tx.js +73 -0
- package/dest/l1/spire_proposer.d.ts +70 -0
- package/dest/l1/spire_proposer.d.ts.map +1 -0
- package/dest/l1/spire_proposer.js +157 -0
- package/dest/l1/trace_tx.d.ts +97 -0
- package/dest/l1/trace_tx.d.ts.map +1 -0
- package/dest/l1/trace_tx.js +91 -0
- package/dest/l1/types.d.ts +12 -0
- package/dest/l1/types.d.ts.map +1 -0
- package/dest/l1/types.js +3 -0
- package/dest/l1/validate_trace.d.ts +32 -0
- package/dest/l1/validate_trace.d.ts.map +1 -0
- package/dest/l1/validate_trace.js +154 -0
- package/dest/modules/data_source_base.d.ts +89 -0
- package/dest/modules/data_source_base.d.ts.map +1 -0
- package/dest/modules/data_source_base.js +216 -0
- package/dest/modules/data_store_updater.d.ts +80 -0
- package/dest/modules/data_store_updater.d.ts.map +1 -0
- package/dest/modules/data_store_updater.js +323 -0
- package/dest/modules/instrumentation.d.ts +39 -0
- package/dest/modules/instrumentation.d.ts.map +1 -0
- package/dest/{archiver → modules}/instrumentation.js +39 -62
- package/dest/modules/l1_synchronizer.d.ts +76 -0
- package/dest/modules/l1_synchronizer.d.ts.map +1 -0
- package/dest/modules/l1_synchronizer.js +1112 -0
- package/dest/modules/validation.d.ts +17 -0
- package/dest/modules/validation.d.ts.map +1 -0
- package/dest/{archiver → modules}/validation.js +7 -1
- package/dest/store/block_store.d.ts +196 -0
- package/dest/store/block_store.d.ts.map +1 -0
- package/dest/store/block_store.js +773 -0
- package/dest/store/contract_class_store.d.ts +18 -0
- package/dest/store/contract_class_store.d.ts.map +1 -0
- package/dest/{archiver/kv_archiver_store → store}/contract_class_store.js +13 -9
- package/dest/store/contract_instance_store.d.ts +24 -0
- package/dest/store/contract_instance_store.d.ts.map +1 -0
- package/dest/{archiver/kv_archiver_store → store}/contract_instance_store.js +1 -1
- package/dest/store/kv_archiver_store.d.ts +354 -0
- package/dest/store/kv_archiver_store.d.ts.map +1 -0
- package/dest/store/kv_archiver_store.js +464 -0
- package/dest/store/l2_tips_cache.d.ts +19 -0
- package/dest/store/l2_tips_cache.d.ts.map +1 -0
- package/dest/store/l2_tips_cache.js +89 -0
- package/dest/store/log_store.d.ts +54 -0
- package/dest/store/log_store.d.ts.map +1 -0
- package/dest/store/log_store.js +456 -0
- package/dest/store/message_store.d.ts +40 -0
- package/dest/store/message_store.d.ts.map +1 -0
- package/dest/{archiver/kv_archiver_store → store}/message_store.js +15 -14
- package/dest/{archiver/structs → structs}/data_retrieval.d.ts +1 -1
- package/dest/structs/data_retrieval.d.ts.map +1 -0
- package/dest/structs/inbox_message.d.ts +15 -0
- package/dest/structs/inbox_message.d.ts.map +1 -0
- package/dest/{archiver/structs → structs}/inbox_message.js +6 -5
- package/dest/structs/published.d.ts +2 -0
- package/dest/structs/published.d.ts.map +1 -0
- package/dest/test/fake_l1_state.d.ts +193 -0
- package/dest/test/fake_l1_state.d.ts.map +1 -0
- package/dest/test/fake_l1_state.js +389 -0
- package/dest/test/index.d.ts +2 -1
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +4 -1
- package/dest/test/mock_archiver.d.ts +16 -8
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_archiver.js +19 -14
- package/dest/test/mock_l1_to_l2_message_source.d.ts +7 -6
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +21 -11
- package/dest/test/mock_l2_block_source.d.ts +51 -18
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +245 -82
- package/dest/test/mock_structs.d.ts +80 -4
- package/dest/test/mock_structs.d.ts.map +1 -1
- package/dest/test/mock_structs.js +145 -11
- package/dest/test/noop_l1_archiver.d.ts +23 -0
- package/dest/test/noop_l1_archiver.d.ts.map +1 -0
- package/dest/test/noop_l1_archiver.js +68 -0
- package/package.json +20 -20
- package/src/archiver.ts +443 -0
- package/src/{archiver/config.ts → config.ts} +28 -12
- package/src/errors.ts +102 -0
- package/src/factory.ts +143 -13
- package/src/index.ts +11 -3
- package/src/interfaces.ts +9 -0
- package/src/l1/README.md +98 -0
- package/src/l1/bin/retrieve-calldata.ts +181 -0
- package/src/l1/calldata_retriever.ts +663 -0
- package/src/{archiver → l1}/data_retrieval.ts +146 -224
- package/src/l1/debug_tx.ts +99 -0
- package/src/l1/spire_proposer.ts +160 -0
- package/src/l1/trace_tx.ts +128 -0
- package/src/l1/types.ts +13 -0
- package/src/l1/validate_trace.ts +229 -0
- package/src/modules/data_source_base.ts +328 -0
- package/src/modules/data_store_updater.ts +448 -0
- package/src/{archiver → modules}/instrumentation.ts +43 -66
- package/src/modules/l1_synchronizer.ts +932 -0
- package/src/{archiver → modules}/validation.ts +11 -6
- package/src/store/block_store.ts +1015 -0
- package/src/{archiver/kv_archiver_store → store}/contract_class_store.ts +13 -9
- package/src/{archiver/kv_archiver_store → store}/contract_instance_store.ts +2 -2
- package/src/store/kv_archiver_store.ts +671 -0
- package/src/store/l2_tips_cache.ts +89 -0
- package/src/store/log_store.ts +637 -0
- package/src/{archiver/kv_archiver_store → store}/message_store.ts +21 -18
- package/src/{archiver/structs → structs}/inbox_message.ts +8 -8
- package/src/{archiver/structs → structs}/published.ts +0 -1
- package/src/test/fake_l1_state.ts +607 -0
- package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
- package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
- package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
- package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
- package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
- package/src/test/fixtures/trace_transaction-proxied.json +128 -0
- package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
- package/src/test/index.ts +4 -0
- package/src/test/mock_archiver.ts +23 -16
- package/src/test/mock_l1_to_l2_message_source.ts +18 -11
- package/src/test/mock_l2_block_source.ts +296 -90
- package/src/test/mock_structs.ts +275 -13
- package/src/test/noop_l1_archiver.ts +109 -0
- package/dest/archiver/archiver.d.ts +0 -287
- package/dest/archiver/archiver.d.ts.map +0 -1
- package/dest/archiver/archiver.js +0 -1408
- package/dest/archiver/archiver_store.d.ts +0 -255
- package/dest/archiver/archiver_store.d.ts.map +0 -1
- package/dest/archiver/archiver_store.js +0 -4
- package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
- package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
- package/dest/archiver/archiver_store_test_suite.js +0 -1289
- package/dest/archiver/config.d.ts +0 -21
- package/dest/archiver/config.d.ts.map +0 -1
- package/dest/archiver/data_retrieval.d.ts +0 -79
- package/dest/archiver/data_retrieval.d.ts.map +0 -1
- package/dest/archiver/errors.d.ts +0 -12
- package/dest/archiver/errors.d.ts.map +0 -1
- package/dest/archiver/errors.js +0 -17
- package/dest/archiver/index.d.ts +0 -7
- package/dest/archiver/index.d.ts.map +0 -1
- package/dest/archiver/index.js +0 -4
- package/dest/archiver/instrumentation.d.ts +0 -35
- package/dest/archiver/instrumentation.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/block_store.d.ts +0 -124
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/block_store.js +0 -370
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +0 -18
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +0 -24
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +0 -168
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +0 -296
- package/dest/archiver/kv_archiver_store/log_store.d.ts +0 -49
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/log_store.js +0 -336
- package/dest/archiver/kv_archiver_store/message_store.d.ts +0 -39
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +0 -1
- package/dest/archiver/structs/data_retrieval.d.ts.map +0 -1
- package/dest/archiver/structs/inbox_message.d.ts +0 -15
- package/dest/archiver/structs/inbox_message.d.ts.map +0 -1
- package/dest/archiver/structs/published.d.ts +0 -3
- package/dest/archiver/structs/published.d.ts.map +0 -1
- package/dest/archiver/validation.d.ts +0 -17
- package/dest/archiver/validation.d.ts.map +0 -1
- package/dest/rpc/index.d.ts +0 -9
- package/dest/rpc/index.d.ts.map +0 -1
- package/dest/rpc/index.js +0 -15
- package/src/archiver/archiver.ts +0 -1858
- package/src/archiver/archiver_store.ts +0 -305
- package/src/archiver/archiver_store_test_suite.ts +0 -1264
- package/src/archiver/errors.ts +0 -26
- package/src/archiver/index.ts +0 -6
- package/src/archiver/kv_archiver_store/block_store.ts +0 -481
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +0 -422
- package/src/archiver/kv_archiver_store/log_store.ts +0 -406
- package/src/rpc/index.ts +0 -16
- /package/dest/{archiver/structs → structs}/data_retrieval.js +0 -0
- /package/dest/{archiver/structs → structs}/published.js +0 -0
- /package/src/{archiver/structs → structs}/data_retrieval.ts +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"action": {
|
|
4
|
+
"from": "0x8b5606469e21c75edd7c74d1c7a65824675d9aff",
|
|
5
|
+
"callType": "call",
|
|
6
|
+
"gas": "0x3ea78",
|
|
7
|
+
"input": "0x1bc7452600000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb95226000000000000000000000000ca11bde05977b3631167028862be2a173976ca1100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055e610000000000000000000000000000000000000000000000000000000000000e0482ad56cb000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000603bb2c05d474794ea97805e8de69bccfb3bca12000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000d0448aeda190bf3b7150c20687badb924d180e3eaa507107b45648cee974c2c506a3a5847b02e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d600000000000000000000000000000000000000000000000000000000000398a01fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012a6a43a5c02d9181de914805f6e795c30578eb13f1f7186a59b29d4b220de12001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f4800000000000000000000000000000000000000000000000000000000692ff81300000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb9522605e99ba6c937cd68f050c561df09103266590858801dd7181710226d968ad173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000009c0000000000000000000000000000000000000000000000000000000000000001c18829e9b7071e55e1dcc90bbaffe92b06b74a8857b8aa6769a09864bd2fbf5873309fcfd19c49dfb21ee6c5fa326384f319d6f434c06028c4424e2b2525ab10a0000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003fffff5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1c1ac25ad550a34b32a56760b9729d277789c39b5f6cf3bf3c0621c9770a56b4ea35d8cd60e473a35343d402371a3afc0c03096a5e367f45dd361a9b955e7570041c9365fe895f28e90160f2c96ad02a249de87d9e00d13aa9d680005f3b6ceca9242fcf35d0358a3f0953a96f27d985eee91c6cb31c7b447655bc5f4db6a0e233f61cfdf92cacf15d8bf897ab57e9c49e8fe6f20da7b6cd46f29c58dd886e405beb9d5ab6a51886ad1ab1d0f7554ee895158fd9ed08d21223dfd234f1b2dfab5c14ed1ce97ff9bb287f50b1bda12e522e246ccb75222367600daeb74b818041f27573e86a5f46c943176d37e4f071c96a9950e03a717fd04c8c132775a0a34dda53e17e1ccaebf5bf2fecbdaef9b9a35f7ba3a7d47a2d7b0745566bc7f02b517c7177ebdf778d1679e19cf7a523aa560fc2c7d46ff67a95311c2aa6fd098c80db04c9d5801b5c5d79c45bd19fb86d349cd634f967976a17da1ba0705f1d84e41a6dd92cc3fc608c55e0037bc89ffe94f27b4042cfdd309b37f04c44b16f58432988c28d2bc91ba8f6b0da71183eb59e6655d1d85145afe867a432168263e03860c156fa32b2293ea9c77368fbc85f526cae96c0f9a715d6aff6aa33922819ee3a897253a084101be4aeeaeaeaa4af2c8371dd4c380c959478fe1a0b417e2700f9308fffcd0b388c3909e02edb0a821bca446c644e46630ee59bfb6fbe74e3d88e52fcb287df30741c0dd87d086fa118fd67b10a40be7c0a9484574c96fdce8c737a7aa6ae9215f13b4d7b20cba2b7490d750f9c884f1cddcdd75cd8e13fdee995a2dbfd648056c8c31bb25e3d166e2e69c336d0f9e5b4c73849d3db1404afbfd53f642786d7e82389781c669e7e0171bbd610490f9b7a86f922606c9c2b8dbd1d0b88d63a31a04f02201cd48a85263c66905ccd249a7aef56ca3a222a44a06cd867df197926e4eb77901277130391c22bc67b37f59d7ef59079433dc91402eadb41b1adcde9164aba2b851c38f2b82d1c95758cdf039c1ad8df882bd4327a2b3808788411e5c56ff5b6156e1a9d795cad409c146448b69e8c51f65264ab25cd4e8021d43d870d86143cd5901c5a39897c312e7901ca9ed8335b1683531219facf0bc75125f004e30f81f188811e516e4a9676c6e00c5c0b23a34731d3b494a44371d184a3648ac1278e903fa71c813674453a9c31e820d6b1a5ffd9e4aa5d8d8cc7dd94e8cde178f714cfa0c54e136fefec5c27eb04dcd9e0712141772284e024adb9571a4a09389e716860de531b09b29ce61d2d2961c883269bbebd99ca7f361c58d8c5f6c06ef0927867ab51d764080b934a451b2a2ae0f9dec85d90f0614c1ddddc78b648f1ba6ffa297ca9d21c34796c31d906e5a61ae03f958448a840e7bd1f2113d7fa3648708a776195811d42bd160183ce5be0fe1bfabb680608404245862b8d6219991646cb35154c14391c487d5f9e2d8507f8c41bc9bcea7a7efda2b448d891845286adf081b1e52f7d3356d0ebabc274e97d50cf2c660d9ddb411f6cf043380220c5b418a005f87bb7d81cd2ae4a5dd62fb4ced4e773c8afb46ddd254d0fb65f3b62f2a407b10ee3f7a6e507fc215401072e51320e05214e2e2e1e60bf3a7adb1a569a4375c3b9644b42721bb69109a8a534b01ac03b79f562cc2aa81573bf943b3e077f0261d9dfdee855e678cf8368c39ab48935d8c7e78f2dc0bb245e77a07f391acb0d97ede9131fdc191b6c0907dd7fbf4d8f829de2f069d02129ec1a6fbe50b654a755eaed2ddc319f8a3b388cec066b268179ee2e9134ec6cb687751c679a85c020bb069adbd7ac45db9d0c6f628d15bd51d41dda5d02b77ea52283ff9d1c7e1a1c172a010c8b831cbc55ccda21aeba265c8076e689262b1df516e3b039c10755f290efb3f36439abc5a5709ce7d34901ec41ff434df298c70eb52e3c6173f8bf4f5ab963e5b6b6e1895260fc953abbefec651b77363be40f0af23366d046d4467e2ea8947d2dad1b21a94aec7c97293041045b1e5bbd27ce9185b6368a932f9787b11bca7f06d74fd8c2f91db3b4f73ec57f78000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000006035f04341c68f9a8e43bf016d2d15e49c9d100b000000000000000000000000f755bad88dfa59abec72efaaaaf30190848a141c000000000000000000000000586e24dbe07ddc751955f89c12d781790b1fe53f000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d6800200000000000000000000000070f042dc4981c2e1e5fdcebd59981b8aa4e67b3c000000000000000000000000f0b35c28b111a83dd19b79c36b23e71b6bdc22be00000000000000000000000057445cbae08c07315e213189ace01788ebe787f5000000000000000000000000e052bda9f05e8e34ce1ffd72a2b136028efbede000000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb952260000000000000000000000006535deb539a0996d2c68dd1a7825adab4ca87ed40000000000000000000000005e473b14cdc29ddf90b29332652db4f7d6c324ea0000000000000000000000002de16e88e5abd2882c1674c9449c5cfff47b9b7c00000000000000000000000071b4b1611e2dad0122527b80f3db7f4e4bb1266d000000000000000000000000dff79657fb5c92dc60de8a02a21aca14374b9dd4000000000000000000000000a7fcaf657414ee41b0ce86e4de275190e8085a500000000000000000000000002d2eebe1a29c674d4a77c3c62221fdb488862be6000000000000000000000000397431824789531fa895ea94aaf11b6de3232451000000000000000000000000844d4c2daa1b7f6ea83a4f3ef7bbde0c297b4ce90000000000000000000000005335dc50dfd0073df32f5a4a93870fd5b30bee440000000000000000000000009c9f10582ec809f04df20ea2e277806ce559733d000000000000000000000000ac1d53c2cf80760920c1593d5a7210e913d9544000000000000000000000000044ffe0f5738907483254aec89647dd1879576f24000000000000000000000000000000000000000000000000000000000000003101c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
8
|
+
"to": "0x9ccc2f3ecde026230e11a5c8799ac7524f2bb294",
|
|
9
|
+
"value": "0x0"
|
|
10
|
+
},
|
|
11
|
+
"blockHash": "0xd39f7804c758165d54ecb66a0601292a99865262f3b0ead4f5e43f5419bf1911",
|
|
12
|
+
"blockNumber": 23931800,
|
|
13
|
+
"result": {
|
|
14
|
+
"gasUsed": "0x32728",
|
|
15
|
+
"output": "0x"
|
|
16
|
+
},
|
|
17
|
+
"subtraces": 1,
|
|
18
|
+
"traceAddress": [],
|
|
19
|
+
"transactionHash": "0xd08a109aec1af7d69dffa15272255d64dfda9781f5837163502d4216f0191c03",
|
|
20
|
+
"transactionPosition": 231,
|
|
21
|
+
"type": "call"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"action": {
|
|
25
|
+
"from": "0x9ccc2f3ecde026230e11a5c8799ac7524f2bb294",
|
|
26
|
+
"callType": "delegatecall",
|
|
27
|
+
"gas": "0x3c4ef",
|
|
28
|
+
"input": "0x1bc7452600000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb95226000000000000000000000000ca11bde05977b3631167028862be2a173976ca1100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055e610000000000000000000000000000000000000000000000000000000000000e0482ad56cb000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000603bb2c05d474794ea97805e8de69bccfb3bca12000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000d0448aeda190bf3b7150c20687badb924d180e3eaa507107b45648cee974c2c506a3a5847b02e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d600000000000000000000000000000000000000000000000000000000000398a01fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012a6a43a5c02d9181de914805f6e795c30578eb13f1f7186a59b29d4b220de12001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f4800000000000000000000000000000000000000000000000000000000692ff81300000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb9522605e99ba6c937cd68f050c561df09103266590858801dd7181710226d968ad173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000009c0000000000000000000000000000000000000000000000000000000000000001c18829e9b7071e55e1dcc90bbaffe92b06b74a8857b8aa6769a09864bd2fbf5873309fcfd19c49dfb21ee6c5fa326384f319d6f434c06028c4424e2b2525ab10a0000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003fffff5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1c1ac25ad550a34b32a56760b9729d277789c39b5f6cf3bf3c0621c9770a56b4ea35d8cd60e473a35343d402371a3afc0c03096a5e367f45dd361a9b955e7570041c9365fe895f28e90160f2c96ad02a249de87d9e00d13aa9d680005f3b6ceca9242fcf35d0358a3f0953a96f27d985eee91c6cb31c7b447655bc5f4db6a0e233f61cfdf92cacf15d8bf897ab57e9c49e8fe6f20da7b6cd46f29c58dd886e405beb9d5ab6a51886ad1ab1d0f7554ee895158fd9ed08d21223dfd234f1b2dfab5c14ed1ce97ff9bb287f50b1bda12e522e246ccb75222367600daeb74b818041f27573e86a5f46c943176d37e4f071c96a9950e03a717fd04c8c132775a0a34dda53e17e1ccaebf5bf2fecbdaef9b9a35f7ba3a7d47a2d7b0745566bc7f02b517c7177ebdf778d1679e19cf7a523aa560fc2c7d46ff67a95311c2aa6fd098c80db04c9d5801b5c5d79c45bd19fb86d349cd634f967976a17da1ba0705f1d84e41a6dd92cc3fc608c55e0037bc89ffe94f27b4042cfdd309b37f04c44b16f58432988c28d2bc91ba8f6b0da71183eb59e6655d1d85145afe867a432168263e03860c156fa32b2293ea9c77368fbc85f526cae96c0f9a715d6aff6aa33922819ee3a897253a084101be4aeeaeaeaa4af2c8371dd4c380c959478fe1a0b417e2700f9308fffcd0b388c3909e02edb0a821bca446c644e46630ee59bfb6fbe74e3d88e52fcb287df30741c0dd87d086fa118fd67b10a40be7c0a9484574c96fdce8c737a7aa6ae9215f13b4d7b20cba2b7490d750f9c884f1cddcdd75cd8e13fdee995a2dbfd648056c8c31bb25e3d166e2e69c336d0f9e5b4c73849d3db1404afbfd53f642786d7e82389781c669e7e0171bbd610490f9b7a86f922606c9c2b8dbd1d0b88d63a31a04f02201cd48a85263c66905ccd249a7aef56ca3a222a44a06cd867df197926e4eb77901277130391c22bc67b37f59d7ef59079433dc91402eadb41b1adcde9164aba2b851c38f2b82d1c95758cdf039c1ad8df882bd4327a2b3808788411e5c56ff5b6156e1a9d795cad409c146448b69e8c51f65264ab25cd4e8021d43d870d86143cd5901c5a39897c312e7901ca9ed8335b1683531219facf0bc75125f004e30f81f188811e516e4a9676c6e00c5c0b23a34731d3b494a44371d184a3648ac1278e903fa71c813674453a9c31e820d6b1a5ffd9e4aa5d8d8cc7dd94e8cde178f714cfa0c54e136fefec5c27eb04dcd9e0712141772284e024adb9571a4a09389e716860de531b09b29ce61d2d2961c883269bbebd99ca7f361c58d8c5f6c06ef0927867ab51d764080b934a451b2a2ae0f9dec85d90f0614c1ddddc78b648f1ba6ffa297ca9d21c34796c31d906e5a61ae03f958448a840e7bd1f2113d7fa3648708a776195811d42bd160183ce5be0fe1bfabb680608404245862b8d6219991646cb35154c14391c487d5f9e2d8507f8c41bc9bcea7a7efda2b448d891845286adf081b1e52f7d3356d0ebabc274e97d50cf2c660d9ddb411f6cf043380220c5b418a005f87bb7d81cd2ae4a5dd62fb4ced4e773c8afb46ddd254d0fb65f3b62f2a407b10ee3f7a6e507fc215401072e51320e05214e2e2e1e60bf3a7adb1a569a4375c3b9644b42721bb69109a8a534b01ac03b79f562cc2aa81573bf943b3e077f0261d9dfdee855e678cf8368c39ab48935d8c7e78f2dc0bb245e77a07f391acb0d97ede9131fdc191b6c0907dd7fbf4d8f829de2f069d02129ec1a6fbe50b654a755eaed2ddc319f8a3b388cec066b268179ee2e9134ec6cb687751c679a85c020bb069adbd7ac45db9d0c6f628d15bd51d41dda5d02b77ea52283ff9d1c7e1a1c172a010c8b831cbc55ccda21aeba265c8076e689262b1df516e3b039c10755f290efb3f36439abc5a5709ce7d34901ec41ff434df298c70eb52e3c6173f8bf4f5ab963e5b6b6e1895260fc953abbefec651b77363be40f0af23366d046d4467e2ea8947d2dad1b21a94aec7c97293041045b1e5bbd27ce9185b6368a932f9787b11bca7f06d74fd8c2f91db3b4f73ec57f78000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000006035f04341c68f9a8e43bf016d2d15e49c9d100b000000000000000000000000f755bad88dfa59abec72efaaaaf30190848a141c000000000000000000000000586e24dbe07ddc751955f89c12d781790b1fe53f000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d6800200000000000000000000000070f042dc4981c2e1e5fdcebd59981b8aa4e67b3c000000000000000000000000f0b35c28b111a83dd19b79c36b23e71b6bdc22be00000000000000000000000057445cbae08c07315e213189ace01788ebe787f5000000000000000000000000e052bda9f05e8e34ce1ffd72a2b136028efbede000000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb952260000000000000000000000006535deb539a0996d2c68dd1a7825adab4ca87ed40000000000000000000000005e473b14cdc29ddf90b29332652db4f7d6c324ea0000000000000000000000002de16e88e5abd2882c1674c9449c5cfff47b9b7c00000000000000000000000071b4b1611e2dad0122527b80f3db7f4e4bb1266d000000000000000000000000dff79657fb5c92dc60de8a02a21aca14374b9dd4000000000000000000000000a7fcaf657414ee41b0ce86e4de275190e8085a500000000000000000000000002d2eebe1a29c674d4a77c3c62221fdb488862be6000000000000000000000000397431824789531fa895ea94aaf11b6de3232451000000000000000000000000844d4c2daa1b7f6ea83a4f3ef7bbde0c297b4ce90000000000000000000000005335dc50dfd0073df32f5a4a93870fd5b30bee440000000000000000000000009c9f10582ec809f04df20ea2e277806ce559733d000000000000000000000000ac1d53c2cf80760920c1593d5a7210e913d9544000000000000000000000000044ffe0f5738907483254aec89647dd1879576f24000000000000000000000000000000000000000000000000000000000000003101c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
29
|
+
"to": "0x7d38d47e7c82195e6e607d3b0f1c20c615c7bf42",
|
|
30
|
+
"value": "0x0"
|
|
31
|
+
},
|
|
32
|
+
"blockHash": "0xd39f7804c758165d54ecb66a0601292a99865262f3b0ead4f5e43f5419bf1911",
|
|
33
|
+
"blockNumber": 23931800,
|
|
34
|
+
"result": {
|
|
35
|
+
"gasUsed": "0x310ca",
|
|
36
|
+
"output": "0x"
|
|
37
|
+
},
|
|
38
|
+
"subtraces": 1,
|
|
39
|
+
"traceAddress": [0],
|
|
40
|
+
"transactionHash": "0xd08a109aec1af7d69dffa15272255d64dfda9781f5837163502d4216f0191c03",
|
|
41
|
+
"transactionPosition": 231,
|
|
42
|
+
"type": "call"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"action": {
|
|
46
|
+
"from": "0x9ccc2f3ecde026230e11a5c8799ac7524f2bb294",
|
|
47
|
+
"callType": "call",
|
|
48
|
+
"gas": "0x39771",
|
|
49
|
+
"input": "0xab98c5f8000000000000000000000000ca11bde05977b3631167028862be2a173976ca11000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0482ad56cb000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000603bb2c05d474794ea97805e8de69bccfb3bca12000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000d0448aeda190bf3b7150c20687badb924d180e3eaa507107b45648cee974c2c506a3a5847b02e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d600000000000000000000000000000000000000000000000000000000000398a01fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012a6a43a5c02d9181de914805f6e795c30578eb13f1f7186a59b29d4b220de12001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f4800000000000000000000000000000000000000000000000000000000692ff81300000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb9522605e99ba6c937cd68f050c561df09103266590858801dd7181710226d968ad173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000009c0000000000000000000000000000000000000000000000000000000000000001c18829e9b7071e55e1dcc90bbaffe92b06b74a8857b8aa6769a09864bd2fbf5873309fcfd19c49dfb21ee6c5fa326384f319d6f434c06028c4424e2b2525ab10a0000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003fffff5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1c1ac25ad550a34b32a56760b9729d277789c39b5f6cf3bf3c0621c9770a56b4ea35d8cd60e473a35343d402371a3afc0c03096a5e367f45dd361a9b955e7570041c9365fe895f28e90160f2c96ad02a249de87d9e00d13aa9d680005f3b6ceca9242fcf35d0358a3f0953a96f27d985eee91c6cb31c7b447655bc5f4db6a0e233f61cfdf92cacf15d8bf897ab57e9c49e8fe6f20da7b6cd46f29c58dd886e405beb9d5ab6a51886ad1ab1d0f7554ee895158fd9ed08d21223dfd234f1b2dfab5c14ed1ce97ff9bb287f50b1bda12e522e246ccb75222367600daeb74b818041f27573e86a5f46c943176d37e4f071c96a9950e03a717fd04c8c132775a0a34dda53e17e1ccaebf5bf2fecbdaef9b9a35f7ba3a7d47a2d7b0745566bc7f02b517c7177ebdf778d1679e19cf7a523aa560fc2c7d46ff67a95311c2aa6fd098c80db04c9d5801b5c5d79c45bd19fb86d349cd634f967976a17da1ba0705f1d84e41a6dd92cc3fc608c55e0037bc89ffe94f27b4042cfdd309b37f04c44b16f58432988c28d2bc91ba8f6b0da71183eb59e6655d1d85145afe867a432168263e03860c156fa32b2293ea9c77368fbc85f526cae96c0f9a715d6aff6aa33922819ee3a897253a084101be4aeeaeaeaa4af2c8371dd4c380c959478fe1a0b417e2700f9308fffcd0b388c3909e02edb0a821bca446c644e46630ee59bfb6fbe74e3d88e52fcb287df30741c0dd87d086fa118fd67b10a40be7c0a9484574c96fdce8c737a7aa6ae9215f13b4d7b20cba2b7490d750f9c884f1cddcdd75cd8e13fdee995a2dbfd648056c8c31bb25e3d166e2e69c336d0f9e5b4c73849d3db1404afbfd53f642786d7e82389781c669e7e0171bbd610490f9b7a86f922606c9c2b8dbd1d0b88d63a31a04f02201cd48a85263c66905ccd249a7aef56ca3a222a44a06cd867df197926e4eb77901277130391c22bc67b37f59d7ef59079433dc91402eadb41b1adcde9164aba2b851c38f2b82d1c95758cdf039c1ad8df882bd4327a2b3808788411e5c56ff5b6156e1a9d795cad409c146448b69e8c51f65264ab25cd4e8021d43d870d86143cd5901c5a39897c312e7901ca9ed8335b1683531219facf0bc75125f004e30f81f188811e516e4a9676c6e00c5c0b23a34731d3b494a44371d184a3648ac1278e903fa71c813674453a9c31e820d6b1a5ffd9e4aa5d8d8cc7dd94e8cde178f714cfa0c54e136fefec5c27eb04dcd9e0712141772284e024adb9571a4a09389e716860de531b09b29ce61d2d2961c883269bbebd99ca7f361c58d8c5f6c06ef0927867ab51d764080b934a451b2a2ae0f9dec85d90f0614c1ddddc78b648f1ba6ffa297ca9d21c34796c31d906e5a61ae03f958448a840e7bd1f2113d7fa3648708a776195811d42bd160183ce5be0fe1bfabb680608404245862b8d6219991646cb35154c14391c487d5f9e2d8507f8c41bc9bcea7a7efda2b448d891845286adf081b1e52f7d3356d0ebabc274e97d50cf2c660d9ddb411f6cf043380220c5b418a005f87bb7d81cd2ae4a5dd62fb4ced4e773c8afb46ddd254d0fb65f3b62f2a407b10ee3f7a6e507fc215401072e51320e05214e2e2e1e60bf3a7adb1a569a4375c3b9644b42721bb69109a8a534b01ac03b79f562cc2aa81573bf943b3e077f0261d9dfdee855e678cf8368c39ab48935d8c7e78f2dc0bb245e77a07f391acb0d97ede9131fdc191b6c0907dd7fbf4d8f829de2f069d02129ec1a6fbe50b654a755eaed2ddc319f8a3b388cec066b268179ee2e9134ec6cb687751c679a85c020bb069adbd7ac45db9d0c6f628d15bd51d41dda5d02b77ea52283ff9d1c7e1a1c172a010c8b831cbc55ccda21aeba265c8076e689262b1df516e3b039c10755f290efb3f36439abc5a5709ce7d34901ec41ff434df298c70eb52e3c6173f8bf4f5ab963e5b6b6e1895260fc953abbefec651b77363be40f0af23366d046d4467e2ea8947d2dad1b21a94aec7c97293041045b1e5bbd27ce9185b6368a932f9787b11bca7f06d74fd8c2f91db3b4f73ec57f78000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000006035f04341c68f9a8e43bf016d2d15e49c9d100b000000000000000000000000f755bad88dfa59abec72efaaaaf30190848a141c000000000000000000000000586e24dbe07ddc751955f89c12d781790b1fe53f000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d6800200000000000000000000000070f042dc4981c2e1e5fdcebd59981b8aa4e67b3c000000000000000000000000f0b35c28b111a83dd19b79c36b23e71b6bdc22be00000000000000000000000057445cbae08c07315e213189ace01788ebe787f5000000000000000000000000e052bda9f05e8e34ce1ffd72a2b136028efbede000000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb952260000000000000000000000006535deb539a0996d2c68dd1a7825adab4ca87ed40000000000000000000000005e473b14cdc29ddf90b29332652db4f7d6c324ea0000000000000000000000002de16e88e5abd2882c1674c9449c5cfff47b9b7c00000000000000000000000071b4b1611e2dad0122527b80f3db7f4e4bb1266d000000000000000000000000dff79657fb5c92dc60de8a02a21aca14374b9dd4000000000000000000000000a7fcaf657414ee41b0ce86e4de275190e8085a500000000000000000000000002d2eebe1a29c674d4a77c3c62221fdb488862be6000000000000000000000000397431824789531fa895ea94aaf11b6de3232451000000000000000000000000844d4c2daa1b7f6ea83a4f3ef7bbde0c297b4ce90000000000000000000000005335dc50dfd0073df32f5a4a93870fd5b30bee440000000000000000000000009c9f10582ec809f04df20ea2e277806ce559733d000000000000000000000000ac1d53c2cf80760920c1593d5a7210e913d9544000000000000000000000000044ffe0f5738907483254aec89647dd1879576f24000000000000000000000000000000000000000000000000000000000000003101c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
50
|
+
"to": "0x84b4f526b3f4be78f967ebf566bbb65ffbb95226",
|
|
51
|
+
"value": "0x0"
|
|
52
|
+
},
|
|
53
|
+
"blockHash": "0xd39f7804c758165d54ecb66a0601292a99865262f3b0ead4f5e43f5419bf1911",
|
|
54
|
+
"blockNumber": 23931800,
|
|
55
|
+
"result": {
|
|
56
|
+
"gasUsed": "0x2e893",
|
|
57
|
+
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
58
|
+
},
|
|
59
|
+
"subtraces": 1,
|
|
60
|
+
"traceAddress": [0, 0],
|
|
61
|
+
"transactionHash": "0xd08a109aec1af7d69dffa15272255d64dfda9781f5837163502d4216f0191c03",
|
|
62
|
+
"transactionPosition": 231,
|
|
63
|
+
"type": "call"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"action": {
|
|
67
|
+
"from": "0x84b4f526b3f4be78f967ebf566bbb65ffbb95226",
|
|
68
|
+
"callType": "call",
|
|
69
|
+
"gas": "0x379a1",
|
|
70
|
+
"input": "0x82ad56cb000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000603bb2c05d474794ea97805e8de69bccfb3bca12000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000d0448aeda190bf3b7150c20687badb924d180e3eaa507107b45648cee974c2c506a3a5847b02e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d600000000000000000000000000000000000000000000000000000000000398a01fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012a6a43a5c02d9181de914805f6e795c30578eb13f1f7186a59b29d4b220de12001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f4800000000000000000000000000000000000000000000000000000000692ff81300000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb9522605e99ba6c937cd68f050c561df09103266590858801dd7181710226d968ad173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000009c0000000000000000000000000000000000000000000000000000000000000001c18829e9b7071e55e1dcc90bbaffe92b06b74a8857b8aa6769a09864bd2fbf5873309fcfd19c49dfb21ee6c5fa326384f319d6f434c06028c4424e2b2525ab10a0000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003fffff5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1c1ac25ad550a34b32a56760b9729d277789c39b5f6cf3bf3c0621c9770a56b4ea35d8cd60e473a35343d402371a3afc0c03096a5e367f45dd361a9b955e7570041c9365fe895f28e90160f2c96ad02a249de87d9e00d13aa9d680005f3b6ceca9242fcf35d0358a3f0953a96f27d985eee91c6cb31c7b447655bc5f4db6a0e233f61cfdf92cacf15d8bf897ab57e9c49e8fe6f20da7b6cd46f29c58dd886e405beb9d5ab6a51886ad1ab1d0f7554ee895158fd9ed08d21223dfd234f1b2dfab5c14ed1ce97ff9bb287f50b1bda12e522e246ccb75222367600daeb74b818041f27573e86a5f46c943176d37e4f071c96a9950e03a717fd04c8c132775a0a34dda53e17e1ccaebf5bf2fecbdaef9b9a35f7ba3a7d47a2d7b0745566bc7f02b517c7177ebdf778d1679e19cf7a523aa560fc2c7d46ff67a95311c2aa6fd098c80db04c9d5801b5c5d79c45bd19fb86d349cd634f967976a17da1ba0705f1d84e41a6dd92cc3fc608c55e0037bc89ffe94f27b4042cfdd309b37f04c44b16f58432988c28d2bc91ba8f6b0da71183eb59e6655d1d85145afe867a432168263e03860c156fa32b2293ea9c77368fbc85f526cae96c0f9a715d6aff6aa33922819ee3a897253a084101be4aeeaeaeaa4af2c8371dd4c380c959478fe1a0b417e2700f9308fffcd0b388c3909e02edb0a821bca446c644e46630ee59bfb6fbe74e3d88e52fcb287df30741c0dd87d086fa118fd67b10a40be7c0a9484574c96fdce8c737a7aa6ae9215f13b4d7b20cba2b7490d750f9c884f1cddcdd75cd8e13fdee995a2dbfd648056c8c31bb25e3d166e2e69c336d0f9e5b4c73849d3db1404afbfd53f642786d7e82389781c669e7e0171bbd610490f9b7a86f922606c9c2b8dbd1d0b88d63a31a04f02201cd48a85263c66905ccd249a7aef56ca3a222a44a06cd867df197926e4eb77901277130391c22bc67b37f59d7ef59079433dc91402eadb41b1adcde9164aba2b851c38f2b82d1c95758cdf039c1ad8df882bd4327a2b3808788411e5c56ff5b6156e1a9d795cad409c146448b69e8c51f65264ab25cd4e8021d43d870d86143cd5901c5a39897c312e7901ca9ed8335b1683531219facf0bc75125f004e30f81f188811e516e4a9676c6e00c5c0b23a34731d3b494a44371d184a3648ac1278e903fa71c813674453a9c31e820d6b1a5ffd9e4aa5d8d8cc7dd94e8cde178f714cfa0c54e136fefec5c27eb04dcd9e0712141772284e024adb9571a4a09389e716860de531b09b29ce61d2d2961c883269bbebd99ca7f361c58d8c5f6c06ef0927867ab51d764080b934a451b2a2ae0f9dec85d90f0614c1ddddc78b648f1ba6ffa297ca9d21c34796c31d906e5a61ae03f958448a840e7bd1f2113d7fa3648708a776195811d42bd160183ce5be0fe1bfabb680608404245862b8d6219991646cb35154c14391c487d5f9e2d8507f8c41bc9bcea7a7efda2b448d891845286adf081b1e52f7d3356d0ebabc274e97d50cf2c660d9ddb411f6cf043380220c5b418a005f87bb7d81cd2ae4a5dd62fb4ced4e773c8afb46ddd254d0fb65f3b62f2a407b10ee3f7a6e507fc215401072e51320e05214e2e2e1e60bf3a7adb1a569a4375c3b9644b42721bb69109a8a534b01ac03b79f562cc2aa81573bf943b3e077f0261d9dfdee855e678cf8368c39ab48935d8c7e78f2dc0bb245e77a07f391acb0d97ede9131fdc191b6c0907dd7fbf4d8f829de2f069d02129ec1a6fbe50b654a755eaed2ddc319f8a3b388cec066b268179ee2e9134ec6cb687751c679a85c020bb069adbd7ac45db9d0c6f628d15bd51d41dda5d02b77ea52283ff9d1c7e1a1c172a010c8b831cbc55ccda21aeba265c8076e689262b1df516e3b039c10755f290efb3f36439abc5a5709ce7d34901ec41ff434df298c70eb52e3c6173f8bf4f5ab963e5b6b6e1895260fc953abbefec651b77363be40f0af23366d046d4467e2ea8947d2dad1b21a94aec7c97293041045b1e5bbd27ce9185b6368a932f9787b11bca7f06d74fd8c2f91db3b4f73ec57f78000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000006035f04341c68f9a8e43bf016d2d15e49c9d100b000000000000000000000000f755bad88dfa59abec72efaaaaf30190848a141c000000000000000000000000586e24dbe07ddc751955f89c12d781790b1fe53f000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d6800200000000000000000000000070f042dc4981c2e1e5fdcebd59981b8aa4e67b3c000000000000000000000000f0b35c28b111a83dd19b79c36b23e71b6bdc22be00000000000000000000000057445cbae08c07315e213189ace01788ebe787f5000000000000000000000000e052bda9f05e8e34ce1ffd72a2b136028efbede000000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb952260000000000000000000000006535deb539a0996d2c68dd1a7825adab4ca87ed40000000000000000000000005e473b14cdc29ddf90b29332652db4f7d6c324ea0000000000000000000000002de16e88e5abd2882c1674c9449c5cfff47b9b7c00000000000000000000000071b4b1611e2dad0122527b80f3db7f4e4bb1266d000000000000000000000000dff79657fb5c92dc60de8a02a21aca14374b9dd4000000000000000000000000a7fcaf657414ee41b0ce86e4de275190e8085a500000000000000000000000002d2eebe1a29c674d4a77c3c62221fdb488862be6000000000000000000000000397431824789531fa895ea94aaf11b6de3232451000000000000000000000000844d4c2daa1b7f6ea83a4f3ef7bbde0c297b4ce90000000000000000000000005335dc50dfd0073df32f5a4a93870fd5b30bee440000000000000000000000009c9f10582ec809f04df20ea2e277806ce559733d000000000000000000000000ac1d53c2cf80760920c1593d5a7210e913d9544000000000000000000000000044ffe0f5738907483254aec89647dd1879576f24000000000000000000000000000000000000000000000000000000000000003101c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
71
|
+
"to": "0xca11bde05977b3631167028862be2a173976ca11",
|
|
72
|
+
"value": "0x0"
|
|
73
|
+
},
|
|
74
|
+
"blockHash": "0xd39f7804c758165d54ecb66a0601292a99865262f3b0ead4f5e43f5419bf1911",
|
|
75
|
+
"blockNumber": 23931800,
|
|
76
|
+
"result": {
|
|
77
|
+
"gasUsed": "0x2d7fa",
|
|
78
|
+
"output": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000"
|
|
79
|
+
},
|
|
80
|
+
"subtraces": 1,
|
|
81
|
+
"traceAddress": [0, 0, 0],
|
|
82
|
+
"transactionHash": "0xd08a109aec1af7d69dffa15272255d64dfda9781f5837163502d4216f0191c03",
|
|
83
|
+
"transactionPosition": 231,
|
|
84
|
+
"type": "call"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"action": {
|
|
88
|
+
"from": "0xca11bde05977b3631167028862be2a173976ca11",
|
|
89
|
+
"callType": "call",
|
|
90
|
+
"gas": "0x359f0",
|
|
91
|
+
"input": "0x48aeda190bf3b7150c20687badb924d180e3eaa507107b45648cee974c2c506a3a5847b02e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d600000000000000000000000000000000000000000000000000000000000398a01fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012a6a43a5c02d9181de914805f6e795c30578eb13f1f7186a59b29d4b220de12001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f4800000000000000000000000000000000000000000000000000000000692ff81300000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb9522605e99ba6c937cd68f050c561df09103266590858801dd7181710226d968ad173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000009c0000000000000000000000000000000000000000000000000000000000000001c18829e9b7071e55e1dcc90bbaffe92b06b74a8857b8aa6769a09864bd2fbf5873309fcfd19c49dfb21ee6c5fa326384f319d6f434c06028c4424e2b2525ab10a0000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003fffff5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1c1ac25ad550a34b32a56760b9729d277789c39b5f6cf3bf3c0621c9770a56b4ea35d8cd60e473a35343d402371a3afc0c03096a5e367f45dd361a9b955e7570041c9365fe895f28e90160f2c96ad02a249de87d9e00d13aa9d680005f3b6ceca9242fcf35d0358a3f0953a96f27d985eee91c6cb31c7b447655bc5f4db6a0e233f61cfdf92cacf15d8bf897ab57e9c49e8fe6f20da7b6cd46f29c58dd886e405beb9d5ab6a51886ad1ab1d0f7554ee895158fd9ed08d21223dfd234f1b2dfab5c14ed1ce97ff9bb287f50b1bda12e522e246ccb75222367600daeb74b818041f27573e86a5f46c943176d37e4f071c96a9950e03a717fd04c8c132775a0a34dda53e17e1ccaebf5bf2fecbdaef9b9a35f7ba3a7d47a2d7b0745566bc7f02b517c7177ebdf778d1679e19cf7a523aa560fc2c7d46ff67a95311c2aa6fd098c80db04c9d5801b5c5d79c45bd19fb86d349cd634f967976a17da1ba0705f1d84e41a6dd92cc3fc608c55e0037bc89ffe94f27b4042cfdd309b37f04c44b16f58432988c28d2bc91ba8f6b0da71183eb59e6655d1d85145afe867a432168263e03860c156fa32b2293ea9c77368fbc85f526cae96c0f9a715d6aff6aa33922819ee3a897253a084101be4aeeaeaeaa4af2c8371dd4c380c959478fe1a0b417e2700f9308fffcd0b388c3909e02edb0a821bca446c644e46630ee59bfb6fbe74e3d88e52fcb287df30741c0dd87d086fa118fd67b10a40be7c0a9484574c96fdce8c737a7aa6ae9215f13b4d7b20cba2b7490d750f9c884f1cddcdd75cd8e13fdee995a2dbfd648056c8c31bb25e3d166e2e69c336d0f9e5b4c73849d3db1404afbfd53f642786d7e82389781c669e7e0171bbd610490f9b7a86f922606c9c2b8dbd1d0b88d63a31a04f02201cd48a85263c66905ccd249a7aef56ca3a222a44a06cd867df197926e4eb77901277130391c22bc67b37f59d7ef59079433dc91402eadb41b1adcde9164aba2b851c38f2b82d1c95758cdf039c1ad8df882bd4327a2b3808788411e5c56ff5b6156e1a9d795cad409c146448b69e8c51f65264ab25cd4e8021d43d870d86143cd5901c5a39897c312e7901ca9ed8335b1683531219facf0bc75125f004e30f81f188811e516e4a9676c6e00c5c0b23a34731d3b494a44371d184a3648ac1278e903fa71c813674453a9c31e820d6b1a5ffd9e4aa5d8d8cc7dd94e8cde178f714cfa0c54e136fefec5c27eb04dcd9e0712141772284e024adb9571a4a09389e716860de531b09b29ce61d2d2961c883269bbebd99ca7f361c58d8c5f6c06ef0927867ab51d764080b934a451b2a2ae0f9dec85d90f0614c1ddddc78b648f1ba6ffa297ca9d21c34796c31d906e5a61ae03f958448a840e7bd1f2113d7fa3648708a776195811d42bd160183ce5be0fe1bfabb680608404245862b8d6219991646cb35154c14391c487d5f9e2d8507f8c41bc9bcea7a7efda2b448d891845286adf081b1e52f7d3356d0ebabc274e97d50cf2c660d9ddb411f6cf043380220c5b418a005f87bb7d81cd2ae4a5dd62fb4ced4e773c8afb46ddd254d0fb65f3b62f2a407b10ee3f7a6e507fc215401072e51320e05214e2e2e1e60bf3a7adb1a569a4375c3b9644b42721bb69109a8a534b01ac03b79f562cc2aa81573bf943b3e077f0261d9dfdee855e678cf8368c39ab48935d8c7e78f2dc0bb245e77a07f391acb0d97ede9131fdc191b6c0907dd7fbf4d8f829de2f069d02129ec1a6fbe50b654a755eaed2ddc319f8a3b388cec066b268179ee2e9134ec6cb687751c679a85c020bb069adbd7ac45db9d0c6f628d15bd51d41dda5d02b77ea52283ff9d1c7e1a1c172a010c8b831cbc55ccda21aeba265c8076e689262b1df516e3b039c10755f290efb3f36439abc5a5709ce7d34901ec41ff434df298c70eb52e3c6173f8bf4f5ab963e5b6b6e1895260fc953abbefec651b77363be40f0af23366d046d4467e2ea8947d2dad1b21a94aec7c97293041045b1e5bbd27ce9185b6368a932f9787b11bca7f06d74fd8c2f91db3b4f73ec57f78000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000006035f04341c68f9a8e43bf016d2d15e49c9d100b000000000000000000000000f755bad88dfa59abec72efaaaaf30190848a141c000000000000000000000000586e24dbe07ddc751955f89c12d781790b1fe53f000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d6800200000000000000000000000070f042dc4981c2e1e5fdcebd59981b8aa4e67b3c000000000000000000000000f0b35c28b111a83dd19b79c36b23e71b6bdc22be00000000000000000000000057445cbae08c07315e213189ace01788ebe787f5000000000000000000000000e052bda9f05e8e34ce1ffd72a2b136028efbede000000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb952260000000000000000000000006535deb539a0996d2c68dd1a7825adab4ca87ed40000000000000000000000005e473b14cdc29ddf90b29332652db4f7d6c324ea0000000000000000000000002de16e88e5abd2882c1674c9449c5cfff47b9b7c00000000000000000000000071b4b1611e2dad0122527b80f3db7f4e4bb1266d000000000000000000000000dff79657fb5c92dc60de8a02a21aca14374b9dd4000000000000000000000000a7fcaf657414ee41b0ce86e4de275190e8085a500000000000000000000000002d2eebe1a29c674d4a77c3c62221fdb488862be6000000000000000000000000397431824789531fa895ea94aaf11b6de3232451000000000000000000000000844d4c2daa1b7f6ea83a4f3ef7bbde0c297b4ce90000000000000000000000005335dc50dfd0073df32f5a4a93870fd5b30bee440000000000000000000000009c9f10582ec809f04df20ea2e277806ce559733d000000000000000000000000ac1d53c2cf80760920c1593d5a7210e913d9544000000000000000000000000044ffe0f5738907483254aec89647dd1879576f24000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
92
|
+
"to": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
|
|
93
|
+
"value": "0x0"
|
|
94
|
+
},
|
|
95
|
+
"blockHash": "0xd39f7804c758165d54ecb66a0601292a99865262f3b0ead4f5e43f5419bf1911",
|
|
96
|
+
"blockNumber": 23931800,
|
|
97
|
+
"result": {
|
|
98
|
+
"gasUsed": "0x2c30f",
|
|
99
|
+
"output": "0x"
|
|
100
|
+
},
|
|
101
|
+
"subtraces": 1,
|
|
102
|
+
"traceAddress": [0, 0, 0, 0],
|
|
103
|
+
"transactionHash": "0xd08a109aec1af7d69dffa15272255d64dfda9781f5837163502d4216f0191c03",
|
|
104
|
+
"transactionPosition": 231,
|
|
105
|
+
"type": "call"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"action": {
|
|
109
|
+
"from": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
|
|
110
|
+
"callType": "delegatecall",
|
|
111
|
+
"gas": "0x316c1",
|
|
112
|
+
"input": "0x547b85980bf3b7150c20687badb924d180e3eaa507107b45648cee974c2c506a3a5847b02e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d600000000000000000000000000000000000000000000000000000000000398a01fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012a6a43a5c02d9181de914805f6e795c30578eb13f1f7186a59b29d4b220de12001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f4800000000000000000000000000000000000000000000000000000000692ff81300000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb9522605e99ba6c937cd68f050c561df09103266590858801dd7181710226d968ad173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000009e0000000000000000000000000000000000000000000000000000000000000001c18829e9b7071e55e1dcc90bbaffe92b06b74a8857b8aa6769a09864bd2fbf5873309fcfd19c49dfb21ee6c5fa326384f319d6f434c06028c4424e2b2525ab10a0000000000000000000000000000000000000000000000000000000000000cc00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003fffff5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1c1ac25ad550a34b32a56760b9729d277789c39b5f6cf3bf3c0621c9770a56b4ea35d8cd60e473a35343d402371a3afc0c03096a5e367f45dd361a9b955e7570041c9365fe895f28e90160f2c96ad02a249de87d9e00d13aa9d680005f3b6ceca9242fcf35d0358a3f0953a96f27d985eee91c6cb31c7b447655bc5f4db6a0e233f61cfdf92cacf15d8bf897ab57e9c49e8fe6f20da7b6cd46f29c58dd886e405beb9d5ab6a51886ad1ab1d0f7554ee895158fd9ed08d21223dfd234f1b2dfab5c14ed1ce97ff9bb287f50b1bda12e522e246ccb75222367600daeb74b818041f27573e86a5f46c943176d37e4f071c96a9950e03a717fd04c8c132775a0a34dda53e17e1ccaebf5bf2fecbdaef9b9a35f7ba3a7d47a2d7b0745566bc7f02b517c7177ebdf778d1679e19cf7a523aa560fc2c7d46ff67a95311c2aa6fd098c80db04c9d5801b5c5d79c45bd19fb86d349cd634f967976a17da1ba0705f1d84e41a6dd92cc3fc608c55e0037bc89ffe94f27b4042cfdd309b37f04c44b16f58432988c28d2bc91ba8f6b0da71183eb59e6655d1d85145afe867a432168263e03860c156fa32b2293ea9c77368fbc85f526cae96c0f9a715d6aff6aa33922819ee3a897253a084101be4aeeaeaeaa4af2c8371dd4c380c959478fe1a0b417e2700f9308fffcd0b388c3909e02edb0a821bca446c644e46630ee59bfb6fbe74e3d88e52fcb287df30741c0dd87d086fa118fd67b10a40be7c0a9484574c96fdce8c737a7aa6ae9215f13b4d7b20cba2b7490d750f9c884f1cddcdd75cd8e13fdee995a2dbfd648056c8c31bb25e3d166e2e69c336d0f9e5b4c73849d3db1404afbfd53f642786d7e82389781c669e7e0171bbd610490f9b7a86f922606c9c2b8dbd1d0b88d63a31a04f02201cd48a85263c66905ccd249a7aef56ca3a222a44a06cd867df197926e4eb77901277130391c22bc67b37f59d7ef59079433dc91402eadb41b1adcde9164aba2b851c38f2b82d1c95758cdf039c1ad8df882bd4327a2b3808788411e5c56ff5b6156e1a9d795cad409c146448b69e8c51f65264ab25cd4e8021d43d870d86143cd5901c5a39897c312e7901ca9ed8335b1683531219facf0bc75125f004e30f81f188811e516e4a9676c6e00c5c0b23a34731d3b494a44371d184a3648ac1278e903fa71c813674453a9c31e820d6b1a5ffd9e4aa5d8d8cc7dd94e8cde178f714cfa0c54e136fefec5c27eb04dcd9e0712141772284e024adb9571a4a09389e716860de531b09b29ce61d2d2961c883269bbebd99ca7f361c58d8c5f6c06ef0927867ab51d764080b934a451b2a2ae0f9dec85d90f0614c1ddddc78b648f1ba6ffa297ca9d21c34796c31d906e5a61ae03f958448a840e7bd1f2113d7fa3648708a776195811d42bd160183ce5be0fe1bfabb680608404245862b8d6219991646cb35154c14391c487d5f9e2d8507f8c41bc9bcea7a7efda2b448d891845286adf081b1e52f7d3356d0ebabc274e97d50cf2c660d9ddb411f6cf043380220c5b418a005f87bb7d81cd2ae4a5dd62fb4ced4e773c8afb46ddd254d0fb65f3b62f2a407b10ee3f7a6e507fc215401072e51320e05214e2e2e1e60bf3a7adb1a569a4375c3b9644b42721bb69109a8a534b01ac03b79f562cc2aa81573bf943b3e077f0261d9dfdee855e678cf8368c39ab48935d8c7e78f2dc0bb245e77a07f391acb0d97ede9131fdc191b6c0907dd7fbf4d8f829de2f069d02129ec1a6fbe50b654a755eaed2ddc319f8a3b388cec066b268179ee2e9134ec6cb687751c679a85c020bb069adbd7ac45db9d0c6f628d15bd51d41dda5d02b77ea52283ff9d1c7e1a1c172a010c8b831cbc55ccda21aeba265c8076e689262b1df516e3b039c10755f290efb3f36439abc5a5709ce7d34901ec41ff434df298c70eb52e3c6173f8bf4f5ab963e5b6b6e1895260fc953abbefec651b77363be40f0af23366d046d4467e2ea8947d2dad1b21a94aec7c97293041045b1e5bbd27ce9185b6368a932f9787b11bca7f06d74fd8c2f91db3b4f73ec57f78000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000006035f04341c68f9a8e43bf016d2d15e49c9d100b000000000000000000000000f755bad88dfa59abec72efaaaaf30190848a141c000000000000000000000000586e24dbe07ddc751955f89c12d781790b1fe53f000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d6800200000000000000000000000070f042dc4981c2e1e5fdcebd59981b8aa4e67b3c000000000000000000000000f0b35c28b111a83dd19b79c36b23e71b6bdc22be00000000000000000000000057445cbae08c07315e213189ace01788ebe787f5000000000000000000000000e052bda9f05e8e34ce1ffd72a2b136028efbede000000000000000000000000084b4f526b3f4be78f967ebf566bbb65ffbb952260000000000000000000000006535deb539a0996d2c68dd1a7825adab4ca87ed40000000000000000000000005e473b14cdc29ddf90b29332652db4f7d6c324ea0000000000000000000000002de16e88e5abd2882c1674c9449c5cfff47b9b7c00000000000000000000000071b4b1611e2dad0122527b80f3db7f4e4bb1266d000000000000000000000000dff79657fb5c92dc60de8a02a21aca14374b9dd4000000000000000000000000a7fcaf657414ee41b0ce86e4de275190e8085a500000000000000000000000002d2eebe1a29c674d4a77c3c62221fdb488862be6000000000000000000000000397431824789531fa895ea94aaf11b6de3232451000000000000000000000000844d4c2daa1b7f6ea83a4f3ef7bbde0c297b4ce90000000000000000000000005335dc50dfd0073df32f5a4a93870fd5b30bee440000000000000000000000009c9f10582ec809f04df20ea2e277806ce559733d000000000000000000000000ac1d53c2cf80760920c1593d5a7210e913d9544000000000000000000000000044ffe0f5738907483254aec89647dd1879576f24000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
113
|
+
"to": "0x1e0a5d9f39c4393b71dd4c6d038be4b77266c1a4",
|
|
114
|
+
"value": "0x0"
|
|
115
|
+
},
|
|
116
|
+
"blockHash": "0xd39f7804c758165d54ecb66a0601292a99865262f3b0ead4f5e43f5419bf1911",
|
|
117
|
+
"blockNumber": 23931800,
|
|
118
|
+
"result": {
|
|
119
|
+
"gasUsed": "0x28c37",
|
|
120
|
+
"output": "0x"
|
|
121
|
+
},
|
|
122
|
+
"subtraces": 0,
|
|
123
|
+
"traceAddress": [0, 0, 0, 0, 0],
|
|
124
|
+
"transactionHash": "0xd08a109aec1af7d69dffa15272255d64dfda9781f5837163502d4216f0191c03",
|
|
125
|
+
"transactionPosition": 231,
|
|
126
|
+
"type": "call"
|
|
127
|
+
}
|
|
128
|
+
]
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"action": {
|
|
4
|
+
"from": "0x28c6c06298d514db089934071355e5743bf21d60",
|
|
5
|
+
"callType": "call",
|
|
6
|
+
"gas": "0x5f1fc",
|
|
7
|
+
"input": "0x34fcd5be0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000a587116d5cf08e53bd75f3a0a434bf06671098590000000000000000000000000000000000000000000000000000000029a6d78000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f863dfdb5df33fe5f87601b8d2f23c816d5fde8000000000000000000000000000000000000000000000000000000000b7ff86f00000000000000000000000000000000000000000000000000000000",
|
|
8
|
+
"to": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
|
|
9
|
+
"value": "0x0"
|
|
10
|
+
},
|
|
11
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
12
|
+
"blockNumber": 23934803,
|
|
13
|
+
"result": {
|
|
14
|
+
"gasUsed": "0x15b9b",
|
|
15
|
+
"output": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001"
|
|
16
|
+
},
|
|
17
|
+
"subtraces": 1,
|
|
18
|
+
"traceAddress": [],
|
|
19
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
20
|
+
"transactionPosition": 333,
|
|
21
|
+
"type": "call"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"action": {
|
|
25
|
+
"from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
|
|
26
|
+
"callType": "delegatecall",
|
|
27
|
+
"gas": "0x5c75c",
|
|
28
|
+
"input": "0x34fcd5be0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000a587116d5cf08e53bd75f3a0a434bf06671098590000000000000000000000000000000000000000000000000000000029a6d78000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f863dfdb5df33fe5f87601b8d2f23c816d5fde8000000000000000000000000000000000000000000000000000000000b7ff86f00000000000000000000000000000000000000000000000000000000",
|
|
29
|
+
"to": "0xd206ac7fef53d83ed4563e770b28dba90d0d9ec8",
|
|
30
|
+
"value": "0x0"
|
|
31
|
+
},
|
|
32
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
33
|
+
"blockNumber": 23934803,
|
|
34
|
+
"result": {
|
|
35
|
+
"gasUsed": "0x1483e",
|
|
36
|
+
"output": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001"
|
|
37
|
+
},
|
|
38
|
+
"subtraces": 4,
|
|
39
|
+
"traceAddress": [0],
|
|
40
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
41
|
+
"transactionPosition": 333,
|
|
42
|
+
"type": "call"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"action": {
|
|
46
|
+
"from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
|
|
47
|
+
"callType": "staticcall",
|
|
48
|
+
"gas": "0x7530",
|
|
49
|
+
"input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
|
|
50
|
+
"to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
51
|
+
"value": "0x0"
|
|
52
|
+
},
|
|
53
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
54
|
+
"blockNumber": 23934803,
|
|
55
|
+
"error": "Reverted",
|
|
56
|
+
"result": {
|
|
57
|
+
"gasUsed": "0x1d64",
|
|
58
|
+
"output": "0x"
|
|
59
|
+
},
|
|
60
|
+
"subtraces": 1,
|
|
61
|
+
"traceAddress": [0, 0],
|
|
62
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
63
|
+
"transactionPosition": 333,
|
|
64
|
+
"type": "call"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"action": {
|
|
68
|
+
"from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
69
|
+
"callType": "delegatecall",
|
|
70
|
+
"gas": "0x5783",
|
|
71
|
+
"input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
|
|
72
|
+
"to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
|
|
73
|
+
"value": "0x0"
|
|
74
|
+
},
|
|
75
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
76
|
+
"blockNumber": 23934803,
|
|
77
|
+
"error": "Reverted",
|
|
78
|
+
"result": {
|
|
79
|
+
"gasUsed": "0xf0",
|
|
80
|
+
"output": "0x"
|
|
81
|
+
},
|
|
82
|
+
"subtraces": 0,
|
|
83
|
+
"traceAddress": [0, 0, 0],
|
|
84
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
85
|
+
"transactionPosition": 333,
|
|
86
|
+
"type": "call"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"action": {
|
|
90
|
+
"from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
|
|
91
|
+
"callType": "call",
|
|
92
|
+
"gas": "0x541ba",
|
|
93
|
+
"input": "0xa9059cbb000000000000000000000000a587116d5cf08e53bd75f3a0a434bf06671098590000000000000000000000000000000000000000000000000000000029a6d780",
|
|
94
|
+
"to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
95
|
+
"value": "0x0"
|
|
96
|
+
},
|
|
97
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
98
|
+
"blockNumber": 23934803,
|
|
99
|
+
"result": {
|
|
100
|
+
"gasUsed": "0x9ecc",
|
|
101
|
+
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
102
|
+
},
|
|
103
|
+
"subtraces": 1,
|
|
104
|
+
"traceAddress": [0, 1],
|
|
105
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
106
|
+
"transactionPosition": 333,
|
|
107
|
+
"type": "call"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"action": {
|
|
111
|
+
"from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
112
|
+
"callType": "delegatecall",
|
|
113
|
+
"gas": "0x510d8",
|
|
114
|
+
"input": "0xa9059cbb000000000000000000000000a587116d5cf08e53bd75f3a0a434bf06671098590000000000000000000000000000000000000000000000000000000029a6d780",
|
|
115
|
+
"to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
|
|
116
|
+
"value": "0x0"
|
|
117
|
+
},
|
|
118
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
119
|
+
"blockNumber": 23934803,
|
|
120
|
+
"result": {
|
|
121
|
+
"gasUsed": "0x8253",
|
|
122
|
+
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
123
|
+
},
|
|
124
|
+
"subtraces": 0,
|
|
125
|
+
"traceAddress": [0, 1, 0],
|
|
126
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
127
|
+
"transactionPosition": 333,
|
|
128
|
+
"type": "call"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"action": {
|
|
132
|
+
"from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
|
|
133
|
+
"callType": "staticcall",
|
|
134
|
+
"gas": "0x7530",
|
|
135
|
+
"input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
|
|
136
|
+
"to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
137
|
+
"value": "0x0"
|
|
138
|
+
},
|
|
139
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
140
|
+
"blockNumber": 23934803,
|
|
141
|
+
"error": "Reverted",
|
|
142
|
+
"result": {
|
|
143
|
+
"gasUsed": "0x400",
|
|
144
|
+
"output": "0x"
|
|
145
|
+
},
|
|
146
|
+
"subtraces": 1,
|
|
147
|
+
"traceAddress": [0, 2],
|
|
148
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
149
|
+
"transactionPosition": 333,
|
|
150
|
+
"type": "call"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"action": {
|
|
154
|
+
"from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
155
|
+
"callType": "delegatecall",
|
|
156
|
+
"gas": "0x7081",
|
|
157
|
+
"input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
|
|
158
|
+
"to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
|
|
159
|
+
"value": "0x0"
|
|
160
|
+
},
|
|
161
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
162
|
+
"blockNumber": 23934803,
|
|
163
|
+
"error": "Reverted",
|
|
164
|
+
"result": {
|
|
165
|
+
"gasUsed": "0xf0",
|
|
166
|
+
"output": "0x"
|
|
167
|
+
},
|
|
168
|
+
"subtraces": 0,
|
|
169
|
+
"traceAddress": [0, 2, 0],
|
|
170
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
171
|
+
"transactionPosition": 333,
|
|
172
|
+
"type": "call"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"action": {
|
|
176
|
+
"from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
|
|
177
|
+
"callType": "call",
|
|
178
|
+
"gas": "0x4997e",
|
|
179
|
+
"input": "0xa9059cbb0000000000000000000000009f863dfdb5df33fe5f87601b8d2f23c816d5fde8000000000000000000000000000000000000000000000000000000000b7ff86f",
|
|
180
|
+
"to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
181
|
+
"value": "0x0"
|
|
182
|
+
},
|
|
183
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
184
|
+
"blockNumber": 23934803,
|
|
185
|
+
"result": {
|
|
186
|
+
"gasUsed": "0x280c",
|
|
187
|
+
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
188
|
+
},
|
|
189
|
+
"subtraces": 1,
|
|
190
|
+
"traceAddress": [0, 3],
|
|
191
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
192
|
+
"transactionPosition": 333,
|
|
193
|
+
"type": "call"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"action": {
|
|
197
|
+
"from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
198
|
+
"callType": "delegatecall",
|
|
199
|
+
"gas": "0x4843b",
|
|
200
|
+
"input": "0xa9059cbb0000000000000000000000009f863dfdb5df33fe5f87601b8d2f23c816d5fde8000000000000000000000000000000000000000000000000000000000b7ff86f",
|
|
201
|
+
"to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
|
|
202
|
+
"value": "0x0"
|
|
203
|
+
},
|
|
204
|
+
"blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
|
|
205
|
+
"blockNumber": 23934803,
|
|
206
|
+
"result": {
|
|
207
|
+
"gasUsed": "0x24f7",
|
|
208
|
+
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
209
|
+
},
|
|
210
|
+
"subtraces": 0,
|
|
211
|
+
"traceAddress": [0, 3, 0],
|
|
212
|
+
"transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
|
|
213
|
+
"transactionPosition": 333,
|
|
214
|
+
"type": "call"
|
|
215
|
+
}
|
|
216
|
+
]
|
package/src/test/index.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export * from './mock_structs.js';
|
|
1
2
|
export * from './mock_l2_block_source.js';
|
|
2
3
|
export * from './mock_l1_to_l2_message_source.js';
|
|
3
4
|
export * from './mock_archiver.js';
|
|
5
|
+
// NOTE: noop_l1_archiver.js is intentionally NOT exported here because it imports
|
|
6
|
+
// jest-mock-extended, which depends on @jest/globals and can only run inside Jest.
|
|
7
|
+
// Import it directly: import { NoopL1Archiver } from '@aztec/archiver/test/noop-l1';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import type { L2BlockSource } from '@aztec/stdlib/block';
|
|
4
|
+
import type { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
3
5
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
4
6
|
|
|
5
7
|
import { MockL1ToL2MessageSource } from './mock_l1_to_l2_message_source.js';
|
|
@@ -11,12 +13,12 @@ import { MockL2BlockSource } from './mock_l2_block_source.js';
|
|
|
11
13
|
export class MockArchiver extends MockL2BlockSource implements L2BlockSource, L1ToL2MessageSource {
|
|
12
14
|
private messageSource = new MockL1ToL2MessageSource(0);
|
|
13
15
|
|
|
14
|
-
public setL1ToL2Messages(
|
|
15
|
-
this.messageSource.setL1ToL2Messages(
|
|
16
|
+
public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
|
|
17
|
+
this.messageSource.setL1ToL2Messages(checkpointNumber, msgs);
|
|
16
18
|
}
|
|
17
19
|
|
|
18
|
-
getL1ToL2Messages(
|
|
19
|
-
return this.messageSource.getL1ToL2Messages(
|
|
20
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
|
|
21
|
+
return this.messageSource.getL1ToL2Messages(checkpointNumber);
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
|
|
@@ -28,30 +30,35 @@ export class MockArchiver extends MockL2BlockSource implements L2BlockSource, L1
|
|
|
28
30
|
* A mocked implementation of the archiver with a set of precomputed blocks and messages.
|
|
29
31
|
*/
|
|
30
32
|
export class MockPrefilledArchiver extends MockArchiver {
|
|
31
|
-
private
|
|
33
|
+
private prefilled: Checkpoint[] = [];
|
|
32
34
|
|
|
33
|
-
constructor(
|
|
35
|
+
constructor(prefilled: { checkpoint: Checkpoint; messages: Fr[] }[]) {
|
|
34
36
|
super();
|
|
35
|
-
this.
|
|
36
|
-
messages.forEach((msgs, i) => this.setL1ToL2Messages(i + 1, msgs));
|
|
37
|
+
this.setPrefilled(prefilled);
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
public
|
|
40
|
-
for (const
|
|
41
|
-
this.
|
|
40
|
+
public setPrefilled(prefilled: { checkpoint: Checkpoint; messages: Fr[] }[]) {
|
|
41
|
+
for (const { checkpoint, messages } of prefilled) {
|
|
42
|
+
this.prefilled[checkpoint.number - 1] = checkpoint;
|
|
43
|
+
if (checkpoint.blocks.length !== 1) {
|
|
44
|
+
throw new Error('Prefilled checkpoint must only have 1 block at the moment.');
|
|
45
|
+
}
|
|
46
|
+
this.setL1ToL2Messages(checkpoint.number, messages);
|
|
42
47
|
}
|
|
43
|
-
messages.forEach((msgs, i) => this.setL1ToL2Messages(blocks[i].number, msgs));
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
public override createBlocks(numBlocks: number) {
|
|
47
|
-
|
|
51
|
+
const flattenedBlocks = this.prefilled.flatMap(c => c.blocks);
|
|
52
|
+
if (this.l2Blocks.length + numBlocks > flattenedBlocks.length) {
|
|
48
53
|
throw new Error(
|
|
49
54
|
`Not enough precomputed blocks to create ${numBlocks} more blocks (already at ${this.l2Blocks.length})`,
|
|
50
55
|
);
|
|
51
56
|
}
|
|
52
57
|
|
|
53
58
|
const fromBlock = this.l2Blocks.length;
|
|
54
|
-
this.
|
|
59
|
+
const checkpointsToAdd = this.prefilled.slice(fromBlock, fromBlock + numBlocks);
|
|
60
|
+
this.addProposedBlocks(checkpointsToAdd.flatMap(c => c.blocks));
|
|
61
|
+
this.checkpointList.push(...checkpointsToAdd);
|
|
55
62
|
return Promise.resolve();
|
|
56
63
|
}
|
|
57
64
|
}
|
|
@@ -1,40 +1,47 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import type { CheckpointId, L2BlockId, L2TipId, L2Tips } from '@aztec/stdlib/block';
|
|
3
4
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* A mocked implementation of L1ToL2MessageSource to be used in tests.
|
|
7
8
|
*/
|
|
8
9
|
export class MockL1ToL2MessageSource implements L1ToL2MessageSource {
|
|
9
|
-
private
|
|
10
|
+
private messagesPerCheckpoint = new Map<CheckpointNumber, Fr[]>();
|
|
10
11
|
|
|
11
12
|
constructor(private blockNumber: number) {}
|
|
12
13
|
|
|
13
|
-
public setL1ToL2Messages(
|
|
14
|
-
this.
|
|
14
|
+
public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
|
|
15
|
+
this.messagesPerCheckpoint.set(checkpointNumber, msgs);
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
public setBlockNumber(blockNumber: number) {
|
|
18
19
|
this.blockNumber = blockNumber;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
getL1ToL2Messages(
|
|
22
|
-
return Promise.resolve(this.
|
|
22
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
|
|
23
|
+
return Promise.resolve(this.messagesPerCheckpoint.get(checkpointNumber) ?? []);
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
|
|
26
27
|
throw new Error('Method not implemented.');
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
getBlockNumber()
|
|
30
|
-
return Promise.resolve(this.blockNumber);
|
|
30
|
+
getBlockNumber() {
|
|
31
|
+
return Promise.resolve(BlockNumber(this.blockNumber));
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
getL2Tips(): Promise<L2Tips> {
|
|
34
35
|
const number = this.blockNumber;
|
|
35
|
-
const
|
|
36
|
+
const blockId: L2BlockId = { number: BlockNumber(number), hash: new Fr(number).toString() };
|
|
37
|
+
const checkpointId: CheckpointId = {
|
|
38
|
+
number: CheckpointNumber(number),
|
|
39
|
+
hash: new Fr(number + 1).toString(),
|
|
40
|
+
};
|
|
41
|
+
const tip: L2TipId = { block: blockId, checkpoint: checkpointId };
|
|
36
42
|
return Promise.resolve({
|
|
37
|
-
|
|
43
|
+
proposed: blockId,
|
|
44
|
+
checkpointed: tip,
|
|
38
45
|
proven: tip,
|
|
39
46
|
finalized: tip,
|
|
40
47
|
});
|