@aztec/archiver 0.0.1-commit.d3ec352c → 0.0.1-commit.f295ac2

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.
Files changed (201) hide show
  1. package/README.md +147 -22
  2. package/dest/archiver.d.ts +135 -0
  3. package/dest/archiver.d.ts.map +1 -0
  4. package/dest/archiver.js +769 -0
  5. package/dest/config.d.ts +30 -0
  6. package/dest/config.d.ts.map +1 -0
  7. package/dest/{archiver/config.js → config.js} +21 -5
  8. package/dest/errors.d.ts +36 -0
  9. package/dest/errors.d.ts.map +1 -0
  10. package/dest/errors.js +54 -0
  11. package/dest/factory.d.ts +5 -6
  12. package/dest/factory.d.ts.map +1 -1
  13. package/dest/factory.js +82 -5
  14. package/dest/index.d.ts +10 -4
  15. package/dest/index.d.ts.map +1 -1
  16. package/dest/index.js +8 -3
  17. package/dest/interfaces.d.ts +9 -0
  18. package/dest/interfaces.d.ts.map +1 -0
  19. package/dest/interfaces.js +3 -0
  20. package/dest/l1/bin/retrieve-calldata.d.ts +3 -0
  21. package/dest/l1/bin/retrieve-calldata.d.ts.map +1 -0
  22. package/dest/l1/bin/retrieve-calldata.js +149 -0
  23. package/dest/l1/calldata_retriever.d.ts +112 -0
  24. package/dest/l1/calldata_retriever.d.ts.map +1 -0
  25. package/dest/l1/calldata_retriever.js +471 -0
  26. package/dest/l1/data_retrieval.d.ts +88 -0
  27. package/dest/l1/data_retrieval.d.ts.map +1 -0
  28. package/dest/{archiver → l1}/data_retrieval.js +75 -150
  29. package/dest/l1/debug_tx.d.ts +19 -0
  30. package/dest/l1/debug_tx.d.ts.map +1 -0
  31. package/dest/l1/debug_tx.js +73 -0
  32. package/dest/l1/spire_proposer.d.ts +70 -0
  33. package/dest/l1/spire_proposer.d.ts.map +1 -0
  34. package/dest/l1/spire_proposer.js +157 -0
  35. package/dest/l1/trace_tx.d.ts +97 -0
  36. package/dest/l1/trace_tx.d.ts.map +1 -0
  37. package/dest/l1/trace_tx.js +91 -0
  38. package/dest/l1/types.d.ts +12 -0
  39. package/dest/l1/types.d.ts.map +1 -0
  40. package/dest/l1/types.js +3 -0
  41. package/dest/l1/validate_trace.d.ts +29 -0
  42. package/dest/l1/validate_trace.d.ts.map +1 -0
  43. package/dest/l1/validate_trace.js +150 -0
  44. package/dest/modules/data_source_base.d.ts +85 -0
  45. package/dest/modules/data_source_base.d.ts.map +1 -0
  46. package/dest/modules/data_source_base.js +291 -0
  47. package/dest/modules/data_store_updater.d.ts +69 -0
  48. package/dest/modules/data_store_updater.d.ts.map +1 -0
  49. package/dest/modules/data_store_updater.js +304 -0
  50. package/dest/modules/instrumentation.d.ts +37 -0
  51. package/dest/modules/instrumentation.d.ts.map +1 -0
  52. package/dest/{archiver → modules}/instrumentation.js +22 -59
  53. package/dest/modules/l1_synchronizer.d.ts +75 -0
  54. package/dest/modules/l1_synchronizer.d.ts.map +1 -0
  55. package/dest/modules/l1_synchronizer.js +1113 -0
  56. package/dest/modules/validation.d.ts +17 -0
  57. package/dest/modules/validation.d.ts.map +1 -0
  58. package/dest/{archiver → modules}/validation.js +7 -1
  59. package/dest/store/block_store.d.ts +178 -0
  60. package/dest/store/block_store.d.ts.map +1 -0
  61. package/dest/store/block_store.js +680 -0
  62. package/dest/store/contract_class_store.d.ts +18 -0
  63. package/dest/store/contract_class_store.d.ts.map +1 -0
  64. package/dest/{archiver/kv_archiver_store → store}/contract_class_store.js +2 -2
  65. package/dest/store/contract_instance_store.d.ts +24 -0
  66. package/dest/store/contract_instance_store.d.ts.map +1 -0
  67. package/dest/{archiver/kv_archiver_store → store}/contract_instance_store.js +1 -1
  68. package/dest/store/kv_archiver_store.d.ts +331 -0
  69. package/dest/store/kv_archiver_store.d.ts.map +1 -0
  70. package/dest/store/kv_archiver_store.js +438 -0
  71. package/dest/store/log_store.d.ts +45 -0
  72. package/dest/store/log_store.d.ts.map +1 -0
  73. package/dest/store/log_store.js +422 -0
  74. package/dest/store/message_store.d.ts +40 -0
  75. package/dest/store/message_store.d.ts.map +1 -0
  76. package/dest/{archiver/kv_archiver_store → store}/message_store.js +15 -14
  77. package/dest/{archiver/structs → structs}/data_retrieval.d.ts +1 -1
  78. package/dest/structs/data_retrieval.d.ts.map +1 -0
  79. package/dest/structs/inbox_message.d.ts +15 -0
  80. package/dest/structs/inbox_message.d.ts.map +1 -0
  81. package/dest/{archiver/structs → structs}/inbox_message.js +6 -6
  82. package/dest/structs/published.d.ts +2 -0
  83. package/dest/structs/published.d.ts.map +1 -0
  84. package/dest/test/fake_l1_state.d.ts +190 -0
  85. package/dest/test/fake_l1_state.d.ts.map +1 -0
  86. package/dest/test/fake_l1_state.js +383 -0
  87. package/dest/test/index.d.ts +2 -1
  88. package/dest/test/index.d.ts.map +1 -1
  89. package/dest/test/index.js +1 -0
  90. package/dest/test/mock_archiver.d.ts +5 -6
  91. package/dest/test/mock_archiver.d.ts.map +1 -1
  92. package/dest/test/mock_archiver.js +6 -11
  93. package/dest/test/mock_l1_to_l2_message_source.d.ts +6 -7
  94. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
  95. package/dest/test/mock_l1_to_l2_message_source.js +19 -14
  96. package/dest/test/mock_l2_block_source.d.ts +28 -14
  97. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  98. package/dest/test/mock_l2_block_source.js +160 -52
  99. package/dest/test/mock_structs.d.ts +78 -3
  100. package/dest/test/mock_structs.d.ts.map +1 -1
  101. package/dest/test/mock_structs.js +141 -10
  102. package/package.json +17 -18
  103. package/src/archiver.ts +525 -0
  104. package/src/{archiver/config.ts → config.ts} +28 -12
  105. package/src/errors.ts +90 -0
  106. package/src/factory.ts +118 -6
  107. package/src/index.ts +10 -3
  108. package/src/interfaces.ts +9 -0
  109. package/src/l1/README.md +98 -0
  110. package/src/l1/bin/retrieve-calldata.ts +182 -0
  111. package/src/l1/calldata_retriever.ts +641 -0
  112. package/src/{archiver → l1}/data_retrieval.ts +136 -218
  113. package/src/l1/debug_tx.ts +99 -0
  114. package/src/l1/spire_proposer.ts +160 -0
  115. package/src/l1/trace_tx.ts +128 -0
  116. package/src/l1/types.ts +13 -0
  117. package/src/l1/validate_trace.ts +211 -0
  118. package/src/modules/data_source_base.ts +414 -0
  119. package/src/modules/data_store_updater.ts +419 -0
  120. package/src/{archiver → modules}/instrumentation.ts +24 -59
  121. package/src/modules/l1_synchronizer.ts +931 -0
  122. package/src/{archiver → modules}/validation.ts +11 -6
  123. package/src/store/block_store.ts +919 -0
  124. package/src/{archiver/kv_archiver_store → store}/contract_class_store.ts +2 -2
  125. package/src/{archiver/kv_archiver_store → store}/contract_instance_store.ts +2 -2
  126. package/src/store/kv_archiver_store.ts +622 -0
  127. package/src/store/log_store.ts +552 -0
  128. package/src/{archiver/kv_archiver_store → store}/message_store.ts +21 -18
  129. package/src/{archiver/structs → structs}/inbox_message.ts +7 -8
  130. package/src/{archiver/structs → structs}/published.ts +0 -1
  131. package/src/test/fake_l1_state.ts +599 -0
  132. package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
  133. package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
  134. package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
  135. package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
  136. package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
  137. package/src/test/fixtures/trace_transaction-proxied.json +128 -0
  138. package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
  139. package/src/test/index.ts +1 -0
  140. package/src/test/mock_archiver.ts +8 -13
  141. package/src/test/mock_l1_to_l2_message_source.ts +16 -15
  142. package/src/test/mock_l2_block_source.ts +184 -64
  143. package/src/test/mock_structs.ts +256 -11
  144. package/dest/archiver/archiver.d.ts +0 -290
  145. package/dest/archiver/archiver.d.ts.map +0 -1
  146. package/dest/archiver/archiver.js +0 -1434
  147. package/dest/archiver/archiver_store.d.ts +0 -256
  148. package/dest/archiver/archiver_store.d.ts.map +0 -1
  149. package/dest/archiver/archiver_store.js +0 -4
  150. package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
  151. package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
  152. package/dest/archiver/archiver_store_test_suite.js +0 -1289
  153. package/dest/archiver/config.d.ts +0 -21
  154. package/dest/archiver/config.d.ts.map +0 -1
  155. package/dest/archiver/data_retrieval.d.ts +0 -80
  156. package/dest/archiver/data_retrieval.d.ts.map +0 -1
  157. package/dest/archiver/errors.d.ts +0 -12
  158. package/dest/archiver/errors.d.ts.map +0 -1
  159. package/dest/archiver/errors.js +0 -17
  160. package/dest/archiver/index.d.ts +0 -7
  161. package/dest/archiver/index.d.ts.map +0 -1
  162. package/dest/archiver/index.js +0 -4
  163. package/dest/archiver/instrumentation.d.ts +0 -35
  164. package/dest/archiver/instrumentation.d.ts.map +0 -1
  165. package/dest/archiver/kv_archiver_store/block_store.d.ts +0 -125
  166. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +0 -1
  167. package/dest/archiver/kv_archiver_store/block_store.js +0 -371
  168. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +0 -18
  169. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +0 -1
  170. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +0 -24
  171. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +0 -1
  172. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +0 -169
  173. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +0 -1
  174. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +0 -296
  175. package/dest/archiver/kv_archiver_store/log_store.d.ts +0 -49
  176. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +0 -1
  177. package/dest/archiver/kv_archiver_store/log_store.js +0 -337
  178. package/dest/archiver/kv_archiver_store/message_store.d.ts +0 -39
  179. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +0 -1
  180. package/dest/archiver/structs/data_retrieval.d.ts.map +0 -1
  181. package/dest/archiver/structs/inbox_message.d.ts +0 -15
  182. package/dest/archiver/structs/inbox_message.d.ts.map +0 -1
  183. package/dest/archiver/structs/published.d.ts +0 -3
  184. package/dest/archiver/structs/published.d.ts.map +0 -1
  185. package/dest/archiver/validation.d.ts +0 -17
  186. package/dest/archiver/validation.d.ts.map +0 -1
  187. package/dest/rpc/index.d.ts +0 -9
  188. package/dest/rpc/index.d.ts.map +0 -1
  189. package/dest/rpc/index.js +0 -15
  190. package/src/archiver/archiver.ts +0 -1880
  191. package/src/archiver/archiver_store.ts +0 -310
  192. package/src/archiver/archiver_store_test_suite.ts +0 -1295
  193. package/src/archiver/errors.ts +0 -26
  194. package/src/archiver/index.ts +0 -6
  195. package/src/archiver/kv_archiver_store/block_store.ts +0 -482
  196. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +0 -423
  197. package/src/archiver/kv_archiver_store/log_store.ts +0 -407
  198. package/src/rpc/index.ts +0 -16
  199. /package/dest/{archiver/structs → structs}/data_retrieval.js +0 -0
  200. /package/dest/{archiver/structs → structs}/published.js +0 -0
  201. /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,4 @@
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';
@@ -1,6 +1,6 @@
1
1
  import type { CheckpointNumber } from '@aztec/foundation/branded-types';
