@aztec/ethereum 0.66.0 → 0.67.1-devnet
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/deploy_l1_contracts.d.ts +3 -3
- package/dest/deploy_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_l1_contracts.js +32 -24
- package/dest/eth_cheat_codes.d.ts +1 -10
- package/dest/eth_cheat_codes.d.ts.map +1 -1
- package/dest/eth_cheat_codes.js +8 -31
- package/dest/l1_tx_utils.d.ts +16 -5
- package/dest/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils.js +47 -18
- package/dest/test/eth_cheat_codes_with_state.d.ts +18 -0
- package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -0
- package/dest/test/eth_cheat_codes_with_state.js +34 -0
- package/dest/test/index.d.ts +1 -0
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +2 -1
- package/dest/test/tx_delayer.d.ts +4 -3
- package/dest/test/tx_delayer.d.ts.map +1 -1
- package/dest/test/tx_delayer.js +19 -8
- package/dest/utils.d.ts +2 -2
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +1 -1
- package/package.json +7 -3
- package/src/deploy_l1_contracts.ts +42 -27
- package/src/eth_cheat_codes.ts +8 -32
- package/src/l1_tx_utils.ts +64 -20
- package/src/test/eth_cheat_codes_with_state.ts +36 -0
- package/src/test/index.ts +1 -0
- package/src/test/tx_delayer.ts +20 -8
- package/src/utils.ts +3 -3
package/dest/l1_tx_utils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { times } from '@aztec/foundation/collection';
|
|
1
2
|
import { bigintConfigHelper, getDefaultConfig, numberConfigHelper, } from '@aztec/foundation/config';
|
|
2
3
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
3
4
|
import { sleep } from '@aztec/foundation/sleep';
|
|
@@ -57,6 +58,11 @@ export const l1TxUtilsConfigMappings = {
|
|
|
57
58
|
env: 'L1_TX_MONITOR_TX_TIMEOUT_MS',
|
|
58
59
|
...numberConfigHelper(300000), // 5 mins
|
|
59
60
|
},
|
|
61
|
+
txPropagationMaxQueryAttempts: {
|
|
62
|
+
description: 'How many attempts will be done to get a tx after it was sent',
|
|
63
|
+
env: 'L1_TX_PROPAGATION_MAX_QUERY_ATTEMPTS',
|
|
64
|
+
...numberConfigHelper(3),
|
|
65
|
+
},
|
|
60
66
|
};
|
|
61
67
|
export const defaultL1TxUtilsConfig = getDefaultConfig(l1TxUtilsConfigMappings);
|
|
62
68
|
export class L1TxUtils {
|
|
@@ -75,7 +81,7 @@ export class L1TxUtils {
|
|
|
75
81
|
* @param gasConfig - Optional gas configuration
|
|
76
82
|
* @returns The transaction hash and parameters used
|
|
77
83
|
*/
|
|
78
|
-
async sendTransaction(request, _gasConfig) {
|
|
84
|
+
async sendTransaction(request, _gasConfig, _blobInputs) {
|
|
79
85
|
const gasConfig = { ...this.config, ..._gasConfig };
|
|
80
86
|
const account = this.walletClient.account;
|
|
81
87
|
let gasLimit;
|
|
@@ -86,13 +92,19 @@ export class L1TxUtils {
|
|
|
86
92
|
gasLimit = await this.estimateGas(account, request);
|
|
87
93
|
}
|
|
88
94
|
const gasPrice = await this.getGasPrice(gasConfig);
|
|
95
|
+
const blobInputs = _blobInputs || {};
|
|
89
96
|
const txHash = await this.walletClient.sendTransaction({
|
|
90
97
|
...request,
|
|
98
|
+
...blobInputs,
|
|
91
99
|
gas: gasLimit,
|
|
92
100
|
maxFeePerGas: gasPrice.maxFeePerGas,
|
|
93
101
|
maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas,
|
|
94
102
|
});
|
|
95
|
-
this.logger?.verbose(`Sent L1 transaction ${txHash}
|
|
103
|
+
this.logger?.verbose(`Sent L1 transaction ${txHash}`, {
|
|
104
|
+
gasLimit,
|
|
105
|
+
maxFeePerGas: formatGwei(gasPrice.maxFeePerGas),
|
|
106
|
+
maxPriorityFeePerGas: formatGwei(gasPrice.maxPriorityFeePerGas),
|
|
107
|
+
});
|
|
96
108
|
return { txHash, gasLimit, gasPrice };
|
|
97
109
|
}
|
|
98
110
|
/**
|
|
@@ -102,11 +114,13 @@ export class L1TxUtils {
|
|
|
102
114
|
* @param params - Parameters used in the initial transaction
|
|
103
115
|
* @param gasConfig - Optional gas configuration
|
|
104
116
|
*/
|
|
105
|
-
async monitorTransaction(request, initialTxHash, params, _gasConfig) {
|
|
117
|
+
async monitorTransaction(request, initialTxHash, params, _gasConfig, _blobInputs) {
|
|
106
118
|
const gasConfig = { ...this.config, ..._gasConfig };
|
|
107
119
|
const account = this.walletClient.account;
|
|
120
|
+
const blobInputs = _blobInputs || {};
|
|
121
|
+
const makeGetTransactionBackoff = () => makeBackoff(times(gasConfig.txPropagationMaxQueryAttempts ?? 3, i => i + 1));
|
|
108
122
|
// Retry a few times, in case the tx is not yet propagated.
|
|
109
|
-
const tx = await retry(() => this.publicClient.getTransaction({ hash: initialTxHash }), `Getting L1 transaction ${initialTxHash}`,
|
|
123
|
+
const tx = await retry(() => this.publicClient.getTransaction({ hash: initialTxHash }), `Getting L1 transaction ${initialTxHash}`, makeGetTransactionBackoff(), this.logger, true);
|
|
110
124
|
if (tx?.nonce === undefined || tx?.nonce === null) {
|
|
111
125
|
throw new Error(`Failed to get L1 transaction ${initialTxHash} nonce`);
|
|
112
126
|
}
|
|
@@ -125,9 +139,9 @@ export class L1TxUtils {
|
|
|
125
139
|
try {
|
|
126
140
|
const receipt = await this.publicClient.getTransactionReceipt({ hash });
|
|
127
141
|
if (receipt) {
|
|
128
|
-
this.logger?.debug(`L1
|
|
142
|
+
this.logger?.debug(`L1 transaction ${hash} mined`);
|
|
129
143
|
if (receipt.status === 'reverted') {
|
|
130
|
-
this.logger?.error(`L1
|
|
144
|
+
this.logger?.error(`L1 transaction ${hash} reverted`);
|
|
131
145
|
}
|
|
132
146
|
return receipt;
|
|
133
147
|
}
|
|
@@ -140,10 +154,10 @@ export class L1TxUtils {
|
|
|
140
154
|
}
|
|
141
155
|
}
|
|
142
156
|
// Retry a few times, in case the tx is not yet propagated.
|
|
143
|
-
const tx = await retry(() => this.publicClient.getTransaction({ hash: currentTxHash }), `Getting L1 transaction ${currentTxHash}`,
|
|
157
|
+
const tx = await retry(() => this.publicClient.getTransaction({ hash: currentTxHash }), `Getting L1 transaction ${currentTxHash}`, makeGetTransactionBackoff(), this.logger, true);
|
|
144
158
|
const timePassed = Date.now() - lastAttemptSent;
|
|
145
159
|
if (tx && timePassed < gasConfig.stallTimeMs) {
|
|
146
|
-
this.logger?.debug(`L1
|
|
160
|
+
this.logger?.debug(`L1 transaction ${currentTxHash} pending. Time passed: ${timePassed}ms.`);
|
|
147
161
|
// Check timeout before continuing
|
|
148
162
|
if (gasConfig.txTimeoutMs) {
|
|
149
163
|
txTimedOut = Date.now() - initialTxTime > gasConfig.txTimeoutMs;
|
|
@@ -159,10 +173,11 @@ export class L1TxUtils {
|
|
|
159
173
|
const newGasPrice = await this.getGasPrice(gasConfig, attempts, tx.maxFeePerGas && tx.maxPriorityFeePerGas
|
|
160
174
|
? { maxFeePerGas: tx.maxFeePerGas, maxPriorityFeePerGas: tx.maxPriorityFeePerGas }
|
|
161
175
|
: undefined);
|
|
162
|
-
this.logger?.debug(`L1
|
|
176
|
+
this.logger?.debug(`L1 transaction ${currentTxHash} appears stuck. Attempting speed-up ${attempts}/${gasConfig.maxAttempts} ` +
|
|
163
177
|
`with new priority fee ${formatGwei(newGasPrice.maxPriorityFeePerGas)} gwei`);
|
|
164
178
|
currentTxHash = await this.walletClient.sendTransaction({
|
|
165
179
|
...request,
|
|
180
|
+
...blobInputs,
|
|
166
181
|
nonce,
|
|
167
182
|
gas: params.gasLimit,
|
|
168
183
|
maxFeePerGas: newGasPrice.maxFeePerGas,
|
|
@@ -185,7 +200,7 @@ export class L1TxUtils {
|
|
|
185
200
|
txTimedOut = Date.now() - initialTxTime > gasConfig.txTimeoutMs;
|
|
186
201
|
}
|
|
187
202
|
}
|
|
188
|
-
throw new Error(`L1
|
|
203
|
+
throw new Error(`L1 transaction ${currentTxHash} timed out`);
|
|
189
204
|
}
|
|
190
205
|
/**
|
|
191
206
|
* Sends a transaction and monitors it until completion
|
|
@@ -193,9 +208,9 @@ export class L1TxUtils {
|
|
|
193
208
|
* @param gasConfig - Optional gas configuration
|
|
194
209
|
* @returns The receipt of the successful transaction
|
|
195
210
|
*/
|
|
196
|
-
async sendAndMonitorTransaction(request, gasConfig) {
|
|
197
|
-
const { txHash, gasLimit } = await this.sendTransaction(request, gasConfig);
|
|
198
|
-
return this.monitorTransaction(request, txHash, { gasLimit }, gasConfig);
|
|
211
|
+
async sendAndMonitorTransaction(request, gasConfig, blobInputs) {
|
|
212
|
+
const { txHash, gasLimit } = await this.sendTransaction(request, gasConfig, blobInputs);
|
|
213
|
+
return this.monitorTransaction(request, txHash, { gasLimit }, gasConfig, blobInputs);
|
|
199
214
|
}
|
|
200
215
|
/**
|
|
201
216
|
* Gets the current gas price with bounds checking
|
|
@@ -235,19 +250,33 @@ export class L1TxUtils {
|
|
|
235
250
|
maxFeePerGas = maxFeePerGas > maxGweiInWei ? maxGweiInWei : maxFeePerGas;
|
|
236
251
|
// Ensure priority fee doesn't exceed max fee
|
|
237
252
|
const maxPriorityFeePerGas = priorityFee > maxFeePerGas ? maxFeePerGas : priorityFee;
|
|
238
|
-
this.logger?.debug(`
|
|
239
|
-
|
|
253
|
+
this.logger?.debug(`Computed gas price`, {
|
|
254
|
+
attempt,
|
|
255
|
+
baseFee: formatGwei(baseFee),
|
|
256
|
+
maxFeePerGas: formatGwei(maxFeePerGas),
|
|
257
|
+
maxPriorityFeePerGas: formatGwei(maxPriorityFeePerGas),
|
|
258
|
+
});
|
|
240
259
|
return { maxFeePerGas, maxPriorityFeePerGas };
|
|
241
260
|
}
|
|
242
261
|
/**
|
|
243
262
|
* Estimates gas and adds buffer
|
|
244
263
|
*/
|
|
245
|
-
async estimateGas(account, request, _gasConfig) {
|
|
264
|
+
async estimateGas(account, request, _gasConfig, _blobInputs) {
|
|
246
265
|
const gasConfig = { ...this.config, ..._gasConfig };
|
|
247
|
-
|
|
266
|
+
let initialEstimate = 0n;
|
|
267
|
+
// Viem does not allow blobs to be sent via public client's estimate gas, so any estimation will fail.
|
|
268
|
+
// Strangely, the only way to get gas and send blobs is prepareTransactionRequest().
|
|
269
|
+
// See: https://github.com/wevm/viem/issues/2075
|
|
270
|
+
if (_blobInputs) {
|
|
271
|
+
initialEstimate = (await this.walletClient.prepareTransactionRequest({ account, ...request, ..._blobInputs }))
|
|
272
|
+
.gas;
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
initialEstimate = await this.publicClient.estimateGas({ account, ...request });
|
|
276
|
+
}
|
|
248
277
|
// Add buffer based on either fixed amount or percentage
|
|
249
278
|
const withBuffer = initialEstimate + (initialEstimate * (gasConfig.gasLimitBufferPercentage ?? 0n)) / 100n;
|
|
250
279
|
return withBuffer;
|
|
251
280
|
}
|
|
252
281
|
}
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbDFfdHhfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEdBQ25CLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsT0FBTyxFQVVMLFVBQVUsR0FDWCxNQUFNLE1BQU0sQ0FBQztBQUVkLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFDN0Isd0NBQXdDO0FBRXhDLE1BQU0sU0FBUyxHQUFHLFdBQWMsQ0FBQztBQUVqQyx3RUFBd0U7QUFDeEUsNEhBQTRIO0FBQzVILE1BQU0sK0JBQStCLEdBQUcsR0FBRyxDQUFDO0FBRTVDLGtDQUFrQztBQUNsQyxNQUFNLGFBQWEsR0FBRyxLQUFNLENBQUM7QUF5QzdCLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUF3QztJQUMxRSx3QkFBd0IsRUFBRTtRQUN4QixXQUFXLEVBQUUsNkRBQTZEO1FBQzFFLEdBQUcsRUFBRSxnQ0FBZ0M7UUFDckMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCxPQUFPLEVBQUU7UUFDUCxXQUFXLEVBQUUsMkJBQTJCO1FBQ3hDLEdBQUcsRUFBRSxrQkFBa0I7UUFDdkIsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDUCxXQUFXLEVBQUUsMkJBQTJCO1FBQ3hDLEdBQUcsRUFBRSxrQkFBa0I7UUFDdkIsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7S0FDNUI7SUFDRCx5QkFBeUIsRUFBRTtRQUN6QixXQUFXLEVBQUUsZ0VBQWdFO1FBQzdFLEdBQUcsRUFBRSxpQ0FBaUM7UUFDdEMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCw4QkFBOEIsRUFBRTtRQUM5QixXQUFXLEVBQUUsc0VBQXNFO1FBQ25GLEdBQUcsRUFBRSx1Q0FBdUM7UUFDNUMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCxXQUFXLEVBQUU7UUFDWCxXQUFXLEVBQUUscUNBQXFDO1FBQ2xELEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7S0FDekI7SUFDRCxlQUFlLEVBQUU7UUFDZixXQUFXLEVBQUUsOEJBQThCO1FBQzNDLEdBQUcsRUFBRSxpQ0FBaUM7UUFDdEMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFNLENBQUM7S0FDOUI7SUFDRCxXQUFXLEVBQUU7UUFDWCxXQUFXLEVBQUUsd0NBQXdDO1FBQ3JELEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFNLENBQUM7S0FDOUI7SUFDRCxXQUFXLEVBQUU7UUFDWCxXQUFXLEVBQUUsOEVBQThFO1FBQzNGLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFPLENBQUMsRUFBRSxTQUFTO0tBQzFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGdCQUFnQixDQUFrQix1QkFBdUIsQ0FBQyxDQUFDO0FBYWpHLE1BQU0sT0FBTyxTQUFTO0lBR3BCLFlBQ21CLFlBQTBCLEVBQzFCLFlBQXlELEVBQ3pELE1BQW9CLEVBQ3JDLE1BQWlDO1FBSGhCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUE2QztRQUN6RCxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBR3JDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixHQUFHLHNCQUFzQjtZQUN6QixHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLGVBQWUsQ0FDMUIsT0FBb0IsRUFDcEIsVUFBNkQ7UUFFN0QsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUMxQyxJQUFJLFFBQWdCLENBQUM7UUFFckIsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkIsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7WUFDckQsR0FBRyxPQUFPO1lBQ1YsR0FBRyxFQUFFLFFBQVE7WUFDYixZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLG9CQUFvQjtTQUNwRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FDbEIsdUJBQXVCLE1BQU0sbUJBQW1CLFFBQVEsY0FBYyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQy9HLENBQUM7UUFFRixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUM3QixPQUFvQixFQUNwQixhQUFrQixFQUNsQixNQUE0QixFQUM1QixVQUFxQztRQUVyQyxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBRTFDLDJEQUEyRDtRQUMzRCxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FDcEIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFDL0QsMEJBQTBCLGFBQWEsRUFBRSxFQUN6QyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLEVBQUUsRUFBRSxLQUFLLEtBQUssU0FBUyxJQUFJLEVBQUUsRUFBRSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsYUFBYSxRQUFRLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUV2QixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ2xDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO1FBQ3RDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV2QixPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDO2dCQUNILE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDL0YsSUFBSSxZQUFZLEdBQUcsS0FBSyxFQUFFLENBQUM7b0JBQ3pCLEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7d0JBQzVCLElBQUksQ0FBQzs0QkFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDOzRCQUN4RSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dDQUNaLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixJQUFJLFlBQVksQ0FBQyxDQUFDO2dDQUN2RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7b0NBQ2xDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyxDQUFDO2dDQUN4RCxDQUFDO2dDQUNELE9BQU8sT0FBTyxDQUFDOzRCQUNqQixDQUFDO3dCQUNILENBQUM7d0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQzs0QkFDYixJQUFJLEdBQUcsWUFBWSxLQUFLLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQ0FDN0QsTUFBTSxHQUFHLENBQUM7NEJBQ1osQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCwyREFBMkQ7Z0JBQzNELE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUNwQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUMvRCwwQkFBMEIsYUFBYSxFQUFFLEVBQ3pDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDdEIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQ0wsQ0FBQztnQkFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsZUFBZSxDQUFDO2dCQUVoRCxJQUFJLEVBQUUsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVksRUFBRSxDQUFDO29CQUM5QyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsYUFBYSwwQkFBMEIsVUFBVSxJQUFJLENBQUMsQ0FBQztvQkFFNUYsa0NBQWtDO29CQUNsQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDMUIsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxhQUFhLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQzt3QkFDaEUsSUFBSSxVQUFVLEVBQUUsQ0FBQzs0QkFDZixNQUFNO3dCQUNSLENBQUM7b0JBQ0gsQ0FBQztvQkFFRCxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZ0IsQ0FBQyxDQUFDO29CQUN4QyxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVksSUFBSSxRQUFRLEdBQUcsU0FBUyxDQUFDLFdBQVksRUFBRSxDQUFDO29CQUM3RSxRQUFRLEVBQUUsQ0FBQztvQkFDWCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQ3hDLFNBQVMsRUFDVCxRQUFRLEVBQ1IsRUFBRSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsb0JBQW9CO3dCQUN4QyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxFQUFFLENBQUMsb0JBQW9CLEVBQUU7d0JBQ2xGLENBQUMsQ0FBQyxTQUFTLENBQ2QsQ0FBQztvQkFFRixJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FDaEIsa0JBQWtCLGFBQWEsdUNBQXVDLFFBQVEsSUFBSSxTQUFTLENBQUMsV0FBVyxHQUFHO3dCQUN4Ryx5QkFBeUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQy9FLENBQUM7b0JBRUYsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7d0JBQ3RELEdBQUcsT0FBTzt3QkFDVixLQUFLO3dCQUNMLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUTt3QkFDcEIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO3dCQUN0QyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsb0JBQW9CO3FCQUN2RCxDQUFDLENBQUM7b0JBRUgsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDNUIsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQztnQkFDRCxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZ0IsQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsYUFBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2hFLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsTUFBTSxHQUFHLENBQUM7Z0JBQ1osQ0FBQztnQkFDRCxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZ0IsQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFDRCw2QkFBNkI7WUFDN0IsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzFCLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsYUFBYSxHQUFHLFNBQVMsQ0FBQyxXQUFZLENBQUM7WUFDbkUsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixhQUFhLFlBQVksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyx5QkFBeUIsQ0FDcEMsT0FBb0IsRUFDcEIsU0FBNEQ7UUFFNUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsV0FBVyxDQUN2QixVQUE0QixFQUM1QixVQUFrQixDQUFDLEVBQ25CLGdCQUE4RDtRQUU5RCxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUUxQyw0Q0FBNEM7UUFDNUMsSUFBSSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDekUsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFDO1FBRTNCLDJEQUEyRDtRQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFZLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFDcEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLG1EQUFtRDtZQUNuRCxZQUFZLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxLQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFNLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sVUFBVSxHQUNkLFNBQVMsQ0FBQyw4QkFBOEIsSUFBSSxzQkFBc0IsQ0FBQyw4QkFBK0IsQ0FBQztZQUNyRyxNQUFNLGNBQWMsR0FDbEIsVUFBVSxHQUFHLCtCQUErQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDO1lBRTlGLDREQUE0RDtZQUM1RCxNQUFNLGNBQWMsR0FBRyxDQUFDLGdCQUFpQixDQUFDLG9CQUFvQixHQUFHLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2pHLE1BQU0sU0FBUyxHQUFHLENBQUMsZ0JBQWlCLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBRXBGLG1DQUFtQztZQUNuQyxZQUFZLElBQUksV0FBVyxDQUFDO1lBRTVCLHlFQUF5RTtZQUN6RSxXQUFXLEdBQUcsV0FBVyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDMUUsWUFBWSxHQUFHLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3JFLENBQUM7YUFBTSxDQUFDO1lBQ04sd0NBQXdDO1lBQ3hDLFdBQVcsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzFGLFlBQVksSUFBSSxXQUFXLENBQUM7UUFDOUIsQ0FBQztRQUVELGlDQUFpQztRQUNqQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBUSxHQUFHLFNBQVMsQ0FBQztRQUNwRCxZQUFZLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFFekUsNkNBQTZDO1FBQzdDLE1BQU0sb0JBQW9CLEdBQUcsV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFckYsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQ2hCLGtDQUFrQyxPQUFPLGNBQWMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQzVFLGtCQUFrQixVQUFVLENBQUMsb0JBQW9CLENBQUMsWUFBWSxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FDM0YsQ0FBQztRQUVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQWdCLEVBQUUsT0FBb0IsRUFBRSxVQUE0QjtRQUMzRixNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQ3BELE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXJGLHdEQUF3RDtRQUN4RCxNQUFNLFVBQVUsR0FBRyxlQUFlLEdBQUcsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFM0csT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGIn0=
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbDFfdHhfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JELE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhELE9BQU8sRUFVTCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFFZCw2QkFBNkI7QUFDN0IsNkJBQTZCO0FBQzdCLHdDQUF3QztBQUV4QyxNQUFNLFNBQVMsR0FBRyxXQUFjLENBQUM7QUFFakMsd0VBQXdFO0FBQ3hFLDRIQUE0SDtBQUM1SCxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQztBQUU1QyxrQ0FBa0M7QUFDbEMsTUFBTSxhQUFhLEdBQUcsS0FBTSxDQUFDO0FBOEM3QixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBd0M7SUFDMUUsd0JBQXdCLEVBQUU7UUFDeEIsV0FBVyxFQUFFLDZEQUE2RDtRQUMxRSxHQUFHLEVBQUUsZ0NBQWdDO1FBQ3JDLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDO0tBQzNCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxHQUFHLEVBQUUsa0JBQWtCO1FBQ3ZCLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0tBQzFCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxHQUFHLEVBQUUsa0JBQWtCO1FBQ3ZCLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO0tBQzVCO0lBQ0QseUJBQXlCLEVBQUU7UUFDekIsV0FBVyxF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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EthCheatCodes } from '../eth_cheat_codes.js';
|
|
2
|
+
/**
|
|
3
|
+
* A class that provides utility functions for interacting with ethereum (L1) dumping/loading state to/from a file.
|
|
4
|
+
* It is separated to avoid importing fs in the main EthCheatCodes class, which might be used in the browser.
|
|
5
|
+
*/
|
|
6
|
+
export declare class EthCheatCodesWithState extends EthCheatCodes {
|
|
7
|
+
/**
|
|
8
|
+
* Dumps the current chain state to a file.
|
|
9
|
+
* @param fileName - The file name to dump state into
|
|
10
|
+
*/
|
|
11
|
+
dumpChainState(fileName: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Loads the chain state from a file.
|
|
14
|
+
* @param fileName - The file name to load state from
|
|
15
|
+
*/
|
|
16
|
+
loadChainState(fileName: string): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=eth_cheat_codes_with_state.d.ts.map
|
|
@@ -0,0 +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,uBAAuB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,aAAa;IACvD;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ7D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { EthCheatCodes } from '../eth_cheat_codes.js';
|
|
3
|
+
/**
|
|
4
|
+
* A class that provides utility functions for interacting with ethereum (L1) dumping/loading state to/from a file.
|
|
5
|
+
* It is separated to avoid importing fs in the main EthCheatCodes class, which might be used in the browser.
|
|
6
|
+
*/
|
|
7
|
+
export class EthCheatCodesWithState extends EthCheatCodes {
|
|
8
|
+
/**
|
|
9
|
+
* Dumps the current chain state to a file.
|
|
10
|
+
* @param fileName - The file name to dump state into
|
|
11
|
+
*/
|
|
12
|
+
async dumpChainState(fileName) {
|
|
13
|
+
const res = await this.rpcCall('hardhat_dumpState', []);
|
|
14
|
+
if (res.error) {
|
|
15
|
+
throw new Error(`Error dumping state: ${res.error.message}`);
|
|
16
|
+
}
|
|
17
|
+
const jsonContent = JSON.stringify(res.result);
|
|
18
|
+
fs.writeFileSync(`${fileName}.json`, jsonContent, 'utf8');
|
|
19
|
+
this.logger.verbose(`Dumped state to ${fileName}`);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Loads the chain state from a file.
|
|
23
|
+
* @param fileName - The file name to load state from
|
|
24
|
+
*/
|
|
25
|
+
async loadChainState(fileName) {
|
|
26
|
+
const data = JSON.parse(fs.readFileSync(`${fileName}.json`, 'utf8'));
|
|
27
|
+
const res = await this.rpcCall('hardhat_loadState', [data]);
|
|
28
|
+
if (res.error) {
|
|
29
|
+
throw new Error(`Error loading state: ${res.error.message}`);
|
|
30
|
+
}
|
|
31
|
+
this.logger.verbose(`Loaded state from ${fileName}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2NoZWF0X2NvZGVzX3dpdGhfc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9ldGhfY2hlYXRfY29kZXNfd2l0aF9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFcEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBQ3ZEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBZ0I7UUFDMUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsUUFBUSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQWdCO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGIn0=
|
package/dest/test/index.d.ts
CHANGED
package/dest/test/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC"}
|
package/dest/test/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './start_anvil.js';
|
|
2
2
|
export * from './tx_delayer.js';
|
|
3
|
-
|
|
3
|
+
export * from './eth_cheat_codes_with_state.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQ0FBaUMsQ0FBQyJ9
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
2
2
|
import { type Client, type Hex, type WalletClient } from 'viem';
|
|
3
|
-
export declare function waitUntilBlock<T extends Client>(client: T, blockNumber: number | bigint, logger?:
|
|
4
|
-
export declare function waitUntilL1Timestamp<T extends Client>(client: T, timestamp: number | bigint, logger?:
|
|
3
|
+
export declare function waitUntilBlock<T extends Client>(client: T, blockNumber: number | bigint, logger?: Logger): Promise<boolean>;
|
|
4
|
+
export declare function waitUntilL1Timestamp<T extends Client>(client: T, timestamp: number | bigint, logger?: Logger): Promise<boolean>;
|
|
5
5
|
export interface Delayer {
|
|
6
6
|
/** Returns the list of all txs (not just the delayed ones) sent through the attached client. */
|
|
7
7
|
getTxs(): Hex[];
|
|
@@ -13,6 +13,7 @@ export interface Delayer {
|
|
|
13
13
|
/**
|
|
14
14
|
* Returns a new client (without modifying the one passed in) with an injected tx delayer.
|
|
15
15
|
* The delayer can be used to hold off the next tx to be sent until a given block number.
|
|
16
|
+
* TODO(#10824): This doesn't play along well with blob txs for some reason.
|
|
16
17
|
*/
|
|
17
18
|
export declare function withDelayer<T extends WalletClient>(client: T, opts: {
|
|
18
19
|
ethereumSlotDuration: bigint | number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_delayer.d.ts","sourceRoot":"","sources":["../../src/test/tx_delayer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tx_delayer.d.ts","sourceRoot":"","sources":["../../src/test/tx_delayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EACL,KAAK,MAAM,EACX,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAC;AAEd,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,oBAgBxG;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,oBAuB5G;AAED,MAAM,WAAW,OAAO;IACtB,gGAAgG;IAChG,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,8EAA8E;IAC9E,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACxE,wEAAwE;IACxE,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAC3E;AAwBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,EAChD,MAAM,EAAE,CAAC,EACT,IAAI,EAAE;IAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAC9C;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA+DjC"}
|
package/dest/test/tx_delayer.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { omit } from '@aztec/foundation/collection';
|
|
2
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
3
4
|
import { inspect } from 'util';
|
|
4
|
-
import { keccak256, publicActions, walletActions, } from 'viem';
|
|
5
|
+
import { keccak256, parseTransaction, publicActions, walletActions, } from 'viem';
|
|
5
6
|
export function waitUntilBlock(client, blockNumber, logger) {
|
|
6
7
|
const publicClient = 'getBlockNumber' in client && typeof client.getBlockNumber === 'function'
|
|
7
8
|
? client
|
|
@@ -48,9 +49,10 @@ class DelayerImpl {
|
|
|
48
49
|
/**
|
|
49
50
|
* Returns a new client (without modifying the one passed in) with an injected tx delayer.
|
|
50
51
|
* The delayer can be used to hold off the next tx to be sent until a given block number.
|
|
52
|
+
* TODO(#10824): This doesn't play along well with blob txs for some reason.
|
|
51
53
|
*/
|
|
52
54
|
export function withDelayer(client, opts) {
|
|
53
|
-
const logger =
|
|
55
|
+
const logger = createLogger('ethereum:tx_delayer');
|
|
54
56
|
const delayer = new DelayerImpl(opts);
|
|
55
57
|
const extended = client
|
|
56
58
|
// Tweak sendRawTransaction so it uses the delay defined in the delayer.
|
|
@@ -69,15 +71,24 @@ export function withDelayer(client, opts) {
|
|
|
69
71
|
// Compute the tx hash manually so we emulate sendRawTransaction response
|
|
70
72
|
const { serializedTransaction } = args[0];
|
|
71
73
|
const txHash = keccak256(serializedTransaction);
|
|
72
|
-
logger.info(`Delaying tx ${txHash} until ${inspect(waitUntil)}
|
|
74
|
+
logger.info(`Delaying tx ${txHash} until ${inspect(waitUntil)}`, {
|
|
75
|
+
argsLen: args.length,
|
|
76
|
+
...omit(parseTransaction(serializedTransaction), 'data', 'sidecars'),
|
|
77
|
+
});
|
|
73
78
|
// Do not await here so we can return the tx hash immediately as if it had been sent on the spot.
|
|
74
79
|
// Instead, delay it so it lands on the desired block number or timestamp, assuming anvil will
|
|
75
80
|
// mine it immediately.
|
|
76
81
|
void wait
|
|
77
82
|
.then(async () => {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
const clientTxHash = await client.sendRawTransaction(...args);
|
|
84
|
+
if (clientTxHash !== txHash) {
|
|
85
|
+
logger.error(`Tx hash returned by the client does not match computed one`, {
|
|
86
|
+
clientTxHash,
|
|
87
|
+
computedTxHash: txHash,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
logger.info(`Sent previously delayed tx ${clientTxHash} to land on ${inspect(waitUntil)}`);
|
|
91
|
+
delayer.txs.push(clientTxHash);
|
|
81
92
|
})
|
|
82
93
|
.catch(err => logger.error(`Error sending tx after delay`, err));
|
|
83
94
|
return Promise.resolve(txHash);
|
|
@@ -99,4 +110,4 @@ export function withDelayer(client, opts) {
|
|
|
99
110
|
}));
|
|
100
111
|
return { client: extended, delayer };
|
|
101
112
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZGVsYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3R4X2RlbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BELE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBS0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0sTUFBTSxDQUFDO0FBRWQsTUFBTSxVQUFVLGNBQWMsQ0FBbUIsTUFBUyxFQUFFLFdBQTRCLEVBQUUsTUFBZTtJQUN2RyxNQUFNLFlBQVksR0FDaEIsZ0JBQWdCLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLGNBQWMsS0FBSyxVQUFVO1FBQ3ZFLENBQUMsQ0FBRSxNQUFrQztRQUNyQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVuQyxPQUFPLFVBQVUsQ0FDZixLQUFLLElBQUksRUFBRTtRQUNULE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0UsTUFBTSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsa0JBQWtCLG1CQUFtQixXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sa0JBQWtCLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUMsRUFDRCx1QkFBdUIsV0FBVyxFQUFFLEVBQ3BDLEVBQUUsRUFDRixHQUFHLENBQ0osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQW1CLE1BQVMsRUFBRSxTQUEwQixFQUFFLE1BQWU7SUFDM0csTUFBTSxZQUFZLEdBQ2hCLGdCQUFnQixJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxjQUFjLEtBQUssVUFBVTtRQUN2RSxDQUFDLENBQUUsTUFBa0M7UUFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFbkMsSUFBSSxTQUFTLEdBQXVCLFNBQVMsQ0FBQztJQUM5QyxPQUFPLFVBQVUsQ0FDZixLQUFLLElBQUksRUFBRTtRQUNULE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0UsSUFBSSxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxTQUFTLEdBQUcsa0JBQWtCLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDbEgsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixTQUFTLG1CQUFtQixTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzdFLE9BQU8sU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDLEVBQ0QsMkJBQTJCLFNBQVMsRUFBRSxFQUN0QyxFQUFFLEVBQ0YsR0FBRyxDQUNKLENBQUM7QUFDSixDQUFDO0FBV0QsTUFBTSxXQUFXO0lBQ2YsWUFBWSxJQUErQztRQUtwRCxhQUFRLEdBQW9FLFNBQVMsQ0FBQztRQUN0RixRQUFHLEdBQVUsRUFBRSxDQUFDO1FBTHJCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQU1ELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLGFBQThCO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVELHlCQUF5QixDQUFDLFdBQTRCO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLE1BQVMsRUFDVCxJQUErQztJQUUvQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxNQUFNLFFBQVEsR0FBRyxNQUFNO1FBQ3JCLHdFQUF3RTtRQUN4RSxxR0FBcUc7UUFDckcsK0ZBQStGO1FBQy9GLGlEQUFpRDtTQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUk7WUFDOUIsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUNuQyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztnQkFFN0IsTUFBTSxZQUFZLEdBQUcsTUFBaUMsQ0FBQztnQkFDdkQsTUFBTSxJQUFJLEdBQ1IsZUFBZSxJQUFJLFNBQVM7b0JBQzFCLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQztvQkFDcEUsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFFdkcseUVBQXlFO2dCQUN6RSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsTUFBTSxVQUFVLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFO29CQUMvRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ3BCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQztpQkFDckUsQ0FBQyxDQUFDO2dCQUVILGlHQUFpRztnQkFDakcsOEZBQThGO2dCQUM5Rix1QkFBdUI7Z0JBQ3ZCLEtBQUssSUFBSTtxQkFDTixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ2YsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7d0JBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsNERBQTRELEVBQUU7NEJBQ3pFLFlBQVk7NEJBQ1osY0FBYyxFQUFFLE1BQU07eUJBQ3ZCLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLFlBQVksZUFBZSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUMzRixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFFbkUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7S0FDRixDQUFDLENBQUM7UUFDSCw2RUFBNkU7U0FDNUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUMvRSxtRUFBbUU7U0FDbEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWE7UUFDbEQsY0FBYyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjO0tBQ3JELENBQUMsQ0FBTSxDQUFDO0lBRVgsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDdkMsQ0FBQyJ9
|
package/dest/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import { type
|
|
2
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
3
3
|
import { type Abi, type ContractEventName, type DecodeEventLogReturnType, type Hex, type Log } from 'viem';
|
|
4
4
|
export interface L2Claim {
|
|
5
5
|
claimSecret: Fr;
|
|
@@ -7,5 +7,5 @@ export interface L2Claim {
|
|
|
7
7
|
messageHash: Hex;
|
|
8
8
|
messageLeafIndex: bigint;
|
|
9
9
|
}
|
|
10
|
-
export declare function extractEvent<const TAbi extends Abi | readonly unknown[], TEventName extends ContractEventName<TAbi>, TEventType = DecodeEventLogReturnType<TAbi, TEventName, Hex[], undefined, true>>(logs: Log[], address: Hex, abi: TAbi, eventName: TEventName, filter?: (log: TEventType) => boolean, logger?:
|
|
10
|
+
export declare function extractEvent<const TAbi extends Abi | readonly unknown[], TEventName extends ContractEventName<TAbi>, TEventType = DecodeEventLogReturnType<TAbi, TEventName, Hex[], undefined, true>>(logs: Log[], address: Hex, abi: TAbi, eventName: TEventName, filter?: (log: TEventType) => boolean, logger?: Logger): TEventType;
|
|
11
11
|
//# sourceMappingURL=utils.d.ts.map
|
package/dest/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,KAAK,GAAG,EACR,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,GAAG,EACR,KAAK,GAAG,EAET,MAAM,MAAM,CAAC;AAEd,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAC1B,KAAK,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EAC3C,UAAU,SAAS,iBAAiB,CAAC,IAAI,CAAC,EAC1C,UAAU,GAAG,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAE/E,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,GAAG,EACZ,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,UAAU,EACrB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,EACrC,MAAM,CAAC,EAAE,MAAM,GACd,UAAU,CAMZ"}
|
package/dest/utils.js
CHANGED
|
@@ -24,4 +24,4 @@ function tryExtractEvent(logs, address, abi, eventName, filter, logger) {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQU1MLGNBQWMsR0FDZixNQUFNLE1BQU0sQ0FBQztBQVNkLE1BQU0sVUFBVSxZQUFZLENBSzFCLElBQVcsRUFDWCxPQUFZLEVBQ1osR0FBUyxFQUNULFNBQXFCLEVBQ3JCLE1BQXFDLEVBQ3JDLE1BQWU7SUFFZixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxTQUFTLGlCQUFpQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FLdEIsSUFBVyxFQUNYLE9BQVksRUFDWixHQUFTLEVBQ1QsU0FBcUIsRUFDckIsTUFBcUMsRUFDckMsTUFBZTtJQUVmLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQztnQkFDSCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3pDLE1BQU0sYUFBYSxHQUFHLFlBQTBCLENBQUM7b0JBQ2pELElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQ3JDLE9BQU8sYUFBYSxDQUFDO29CQUN2QixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLDJDQUEyQyxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM3RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/ethereum",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.1-devnet",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"../package.common.json"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aztec/foundation": "0.
|
|
32
|
-
"@aztec/l1-artifacts": "0.
|
|
31
|
+
"@aztec/foundation": "0.67.1-devnet",
|
|
32
|
+
"@aztec/l1-artifacts": "0.67.1-devnet",
|
|
33
33
|
"@viem/anvil": "^0.0.10",
|
|
34
34
|
"dotenv": "^16.0.3",
|
|
35
35
|
"get-port": "^7.1.0",
|
|
@@ -85,6 +85,10 @@
|
|
|
85
85
|
"summaryThreshold": 9999
|
|
86
86
|
}
|
|
87
87
|
]
|
|
88
|
+
],
|
|
89
|
+
"testTimeout": 30000,
|
|
90
|
+
"setupFiles": [
|
|
91
|
+
"../../foundation/src/jest/setup.mjs"
|
|
88
92
|
]
|
|
89
93
|
},
|
|
90
94
|
"engines": {
|