@aztec/ethereum 0.0.1-fake-ceab37513c → 0.0.6-commit.a2d1860fe9

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 (228) hide show
  1. package/dest/account.d.ts +1 -1
  2. package/dest/chain.d.ts +1 -1
  3. package/dest/client.d.ts +2 -2
  4. package/dest/client.d.ts.map +1 -1
  5. package/dest/client.js +6 -2
  6. package/dest/config.d.ts +22 -68
  7. package/dest/config.d.ts.map +1 -1
  8. package/dest/config.js +61 -338
  9. package/dest/constants.d.ts +1 -1
  10. package/dest/contracts/empire_base.d.ts +9 -5
  11. package/dest/contracts/empire_base.d.ts.map +1 -1
  12. package/dest/contracts/empire_base.js +1 -1
  13. package/dest/contracts/empire_slashing_proposer.d.ts +8 -4
  14. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  15. package/dest/contracts/empire_slashing_proposer.js +39 -17
  16. package/dest/contracts/errors.d.ts +1 -1
  17. package/dest/contracts/errors.d.ts.map +1 -1
  18. package/dest/contracts/fee_asset_handler.d.ts +6 -5
  19. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  20. package/dest/contracts/fee_asset_handler.js +11 -9
  21. package/dest/contracts/fee_asset_price_oracle.d.ts +101 -0
  22. package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
  23. package/dest/contracts/fee_asset_price_oracle.js +651 -0
  24. package/dest/contracts/fee_juice.d.ts +1 -1
  25. package/dest/contracts/fee_juice.d.ts.map +1 -1
  26. package/dest/contracts/governance.d.ts +18 -16
  27. package/dest/contracts/governance.d.ts.map +1 -1
  28. package/dest/contracts/governance.js +14 -4
  29. package/dest/contracts/governance_proposer.d.ts +8 -4
  30. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  31. package/dest/contracts/governance_proposer.js +412 -11
  32. package/dest/contracts/gse.d.ts +1 -1
  33. package/dest/contracts/gse.d.ts.map +1 -1
  34. package/dest/contracts/inbox.d.ts +24 -3
  35. package/dest/contracts/inbox.d.ts.map +1 -1
  36. package/dest/contracts/inbox.js +36 -1
  37. package/dest/contracts/index.d.ts +4 -1
  38. package/dest/contracts/index.d.ts.map +1 -1
  39. package/dest/contracts/index.js +3 -0
  40. package/dest/contracts/log.d.ts +13 -0
  41. package/dest/contracts/log.d.ts.map +1 -0
  42. package/dest/contracts/log.js +1 -0
  43. package/dest/contracts/multicall.d.ts +2 -2
  44. package/dest/contracts/multicall.d.ts.map +1 -1
  45. package/dest/contracts/multicall.js +2 -1
  46. package/dest/contracts/outbox.d.ts +41 -0
  47. package/dest/contracts/outbox.d.ts.map +1 -0
  48. package/dest/contracts/outbox.js +86 -0
  49. package/dest/contracts/registry.d.ts +1 -1
  50. package/dest/contracts/registry.d.ts.map +1 -1
  51. package/dest/contracts/rollup.d.ts +195 -123
  52. package/dest/contracts/rollup.d.ts.map +1 -1
  53. package/dest/contracts/rollup.js +755 -184
  54. package/dest/contracts/slasher_contract.d.ts +1 -1
  55. package/dest/contracts/slasher_contract.d.ts.map +1 -1
  56. package/dest/contracts/tally_slashing_proposer.d.ts +15 -7
  57. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  58. package/dest/contracts/tally_slashing_proposer.js +22 -5
  59. package/dest/contracts/utils.d.ts +1 -1
  60. package/dest/deploy_aztec_l1_contracts.d.ts +259 -0
  61. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -0
  62. package/dest/deploy_aztec_l1_contracts.js +413 -0
  63. package/dest/deploy_l1_contract.d.ts +68 -0
  64. package/dest/deploy_l1_contract.d.ts.map +1 -0
  65. package/dest/deploy_l1_contract.js +312 -0
  66. package/dest/eth-signer/eth-signer.d.ts +1 -1
  67. package/dest/eth-signer/index.d.ts +1 -1
  68. package/dest/forwarder_proxy.d.ts +32 -0
  69. package/dest/forwarder_proxy.d.ts.map +1 -0
  70. package/dest/forwarder_proxy.js +93 -0
  71. package/dest/generated/l1-contracts-defaults.d.ts +30 -0
  72. package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
  73. package/dest/generated/l1-contracts-defaults.js +30 -0
  74. package/dest/l1_artifacts.d.ts +11903 -1961
  75. package/dest/l1_artifacts.d.ts.map +1 -1
  76. package/dest/l1_contract_addresses.d.ts +3 -3
  77. package/dest/l1_contract_addresses.d.ts.map +1 -1
  78. package/dest/l1_contract_addresses.js +3 -3
  79. package/dest/l1_reader.d.ts +4 -2
  80. package/dest/l1_reader.d.ts.map +1 -1
  81. package/dest/l1_reader.js +7 -1
  82. package/dest/l1_tx_utils/config.d.ts +11 -5
  83. package/dest/l1_tx_utils/config.d.ts.map +1 -1
  84. package/dest/l1_tx_utils/config.js +45 -9
  85. package/dest/l1_tx_utils/constants.d.ts +8 -2
  86. package/dest/l1_tx_utils/constants.d.ts.map +1 -1
  87. package/dest/l1_tx_utils/constants.js +27 -2
  88. package/dest/l1_tx_utils/factory.d.ts +18 -10
  89. package/dest/l1_tx_utils/factory.d.ts.map +1 -1
  90. package/dest/l1_tx_utils/factory.js +17 -7
  91. package/dest/l1_tx_utils/fee-strategies/index.d.ts +10 -0
  92. package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
  93. package/dest/l1_tx_utils/fee-strategies/index.js +12 -0
  94. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +8 -0
  95. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
  96. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +129 -0
  97. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +23 -0
  98. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
  99. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +191 -0
  100. package/dest/l1_tx_utils/fee-strategies/types.d.ts +51 -0
  101. package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
  102. package/dest/l1_tx_utils/fee-strategies/types.js +3 -0
  103. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
  104. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
  105. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +42 -0
  106. package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
  107. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
  108. package/dest/l1_tx_utils/index-blobs.js +2 -0
  109. package/dest/l1_tx_utils/index.d.ts +4 -1
  110. package/dest/l1_tx_utils/index.d.ts.map +1 -1
  111. package/dest/l1_tx_utils/index.js +3 -0
  112. package/dest/l1_tx_utils/interfaces.d.ts +2 -2
  113. package/dest/l1_tx_utils/interfaces.d.ts.map +1 -1
  114. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +233 -0
  115. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
  116. package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
  117. package/dest/l1_tx_utils/l1_tx_utils.d.ts +15 -6
  118. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
  119. package/dest/l1_tx_utils/l1_tx_utils.js +64 -17
  120. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +19 -17
  121. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
  122. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +69 -40
  123. package/dest/l1_tx_utils/signer.d.ts +1 -1
  124. package/dest/l1_tx_utils/tx_delayer.d.ts +56 -0
  125. package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
  126. package/dest/{test → l1_tx_utils}/tx_delayer.js +65 -36
  127. package/dest/l1_tx_utils/types.d.ts +1 -1
  128. package/dest/l1_tx_utils/types.d.ts.map +1 -1
  129. package/dest/l1_tx_utils/utils.d.ts +1 -1
  130. package/dest/l1_types.d.ts +1 -1
  131. package/dest/publisher_manager.d.ts +3 -2
  132. package/dest/publisher_manager.d.ts.map +1 -1
  133. package/dest/publisher_manager.js +2 -2
  134. package/dest/queries.d.ts +2 -2
  135. package/dest/queries.d.ts.map +1 -1
  136. package/dest/queries.js +16 -6
  137. package/dest/test/chain_monitor.d.ts +27 -24
  138. package/dest/test/chain_monitor.d.ts.map +1 -1
  139. package/dest/test/chain_monitor.js +33 -36
  140. package/dest/test/eth_cheat_codes.d.ts +26 -9
  141. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  142. package/dest/test/eth_cheat_codes.js +28 -12
  143. package/dest/test/eth_cheat_codes_with_state.d.ts +1 -1
  144. package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -1
  145. package/dest/test/index.d.ts +1 -3
  146. package/dest/test/index.d.ts.map +1 -1
  147. package/dest/test/index.js +0 -2
  148. package/dest/test/rollup_cheat_codes.d.ts +24 -20
  149. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  150. package/dest/test/rollup_cheat_codes.js +97 -41
  151. package/dest/test/start_anvil.d.ts +4 -1
  152. package/dest/test/start_anvil.d.ts.map +1 -1
  153. package/dest/test/start_anvil.js +3 -2
  154. package/dest/test/upgrade_utils.d.ts +1 -1
  155. package/dest/test/upgrade_utils.d.ts.map +1 -1
  156. package/dest/test/upgrade_utils.js +4 -3
  157. package/dest/types.d.ts +57 -2
  158. package/dest/types.d.ts.map +1 -1
  159. package/dest/utils.d.ts +16 -3
  160. package/dest/utils.d.ts.map +1 -1
  161. package/dest/utils.js +64 -0
  162. package/dest/zkPassportVerifierAddress.d.ts +1 -1
  163. package/package.json +34 -14
  164. package/src/client.ts +3 -3
  165. package/src/config.ts +74 -414
  166. package/src/contracts/README.md +157 -0
  167. package/src/contracts/empire_base.ts +8 -5
  168. package/src/contracts/empire_slashing_proposer.ts +38 -32
  169. package/src/contracts/fee_asset_handler.ts +10 -7
  170. package/src/contracts/fee_asset_price_oracle.ts +280 -0
  171. package/src/contracts/governance.ts +13 -4
  172. package/src/contracts/governance_proposer.ts +26 -6
  173. package/src/contracts/inbox.ts +55 -3
  174. package/src/contracts/index.ts +3 -0
  175. package/src/contracts/log.ts +13 -0
  176. package/src/contracts/multicall.ts +5 -2
  177. package/src/contracts/outbox.ts +98 -0
  178. package/src/contracts/rollup.ts +433 -167
  179. package/src/contracts/tally_slashing_proposer.ts +25 -9
  180. package/src/deploy_aztec_l1_contracts.ts +650 -0
  181. package/src/deploy_l1_contract.ts +362 -0
  182. package/src/forwarder_proxy.ts +108 -0
  183. package/src/generated/l1-contracts-defaults.ts +32 -0
  184. package/src/l1_contract_addresses.ts +22 -20
  185. package/src/l1_reader.ts +10 -2
  186. package/src/l1_tx_utils/config.ts +54 -13
  187. package/src/l1_tx_utils/constants.ts +13 -2
  188. package/src/l1_tx_utils/factory.ts +31 -31
  189. package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
  190. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +163 -0
  191. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +245 -0
  192. package/src/l1_tx_utils/fee-strategies/types.ts +56 -0
  193. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +108 -0
  194. package/src/l1_tx_utils/index-blobs.ts +2 -0
  195. package/src/l1_tx_utils/index.ts +3 -0
  196. package/src/l1_tx_utils/interfaces.ts +1 -1
  197. package/src/l1_tx_utils/l1_fee_analyzer.ts +803 -0
  198. package/src/l1_tx_utils/l1_tx_utils.ts +76 -21
  199. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +92 -45
  200. package/src/{test → l1_tx_utils}/tx_delayer.ts +82 -52
  201. package/src/publisher_manager.ts +4 -2
  202. package/src/queries.ts +17 -6
  203. package/src/test/chain_monitor.ts +51 -49
  204. package/src/test/eth_cheat_codes.ts +34 -15
  205. package/src/test/index.ts +0 -2
  206. package/src/test/rollup_cheat_codes.ts +111 -54
  207. package/src/test/start_anvil.ts +5 -1
  208. package/src/test/upgrade_utils.ts +4 -3
  209. package/src/types.ts +62 -0
  210. package/src/utils.ts +83 -1
  211. package/dest/deploy_l1_contracts.d.ts +0 -226
  212. package/dest/deploy_l1_contracts.d.ts.map +0 -1
  213. package/dest/deploy_l1_contracts.js +0 -1459
  214. package/dest/index.d.ts +0 -18
  215. package/dest/index.d.ts.map +0 -1
  216. package/dest/index.js +0 -17
  217. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
  218. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
  219. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
  220. package/dest/test/delayed_tx_utils.d.ts +0 -13
  221. package/dest/test/delayed_tx_utils.d.ts.map +0 -1
  222. package/dest/test/delayed_tx_utils.js +0 -28
  223. package/dest/test/tx_delayer.d.ts +0 -36
  224. package/dest/test/tx_delayer.d.ts.map +0 -1
  225. package/src/deploy_l1_contracts.ts +0 -1838
  226. package/src/index.ts +0 -17
  227. package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
  228. package/src/test/delayed_tx_utils.ts +0 -52