2
- import type { Fr } from '@aztec/foundation/fields';
3
- import { L2Block, type L2BlockSource } from '@aztec/stdlib/block';
2
+ import type { Fr } from '@aztec/foundation/curves/bn254';
3
+ import type { L2BlockSource } from '@aztec/stdlib/block';
4
4
  import type { Checkpoint } from '@aztec/stdlib/checkpoint';
5
5
  import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
6
6
 
@@ -13,22 +13,17 @@ import { MockL2BlockSource } from './mock_l2_block_source.js';
13
13
  export class MockArchiver extends MockL2BlockSource implements L2BlockSource, L1ToL2MessageSource {
14
14
  private messageSource = new MockL1ToL2MessageSource(0);
15
15
 
16
- public setL1ToL2Messages(blockNumber: number, msgs: Fr[]) {
17
- this.messageSource.setL1ToL2Messages(blockNumber, msgs);
16
+ public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
17
+ this.messageSource.setL1ToL2Messages(checkpointNumber, msgs);
18
18
  }
19
19
 
20
- getL1ToL2Messages(blockNumber: number): Promise<Fr[]> {
21
- return this.messageSource.getL1ToL2Messages(blockNumber);
20
+ getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
21
+ return this.messageSource.getL1ToL2Messages(checkpointNumber);
22
22
  }
23
23
 
24
24
  getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
25
25
  return this.messageSource.getL1ToL2MessageIndex(_l1ToL2Message);
26
26
  }
