@aztec/ethereum 4.0.0-nightly.20250907 → 4.0.0-nightly.20260108

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 (226) 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 +18 -46
  7. package/dest/config.d.ts.map +1 -1
  8. package/dest/config.js +40 -285
  9. package/dest/constants.d.ts +1 -1
  10. package/dest/contracts/empire_base.d.ts +8 -6
  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 -6
  14. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  15. package/dest/contracts/empire_slashing_proposer.js +18 -3
  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 +4 -4
  19. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  20. package/dest/contracts/fee_juice.d.ts +1 -1
  21. package/dest/contracts/fee_juice.d.ts.map +1 -1
  22. package/dest/contracts/governance.d.ts +16 -16
  23. package/dest/contracts/governance.d.ts.map +1 -1
  24. package/dest/contracts/governance.js +7 -3
  25. package/dest/contracts/governance_proposer.d.ts +7 -6
  26. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  27. package/dest/contracts/governance_proposer.js +400 -12
  28. package/dest/contracts/gse.d.ts +1 -1
  29. package/dest/contracts/gse.d.ts.map +1 -1
  30. package/dest/contracts/inbox.d.ts +7 -3
  31. package/dest/contracts/inbox.d.ts.map +1 -1
  32. package/dest/contracts/inbox.js +4 -0
  33. package/dest/contracts/index.d.ts +1 -1
  34. package/dest/contracts/multicall.d.ts +5 -7
  35. package/dest/contracts/multicall.d.ts.map +1 -1
  36. package/dest/contracts/multicall.js +6 -4
  37. package/dest/contracts/registry.d.ts +1 -1
  38. package/dest/contracts/registry.d.ts.map +1 -1
  39. package/dest/contracts/rollup.d.ts +169 -118
  40. package/dest/contracts/rollup.d.ts.map +1 -1
  41. package/dest/contracts/rollup.js +714 -243
  42. package/dest/contracts/slasher_contract.d.ts +11 -1
  43. package/dest/contracts/slasher_contract.d.ts.map +1 -1
  44. package/dest/contracts/slasher_contract.js +18 -0
  45. package/dest/contracts/tally_slashing_proposer.d.ts +15 -7
  46. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  47. package/dest/contracts/tally_slashing_proposer.js +15 -5
  48. package/dest/contracts/utils.d.ts +1 -1
  49. package/dest/deploy_aztec_l1_contracts.d.ts +247 -0
  50. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -0
  51. package/dest/deploy_aztec_l1_contracts.js +336 -0
  52. package/dest/deploy_l1_contract.d.ts +68 -0
  53. package/dest/deploy_l1_contract.d.ts.map +1 -0
  54. package/dest/deploy_l1_contract.js +312 -0
  55. package/dest/eth-signer/eth-signer.d.ts +1 -1
  56. package/dest/eth-signer/index.d.ts +1 -1
  57. package/dest/forwarder_proxy.d.ts +32 -0
  58. package/dest/forwarder_proxy.d.ts.map +1 -0
  59. package/dest/forwarder_proxy.js +93 -0
  60. package/dest/l1_artifacts.d.ts +17733 -6280
  61. package/dest/l1_artifacts.d.ts.map +1 -1
  62. package/dest/l1_artifacts.js +10 -5
  63. package/dest/l1_contract_addresses.d.ts +8 -4
  64. package/dest/l1_contract_addresses.d.ts.map +1 -1
  65. package/dest/l1_contract_addresses.js +5 -4
  66. package/dest/l1_reader.d.ts +4 -2
  67. package/dest/l1_reader.d.ts.map +1 -1
  68. package/dest/l1_reader.js +7 -1
  69. package/dest/l1_tx_utils/config.d.ts +59 -0
  70. package/dest/l1_tx_utils/config.d.ts.map +1 -0
  71. package/dest/l1_tx_utils/config.js +96 -0
  72. package/dest/l1_tx_utils/constants.d.ts +12 -0
  73. package/dest/l1_tx_utils/constants.d.ts.map +1 -0
  74. package/dest/l1_tx_utils/constants.js +39 -0
  75. package/dest/l1_tx_utils/factory.d.ts +24 -0
  76. package/dest/l1_tx_utils/factory.d.ts.map +1 -0
  77. package/dest/l1_tx_utils/factory.js +12 -0
  78. package/dest/l1_tx_utils/fee-strategies/index.d.ts +10 -0
  79. package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
  80. package/dest/l1_tx_utils/fee-strategies/index.js +12 -0
  81. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +8 -0
  82. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
  83. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +129 -0
  84. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +23 -0
  85. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
  86. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +191 -0
  87. package/dest/l1_tx_utils/fee-strategies/types.d.ts +51 -0
  88. package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
  89. package/dest/l1_tx_utils/fee-strategies/types.js +3 -0
  90. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
  91. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
  92. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +48 -0
  93. package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
  94. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
  95. package/dest/l1_tx_utils/index-blobs.js +2 -0
  96. package/dest/l1_tx_utils/index.d.ts +12 -0
  97. package/dest/l1_tx_utils/index.d.ts.map +1 -0
  98. package/dest/l1_tx_utils/index.js +12 -0
  99. package/dest/l1_tx_utils/interfaces.d.ts +76 -0
  100. package/dest/l1_tx_utils/interfaces.d.ts.map +1 -0
  101. package/dest/l1_tx_utils/interfaces.js +4 -0
  102. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +233 -0
  103. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
  104. package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
  105. package/dest/l1_tx_utils/l1_tx_utils.d.ts +94 -0
  106. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -0
  107. package/dest/l1_tx_utils/l1_tx_utils.js +623 -0
  108. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +26 -0
  109. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +1 -0
  110. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +26 -0
  111. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +83 -0
  112. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -0
  113. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +323 -0
  114. package/dest/l1_tx_utils/signer.d.ts +4 -0
  115. package/dest/l1_tx_utils/signer.d.ts.map +1 -0
  116. package/dest/l1_tx_utils/signer.js +16 -0
  117. package/dest/l1_tx_utils/types.d.ts +67 -0
  118. package/dest/l1_tx_utils/types.d.ts.map +1 -0
  119. package/dest/l1_tx_utils/types.js +26 -0
  120. package/dest/l1_tx_utils/utils.d.ts +4 -0
  121. package/dest/l1_tx_utils/utils.d.ts.map +1 -0
  122. package/dest/l1_tx_utils/utils.js +14 -0
  123. package/dest/l1_types.d.ts +1 -1
  124. package/dest/publisher_manager.d.ts +8 -3
  125. package/dest/publisher_manager.d.ts.map +1 -1
  126. package/dest/publisher_manager.js +36 -8
  127. package/dest/queries.d.ts +1 -1
  128. package/dest/queries.d.ts.map +1 -1
  129. package/dest/queries.js +20 -14
  130. package/dest/test/chain_monitor.d.ts +29 -22
  131. package/dest/test/chain_monitor.d.ts.map +1 -1
  132. package/dest/test/chain_monitor.js +81 -38
  133. package/dest/test/delayed_tx_utils.d.ts +3 -3
  134. package/dest/test/delayed_tx_utils.d.ts.map +1 -1
  135. package/dest/test/delayed_tx_utils.js +2 -2
  136. package/dest/test/eth_cheat_codes.d.ts +36 -14
  137. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  138. package/dest/test/eth_cheat_codes.js +126 -31
  139. package/dest/test/eth_cheat_codes_with_state.d.ts +1 -1
  140. package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -1
  141. package/dest/test/index.d.ts +1 -1
  142. package/dest/test/rollup_cheat_codes.d.ts +23 -20
  143. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  144. package/dest/test/rollup_cheat_codes.js +82 -43
  145. package/dest/test/start_anvil.d.ts +4 -1
  146. package/dest/test/start_anvil.d.ts.map +1 -1
  147. package/dest/test/start_anvil.js +2 -1
  148. package/dest/test/tx_delayer.d.ts +1 -1
  149. package/dest/test/tx_delayer.d.ts.map +1 -1
  150. package/dest/test/tx_delayer.js +4 -3
  151. package/dest/test/upgrade_utils.d.ts +1 -1
  152. package/dest/test/upgrade_utils.d.ts.map +1 -1
  153. package/dest/test/upgrade_utils.js +3 -2
  154. package/dest/types.d.ts +57 -2
  155. package/dest/types.d.ts.map +1 -1
  156. package/dest/utils.d.ts +15 -3
  157. package/dest/utils.d.ts.map +1 -1
  158. package/dest/utils.js +28 -161
  159. package/dest/zkPassportVerifierAddress.d.ts +1 -1
  160. package/dest/zkPassportVerifierAddress.js +1 -1
  161. package/package.json +33 -14
  162. package/src/client.ts +3 -3
  163. package/src/config.ts +49 -358
  164. package/src/contracts/empire_base.ts +7 -6
  165. package/src/contracts/empire_slashing_proposer.ts +23 -8
  166. package/src/contracts/fee_asset_handler.ts +1 -1
  167. package/src/contracts/governance.ts +3 -3
  168. package/src/contracts/governance_proposer.ts +19 -9
  169. package/src/contracts/inbox.ts +7 -2
  170. package/src/contracts/multicall.ts +12 -10
  171. package/src/contracts/rollup.ts +374 -236
  172. package/src/contracts/slasher_contract.ts +22 -0
  173. package/src/contracts/tally_slashing_proposer.ts +21 -9
  174. package/src/deploy_aztec_l1_contracts.ts +557 -0
  175. package/src/deploy_l1_contract.ts +362 -0
  176. package/src/forwarder_proxy.ts +108 -0
  177. package/src/l1_artifacts.ts +14 -6
  178. package/src/l1_contract_addresses.ts +24 -20
  179. package/src/l1_reader.ts +10 -2
  180. package/src/l1_tx_utils/README.md +177 -0
  181. package/src/l1_tx_utils/config.ts +161 -0
  182. package/src/l1_tx_utils/constants.ts +29 -0
  183. package/src/l1_tx_utils/factory.ts +64 -0
  184. package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
  185. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +163 -0
  186. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +245 -0
  187. package/src/l1_tx_utils/fee-strategies/types.ts +56 -0
  188. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +119 -0
  189. package/src/l1_tx_utils/index-blobs.ts +2 -0
  190. package/src/l1_tx_utils/index.ts +14 -0
  191. package/src/l1_tx_utils/interfaces.ts +86 -0
  192. package/src/l1_tx_utils/l1_fee_analyzer.ts +803 -0
  193. package/src/l1_tx_utils/l1_tx_utils.ts +738 -0
  194. package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +77 -0
  195. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +419 -0
  196. package/src/l1_tx_utils/signer.ts +28 -0
  197. package/src/l1_tx_utils/types.ts +85 -0
  198. package/src/l1_tx_utils/utils.ts +16 -0
  199. package/src/publisher_manager.ts +51 -9
  200. package/src/queries.ts +24 -10
  201. package/src/test/chain_monitor.ts +102 -44
  202. package/src/test/delayed_tx_utils.ts +2 -2
  203. package/src/test/eth_cheat_codes.ts +150 -31
  204. package/src/test/rollup_cheat_codes.ts +95 -53
  205. package/src/test/start_anvil.ts +4 -0
  206. package/src/test/tx_delayer.ts +5 -3
  207. package/src/test/upgrade_utils.ts +3 -2
  208. package/src/types.ts +62 -0
  209. package/src/utils.ts +41 -184
  210. package/src/zkPassportVerifierAddress.ts +1 -1
  211. package/dest/deploy_l1_contracts.d.ts +0 -211
  212. package/dest/deploy_l1_contracts.d.ts.map +0 -1
  213. package/dest/deploy_l1_contracts.js +0 -1267
  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.d.ts +0 -250
  218. package/dest/l1_tx_utils.d.ts.map +0 -1
  219. package/dest/l1_tx_utils.js +0 -826
  220. package/dest/l1_tx_utils_with_blobs.d.ts +0 -19
  221. package/dest/l1_tx_utils_with_blobs.d.ts.map +0 -1
  222. package/dest/l1_tx_utils_with_blobs.js +0 -85
  223. package/src/deploy_l1_contracts.ts +0 -1596
  224. package/src/index.ts +0 -17
  225. package/src/l1_tx_utils.ts +0 -1105
  226. package/src/l1_tx_utils_with_blobs.ts +0 -144
