@aztec/ethereum 0.69.0-devnet → 0.69.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.js +3 -3
- package/dest/l1_tx_utils.d.ts +24 -9
- package/dest/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils.js +154 -56
- package/dest/test/start_anvil.d.ts.map +1 -1
- package/dest/test/start_anvil.js +15 -8
- package/dest/test/tx_delayer.js +4 -4
- package/dest/utils.d.ts +2 -0
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +95 -2
- package/package.json +3 -4
- package/src/deploy_l1_contracts.ts +2 -2
- package/src/l1_tx_utils.ts +187 -65
- package/src/test/start_anvil.ts +17 -8
- package/src/test/tx_delayer.ts +3 -3
- package/src/utils.ts +109 -0
package/dest/l1_tx_utils.js
CHANGED
|
@@ -3,20 +3,24 @@ import { bigintConfigHelper, getDefaultConfig, numberConfigHelper, } from '@azte
|
|
|
3
3
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
4
4
|
import { sleep } from '@aztec/foundation/sleep';
|
|
5
5
|
import { formatGwei, } from 'viem';
|
|
6
|
+
import { formatViemError } from './utils.js';
|
|
6
7
|
// 1_000_000_000 Gwei = 1 ETH
|
|
7
8
|
// 1_000_000_000 Wei = 1 Gwei
|
|
8
9
|
// 1_000_000_000_000_000_000 Wei = 1 ETH
|
|
9
10
|
const WEI_CONST = 1000000000n;
|
|
10
11
|
// setting a minimum bump percentage to 10% due to geth's implementation
|
|
11
12
|
// https://github.com/ethereum/go-ethereum/blob/e3d61e6db028c412f74bc4d4c7e117a9e29d0de0/core/txpool/legacypool/list.go#L298
|
|
12
|
-
const MIN_REPLACEMENT_BUMP_PERCENTAGE =
|
|
13
|
+
const MIN_REPLACEMENT_BUMP_PERCENTAGE = 10;
|
|
14
|
+
// setting a minimum bump percentage to 100% due to geth's implementation
|
|
15
|
+
// https://github.com/ethereum/go-ethereum/blob/e3d61e6db028c412f74bc4d4c7e117a9e29d0de0/core/txpool/blobpool/config.go#L34
|
|
16
|
+
const MIN_BLOB_REPLACEMENT_BUMP_PERCENTAGE = 100;
|
|
13
17
|
// Avg ethereum block time is ~12s
|
|
14
18
|
const BLOCK_TIME_MS = 12000;
|
|
15
19
|
export const l1TxUtilsConfigMappings = {
|
|
16
20
|
gasLimitBufferPercentage: {
|
|
17
21
|
description: 'How much to increase gas price by each attempt (percentage)',
|
|
18
22
|
env: 'L1_GAS_LIMIT_BUFFER_PERCENTAGE',
|
|
19
|
-
...
|
|
23
|
+
...numberConfigHelper(10),
|
|
20
24
|
},
|
|
21
25
|
minGwei: {
|
|
22
26
|
description: 'Minimum gas price in gwei',
|
|
@@ -28,15 +32,25 @@ export const l1TxUtilsConfigMappings = {
|
|
|
28
32
|
env: 'L1_GAS_PRICE_MAX',
|
|
29
33
|
...bigintConfigHelper(100n),
|
|
30
34
|
},
|
|
35
|
+
maxBlobGwei: {
|
|
36
|
+
description: 'Maximum blob fee per gas in gwei',
|
|
37
|
+
env: 'L1_BLOB_FEE_PER_GAS_MAX',
|
|
38
|
+
...bigintConfigHelper(1500n),
|
|
39
|
+
},
|
|
31
40
|
priorityFeeBumpPercentage: {
|
|
32
41
|
description: 'How much to increase priority fee by each attempt (percentage)',
|
|
33
42
|
env: 'L1_PRIORITY_FEE_BUMP_PERCENTAGE',
|
|
34
|
-
...
|
|
43
|
+
...numberConfigHelper(20),
|
|
35
44
|
},
|
|
36
45
|
priorityFeeRetryBumpPercentage: {
|
|
37
46
|
description: 'How much to increase priority fee by each retry attempt (percentage)',
|
|
38
47
|
env: 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE',
|
|
39
|
-
...
|
|
48
|
+
...numberConfigHelper(50),
|
|
49
|
+
},
|
|
50
|
+
fixedPriorityFeePerGas: {
|
|
51
|
+
description: 'Fixed priority fee per gas in Gwei. Overrides any priority fee bump percentage',
|
|
52
|
+
env: 'L1_FIXED_PRIORITY_FEE_PER_GAS',
|
|
53
|
+
...numberConfigHelper(0),
|
|
40
54
|
},
|
|
41
55
|
maxAttempts: {
|
|
42
56
|
description: 'Maximum number of speed-up attempts',
|
|
@@ -51,7 +65,7 @@ export const l1TxUtilsConfigMappings = {
|
|
|
51
65
|
stallTimeMs: {
|
|
52
66
|
description: 'How long before considering tx stalled',
|
|
53
67
|
env: 'L1_TX_MONITOR_STALL_TIME_MS',
|
|
54
|
-
...numberConfigHelper(
|
|
68
|
+
...numberConfigHelper(45000),
|
|
55
69
|
},
|
|
56
70
|
txTimeoutMs: {
|
|
57
71
|
description: 'How long to wait for a tx to be mined before giving up. Set to 0 to disable.',
|
|
@@ -81,31 +95,53 @@ export class L1TxUtils {
|
|
|
81
95
|
* @param gasConfig - Optional gas configuration
|
|
82
96
|
* @returns The transaction hash and parameters used
|
|
83
97
|
*/
|
|
84
|
-
async sendTransaction(request, _gasConfig,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
async sendTransaction(request, _gasConfig, blobInputs) {
|
|
99
|
+
try {
|
|
100
|
+
const gasConfig = { ...this.config, ..._gasConfig };
|
|
101
|
+
const account = this.walletClient.account;
|
|
102
|
+
let gasLimit;
|
|
103
|
+
if (gasConfig.fixedGas) {
|
|
104
|
+
gasLimit = gasConfig.fixedGas;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
gasLimit = await this.estimateGas(account, request);
|
|
108
|
+
}
|
|
109
|
+
const gasPrice = await this.getGasPrice(gasConfig, !!blobInputs);
|
|
110
|
+
if (gasConfig.txTimeoutAt && Date.now() > gasConfig.txTimeoutAt.getTime()) {
|
|
111
|
+
throw new Error('Transaction timed out before sending');
|
|
112
|
+
}
|
|
113
|
+
let txHash;
|
|
114
|
+
if (blobInputs) {
|
|
115
|
+
txHash = await this.walletClient.sendTransaction({
|
|
116
|
+
...request,
|
|
117
|
+
...blobInputs,
|
|
118
|
+
gas: gasLimit,
|
|
119
|
+
maxFeePerGas: gasPrice.maxFeePerGas,
|
|
120
|
+
maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas,
|
|
121
|
+
maxFeePerBlobGas: gasPrice.maxFeePerBlobGas,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
txHash = await this.walletClient.sendTransaction({
|
|
126
|
+
...request,
|
|
127
|
+
gas: gasLimit,
|
|
128
|
+
maxFeePerGas: gasPrice.maxFeePerGas,
|
|
129
|
+
maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
this.logger?.verbose(`Sent L1 transaction ${txHash}`, {
|
|
133
|
+
gasLimit,
|
|
134
|
+
maxFeePerGas: formatGwei(gasPrice.maxFeePerGas),
|
|
135
|
+
maxPriorityFeePerGas: formatGwei(gasPrice.maxPriorityFeePerGas),
|
|
136
|
+
...(gasPrice.maxFeePerBlobGas && { maxFeePerBlobGas: formatGwei(gasPrice.maxFeePerBlobGas) }),
|
|
137
|
+
});
|
|
138
|
+
return { txHash, gasLimit, gasPrice };
|
|
90
139
|
}
|
|
91
|
-
|
|
92
|
-
|
|
140
|
+
catch (err) {
|
|
141
|
+
const formattedErr = formatViemError(err);
|
|
142
|
+
this.logger?.error(`Failed to send transaction`, formattedErr);
|
|
143
|
+
throw formattedErr;
|
|
93
144
|
}
|
|
94
|
-
const gasPrice = await this.getGasPrice(gasConfig);
|
|
95
|
-
const blobInputs = _blobInputs || {};
|
|
96
|
-
const txHash = await this.walletClient.sendTransaction({
|
|
97
|
-
...request,
|
|
98
|
-
...blobInputs,
|
|
99
|
-
gas: gasLimit,
|
|
100
|
-
maxFeePerGas: gasPrice.maxFeePerGas,
|
|
101
|
-
maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas,
|
|
102
|
-
});
|
|
103
|
-
this.logger?.verbose(`Sent L1 transaction ${txHash}`, {
|
|
104
|
-
gasLimit,
|
|
105
|
-
maxFeePerGas: formatGwei(gasPrice.maxFeePerGas),
|
|
106
|
-
maxPriorityFeePerGas: formatGwei(gasPrice.maxPriorityFeePerGas),
|
|
107
|
-
});
|
|
108
|
-
return { txHash, gasLimit, gasPrice };
|
|
109
145
|
}
|
|
110
146
|
/**
|
|
111
147
|
* Monitors a transaction until completion, handling speed-ups if needed
|
|
@@ -131,6 +167,9 @@ export class L1TxUtils {
|
|
|
131
167
|
let lastAttemptSent = Date.now();
|
|
132
168
|
const initialTxTime = lastAttemptSent;
|
|
133
169
|
let txTimedOut = false;
|
|
170
|
+
const isTimedOut = () => (gasConfig.txTimeoutAt && Date.now() > gasConfig.txTimeoutAt.getTime()) ||
|
|
171
|
+
(gasConfig.txTimeoutMs !== undefined && Date.now() - initialTxTime > gasConfig.txTimeoutMs) ||
|
|
172
|
+
false;
|
|
134
173
|
while (!txTimedOut) {
|
|
135
174
|
try {
|
|
136
175
|
const currentNonce = await this.publicClient.getTransactionCount({ address: account.address });
|
|
@@ -159,22 +198,28 @@ export class L1TxUtils {
|
|
|
159
198
|
if (tx && timePassed < gasConfig.stallTimeMs) {
|
|
160
199
|
this.logger?.debug(`L1 transaction ${currentTxHash} pending. Time passed: ${timePassed}ms.`);
|
|
161
200
|
// Check timeout before continuing
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
201
|
+
txTimedOut = isTimedOut();
|
|
202
|
+
if (txTimedOut) {
|
|
203
|
+
break;
|
|
167
204
|
}
|
|
168
205
|
await sleep(gasConfig.checkIntervalMs);
|
|
169
206
|
continue;
|
|
170
207
|
}
|
|
171
208
|
if (timePassed > gasConfig.stallTimeMs && attempts < gasConfig.maxAttempts) {
|
|
172
209
|
attempts++;
|
|
173
|
-
const newGasPrice = await this.getGasPrice(gasConfig, attempts, tx.maxFeePerGas && tx.maxPriorityFeePerGas
|
|
174
|
-
? {
|
|
210
|
+
const newGasPrice = await this.getGasPrice(gasConfig, !!blobInputs, attempts, tx.maxFeePerGas && tx.maxPriorityFeePerGas
|
|
211
|
+
? {
|
|
212
|
+
maxFeePerGas: tx.maxFeePerGas,
|
|
213
|
+
maxPriorityFeePerGas: tx.maxPriorityFeePerGas,
|
|
214
|
+
maxFeePerBlobGas: tx.maxFeePerBlobGas,
|
|
215
|
+
}
|
|
175
216
|
: undefined);
|
|
176
217
|
this.logger?.debug(`L1 transaction ${currentTxHash} appears stuck. Attempting speed-up ${attempts}/${gasConfig.maxAttempts} ` +
|
|
177
|
-
`with new priority fee ${formatGwei(newGasPrice.maxPriorityFeePerGas)} gwei
|
|
218
|
+
`with new priority fee ${formatGwei(newGasPrice.maxPriorityFeePerGas)} gwei`, {
|
|
219
|
+
maxFeePerGas: formatGwei(newGasPrice.maxFeePerGas),
|
|
220
|
+
maxPriorityFeePerGas: formatGwei(newGasPrice.maxPriorityFeePerGas),
|
|
221
|
+
...(newGasPrice.maxFeePerBlobGas && { maxFeePerBlobGas: formatGwei(newGasPrice.maxFeePerBlobGas) }),
|
|
222
|
+
});
|
|
178
223
|
currentTxHash = await this.walletClient.sendTransaction({
|
|
179
224
|
...request,
|
|
180
225
|
...blobInputs,
|
|
@@ -189,16 +234,15 @@ export class L1TxUtils {
|
|
|
189
234
|
await sleep(gasConfig.checkIntervalMs);
|
|
190
235
|
}
|
|
191
236
|
catch (err) {
|
|
192
|
-
|
|
237
|
+
const formattedErr = formatViemError(err);
|
|
238
|
+
this.logger?.warn(`Error monitoring tx ${currentTxHash}:`, formattedErr);
|
|
193
239
|
if (err.message?.includes('reverted')) {
|
|
194
|
-
throw
|
|
240
|
+
throw formattedErr;
|
|
195
241
|
}
|
|
196
242
|
await sleep(gasConfig.checkIntervalMs);
|
|
197
243
|
}
|
|
198
244
|
// Check if tx has timed out.
|
|
199
|
-
|
|
200
|
-
txTimedOut = Date.now() - initialTxTime > gasConfig.txTimeoutMs;
|
|
201
|
-
}
|
|
245
|
+
txTimedOut = isTimedOut();
|
|
202
246
|
}
|
|
203
247
|
throw new Error(`L1 transaction ${currentTxHash} timed out`);
|
|
204
248
|
}
|
|
@@ -209,31 +253,58 @@ export class L1TxUtils {
|
|
|
209
253
|
* @returns The receipt of the successful transaction
|
|
210
254
|
*/
|
|
211
255
|
async sendAndMonitorTransaction(request, gasConfig, blobInputs) {
|
|
212
|
-
const { txHash, gasLimit } = await this.sendTransaction(request, gasConfig, blobInputs);
|
|
213
|
-
|
|
256
|
+
const { txHash, gasLimit, gasPrice } = await this.sendTransaction(request, gasConfig, blobInputs);
|
|
257
|
+
const receipt = await this.monitorTransaction(request, txHash, { gasLimit }, gasConfig, blobInputs);
|
|
258
|
+
return { receipt, gasPrice };
|
|
214
259
|
}
|
|
215
260
|
/**
|
|
216
261
|
* Gets the current gas price with bounds checking
|
|
217
262
|
*/
|
|
218
|
-
async getGasPrice(_gasConfig, attempt = 0, previousGasPrice) {
|
|
263
|
+
async getGasPrice(_gasConfig, isBlobTx = false, attempt = 0, previousGasPrice) {
|
|
219
264
|
const gasConfig = { ...this.config, ..._gasConfig };
|
|
220
265
|
const block = await this.publicClient.getBlock({ blockTag: 'latest' });
|
|
221
266
|
const baseFee = block.baseFeePerGas ?? 0n;
|
|
222
|
-
// Get
|
|
223
|
-
let
|
|
267
|
+
// Get blob base fee if available
|
|
268
|
+
let blobBaseFee = 0n;
|
|
269
|
+
try {
|
|
270
|
+
const blobBaseFeeHex = await this.publicClient.request({ method: 'eth_blobBaseFee' });
|
|
271
|
+
blobBaseFee = BigInt(blobBaseFeeHex);
|
|
272
|
+
this.logger?.debug('Blob base fee:', { blobBaseFee: formatGwei(blobBaseFee) });
|
|
273
|
+
}
|
|
274
|
+
catch {
|
|
275
|
+
this.logger?.warn('Failed to get blob base fee', attempt);
|
|
276
|
+
}
|
|
277
|
+
let priorityFee;
|
|
278
|
+
if (gasConfig.fixedPriorityFeePerGas) {
|
|
279
|
+
this.logger?.debug('Using fixed priority fee per gas', {
|
|
280
|
+
fixedPriorityFeePerGas: gasConfig.fixedPriorityFeePerGas,
|
|
281
|
+
});
|
|
282
|
+
// try to maintain precision up to 1000000 wei
|
|
283
|
+
priorityFee = BigInt(gasConfig.fixedPriorityFeePerGas * 1000000) * (WEI_CONST / 1000000n);
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
// Get initial priority fee from the network
|
|
287
|
+
priorityFee = await this.publicClient.estimateMaxPriorityFeePerGas();
|
|
288
|
+
}
|
|
224
289
|
let maxFeePerGas = baseFee;
|
|
290
|
+
let maxFeePerBlobGas = blobBaseFee;
|
|
225
291
|
// Bump base fee so it's valid for next blocks if it stalls
|
|
226
292
|
const numBlocks = Math.ceil(gasConfig.stallTimeMs / BLOCK_TIME_MS);
|
|
227
293
|
for (let i = 0; i < numBlocks; i++) {
|
|
228
294
|
// each block can go up 12.5% from previous baseFee
|
|
229
295
|
maxFeePerGas = (maxFeePerGas * (1000n + 125n)) / 1000n;
|
|
296
|
+
// same for blob gas fee
|
|
297
|
+
maxFeePerBlobGas = (maxFeePerBlobGas * (1000n + 125n)) / 1000n;
|
|
230
298
|
}
|
|
231
299
|
if (attempt > 0) {
|
|
232
300
|
const configBump = gasConfig.priorityFeeRetryBumpPercentage ?? defaultL1TxUtilsConfig.priorityFeeRetryBumpPercentage;
|
|
233
|
-
|
|
301
|
+
// if this is a blob tx, we have to use the blob bump percentage
|
|
302
|
+
const minBumpPercentage = isBlobTx ? MIN_BLOB_REPLACEMENT_BUMP_PERCENTAGE : MIN_REPLACEMENT_BUMP_PERCENTAGE;
|
|
303
|
+
const bumpPercentage = configBump > minBumpPercentage ? configBump : minBumpPercentage;
|
|
234
304
|
// Calculate minimum required fees based on previous attempt
|
|
235
|
-
|
|
236
|
-
const
|
|
305
|
+
// multiply by 100 & divide by 100 to maintain some precision
|
|
306
|
+
const minPriorityFee = (previousGasPrice.maxPriorityFeePerGas * (10000n + BigInt(bumpPercentage * 100))) / 10000n;
|
|
307
|
+
const minMaxFee = (previousGasPrice.maxFeePerGas * (10000n + BigInt(bumpPercentage * 100))) / 10000n;
|
|
237
308
|
// Add priority fee to maxFeePerGas
|
|
238
309
|
maxFeePerGas += priorityFee;
|
|
239
310
|
// Use maximum between current network values and minimum required values
|
|
@@ -241,22 +312,44 @@ export class L1TxUtils {
|
|
|
241
312
|
maxFeePerGas = maxFeePerGas > minMaxFee ? maxFeePerGas : minMaxFee;
|
|
242
313
|
}
|
|
243
314
|
else {
|
|
244
|
-
// first attempt, just bump priority fee
|
|
245
|
-
|
|
315
|
+
// first attempt, just bump priority fee, unless it's a fixed config
|
|
316
|
+
// multiply by 100 & divide by 100 to maintain some precision
|
|
317
|
+
if (!gasConfig.fixedPriorityFeePerGas) {
|
|
318
|
+
priorityFee = (priorityFee * (10000n + BigInt((gasConfig.priorityFeeBumpPercentage || 0) * 100))) / 10000n;
|
|
319
|
+
}
|
|
246
320
|
maxFeePerGas += priorityFee;
|
|
247
321
|
}
|
|
248
322
|
// Ensure we don't exceed maxGwei
|
|
249
323
|
const maxGweiInWei = gasConfig.maxGwei * WEI_CONST;
|
|
250
324
|
maxFeePerGas = maxFeePerGas > maxGweiInWei ? maxGweiInWei : maxFeePerGas;
|
|
325
|
+
// Ensure we don't exceed maxBlobGwei
|
|
326
|
+
if (maxFeePerBlobGas) {
|
|
327
|
+
const maxBlobGweiInWei = gasConfig.maxBlobGwei * WEI_CONST;
|
|
328
|
+
maxFeePerBlobGas = maxFeePerBlobGas > maxBlobGweiInWei ? maxBlobGweiInWei : maxFeePerBlobGas;
|
|
329
|
+
}
|
|
251
330
|
// Ensure priority fee doesn't exceed max fee
|
|
252
331
|
const maxPriorityFeePerGas = priorityFee > maxFeePerGas ? maxFeePerGas : priorityFee;
|
|
332
|
+
if (attempt > 0 && previousGasPrice?.maxFeePerBlobGas) {
|
|
333
|
+
const bumpPercentage = gasConfig.priorityFeeRetryBumpPercentage > MIN_BLOB_REPLACEMENT_BUMP_PERCENTAGE
|
|
334
|
+
? gasConfig.priorityFeeRetryBumpPercentage
|
|
335
|
+
: MIN_BLOB_REPLACEMENT_BUMP_PERCENTAGE;
|
|
336
|
+
// calculate min blob fee based on previous attempt
|
|
337
|
+
const minBlobFee = (previousGasPrice.maxFeePerBlobGas * (10000n + BigInt(bumpPercentage * 100))) / 10000n;
|
|
338
|
+
// use max between current network values and min required values
|
|
339
|
+
maxFeePerBlobGas = maxFeePerBlobGas > minBlobFee ? maxFeePerBlobGas : minBlobFee;
|
|
340
|
+
}
|
|
253
341
|
this.logger?.debug(`Computed gas price`, {
|
|
254
342
|
attempt,
|
|
255
343
|
baseFee: formatGwei(baseFee),
|
|
256
344
|
maxFeePerGas: formatGwei(maxFeePerGas),
|
|
257
345
|
maxPriorityFeePerGas: formatGwei(maxPriorityFeePerGas),
|
|
346
|
+
...(maxFeePerBlobGas && { maxFeePerBlobGas: formatGwei(maxFeePerBlobGas) }),
|
|
258
347
|
});
|
|
259
|
-
return {
|
|
348
|
+
return {
|
|
349
|
+
maxFeePerGas,
|
|
350
|
+
maxPriorityFeePerGas,
|
|
351
|
+
...(maxFeePerBlobGas && { maxFeePerBlobGas: maxFeePerBlobGas }),
|
|
352
|
+
};
|
|
260
353
|
}
|
|
261
354
|
/**
|
|
262
355
|
* Estimates gas and adds buffer
|
|
@@ -268,15 +361,20 @@ export class L1TxUtils {
|
|
|
268
361
|
// Strangely, the only way to get gas and send blobs is prepareTransactionRequest().
|
|
269
362
|
// See: https://github.com/wevm/viem/issues/2075
|
|
270
363
|
if (_blobInputs) {
|
|
271
|
-
|
|
272
|
-
|
|
364
|
+
const gasPrice = await this.getGasPrice(gasConfig, true, 0);
|
|
365
|
+
initialEstimate = (await this.walletClient.prepareTransactionRequest({
|
|
366
|
+
account,
|
|
367
|
+
...request,
|
|
368
|
+
..._blobInputs,
|
|
369
|
+
maxFeePerBlobGas: gasPrice.maxFeePerBlobGas,
|
|
370
|
+
}))?.gas;
|
|
273
371
|
}
|
|
274
372
|
else {
|
|
275
373
|
initialEstimate = await this.publicClient.estimateGas({ account, ...request });
|
|
276
374
|
}
|
|
277
375
|
// Add buffer based on either fixed amount or percentage
|
|
278
|
-
const withBuffer = initialEstimate + (initialEstimate * (gasConfig.gasLimitBufferPercentage
|
|
376
|
+
const withBuffer = initialEstimate + (initialEstimate * BigInt((gasConfig.gasLimitBufferPercentage || 0) * 100)) / 10000n;
|
|
279
377
|
return withBuffer;
|
|
280
378
|
}
|
|
281
379
|
}
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbDFfdHhfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JELE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhELE9BQU8sRUFVTCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFFZCw2QkFBNkI7QUFDN0IsNkJBQTZCO0FBQzdCLHdDQUF3QztBQUV4QyxNQUFNLFNBQVMsR0FBRyxXQUFjLENBQUM7QUFFakMsd0VBQXdFO0FBQ3hFLDRIQUE0SDtBQUM1SCxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQztBQUU1QyxrQ0FBa0M7QUFDbEMsTUFBTSxhQUFhLEdBQUcsS0FBTSxDQUFDO0FBOEM3QixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBd0M7SUFDMUUsd0JBQXdCLEVBQUU7UUFDeEIsV0FBVyxFQUFFLDZEQUE2RDtRQUMxRSxHQUFHLEVBQUUsZ0NBQWdDO1FBQ3JDLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDO0tBQzNCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxHQUFHLEVBQUUsa0JBQWtCO1FBQ3ZCLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0tBQzFCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxHQUFHLEVBQUUsa0JBQWtCO1FBQ3ZCLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO0tBQzVCO0lBQ0QseUJBQXlCLEVBQUU7UUFDekIsV0FBVyxF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
|
|
380
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbDFfdHhfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JELE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhELE9BQU8sRUFVTCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFDN0Isd0NBQXdDO0FBRXhDLE1BQU0sU0FBUyxHQUFHLFdBQWMsQ0FBQztBQUVqQyx3RUFBd0U7QUFDeEUsNEhBQTRIO0FBQzVILE1BQU0sK0JBQStCLEdBQUcsRUFBRSxDQUFDO0FBRTNDLHlFQUF5RTtBQUN6RSwySEFBMkg7QUFDM0gsTUFBTSxvQ0FBb0MsR0FBRyxHQUFHLENBQUM7QUFFakQsa0NBQWtDO0FBQ2xDLE1BQU0sYUFBYSxHQUFHLEtBQU0sQ0FBQztBQXNEN0IsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXdDO0lBQzFFLHdCQUF3QixFQUFFO1FBQ3hCLFdBQVcsRUFBRSw2REFBNkQ7UUFDMUUsR0FBRyxFQUFFLGdDQUFnQztRQUNyQyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztLQUMxQjtJQUNELE9BQU8sRUFBRTtRQUNQLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsR0FBRyxFQUFFLGtCQUFrQjtRQUN2QixHQUFHLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztLQUMxQjtJQUNELE9BQU8sRUFBRTtRQUNQLFdBQVcsRUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_anvil.d.ts","sourceRoot":"","sources":["../../src/test/start_anvil.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"start_anvil.d.ts","sourceRoot":"","sources":["../../src/test/start_anvil.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,aAAa,CAAC;AAGtD;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsChG"}
|
package/dest/test/start_anvil.js
CHANGED
|
@@ -1,30 +1,37 @@
|
|
|
1
1
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
2
2
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
3
3
|
import { createAnvil } from '@viem/anvil';
|
|
4
|
-
import getPort from 'get-port';
|
|
5
4
|
import { dirname, resolve } from 'path';
|
|
6
5
|
/**
|
|
7
6
|
* Ensures there's a running Anvil instance and returns the RPC URL.
|
|
8
7
|
*/
|
|
9
8
|
export async function startAnvil(l1BlockTime) {
|
|
10
|
-
let ethereumHostPort;
|
|
11
9
|
const anvilBinary = resolve(dirname(fileURLToPath(import.meta.url)), '../../', 'scripts/anvil_kill_wrapper.sh');
|
|
10
|
+
let port;
|
|
12
11
|
// Start anvil.
|
|
13
12
|
// We go via a wrapper script to ensure if the parent dies, anvil dies.
|
|
14
13
|
const anvil = await retry(async () => {
|
|
15
|
-
ethereumHostPort = await getPort();
|
|
16
14
|
const anvil = createAnvil({
|
|
17
15
|
anvilBinary,
|
|
18
|
-
port:
|
|
16
|
+
port: 0,
|
|
19
17
|
blockTime: l1BlockTime,
|
|
18
|
+
stopTimeout: 1000,
|
|
19
|
+
});
|
|
20
|
+
// Listen to the anvil output to get the port.
|
|
21
|
+
const removeHandler = anvil.on('message', (message) => {
|
|
22
|
+
if (port === undefined && message.includes('Listening on')) {
|
|
23
|
+
port = parseInt(message.match(/Listening on ([^:]+):(\d+)/)[2]);
|
|
24
|
+
}
|
|
20
25
|
});
|
|
21
26
|
await anvil.start();
|
|
27
|
+
removeHandler();
|
|
22
28
|
return anvil;
|
|
23
29
|
}, 'Start anvil', makeBackoff([5, 5, 5]));
|
|
24
|
-
if (!
|
|
30
|
+
if (!port) {
|
|
25
31
|
throw new Error('Failed to start anvil');
|
|
26
32
|
}
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
// Monkeypatch the anvil instance to include the actually assigned port
|
|
34
|
+
Object.defineProperty(anvil, 'port', { value: port, writable: false });
|
|
35
|
+
return { anvil, rpcUrl: `http://127.0.0.1:${port}` };
|
|
29
36
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfYW52aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9zdGFydF9hbnZpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQUMsV0FBb0I7SUFDbkQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0lBRWhILElBQUksSUFBd0IsQ0FBQztJQUU3QixlQUFlO0lBQ2YsdUVBQXVFO0lBQ3ZFLE1BQU0sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUN2QixLQUFLLElBQUksRUFBRTtRQUNULE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQztZQUN4QixXQUFXO1lBQ1gsSUFBSSxFQUFFLENBQUM7WUFDUCxTQUFTLEVBQUUsV0FBVztZQUN0QixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCw4Q0FBOEM7UUFDOUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFlLEVBQUUsRUFBRTtZQUM1RCxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUMzRCxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLGFBQWEsRUFBRSxDQUFDO1FBRWhCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUNELGFBQWEsRUFDYixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZCLENBQUM7SUFFRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELHVFQUF1RTtJQUN2RSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixJQUFJLEVBQUUsRUFBRSxDQUFDO0FBQ3ZELENBQUMifQ==
|
package/dest/test/tx_delayer.js
CHANGED
|
@@ -11,7 +11,7 @@ export function waitUntilBlock(client, blockNumber, logger) {
|
|
|
11
11
|
const currentBlockNumber = await publicClient.getBlockNumber({ cacheTime: 0 });
|
|
12
12
|
logger?.debug(`Block number is ${currentBlockNumber} (waiting until ${blockNumber})`);
|
|
13
13
|
return currentBlockNumber >= BigInt(blockNumber);
|
|
14
|
-
}, `Wait until L1 block ${blockNumber}`,
|
|
14
|
+
}, `Wait until L1 block ${blockNumber}`, 120, 0.1);
|
|
15
15
|
}
|
|
16
16
|
export function waitUntilL1Timestamp(client, timestamp, logger) {
|
|
17
17
|
const publicClient = 'getBlockNumber' in client && typeof client.getBlockNumber === 'function'
|
|
@@ -28,7 +28,7 @@ export function waitUntilL1Timestamp(client, timestamp, logger) {
|
|
|
28
28
|
const currentTs = currentBlock.timestamp;
|
|
29
29
|
logger?.debug(`Block timstamp is ${currentTs} (waiting until ${timestamp})`);
|
|
30
30
|
return currentTs >= BigInt(timestamp);
|
|
31
|
-
}, `Wait until L1 timestamp ${timestamp}`,
|
|
31
|
+
}, `Wait until L1 timestamp ${timestamp}`, 120, 0.1);
|
|
32
32
|
}
|
|
33
33
|
class DelayerImpl {
|
|
34
34
|
constructor(opts) {
|
|
@@ -95,7 +95,7 @@ export function withDelayer(client, opts) {
|
|
|
95
95
|
}
|
|
96
96
|
else {
|
|
97
97
|
const txHash = await client.sendRawTransaction(...args);
|
|
98
|
-
logger.
|
|
98
|
+
logger.verbose(`Sent tx immediately ${txHash}`);
|
|
99
99
|
delayer.txs.push(txHash);
|
|
100
100
|
return txHash;
|
|
101
101
|
}
|
|
@@ -110,4 +110,4 @@ export function withDelayer(client, opts) {
|
|
|
110
110
|
}));
|
|
111
111
|
return { client: extended, delayer };
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZGVsYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3R4X2RlbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BELE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBS0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0sTUFBTSxDQUFDO0FBRWQsTUFBTSxVQUFVLGNBQWMsQ0FBbUIsTUFBUyxFQUFFLFdBQTRCLEVBQUUsTUFBZTtJQUN2RyxNQUFNLFlBQVksR0FDaEIsZ0JBQWdCLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLGNBQWMsS0FBSyxVQUFVO1FBQ3ZFLENBQUMsQ0FBRSxNQUFrQztRQUNyQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVuQyxPQUFPLFVBQVUsQ0FDZixLQUFLLElBQUksRUFBRTtRQUNULE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0UsTUFBTSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsa0JBQWtCLG1CQUFtQixXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sa0JBQWtCLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUMsRUFDRCx1QkFBdUIsV0FBVyxFQUFFLEVBQ3BDLEdBQUcsRUFDSCxHQUFHLENBQ0osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQW1CLE1BQVMsRUFBRSxTQUEwQixFQUFFLE1BQWU7SUFDM0csTUFBTSxZQUFZLEdBQ2hCLGdCQUFnQixJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxjQUFjLEtBQUssVUFBVTtRQUN2RSxDQUFDLENBQUUsTUFBa0M7UUFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFbkMsSUFBSSxTQUFTLEdBQXVCLFNBQVMsQ0FBQztJQUM5QyxPQUFPLFVBQVUsQ0FDZixLQUFLLElBQUksRUFBRTtRQUNULE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0UsSUFBSSxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxTQUFTLEdBQUcsa0JBQWtCLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDbEgsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixTQUFTLG1CQUFtQixTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzdFLE9BQU8sU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDLEVBQ0QsMkJBQTJCLFNBQVMsRUFBRSxFQUN0QyxHQUFHLEVBQ0gsR0FBRyxDQUNKLENBQUM7QUFDSixDQUFDO0FBV0QsTUFBTSxXQUFXO0lBQ2YsWUFBWSxJQUErQztRQUtwRCxhQUFRLEdBQW9FLFNBQVMsQ0FBQztRQUN0RixRQUFHLEdBQVUsRUFBRSxDQUFDO1FBTHJCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQU1ELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLGFBQThCO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVELHlCQUF5QixDQUFDLFdBQTRCO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLE1BQVMsRUFDVCxJQUErQztJQUUvQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxNQUFNLFFBQVEsR0FBRyxNQUFNO1FBQ3JCLHdFQUF3RTtRQUN4RSxxR0FBcUc7UUFDckcsK0ZBQStGO1FBQy9GLGlEQUFpRDtTQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUk7WUFDOUIsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUNuQyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztnQkFFN0IsTUFBTSxZQUFZLEdBQUcsTUFBaUMsQ0FBQztnQkFDdkQsTUFBTSxJQUFJLEdBQ1IsZUFBZSxJQUFJLFNBQVM7b0JBQzFCLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQztvQkFDcEUsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFFdkcseUVBQXlFO2dCQUN6RSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsTUFBTSxVQUFVLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFO29CQUMvRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ3BCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQztpQkFDckUsQ0FBQyxDQUFDO2dCQUVILGlHQUFpRztnQkFDakcsOEZBQThGO2dCQUM5Rix1QkFBdUI7Z0JBQ3ZCLEtBQUssSUFBSTtxQkFDTixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ2YsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7d0JBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsNERBQTRELEVBQUU7NEJBQ3pFLFlBQVk7NEJBQ1osY0FBYyxFQUFFLE1BQU07eUJBQ3ZCLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLFlBQVksZUFBZSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUMzRixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFFbkUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDLHVCQUF1QixNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7S0FDRixDQUFDLENBQUM7UUFDSCw2RUFBNkU7U0FDNUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUMvRSxtRUFBbUU7U0FDbEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWE7UUFDbEQsY0FBYyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjO0tBQ3JELENBQUMsQ0FBTSxDQUFDO0lBRVgsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDdkMsQ0FBQyJ9
|
package/dest/utils.d.ts
CHANGED
|
@@ -8,4 +8,6 @@ export interface L2Claim {
|
|
|
8
8
|
messageLeafIndex: bigint;
|
|
9
9
|
}
|
|
10
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
|
+
export declare function prettyLogViemErrorMsg(err: any): any;
|
|
12
|
+
export declare function formatViemError(error: any): string;
|
|
11
13
|
//# 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,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,KAAK,GAAG,
|
|
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,EAER,KAAK,iBAAiB,EAEtB,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;AA+BD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,OAW7C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CA4FlD"}
|