27
-
28
- getL1ToL2MessagesForCheckpoint(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
29
- // TODO: Implement this properly. This only works when we have one block per checkpoint.
30
- return this.messageSource.getL1ToL2Messages(checkpointNumber);
31
- }
32
27
  }
33
28
 
34
29
  /**
@@ -48,7 +43,7 @@ export class MockPrefilledArchiver extends MockArchiver {
48
43
  if (checkpoint.blocks.length !== 1) {
49
44
  throw new Error('Prefilled checkpoint must only have 1 block at the moment.');
50
45
  }
51
- this.setL1ToL2Messages(checkpoint.blocks[0].number, messages);
46
+ this.setL1ToL2Messages(checkpoint.number, messages);
52
47
  }
53
48
  }
54
49
 
@@ -62,7 +57,7 @@ export class MockPrefilledArchiver extends MockArchiver {
62
57
 
63
58
  const fromBlock = this.l2Blocks.length;
64
59
  // TODO: Add L2 blocks and checkpoints separately once archiver has the apis for that.
65
- this.addBlocks(this.prefilled.slice(fromBlock, fromBlock + numBlocks).map(c => L2Block.fromCheckpoint(c)));
60
+ this.addBlocks(this.prefilled.slice(fromBlock, fromBlock + numBlocks).flatMap(c => c.blocks));
66
61
  return Promise.resolve();
67
62
  }
68
63
  }
@@ -1,31 +1,26 @@
1
- import { BlockNumber, type CheckpointNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import type { L2Tips } from '@aztec/stdlib/block';
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';
4
4
  import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
5
5
 
6
6
  /**
7
7
  * A mocked implementation of L1ToL2MessageSource to be used in tests.
8
8
  */