@@ -1,6 +1,6 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
- import type { TestDateProvider } from '@aztec/foundation/timer';
3
- import { type Hex, type Transaction } from 'viem';
2
+ import type { DateProvider, TestDateProvider } from '@aztec/foundation/timer';
3
+ import { type Chain, type Hex, type Transaction } from 'viem';
4
4
  import type { ViemPublicClient } from '../types.js';
5
5
  /**
6
6
  * A class that provides utility functions for interacting with ethereum (L1).
@@ -10,20 +10,36 @@ export declare class EthCheatCodes {
10
10
  * The RPC URL to use for interacting with the chain
11
11
  */
12
12
  rpcUrls: string[];
13
+ /**
14
+ * The date provider to use for time operations
15
+ */
16
+ dateProvider: DateProvider | TestDateProvider;
13
17
  /**
14
18
  * The logger to use for the eth cheatcodes
15
19
  */
16
20
  logger: import("@aztec/foundation/log").Logger;
21
+ /**
22
+ * The chain configuration provided to Anvil
23
+ */
24
+ chain: Chain;
17
25
  readonly publicClient: ViemPublicClient;
18
26
  constructor(
19
27
  /**
20
28
  * The RPC URL to use for interacting with the chain
21
29
  */
22
30
  rpcUrls: string[],
31
+ /**
32
+ * The date provider to use for time operations
33
+ */
34
+ dateProvider: DateProvider | TestDateProvider,
23
35
  /**
24
36
  * The logger to use for the eth cheatcodes
25
37
  */
26
- logger?: import("@aztec/foundation/log").Logger);
38
+ logger?: import("@aztec/foundation/log").Logger,
39
+ /**
40
+ * The chain configuration provided to Anvil
41
+ */
42
+ chain?: Chain);
27
43
  rpcCall(method: string, params: any[]): Promise<any>;