@@ -1,28 +1,43 @@
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
- import { createPublicClient, fallback, http } from 'viem';
5
+ import { pluralize } from '@aztec/foundation/string';
6
+ import { createPublicClient, fallback, hexToNumber, http } from 'viem';
7
+ import { foundry } from 'viem/chains';
6
8
  /**
7
9
  * A class that provides utility functions for interacting with ethereum (L1).
8
10
  */ export class EthCheatCodes {
9
11
  rpcUrls;
12
+ dateProvider;
10
13
  logger;
14
+ chain;
11
15
  publicClient;
12
16
  constructor(/**
13
17
  * The RPC URL to use for interacting with the chain
14
18
  */ rpcUrls, /**
19
+ * The date provider to use for time operations
20
+ */ dateProvider, /**
15
21
  * The logger to use for the eth cheatcodes
16
- */ logger = createLogger('ethereum:cheat_codes')){
22
+ */ logger = createLogger('ethereum:cheat_codes'), /**
23
+ * The chain configuration provided to Anvil
24
+ */ chain = foundry){
17
25
  this.rpcUrls = rpcUrls;
26
+ this.dateProvider = dateProvider;
18
27
  this.logger = logger;
28
+ this.chain = chain;
19
29
  this.publicClient = createPublicClient({
20
- transport: fallback(this.rpcUrls.map((url)=>http(url)))
30
+ transport: fallback(this.rpcUrls.map((url)=>http(url, {
31
+ batch: false
32
+ }))),
33
+ chain: chain
21
34
  });
22
35
  }
23
- async rpcCall(method, params) {
24
- const paramsString = jsonStringify(params);
25
- this.logger.debug(`Calling ${method} with params: ${paramsString} on ${this.rpcUrls.join(', ')}`);
36
+ rpcCall(method, params) {
37
+ this.logger.debug(`Calling ${method} with params: ${jsonStringify(params)} on ${this.rpcUrls.join(', ')}`);
38
+ return this.doRpcCall(method, params);
39
+ }
40
+ async doRpcCall(method, params) {
26
41
  return await this.publicClient.transport.request({
27
42
  method,
28
43
  params
@@ -33,7 +48,7 @@ import { createPublicClient, fallback, http } from 'viem';
33
48
  * @returns True if automine is on, false otherwise
34
49
  */ async isAutoMining() {
35
50
  try {
36
- const res = await this.rpcCall('anvil_getAutomine', []);
51
+ const res = await this.doRpcCall('anvil_getAutomine', []);
37
52
  return res;
38
53
  } catch (err) {
39
54
  this.logger.error(`Calling "anvil_getAutomine" failed with:`, err);
@@ -44,21 +59,21 @@ import { createPublicClient, fallback, http } from 'viem';
44
59
  * Get the current blocknumber
45
60
  * @returns The current block number
46
61
  */ async blockNumber() {
47
- const res = await this.rpcCall('eth_blockNumber', []);
62
+ const res = await this.doRpcCall('eth_blockNumber', []);
48
63
  return parseInt(res, 16);
49
64
  }
50
65
  /**
51
66
  * Get the current chainId
52
67
  * @returns The current chainId
53
68
  */ async chainId() {
54
- const res = await this.rpcCall('eth_chainId', []);
69
+ const res = await this.doRpcCall('eth_chainId', []);
55
70
  return parseInt(res, 16);
56
71
  }
57
72
  /**
58
73
  * Get the current timestamp
59
74
  * @returns The current timestamp
60
75
  */ async timestamp() {
61
- const res = await this.rpcCall('eth_getBlockByNumber', [
76
+ const res = await this.doRpcCall('eth_getBlockByNumber', [
62
77
  'latest',
63
78
  true
64
79
  ]);
@@ -73,7 +88,7 @@ import { createPublicClient, fallback, http } from 'viem';
73
88
  }
74
89
  async doMine(numberOfBlocks = 1) {
75
90
  try {
76
- await this.rpcCall('hardhat_mine', [
91
+ await this.doRpcCall('hardhat_mine', [
77
92
  numberOfBlocks
78
93
  ]);
79
94
  } catch (err) {
@@ -84,7 +99,8 @@ import { createPublicClient, fallback, http } from 'viem';
84
99
  * Mines a single block with evm_mine
85
100
  */ async evmMine() {
86
101
  try {
87
- await this.rpcCall('evm_mine', []);
102
+ await this.doRpcCall('evm_mine', []);
103
+ this.logger.warn(`Mined 1 L1 block with evm_mine`);
88
104
  } catch (err) {
89
105
  throw new Error(`Error mining: ${err}`);
90
106
  }
@@ -105,7 +121,7 @@ import { createPublicClient, fallback, http } from 'viem';
105
121
  this.logger.warn(`Set balance for ${account} to ${balance}`);
106
122
  }
107
123
  async getBalance(account) {
108
- const res = await this.rpcCall('eth_getBalance', [
124
+ const res = await this.doRpcCall('eth_getBalance', [
109
125
  account.toString(),
110
126
  'latest'
111
127
  ]);
@@ -142,7 +158,7 @@ import { createPublicClient, fallback, http } from 'viem';
142
158
  * @param seconds - The interval to use between blocks
143
159
  */ getIntervalMining() {
144
160
  try {
145
- return this.rpcCall('anvil_getIntervalMining', []);
161
+ return this.doRpcCall('anvil_getIntervalMining', []);
146
162
  } catch (err) {
147
163
  throw new Error(`Error getting interval mining: ${err}`);
148
164
  }
@@ -206,7 +222,7 @@ import { createPublicClient, fallback, http } from 'viem';
206
222
  /**
207
223
  * Set the next block timestamp and mines the block.
208
224
  * Optionally resets interval mining so the next block is mined in `blockInterval` seconds from now.
209
- * Optionally updates a provided date provider to follow L1 time.
225
+ * Always updates the injected date provider to follow L1 time.
210
226
  * @param timestamp - The timestamp to set the next block to
211
227
  */ async warp(timestamp, opts = {}) {
212
228
  let blockInterval = null;
@@ -226,8 +242,10 @@ import { createPublicClient, fallback, http } from 'viem';
226
242
  ]);
227
243
  // And mine a block so the timestamp goes into effect now
228
244
  await this.doMine();
229
- // Update the date provider if provided so it follows L1 time
230
- 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
+ }
231
249
  } catch (err) {
232
250
  throw new Error(`Error warping: ${err}`);
233
251
  } finally{
@@ -260,7 +278,7 @@ import { createPublicClient, fallback, http } from 'viem';
260
278
  * @param contract - The contract address
261
279
  * @param slot - The storage slot
262
280
  * @param value - The value to set the storage slot to
263
- */ async store(contract, slot, value) {
281
+ */ async store(contract, slot, value, opts = {}) {
264
282
  // for the rpc call, we need to change value to be a 32 byte hex string.
265
283
  try {
266
284
  await this.rpcCall('hardhat_setStorageAt', [
@@ -271,7 +289,9 @@ import { createPublicClient, fallback, http } from 'viem';
271
289
  } catch (err) {
272
290
  throw new Error(`Error setting storage for contract ${contract} at ${slot}: ${err}`);
273
291
  }
274
- 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
+ }
275
295
  }
276
296
  /**
277
297
  * Computes the slot value for a given map and key.
@@ -333,31 +353,28 @@ import { createPublicClient, fallback, http } from 'viem';
333
353
  * @param contract - The contract address
334
354
  * @returns The bytecode for the contract
335
355
  */ async getBytecode(contract) {
336
- const res = await this.rpcCall('eth_getCode', [
356
+ return await this.doRpcCall('eth_getCode', [
337
357
  contract.toString(),
338
358
  'latest'
339
359
  ]);
340
- return res;
341
360
  }
342
361
  /**
343
362
  * Get the raw transaction object for a given transaction hash
344
363
  * @param txHash - The transaction hash
345
364
  * @returns The raw transaction
346
365
  */ async getRawTransaction(txHash) {
347
- const res = await this.rpcCall('debug_getRawTransaction', [
366
+ return await this.doRpcCall('debug_getRawTransaction', [
348
367
  txHash
349
368
  ]);
350
- return res;
351
369
  }
352
370
  /**
353
371
  * Get the trace for a given transaction hash
354
372
  * @param txHash - The transaction hash
355
373
  * @returns The trace
356
374
  */ async debugTraceTransaction(txHash) {
357
- const res = await this.rpcCall('debug_traceTransaction', [
375
+ return await this.doRpcCall('debug_traceTransaction', [
358
376
  txHash
359
377
  ]);
360
- return res;
361
378
  }
362
379
  /**
363
380
  * Triggers a reorg of the given depth, removing those blocks from the chain.
@@ -373,9 +390,6 @@ import { createPublicClient, fallback, http } from 'viem';
373
390
  * Causes Anvil to reorg until the given block number is the new tip
374
391
  * @param blockNumber - The block number that's going to be the new tip
375
392
  */ reorgTo(blockNumber) {
376
- this.logger.info('reorgTo', {
377
- blockNumber
378
- });
379
393
  if (blockNumber <= 0) {
380
394
  throw new Error(`Can't reorg to block before genesis: ${blockNumber}`);
381
395
  }
@@ -389,6 +403,7 @@ import { createPublicClient, fallback, http } from 'viem';
389
403
  await this.rpcCall('anvil_rollback', [
390
404
  depth
391
405
  ]);
406
+ this.logger.warn(`Reorged L1 chain to block number ${blockNumber} (depth ${depth})`);
392
407
  });
393
408
  }
394
409
  /**
@@ -418,10 +433,68 @@ import { createPublicClient, fallback, http } from 'viem';
418
433
  });
419
434
  }
420
435
  traceTransaction(txHash) {
421
- return this.rpcCall('trace_transaction', [
436
+ return this.doRpcCall('trace_transaction', [
422
437
  txHash
423
438
  ]);
424
439
  }
440
+ async getTxPoolStatus() {
441
+ const { pending, queued } = await this.doRpcCall('txpool_status', []);
442
+ return {
443
+ pending: hexToNumber(pending),
444
+ queued: hexToNumber(queued)
445
+ };
446
+ }
447
+ async getTxPoolContents() {
448
+ const txpoolContent = await this.doRpcCall('txpool_content', []);
449
+ return mapTxPoolContent(txpoolContent);
450
+ }
451
+ /**
452
+ * Mines an empty block by temporarily removing all pending transactions from the mempool,
453
+ * mining a block, and then re-adding the transactions back to the pool.
454
+ */ async mineEmptyBlock(blockCount = 1) {
455
+ await this.execWithPausedAnvil(async ()=>{
456
+ // Get all pending and queued transactions from the pool
457
+ const txs = await this.getTxPoolContents();
458
+ this.logger.debug(`Found ${txs.length} transactions in pool`);
459
+ // Get raw transactions before dropping them
460
+ const rawTxs = [];
461
+ for (const tx of txs){
462
+ try {
463
+ const rawTx = await this.doRpcCall('debug_getRawTransaction', [
464
+ tx.hash
465
+ ]);
466
+ if (rawTx) {
467
+ rawTxs.push(rawTx);
468
+ this.logger.debug(`Got raw tx for ${tx.hash}`);
469
+ } else {
470
+ this.logger.warn(`No raw tx found for ${tx.hash}`);
471
+ }
472
+ } catch {
473
+ this.logger.warn(`Failed to get raw transaction for ${tx.hash}`);
474
+ }
475
+ }
476
+ this.logger.debug(`Retrieved ${rawTxs.length} raw transactions`);
477
+ // Drop all transactions from the mempool
478
+ await this.doRpcCall('anvil_dropAllTransactions', []);
479
+ // Mine an empty block
480
+ await this.doMine(blockCount);
481
+ // Re-add the transactions to the pool
482
+ for (const rawTx of rawTxs){
483
+ try {
484
+ const txHash = await this.doRpcCall('eth_sendRawTransaction', [
485
+ rawTx
486
+ ]);
487
+ this.logger.debug(`Re-added transaction ${txHash}`);
488
+ } catch (err) {
489
+ this.logger.warn(`Failed to re-add transaction: ${err}`);
490
+ }
491
+ }
492
+ if (rawTxs.length !== txs.length) {
493
+ this.logger.warn(`Failed to add all txs back: had ${txs.length} but re-added ${rawTxs.length}`);
494
+ }
495
+ });
496
+ this.logger.warn(`Mined ${blockCount} empty L1 ${pluralize('block', blockCount)}`);
497
+ }
425
498
  async execWithPausedAnvil(fn) {
426
499
  const [blockInterval, wasAutoMining] = await Promise.all([
427
500
  this.getIntervalMining(),
@@ -438,7 +511,7 @@ import { createPublicClient, fallback, http } from 'viem';
438
511
  silent: true
439
512
  });
440
513
  }
441
- await fn();
514
+ return await fn();
442
515
  } finally{
443
516
  try {
444
517
  // restore automine if necessary
@@ -462,4 +535,26 @@ import { createPublicClient, fallback, http } from 'viem';
462
535
  }
463
536
  }
464
537
  }
538
+ async syncDateProvider() {
539
+ const timestamp = await this.timestamp();
540
+ if ('setTime' in this.dateProvider) {
541
+ this.dateProvider.setTime(timestamp * 1000);
542
+ }
543
+ }
544
+ }
545
+ function mapTxPoolContent(content) {
546
+ const result = [];
547
+ const processPool = (pool, poolState)=>{
548
+ for (const txsByNonce of Object.values(pool)){
549
+ for (const tx of Object.values(txsByNonce)){
550
+ result.push({
551
+ ...tx,
552
+ poolState
553
+ });
554
+ }
555
+ }
556
+ };
557
+ processPool(content.pending, 'pending');
558
+ processPool(content.queued, 'queued');
559
+ return result;
465
560
  }
@@ -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"}
@@ -6,4 +6,4 @@ export * from './tx_delayer.js';
6
6
  export * from './upgrade_utils.js';
7
7
  export * from './chain_monitor.js';
8
8
  export * from './rollup_cheat_codes.js';
9
- //# sourceMappingURL=index.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQyJ9
@@ -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,18 @@ 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>;
17
18
  /** Returns the current epoch */
18
- getEpoch(): Promise<bigint>;
19
+ getEpoch(): Promise<EpochNumber>;
19
20
  /**
20
21
  * Returns the pending and proven chain tips
21
22
  * @returns The pending and proven chain tips
22
23
  */
23
24
  getTips(): Promise<{
24
- /** The pending chain tip */ pending: bigint;
25
- /** The proven chain tip */ proven: bigint;
25
+ /** The pending chain tip */ pending: CheckpointNumber;
26
+ /** The proven chain tip */ proven: CheckpointNumber;
26
27
  }>;
27
28
  /**
28
29
  * Logs the current state of the rollup contract.
@@ -31,34 +32,36 @@ export declare class RollupCheatCodes {
31
32
  /** Fetches the epoch and slot duration config from the rollup contract */
32
33
  getConfig(): Promise<{
33
34
  /** Epoch duration */ epochDuration: bigint;
34
- /** Slot duration */ slotDuration: bigint;
35
+ /** Slot duration */ slotDuration: number;
35
36
  }>;
36
37
  /**
37
38
  * Advances time to the beginning of the given epoch
38
39
  * @param epoch - The epoch to advance to
39
40
  * @param opts - Options
40
41
  */
41
- advanceToEpoch(epoch: bigint, opts?: {
42
- /** Optional test date provider to update with the epoch timestamp */
43
- updateDateProvider?: TestDateProvider;
42
+ advanceToEpoch(epoch: EpochNumber, opts?: {
43
+ /** Offset in seconds */
44
+ offset?: number;
44
45
  }): Promise<bigint>;
45
46
  /** Warps time in L1 until the next epoch */
46
- advanceToNextEpoch(opts?: {
47
- /** Optional test date provider to update with the epoch timestamp */
48
- updateDateProvider?: TestDateProvider;
49
- }): Promise<void>;
47
+ advanceToNextEpoch(): Promise<void>;
50
48
  /** Warps time in L1 until the beginning of the next slot. */
51
- advanceToNextSlot(): Promise<bigint[]>;
49
+ advanceToNextSlot(): Promise<(bigint | SlotNumber)[]>;
52
50
  /**
53
51
  * Warps time in L1 equivalent to however many slots.
54
52
  * @param howMany - The number of slots to advance.
55
53
  */
56
54
  advanceSlots(howMany: number): Promise<void>;
57
55
  /**
58
- * Marks the specified block (or latest if none) as proven
59
- * @param maybeBlockNumber - The block number to mark as proven (defaults to latest pending)
56
+ * Marks the specified checkpoint (or latest if none) as proven
57
+ * @param maybeCheckpointNumber - The checkpoint number to mark as proven (defaults to latest pending)
60
58
  */
61
- markAsProven(maybeBlockNumber?: number | bigint): Promise<void>;
59
+ markAsProven(maybeCheckpointNumber?: number | bigint): Promise<void>;
60
+ /**
61
+ * Overrides the inProgress field of the Inbox contract state
62
+ * @param howMuch - How many checkpoints to move it forward
63
+ */
64
+ advanceInboxInProgress(howMuch: number | bigint): Promise<bigint>;
62
65
  /**
63
66
  * Executes an action impersonated as the owner of the Rollup contract.
64
67
  * @param action - The action to execute
@@ -81,4 +84,4 @@ export declare class RollupCheatCodes {
81
84
  */
82
85
  setProvingCostPerMana(ethValue: bigint): Promise<void>;
83
86
  }
84
- //# sourceMappingURL=rollup_cheat_codes.d.ts.map
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwX2NoZWF0X2NvZGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9yb2xsdXBfY2hlYXRfY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHNUYsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sRUFDTCxLQUFLLHFCQUFxQixFQUMxQixLQUFLLEdBQUcsRUFNVCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCw4Q0FBOEM7QUFDOUMscUJBQWEsZ0JBQWdCO0lBT3pCLE9BQU8sQ0FBQyxhQUFhO0lBTnZCLE9BQU8sQ0FBQyxNQUFNLENBQW1CO0lBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQTREO0lBRTFFLE9BQU8sQ0FBQyxNQUFNLENBQXVDO0lBRXJELFlBQ1UsYUFBYSxFQUFFLGFBQWEsRUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsRUFXdEQ7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUNYLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsRUFDckQsWUFBWSxFQUFFLFlBQVksR0FDekIsZ0JBQWdCLENBR2xCO0lBRUQsK0JBQStCO0lBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRzFDO0lBRUQsZ0NBQWdDO0lBQ25CLFFBQVEsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBRzVDO0lBRUQ7OztPQUdHO0lBQ1UsT0FBTyxJQUFJLE9BQU8sQ0FBQztRQUM5Qiw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7UUFDdkQsMkJBQTJCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0tBQ3RELENBQUMsQ0FNRDtJQUVEOztPQUVHO0lBQ1UsV0FBVyxrQkFpQnZCO0lBRUQsMEVBQTBFO0lBQzdELFNBQVMsSUFBSSxPQUFPLENBQUM7UUFDaEMscUJBQXFCLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztRQUM1QyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDO0tBQzNDLENBQUMsQ0FNRDtJQUVEOzs7O09BSUc7SUFDVSxjQUFjLENBQ3pCLEtBQUssRUFBRSxXQUFXLEVBQ2xCLElBQUksR0FBRTtRQUNKLHdCQUF3QjtRQUN4QixNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDWixtQkFZUDtJQUVELDRDQUE0QztJQUMvQixrQkFBa0Isa0JBVzlCO0lBRUQsNkRBQTZEO0lBQ2hELGlCQUFpQixxQ0FPN0I7SUFFRDs7O09BR0c7SUFDVSxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0saUJBT3hDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxHQUFHLE1BQU0saUJBK0IxRDtJQUVEOzs7T0FHRztJQUNJLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FtQ3ZFO0lBRUQ7OztPQUdHO0lBQ1UsT0FBTyxDQUNsQixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBTXpHO0lBRUQ7O09BRUc7SUFDVSxVQUFVLGtCQU90QjtJQUVELDRDQUE0QztJQUMvQixvQkFBb0Isa0JBTWhDO0lBRUQ7OztPQUdHO0lBQ1Usc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLGlCQUlyRTtJQUVEOzs7T0FHRztJQUNVLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxNQUFNLGlCQVVsRDtDQUNGIn0=
@@ -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,EACb,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;KAClC;IAaR,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,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,MAAM,GAAG,MAAM,iBA+B1D;IAED;;;OAGG;IACI,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCvE;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"}