9
9
  export class MockL1ToL2MessageSource implements L1ToL2MessageSource {
10
- private messagesPerBlock = new Map<number, Fr[]>();
10
+ private messagesPerCheckpoint = new Map<CheckpointNumber, Fr[]>();
11
11
 
12
12
  constructor(private blockNumber: number) {}
13
13
 
14
- public setL1ToL2Messages(blockNumber: number, msgs: Fr[]) {
15
- this.messagesPerBlock.set(blockNumber, msgs);
14
+ public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
15
+ this.messagesPerCheckpoint.set(checkpointNumber, msgs);
16
16
  }
17
17
 
18
18
  public setBlockNumber(blockNumber: number) {
19
19
  this.blockNumber = blockNumber;
20
20
  }
21
21
 
22
- getL1ToL2MessagesForCheckpoint(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
23
- // TODO: Implement this properly. This only works when we have one block per checkpoint.
24
- return this.getL1ToL2Messages(checkpointNumber);
25
- }
26
-
27
- getL1ToL2Messages(blockNumber: number): Promise<Fr[]> {
28
- return Promise.resolve(this.messagesPerBlock.get(blockNumber) ?? []);
22
+ getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
23
+ return Promise.resolve(this.messagesPerCheckpoint.get(checkpointNumber) ?? []);
29
24
  }
30
25
 
31
26
  getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
@@ -38,9 +33,15 @@ export class MockL1ToL2MessageSource implements L1ToL2MessageSource {
38
33
 
39
34
  getL2Tips(): Promise<L2Tips> {
40
35
  const number = this.blockNumber;
41
- const tip = { number: BlockNumber(number), hash: new Fr(number).toString() };
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 };
42
42
  return Promise.resolve({
43
- latest: tip,
43
+ proposed: blockId,
44
+ checkpointed: tip,
44
45
  proven: tip,
45
46
  finalized: tip,
46
47
  });