28
44
  private doRpcCall;
29
45
  /**
@@ -105,13 +121,12 @@ export declare class EthCheatCodes {
105
121
  /**
106
122
  * Set the next block timestamp and mines the block.
107
123
  * Optionally resets interval mining so the next block is mined in `blockInterval` seconds from now.
108
- * Optionally updates a provided date provider to follow L1 time.
124
+ * Always updates the injected date provider to follow L1 time.
109
125
  * @param timestamp - The timestamp to set the next block to
110
126
  */
111
127
  warp(timestamp: number | bigint, opts?: {
112
128
  silent?: boolean;
113
129
  resetBlockInterval?: boolean;
114
- updateDateProvider?: TestDateProvider;
115
130
  }): Promise<void>;
116
131
  /**
117
132
  * Load the value at a storage slot of a contract address on eth
@@ -126,7 +141,9 @@ export declare class EthCheatCodes {
126
141
  * @param slot - The storage slot
127
142
  * @param value - The value to set the storage slot to
128
143
  */
129
- store(contract: EthAddress, slot: bigint, value: bigint): Promise<void>;
144
+ store(contract: EthAddress, slot: bigint, value: bigint, opts?: {
145
+ silent?: boolean;
146
+ }): Promise<void>;
130
147
  /**
131
148
  * Computes the slot value for a given map and key.
132
149
  * @param baseSlot - The base slot of the map (specified in Aztec.nr contract)
@@ -201,12 +218,12 @@ export declare class EthCheatCodes {
201
218
  * mining a block, and then re-adding the transactions back to the pool.
202
219
  */
203
220
  mineEmptyBlock(blockCount?: number): Promise<void>;
204
- execWithPausedAnvil(fn: () => Promise<void>): Promise<void>;
205
- syncDateProvider(dateProvider: TestDateProvider): Promise<void>;
221
+ execWithPausedAnvil<T>(fn: () => Promise<T>): Promise<T>;
222
+ syncDateProvider(): Promise<void>;
206
223
  }
207
224
  type TxPoolState = 'pending' | 'queued';
208
225
  export type TxPoolTransaction = Transaction & {
209
226
  poolState: TxPoolState;
210
227
  };
211
228
  export {};
212
- //# sourceMappingURL=eth_cheat_codes.d.ts.map
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2NoZWF0X2NvZGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9ldGhfY2hlYXRfY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTNELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLFdBQVcsRUFBbUQsTUFBTSxNQUFNLENBQUM7QUFHL0csT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxxQkFBYSxhQUFhO0lBR3RCOztPQUVHO0lBQ0ksT0FBTyxFQUFFLE1BQU0sRUFBRTtJQUN4Qjs7T0FFRztJQUNJLFlBQVksRUFBRSxZQUFZLEdBQUcsZ0JBQWdCO0lBQ3BEOztPQUVHO0lBQ0ksTUFBTTtJQUNiOztPQUVHO0lBQ0ksS0FBSyxFQUFFLEtBQUs7SUFqQnJCLFNBQWdCLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztJQUMvQztJQUNFOztPQUVHO0lBQ0ksT0FBTyxFQUFFLE1BQU0sRUFBRTtJQUN4Qjs7T0FFRztJQUNJLFlBQVksRUFBRSxZQUFZLEdBQUcsZ0JBQWdCO0lBQ3BEOztPQUVHO0lBQ0ksTUFBTSx5Q0FBdUM7SUFDcEQ7O09BRUc7SUFDSSxLQUFLLEdBQUUsS0FBZSxFQU05QjtJQUVNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsZ0JBRzNDO1lBRWEsU0FBUztJQU92Qjs7O09BR0c7SUFDVSxZQUFZLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVE1QztJQUVEOzs7T0FHRztJQUNVLFdBQVcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRzFDO0lBRUQ7OztPQUdHO0lB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
@@ -1 +1 @@
1
- {"version":3,"file":"eth_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/eth_cheat_codes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eth_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/eth_cheat_codes.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,36 @@
1
1
  import { toBigIntBE, toHex } from '@aztec/foundation/bigint-buffer';
2
- import { keccak256 } from '@aztec/foundation/crypto';
2
+ import { keccak256 } from '@aztec/foundation/crypto/keccak';
3
3
  import { jsonStringify } from '@aztec/foundation/json-rpc';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { pluralize } from '@aztec/foundation/string';
6
6
  import { createPublicClient, fallback, hexToNumber, http } from 'viem';
7
+ import { foundry } from 'viem/chains';
7
8
  /**
8
9
  * A class that provides utility functions for interacting with ethereum (L1).
9
10
  */ export class EthCheatCodes {
10
11
  rpcUrls;
12
+ dateProvider;
11
13
  logger;
14
+ chain;
12
15
  publicClient;
13
16
  constructor(/**
14
17
  * The RPC URL to use for interacting with the chain
15
18
  */ rpcUrls, /**
19
+ * The date provider to use for time operations
20
+ */ dateProvider, /**
16
21
  * The logger to use for the eth cheatcodes
17
- */ logger = createLogger('ethereum:cheat_codes')){
22
+ */ logger = createLogger('ethereum:cheat_codes'), /**
23
+ * The chain configuration provided to Anvil
24
+ */ chain = foundry){
18
25
  this.rpcUrls = rpcUrls;
26
+ this.dateProvider = dateProvider;
19
27
  this.logger = logger;
28
+ this.chain = chain;
20
29
  this.publicClient = createPublicClient({
21
- transport: fallback(this.rpcUrls.map((url)=>http(url)))
30
+ transport: fallback(this.rpcUrls.map((url)=>http(url, {
31
+ batch: false
32
+ }))),
33
+ chain: chain
22
34
  });
23
35
  }
24
36
  rpcCall(method, params) {
@@ -210,7 +222,7 @@ import { createPublicClient, fallback, hexToNumber, http } from 'viem';
210
222
  /**
211
223
  * Set the next block timestamp and mines the block.
212
224
  * Optionally resets interval mining so the next block is mined in `blockInterval` seconds from now.
213
- * Optionally updates a provided date provider to follow L1 time.
225
+ * Always updates the injected date provider to follow L1 time.
214
226
  * @param timestamp - The timestamp to set the next block to
215
227
  */ async warp(timestamp, opts = {}) {
216
228
  let blockInterval = null;
@@ -230,8 +242,10 @@ import { createPublicClient, fallback, hexToNumber, http } from 'viem';
230
242
  ]);
231
243
  // And mine a block so the timestamp goes into effect now
232
244
  await this.doMine();
233
- // Update the date provider if provided so it follows L1 time
234
- opts.updateDateProvider?.setTime(Number(timestamp) * 1000);
245
+ // Update the injected date provider so it follows L1 time
246
+ if ('setTime' in this.dateProvider) {
247
+ this.dateProvider.setTime(Number(timestamp) * 1000);
248
+ }
235
249
  } catch (err) {
236
250
  throw new Error(`Error warping: ${err}`);
237
251
  } finally{
@@ -264,7 +278,7 @@ import { createPublicClient, fallback, hexToNumber, http } from 'viem';
264
278
  * @param contract - The contract address
265
279
  * @param slot - The storage slot
266
280
  * @param value - The value to set the storage slot to
267
- */ async store(contract, slot, value) {
281
+ */ async store(contract, slot, value, opts = {}) {
268
282
  // for the rpc call, we need to change value to be a 32 byte hex string.
269
283
  try {
270
284
  await this.rpcCall('hardhat_setStorageAt', [
@@ -275,7 +289,9 @@ import { createPublicClient, fallback, hexToNumber, http } from 'viem';
275
289
  } catch (err) {
276
290
  throw new Error(`Error setting storage for contract ${contract} at ${slot}: ${err}`);
277
291
  }
278
- this.logger.warn(`Set L1 storage for contract ${contract} at ${slot} to ${value}`);
292
+ if (!opts.silent) {
293
+ this.logger.warn(`Set L1 storage for contract ${contract} at ${slot} to ${value}`);
294
+ }
279
295
  }
280
296
  /**
281
297
  * Computes the slot value for a given map and key.
@@ -495,7 +511,7 @@ import { createPublicClient, fallback, hexToNumber, http } from 'viem';
495
511
  silent: true
496
512
  });
497
513
  }
498
- await fn();
514
+ return await fn();
499
515
  } finally{
500
516
  try {
501
517
  // restore automine if necessary
@@ -519,10 +535,10 @@ import { createPublicClient, fallback, hexToNumber, http } from 'viem';
519
535
  }
520
536
  }
521
537
  }
522
- async syncDateProvider(dateProvider) {
538
+ async syncDateProvider() {
523
539
  const timestamp = await this.timestamp();
524
- if ('setTime' in dateProvider) {
525
- dateProvider.setTime(timestamp * 1000);
540
+ if ('setTime' in this.dateProvider) {
541
+ this.dateProvider.setTime(timestamp * 1000);
526
542
  }
527
543
  }
528
544
  }
@@ -15,4 +15,4 @@ export declare class EthCheatCodesWithState extends EthCheatCodes {
15
15
  */
16
16
  loadChainState(fileName: string): Promise<void>;
17
17
  }
18
- //# sourceMappingURL=eth_cheat_codes_with_state.d.ts.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2NoZWF0X2NvZGVzX3dpdGhfc3RhdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2V0aF9jaGVhdF9jb2Rlc193aXRoX3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRDs7O0dBR0c7QUFDSCxxQkFBYSxzQkFBdUIsU0FBUSxhQUFhO0lBQ3ZEOzs7T0FHRztJQUNVLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FTM0Q7SUFFRDs7O09BR0c7SUFDVSxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBUTNEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"eth_cheat_codes_with_state.d.ts","sourceRoot":"","sources":["../../src/test/eth_cheat_codes_with_state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,aAAa;IACvD;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5D;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7D"}
1
+ {"version":3,"file":"eth_cheat_codes_with_state.d.ts","sourceRoot":"","sources":["../../src/test/eth_cheat_codes_with_state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,aAAa;IACvD;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3D;IAED;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3D;CACF"}
@@ -1,9 +1,7 @@
1
- export * from './delayed_tx_utils.js';
2
1
  export * from './eth_cheat_codes.js';
3
2
  export * from './eth_cheat_codes_with_state.js';
4
3
  export * from './start_anvil.js';
5
- export * from './tx_delayer.js';
6
4
  export * from './upgrade_utils.js';
7
5
  export * from './chain_monitor.js';
8
6
  export * from './rollup_cheat_codes.js';
9
- //# sourceMappingURL=index.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHlCQUF5QixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC"}
@@ -1,8 +1,6 @@
1
- export * from './delayed_tx_utils.js';
2
1
  export * from './eth_cheat_codes.js';
3
2
  export * from './eth_cheat_codes_with_state.js';
4
3
  export * from './start_anvil.js';
5
- export * from './tx_delayer.js';
6
4
  export * from './upgrade_utils.js';
7
5
  export * from './chain_monitor.js';
8
6
  export * from './rollup_cheat_codes.js';
@@ -1,6 +1,7 @@
1
- import { type ViemPublicClient } from '@aztec/ethereum';
2
1
  import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
3
- import type { TestDateProvider } from '@aztec/foundation/timer';
2
+ import type { ViemPublicClient } from '@aztec/ethereum/types';
3
+ import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
4
+ import type { DateProvider } from '@aztec/foundation/timer';
4
5
  import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
5
6
  import { type GetContractReturnType, type Hex } from 'viem';
6
7
  import { EthCheatCodes } from './eth_cheat_codes.js';
@@ -11,18 +12,20 @@ export declare class RollupCheatCodes {
11
12
  private rollup;
12
13
  private logger;
13
14
  constructor(ethCheatCodes: EthCheatCodes, addresses: Pick<L1ContractAddresses, 'rollupAddress'>);
14
- static create(rpcUrls: string[], addresses: Pick<L1ContractAddresses, 'rollupAddress'>): RollupCheatCodes;
15
+ static create(rpcUrls: string[], addresses: Pick<L1ContractAddresses, 'rollupAddress'>, dateProvider: DateProvider): RollupCheatCodes;
15
16
  /** Returns the current slot */
16
- getSlot(): Promise<bigint>;
17
+ getSlot(): Promise<SlotNumber>;
18
+ /** Returns the number of seconds until the start of the given slot based on L1 block timestamp. */
19
+ getSecondsUntilSlot(slot: SlotNumber): Promise<number>;
17
20
  /** Returns the current epoch */
18
- getEpoch(): Promise<bigint>;
21
+ getEpoch(): Promise<EpochNumber>;
19
22
  /**
20
23
  * Returns the pending and proven chain tips
21
24
  * @returns The pending and proven chain tips
22
25
  */
23
26
  getTips(): Promise<{
24
- /** The pending chain tip */ pending: bigint;
25
- /** The proven chain tip */ proven: bigint;
27
+ /** The pending chain tip */ pending: CheckpointNumber;
28
+ /** The proven chain tip */ proven: CheckpointNumber;
26
29
  }>;
27
30
  /**
28
31
  * Logs the current state of the rollup contract.
@@ -31,36 +34,37 @@ export declare class RollupCheatCodes {
31
34
  /** Fetches the epoch and slot duration config from the rollup contract */
32
35
  getConfig(): Promise<{
33
36
  /** Epoch duration */ epochDuration: bigint;
34
- /** Slot duration */ slotDuration: bigint;
37
+ /** Slot duration */ slotDuration: number;
35
38
  }>;
36
39
  /**
37
40
  * Advances time to the beginning of the given epoch
38
41
  * @param epoch - The epoch to advance to
39
42
  * @param opts - Options
40
43
  */
41
- advanceToEpoch(epoch: bigint | number, opts?: {
42
- /** Optional test date provider to update with the epoch timestamp */
43
- updateDateProvider?: TestDateProvider;
44
+ advanceToEpoch(epoch: EpochNumber, opts?: {
44
45
  /** Offset in seconds */
45
46
  offset?: number;
46
47
  }): Promise<bigint>;
47
48
  /** Warps time in L1 until the next epoch */
48
- advanceToNextEpoch(opts?: {
49
- /** Optional test date provider to update with the epoch timestamp */
50
- updateDateProvider?: TestDateProvider;
51
- }): Promise<void>;
49
+ advanceToNextEpoch(): Promise<void>;
52
50
  /** Warps time in L1 until the beginning of the next slot. */
53
- advanceToNextSlot(): Promise<bigint[]>;
51
+ advanceToNextSlot(): Promise<(bigint | SlotNumber)[]>;
54
52
  /**
55
53
  * Warps time in L1 equivalent to however many slots.
56
54
  * @param howMany - The number of slots to advance.
57
55
  */
58
56
  advanceSlots(howMany: number): Promise<void>;
59
57
  /**
60
- * Marks the specified block (or latest if none) as proven
61
- * @param maybeBlockNumber - The block number to mark as proven (defaults to latest pending)
58
+ * Marks the specified checkpoint (or latest if none) as proven
59
+ * @param maybeCheckpointNumber - The checkpoint number to mark as proven (defaults to latest pending)
62
60
  */
63
- markAsProven(maybeBlockNumber?: number | bigint): Promise<void>;
61
+ markAsProven(maybeCheckpointNumber?: CheckpointNumber): Promise<void>;
62
+ /**
63
+ * Overrides the inProgress field of the Inbox contract state
64
+ * @param howMuch - How many checkpoints to move it forward
65
+ */
66
+ advanceInboxInProgress(howMuch: number | bigint): Promise<bigint>;
67
+ insertOutbox(epoch: EpochNumber, outHash: bigint): Promise<void>;
64
68
  /**
65
69
  * Executes an action impersonated as the owner of the Rollup contract.
66
70
  * @param action - The action to execute
@@ -83,4 +87,4 @@ export declare class RollupCheatCodes {
83
87
  */
84
88
  setProvingCostPerMana(ethValue: bigint): Promise<void>;
85
89
  }
86
- //# sourceMappingURL=rollup_cheat_codes.d.ts.map
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwX2NoZWF0X2NvZGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9yb2xsdXBfY2hlYXRfY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHNUYsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sRUFDTCxLQUFLLHFCQUFxQixFQUMxQixLQUFLLEdBQUcsRUFNVCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCw4Q0FBOEM7QUFDOUMscUJBQWEsZ0JBQWdCO0lBT3pCLE9BQU8sQ0FBQyxhQUFhO0lBTnZCLE9BQU8sQ0FBQyxNQUFNLENBQW1CO0lBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQTREO0lBRTFFLE9BQU8sQ0FBQyxNQUFNLENBQXVDO0lBRXJELFlBQ1UsYUFBYSxFQUFFLGFBQWEsRUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsRUFXdEQ7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUNYLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsRUFDckQsWUFBWSxFQUFFLFlBQVksR0FDekIsZ0JBQWdCLENBR2xCO0lBRUQsK0JBQStCO0lBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRzFDO0lBRUQsbUdBQW1HO0lBQ3RGLG1CQUFtQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQU1sRTtJQUVELGdDQUFnQztJQUNuQixRQUFRLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUc1QztJQUVEOzs7T0FHRztJQUNVLE9BQU8sSUFBSSxPQUFPLENBQUM7UUFDOUIsNEJBQTRCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDO1FBQ3ZELDJCQUEyQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztLQUN0RCxDQUFDLENBTUQ7SUFFRDs7T0FFRztJQUNVLFdBQVcsa0JBaUJ2QjtJQUVELDBFQUEwRTtJQUM3RCxTQUFTLElBQUksT0FBTyxDQUFDO1FBQ2hDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7UUFDNUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztLQUMzQyxDQUFDLENBTUQ7SUFFRDs7OztPQUlHO0lBQ1UsY0FBYyxDQUN6QixLQUFLLEVBQUUsV0FBVyxFQUNsQixJQUFJLEdBQUU7UUFDSix3QkFBd0I7UUFDeEIsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0tBQ1osbUJBWVA7SUFFRCw0Q0FBNEM7SUFDL0Isa0JBQWtCLGtCQVc5QjtJQUVELDZEQUE2RDtJQUNoRCxpQkFBaUIscUNBTzdCO0lBRUQ7OztPQUdHO0lBQ1UsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLGlCQU94QztJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLGdCQUFnQixpQkErQjNEO0lBRUQ7OztPQUdHO0lBQ0ksc0JBQXNCLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQW1DdkU7SUFFTSxZQUFZLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFPdEQ7SUFFRDs7O09BR0c7SUFDVSxPQUFPLENBQ2xCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixDQUFDLE9BQU8sU0FBUyxFQUFFLGdCQUFnQixDQUFDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFNekc7SUFFRDs7T0FFRztJQUNVLFVBQVUsa0JBT3RCO0lBRUQsNENBQTRDO0lBQy9CLG9CQUFvQixrQkFNaEM7SUFFRDs7O09BR0c7SUFDVSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxLQUFLLE1BQU0saUJBSXJFO0lBRUQ7OztPQUdHO0lBQ1UscUJBQXFCLENBQUMsUUFBUSxFQUFFLE1BQU0saUJBVWxEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"rollup_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/rollup_cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAMT,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8CAA8C;AAC9C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA4D;IAE1E,OAAO,CAAC,MAAM,CAAuC;gBAG3C,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC;IAavD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,gBAAgB;IAKzG,+BAA+B;IAClB,OAAO;IAKpB,gCAAgC;IACnB,QAAQ;IAKrB;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7C,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IAQF;;OAEG;IACU,WAAW;IAmBxB,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC;IAQF;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;QACtC,wBAAwB;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAcR,4CAA4C;IAC/B,kBAAkB,CAC7B,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;KAClC;IAeR,6DAA6D;IAChD,iBAAiB;IAQ9B;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM;IASzC;;;OAGG;IACI,YAAY,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAiCtD;;;OAGG;IACU,OAAO,CAClB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAQ1G;;OAEG;IACU,UAAU;IASvB,4CAA4C;IAC/B,oBAAoB;IAQjC;;;OAGG;IACU,sBAAsB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM;IAMtE;;;OAGG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM;CAWpD"}
1
+ {"version":3,"file":"rollup_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/rollup_cheat_codes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAMT,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8CAA8C;AAC9C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA4D;IAE1E,OAAO,CAAC,MAAM,CAAuC;IAErD,YACU,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAWtD;IAED,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EACrD,YAAY,EAAE,YAAY,GACzB,gBAAgB,CAGlB;IAED,+BAA+B;IAClB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAG1C;IAED,mGAAmG;IACtF,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlE;IAED,gCAAgC;IACnB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAG5C;IAED;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACvD,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACtD,CAAC,CAMD;IAED;;OAEG;IACU,WAAW,kBAiBvB;IAED,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC,CAMD;IAED;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,WAAW,EAClB,IAAI,GAAE;QACJ,wBAAwB;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ,mBAYP;IAED,4CAA4C;IAC/B,kBAAkB,kBAW9B;IAED,6DAA6D;IAChD,iBAAiB,qCAO7B;IAED;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM,iBAOxC;IAED;;;OAGG;IACI,YAAY,CAAC,qBAAqB,CAAC,EAAE,gBAAgB,iBA+B3D;IAED;;;OAGG;IACI,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCvE;IAEM,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAOtD;IAED;;;OAGG;IACU,OAAO,CAClB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,iBAMzG;IAED;;OAEG;IACU,UAAU,kBAOtB;IAED,4CAA4C;IAC/B,oBAAoB,kBAMhC;IAED;;;OAGG;IACU,sBAAsB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,iBAIrE;IAED;;;OAGG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,iBAUlD;CACF"}
@@ -1,9 +1,9 @@
1
- import { RollupContract } from '@aztec/ethereum';
1
+ import { OutboxContract, RollupContract } from '@aztec/ethereum/contracts';
2
+ import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
3
  import { EthAddress } from '@aztec/foundation/eth-address';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
5
6
  import { createPublicClient, fallback, getContract, hexToBigInt, http } from 'viem';
6
- import { foundry } from 'viem/chains';
7
7
  import { EthCheatCodes } from './eth_cheat_codes.js';
8
8
  /** Cheat codes for the L1 rollup contract. */ export class RollupCheatCodes {
9
9
  ethCheatCodes;
@@ -14,8 +14,10 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
14
14
  this.ethCheatCodes = ethCheatCodes;
15
15
  this.logger = createLogger('aztecjs:cheat_codes');
16
16
  this.client = createPublicClient({
17
- chain: foundry,
18
- transport: fallback(ethCheatCodes.rpcUrls.map((url)=>http(url)))
17
+ chain: ethCheatCodes.chain,
18
+ transport: fallback(ethCheatCodes.rpcUrls.map((url)=>http(url, {
19
+ batch: false
20
+ })))
19
21
  });
20
22
  this.rollup = getContract({
21
23
  abi: RollupAbi,
@@ -23,45 +25,54 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
23
25
  client: this.client
24
26
  });
25
27
  }
26
- static create(rpcUrls, addresses) {
27
- const ethCheatCodes = new EthCheatCodes(rpcUrls);
28
+ static create(rpcUrls, addresses, dateProvider) {
29
+ const ethCheatCodes = new EthCheatCodes(rpcUrls, dateProvider);
28
30
  return new RollupCheatCodes(ethCheatCodes, addresses);
29
31
  }
30
32
  /** Returns the current slot */ async getSlot() {
31
33
  const ts = BigInt((await this.client.getBlock()).timestamp);
32
- return await this.rollup.read.getSlotAt([
34
+ return SlotNumber.fromBigInt(await this.rollup.read.getSlotAt([
33
35
  ts
36
+ ]));
37
+ }
38
+ /** Returns the number of seconds until the start of the given slot based on L1 block timestamp. */ async getSecondsUntilSlot(slot) {
39
+ const [currentTimestamp, targetTimestamp] = await Promise.all([
40
+ this.client.getBlock().then((b)=>BigInt(b.timestamp)),
41
+ this.rollup.read.getTimestampForSlot([
42
+ BigInt(slot)
43
+ ])
34
44
  ]);
45
+ return Math.max(0, Number(targetTimestamp - currentTimestamp));
35
46
  }
36
47
  /** Returns the current epoch */ async getEpoch() {
37
48
  const slotNumber = await this.getSlot();
38
- return await this.rollup.read.getEpochAtSlot([
39
- slotNumber
40
- ]);
49
+ return EpochNumber.fromBigInt(await this.rollup.read.getEpochAtSlot([
50
+ BigInt(slotNumber)
51
+ ]));
41
52
  }
42
53
  /**
43
54
  * Returns the pending and proven chain tips
44
55
  * @returns The pending and proven chain tips
45
56
  */ async getTips() {
46
- const res = await this.rollup.read.getTips();
57
+ const { pending, proven } = await this.rollup.read.getTips();
47
58
  return {
48
- pending: res.pendingBlockNumber,
49
- proven: res.provenBlockNumber
59
+ pending: CheckpointNumber.fromBigInt(pending),
60
+ proven: CheckpointNumber.fromBigInt(proven)
50
61
  };
51
62
  }
52
63
  /**
53
64
  * Logs the current state of the rollup contract.
54
65
  */ async debugRollup() {
55
66
  const rollup = new RollupContract(this.client, this.rollup.address);
56
- const pendingNum = await rollup.getBlockNumber();
57
- const provenNum = await rollup.getProvenBlockNumber();
67
+ const pendingNum = await rollup.getCheckpointNumber();
68
+ const provenNum = await rollup.getProvenCheckpointNumber();
58
69
  const validators = await rollup.getAttesters();
59
70
  const committee = await rollup.getCurrentEpochCommittee();
60
71
  const archive = await rollup.archive();
61
72
  const slot = await this.getSlot();
62
73
  const epochNum = await rollup.getEpochNumberForSlotNumber(slot);
63
- this.logger.info(`Pending block num: ${pendingNum}`);
64
- this.logger.info(`Proven block num: ${provenNum}`);
74
+ this.logger.info(`Pending checkpoint num: ${pendingNum}`);
75
+ this.logger.info(`Proven checkpoint num: ${provenNum}`);
65
76
  this.logger.info(`Validators: ${validators.map((v)=>v.toString()).join(', ')}`);
66
77
  this.logger.info(`Committee: ${committee?.map((v)=>v.toString()).join(', ')}`);
67
78
  this.logger.info(`Archive: ${archive}`);
@@ -75,7 +86,7 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
75
86
  ]);
76
87
  return {
77
88
  epochDuration,
78
- slotDuration
89
+ slotDuration: Number(slotDuration)
79
90
  };
80
91
  }
81
92
  /**
@@ -84,8 +95,9 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
84
95
  * @param opts - Options
85
96
  */ async advanceToEpoch(epoch, opts = {}) {
86
97
  const { epochDuration: slotsInEpoch } = await this.getConfig();
98
+ const slotNumber = SlotNumber(Number(epoch) * Number(slotsInEpoch));
87
99
  const timestamp = await this.rollup.read.getTimestampForSlot([
88
- BigInt(epoch) * slotsInEpoch
100
+ BigInt(slotNumber)
89
101
  ]) + BigInt(opts.offset ?? 0);
90
102
  try {
91
103
  await this.ethCheatCodes.warp(Number(timestamp), {
@@ -93,20 +105,22 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
93
105
  silent: true,
94
106
  resetBlockInterval: true
95
107
  });
96
- this.logger.warn(`Warped to epoch ${epoch}`);
108
+ this.logger.warn(`Warped to epoch ${epoch}`, {
109
+ offset: opts.offset,
110
+ timestamp
111
+ });
97
112
  } catch (err) {
98
113
  this.logger.warn(`Warp to epoch ${epoch} failed: ${err}`);
99
114
  }
100
115
  return timestamp;
101
116
  }
102
- /** Warps time in L1 until the next epoch */ async advanceToNextEpoch(opts = {}) {
117
+ /** Warps time in L1 until the next epoch */ async advanceToNextEpoch() {
103
118
  const slot = await this.getSlot();
104
119
  const { epochDuration, slotDuration } = await this.getConfig();
105
- const slotsUntilNextEpoch = epochDuration - slot % epochDuration + 1n;
106
- const timeToNextEpoch = slotsUntilNextEpoch * slotDuration;
120
+ const slotsUntilNextEpoch = epochDuration - BigInt(slot) % epochDuration + 1n;
121
+ const timeToNextEpoch = slotsUntilNextEpoch * BigInt(slotDuration);
107
122
  const l1Timestamp = BigInt((await this.client.getBlock()).timestamp);
108
123
  await this.ethCheatCodes.warp(Number(l1Timestamp + timeToNextEpoch), {
109
- ...opts,
110
124
  silent: true,
111
125
  resetBlockInterval: true
112
126
  });
@@ -114,17 +128,18 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
114
128
  }
115
129
  /** Warps time in L1 until the beginning of the next slot. */ async advanceToNextSlot() {
116
130
  const currentSlot = await this.getSlot();
131
+ const nextSlot = SlotNumber(currentSlot + 1);
117
132
  const timestamp = await this.rollup.read.getTimestampForSlot([
118
- currentSlot + 1n
133
+ BigInt(nextSlot)
119
134
  ]);
120
135
  await this.ethCheatCodes.warp(Number(timestamp), {
121
136
  silent: true,
122
137
  resetBlockInterval: true
123
138
  });
124
- this.logger.warn(`Advanced to slot ${currentSlot + 1n}`);
139
+ this.logger.warn(`Advanced to slot ${nextSlot}`);
125
140
  return [
126
141
  timestamp,
127
- currentSlot + 1n
142
+ nextSlot
128
143
  ];
129
144
  }
130
145
  /**
@@ -132,8 +147,8 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
132
147
  * @param howMany - The number of slots to advance.
133
148
  */ async advanceSlots(howMany) {
134
149
  const l1Timestamp = (await this.client.getBlock()).timestamp;
135
- const slotDuration = await this.rollup.read.getSlotDuration();
136
- const timeToWarp = BigInt(howMany) * slotDuration;
150
+ const slotDuration = Number(await this.rollup.read.getSlotDuration());
151
+ const timeToWarp = BigInt(howMany) * BigInt(slotDuration);
137
152
  await this.ethCheatCodes.warp(l1Timestamp + timeToWarp, {
138
153
  silent: true,
139
154
  resetBlockInterval: true
@@ -145,34 +160,75 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
145
160
  this.logger.warn(`Advanced ${howMany} slots up to slot ${slot} in epoch ${epoch}`);
146
161
  }
147
162
  /**
148
- * Marks the specified block (or latest if none) as proven
149
- * @param maybeBlockNumber - The block number to mark as proven (defaults to latest pending)
150
- */ markAsProven(maybeBlockNumber) {
163
+ * Marks the specified checkpoint (or latest if none) as proven
164
+ * @param maybeCheckpointNumber - The checkpoint number to mark as proven (defaults to latest pending)
165
+ */ markAsProven(maybeCheckpointNumber) {
151
166
  return this.ethCheatCodes.execWithPausedAnvil(async ()=>{
152
167
  const tipsBefore = await this.getTips();
153
168
  const { pending, proven } = tipsBefore;
154
- let blockNumber = maybeBlockNumber;
155
- if (blockNumber === undefined || blockNumber > pending) {
156
- blockNumber = pending;
169
+ let checkpointNumber = maybeCheckpointNumber;
170
+ if (checkpointNumber === undefined || checkpointNumber > pending) {
171
+ checkpointNumber = pending;
157
172
  }
158
- if (blockNumber <= proven) {
159
- this.logger.debug(`Block ${blockNumber} is already proven`);
173
+ if (checkpointNumber <= proven) {
174
+ this.logger.debug(`Checkpoint ${checkpointNumber} is already proven`);
160
175
  return;
161
176
  }
162
177
  // @note @LHerskind this is heavily dependent on the storage layout and size of values
163
178
  // The rollupStore is a struct and if the size of elements or the struct changes, this can break
164
- const provenBlockNumberSlot = hexToBigInt(RollupContract.stfStorageSlot);
179
+ const provenCheckpointNumberSlot = hexToBigInt(RollupContract.stfStorageSlot);
165
180
  // Need to pack it as a single 32 byte word
166
- const newValue = BigInt(tipsBefore.pending) << 128n | BigInt(blockNumber);
167
- await this.ethCheatCodes.store(EthAddress.fromString(this.rollup.address), provenBlockNumberSlot, newValue);
181
+ const newValue = BigInt(tipsBefore.pending) << 128n | BigInt(checkpointNumber);
182
+ await this.ethCheatCodes.store(EthAddress.fromString(this.rollup.address), provenCheckpointNumberSlot, newValue);
168
183
  const tipsAfter = await this.getTips();
169
184
  if (tipsAfter.pending < tipsAfter.proven) {
170
- throw new Error('Overwrote pending tip to a block in the past');
185
+ throw new Error('Overwrote pending tip to a checkpoint in the past');
171
186
  }
172
187
  this.logger.info(`Proven tip moved: ${tipsBefore.proven} -> ${tipsAfter.proven}. Pending tip: ${tipsAfter.pending}.`);
173
188
  });
174
189
  }
175
190
  /**
191
+ * Overrides the inProgress field of the Inbox contract state
192
+ * @param howMuch - How many checkpoints to move it forward
193
+ */ advanceInboxInProgress(howMuch) {
194
+ return this.ethCheatCodes.execWithPausedAnvil(async ()=>{
195
+ // Storage slot 2 contains the InboxState struct
196
+ const inboxStateSlot = 2n;
197
+ // Get inbox and its current state values
198
+ const inboxAddress = await this.rollup.read.getInbox();
199
+ const currentStateValue = await this.ethCheatCodes.load(EthAddress.fromString(inboxAddress), inboxStateSlot);
200
+ // Extract current values from the packed storage slot
201
+ // Storage layout: rollingHash (128 bits) | totalMessagesInserted (64 bits) | inProgress (64 bits)
202
+ const currentRollingHash = currentStateValue & (1n << 128n) - 1n;
203
+ const currentTotalMessages = currentStateValue >> 128n & (1n << 64n) - 1n;
204
+ const currentInProgress = currentStateValue >> 192n;
205
+ const newInProgress = currentInProgress + BigInt(howMuch);
206
+ // Pack new values: rollingHash (low 128 bits) | totalMessages (middle 64 bits) | inProgress (high 64 bits)
207
+ const newValue = BigInt(newInProgress) << 192n | currentTotalMessages << 128n | currentRollingHash;
208
+ await this.ethCheatCodes.store(EthAddress.fromString(inboxAddress), inboxStateSlot, newValue, {
209
+ silent: true
210
+ });
211
+ this.logger.warn(`Inbox inProgress advanced from ${currentInProgress} to ${newInProgress}`, {
212
+ inbox: inboxAddress,
213
+ oldValue: '0x' + currentStateValue.toString(16),
214
+ newValue: '0x' + newValue.toString(16),
215
+ rollingHash: currentRollingHash,
216
+ totalMessages: currentTotalMessages,
217
+ oldInProgress: currentInProgress,
218
+ newInProgress
219
+ });
220
+ return newInProgress;
221
+ });
222
+ }
223
+ insertOutbox(epoch, outHash) {
224
+ return this.ethCheatCodes.execWithPausedAnvil(async ()=>{
225
+ const outboxAddress = await this.rollup.read.getOutbox();
226
+ const epochRootSlot = OutboxContract.getEpochRootStorageSlot(epoch);
227
+ await this.ethCheatCodes.store(EthAddress.fromString(outboxAddress), epochRootSlot, outHash);
228
+ this.logger.warn(`Advanced outbox to epoch ${epoch} with out hash ${outHash}`);
229
+ });
230
+ }
231
+ /**
176
232
  * Executes an action impersonated as the owner of the Rollup contract.
177
233
  * @param action - The action to execute
178
234
  */ async asOwner(action) {