@aztec/ethereum 2.1.7 → 2.1.8-rc.1
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/l1_tx_utils/config.d.ts +2 -2
- package/dest/l1_tx_utils/config.d.ts.map +1 -1
- package/dest/l1_tx_utils/config.js +13 -4
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +3 -4
- package/dest/test/eth_cheat_codes.d.ts +10 -2
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +8 -2
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +1 -2
- package/dest/test/start_anvil.d.ts +1 -0
- package/dest/test/start_anvil.d.ts.map +1 -1
- package/dest/test/start_anvil.js +2 -1
- package/package.json +6 -6
- package/src/l1_tx_utils/config.ts +9 -6
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +3 -4
- package/src/test/eth_cheat_codes.ts +7 -1
- package/src/test/rollup_cheat_codes.ts +1 -2
- package/src/test/start_anvil.ts +2 -0
|
@@ -7,11 +7,11 @@ export interface L1TxUtilsConfig {
|
|
|
7
7
|
/**
|
|
8
8
|
* Maximum gas price in gwei
|
|
9
9
|
*/
|
|
10
|
-
maxGwei?:
|
|
10
|
+
maxGwei?: number;
|
|
11
11
|
/**
|
|
12
12
|
* Maximum blob fee per gas in gwei
|
|
13
13
|
*/
|
|
14
|
-
maxBlobGwei?:
|
|
14
|
+
maxBlobGwei?: number;
|
|
15
15
|
/**
|
|
16
16
|
* Priority fee bump percentage
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CAqEvE,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAE9B,QAAQ,CAAC,eAAe,CAAC,CAAC;AAE/B,wBAAgB,yBAAyB,IAAI,eAAe,CAE3D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { booleanConfigHelper, floatConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper } from '@aztec/foundation/config';
|
|
2
2
|
export const l1TxUtilsConfigMappings = {
|
|
3
3
|
gasLimitBufferPercentage: {
|
|
4
4
|
description: 'How much to increase calculated gas limit by (percentage)',
|
|
@@ -8,12 +8,18 @@ export const l1TxUtilsConfigMappings = {
|
|
|
8
8
|
maxGwei: {
|
|
9
9
|
description: 'Maximum gas price in gwei to be used for transactions.',
|
|
10
10
|
env: 'L1_GAS_PRICE_MAX',
|
|
11
|
-
|
|
11
|
+
fallback: [
|
|
12
|
+
'L1_FEE_PER_GAS_GWEI_MAX'
|
|
13
|
+
],
|
|
14
|
+
...floatConfigHelper(2000)
|
|
12
15
|
},
|
|
13
16
|
maxBlobGwei: {
|
|
14
17
|
description: 'Maximum blob fee per gas in gwei',
|
|
15
18
|
env: 'L1_BLOB_FEE_PER_GAS_MAX',
|
|
16
|
-
|
|
19
|
+
fallback: [
|
|
20
|
+
'L1_BLOB_FEE_PER_GAS_GWEI_MAX'
|
|
21
|
+
],
|
|
22
|
+
...floatConfigHelper(3000)
|
|
17
23
|
},
|
|
18
24
|
priorityFeeBumpPercentage: {
|
|
19
25
|
description: 'How much to increase priority fee by each attempt (percentage)',
|
|
@@ -28,7 +34,10 @@ export const l1TxUtilsConfigMappings = {
|
|
|
28
34
|
fixedPriorityFeePerGas: {
|
|
29
35
|
description: 'Fixed priority fee per gas in Gwei. Overrides any priority fee bump percentage',
|
|
30
36
|
env: 'L1_FIXED_PRIORITY_FEE_PER_GAS',
|
|
31
|
-
|
|
37
|
+
fallback: [
|
|
38
|
+
'L1_FIXED_PRIORITY_FEE_PER_GAS_GWEI'
|
|
39
|
+
],
|
|
40
|
+
...floatConfigHelper(0)
|
|
32
41
|
},
|
|
33
42
|
maxSpeedUpAttempts: {
|
|
34
43
|
description: 'Maximum number of speed-up attempts',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readonly_l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/readonly_l1_tx_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIvD,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAEZ,KAAK,cAAc,EAEnB,KAAK,GAAG,EAGR,KAAK,aAAa,EAKnB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAmD,MAAM,aAAa,CAAC;AAQpG,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKxF,qBAAa,iBAAiB;IAKnB,MAAM,EAAE,UAAU;IACzB,SAAS,CAAC,MAAM,EAAE,MAAM;aACR,YAAY,EAAE,YAAY;IAE1C,SAAS,CAAC,gBAAgB,EAAE,OAAO;IAR9B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzC,SAAS,CAAC,WAAW,UAAS;gBAGrB,MAAM,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,YAA6C,EACrD,YAAY,EAAE,YAAY,EAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACvB,gBAAgB,GAAE,OAAe;IAKtC,SAAS;IAIT,OAAO;IAIP,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIR,cAAc;IAIrB;;;;;;;OAOG;IACH,SAAS,CAAC,yBAAyB,CACjC,qBAAqB,EAAE,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,EAC1D,kBAAkB,EAAE,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAC5F,gBAAgB,EAAE,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAC9F,MAAM;IA0GT;;OAEG;IACU,WAAW,CACtB,kBAAkB,CAAC,EAAE,eAAe,EACpC,QAAQ,GAAE,OAAe,EACzB,OAAO,GAAE,MAAU,EACnB,gBAAgB,CAAC,EAAE,OAAO,OAAO,SAAS,CAAC,GAAG,KAAK,GAAG,QAAQ,GAC7D,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"readonly_l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/readonly_l1_tx_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -164,8 +164,7 @@ export class ReadOnlyL1TxUtils {
|
|
|
164
164
|
this.logger?.debug('Using fixed priority fee per L1 gas', {
|
|
165
165
|
fixedPriorityFeePerGas: gasConfig.fixedPriorityFeePerGas
|
|
166
166
|
});
|
|
167
|
-
|
|
168
|
-
priorityFee = BigInt(gasConfig.fixedPriorityFeePerGas * 1_000_000) * (WEI_CONST / 1_000_000n);
|
|
167
|
+
priorityFee = BigInt(Math.trunc(gasConfig.fixedPriorityFeePerGas * Number(WEI_CONST)));
|
|
169
168
|
} else {
|
|
170
169
|
// Get competitive priority fee (includes network estimate + analysis)
|
|
171
170
|
priorityFee = this.getCompetitivePriorityFee(networkEstimateResult, pendingBlockResult, feeHistoryResult);
|
|
@@ -224,8 +223,8 @@ export class ReadOnlyL1TxUtils {
|
|
|
224
223
|
maxFeePerGas += priorityFee;
|
|
225
224
|
}
|
|
226
225
|
// maxGwei and maxBlobGwei are hard limits
|
|
227
|
-
const effectiveMaxGwei = gasConfig.maxGwei * WEI_CONST;
|
|
228
|
-
const effectiveMaxBlobGwei = gasConfig.maxBlobGwei * WEI_CONST;
|
|
226
|
+
const effectiveMaxGwei = BigInt(Math.trunc(gasConfig.maxGwei * Number(WEI_CONST)));
|
|
227
|
+
const effectiveMaxBlobGwei = BigInt(Math.trunc(gasConfig.maxBlobGwei * Number(WEI_CONST)));
|
|
229
228
|
// Ensure we don't exceed maxGwei
|
|
230
229
|
if (effectiveMaxGwei > 0n) {
|
|
231
230
|
maxFeePerGas = maxFeePerGas > effectiveMaxGwei ? effectiveMaxGwei : maxFeePerGas;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
2
|
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
3
|
-
import { type Hex, type Transaction } from 'viem';
|
|
3
|
+
import { type Chain, type Hex, type Transaction } from 'viem';
|
|
4
4
|
import type { ViemPublicClient } from '../types.js';
|
|
5
5
|
/**
|
|
6
6
|
* A class that provides utility functions for interacting with ethereum (L1).
|
|
@@ -14,6 +14,10 @@ export declare class EthCheatCodes {
|
|
|
14
14
|
* The logger to use for the eth cheatcodes
|
|
15
15
|
*/
|
|
16
16
|
logger: import("@aztec/foundation/log").Logger;
|
|
17
|
+
/**
|
|
18
|
+
* The chain configuration provided to Anvil
|
|
19
|
+
*/
|
|
20
|
+
chain: Chain;
|
|
17
21
|
readonly publicClient: ViemPublicClient;
|
|
18
22
|
constructor(
|
|
19
23
|
/**
|
|
@@ -23,7 +27,11 @@ export declare class EthCheatCodes {
|
|
|
23
27
|
/**
|
|
24
28
|
* The logger to use for the eth cheatcodes
|
|
25
29
|
*/
|
|
26
|
-
logger?: import("@aztec/foundation/log").Logger
|
|
30
|
+
logger?: import("@aztec/foundation/log").Logger,
|
|
31
|
+
/**
|
|
32
|
+
* The chain configuration provided to Anvil
|
|
33
|
+
*/
|
|
34
|
+
chain?: Chain);
|
|
27
35
|
rpcCall(method: string, params: any[]): Promise<any>;
|
|
28
36
|
private doRpcCall;
|
|
29
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/eth_cheat_codes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,WAAW,EAAmD,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"eth_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/eth_cheat_codes.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,21 +4,27 @@ import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
|
4
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { pluralize } from '@aztec/foundation/string';
|
|
6
6
|
import { createPublicClient, fallback, hexToNumber, http } from 'viem';
|
|
7
|
+
import { foundry } from 'viem/chains';
|
|
7
8
|
/**
|
|
8
9
|
* A class that provides utility functions for interacting with ethereum (L1).
|
|
9
10
|
*/ export class EthCheatCodes {
|
|
10
11
|
rpcUrls;
|
|
11
12
|
logger;
|
|
13
|
+
chain;
|
|
12
14
|
publicClient;
|
|
13
15
|
constructor(/**
|
|
14
16
|
* The RPC URL to use for interacting with the chain
|
|
15
17
|
*/ rpcUrls, /**
|
|
16
18
|
* The logger to use for the eth cheatcodes
|
|
17
|
-
*/ logger = createLogger('ethereum:cheat_codes')
|
|
19
|
+
*/ logger = createLogger('ethereum:cheat_codes'), /**
|
|
20
|
+
* The chain configuration provided to Anvil
|
|
21
|
+
*/ chain = foundry){
|
|
18
22
|
this.rpcUrls = rpcUrls;
|
|
19
23
|
this.logger = logger;
|
|
24
|
+
this.chain = chain;
|
|
20
25
|
this.publicClient = createPublicClient({
|
|
21
|
-
transport: fallback(this.rpcUrls.map((url)=>http(url)))
|
|
26
|
+
transport: fallback(this.rpcUrls.map((url)=>http(url))),
|
|
27
|
+
chain: chain
|
|
22
28
|
});
|
|
23
29
|
}
|
|
24
30
|
rpcCall(method, params) {
|
|
@@ -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;
|
|
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;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;gBAG3C,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC;IAavD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,gBAAgB;IAKzG,+BAA+B;IAClB,OAAO;IAKpB,gCAAgC;IACnB,QAAQ;IAKrB;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7C,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IAQF;;OAEG;IACU,WAAW;IAmBxB,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC;IAQF;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;QACtC,wBAAwB;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAcR,4CAA4C;IAC/B,kBAAkB,CAC7B,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;KAClC;IAeR,6DAA6D;IAChD,iBAAiB;IAQ9B;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM;IASzC;;;OAGG;IACI,YAAY,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAiCtD;;;OAGG;IACU,OAAO,CAClB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAQ1G;;OAEG;IACU,UAAU;IASvB,4CAA4C;IAC/B,oBAAoB;IAQjC;;;OAGG;IACU,sBAAsB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM;IAMtE;;;OAGG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM;CAWpD"}
|
|
@@ -3,7 +3,6 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
|
|
5
5
|
import { createPublicClient, fallback, getContract, hexToBigInt, http } from 'viem';
|
|
6
|
-
import { foundry } from 'viem/chains';
|
|
7
6
|
import { EthCheatCodes } from './eth_cheat_codes.js';
|
|
8
7
|
/** Cheat codes for the L1 rollup contract. */ export class RollupCheatCodes {
|
|
9
8
|
ethCheatCodes;
|
|
@@ -14,7 +13,7 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
|
|
|
14
13
|
this.ethCheatCodes = ethCheatCodes;
|
|
15
14
|
this.logger = createLogger('aztecjs:cheat_codes');
|
|
16
15
|
this.client = createPublicClient({
|
|
17
|
-
chain:
|
|
16
|
+
chain: ethCheatCodes.chain,
|
|
18
17
|
transport: fallback(ethCheatCodes.rpcUrls.map((url)=>http(url)))
|
|
19
18
|
});
|
|
20
19
|
this.rollup = getContract({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_anvil.d.ts","sourceRoot":"","sources":["../../src/test/start_anvil.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,aAAa,CAAC;AAGtD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,GAAE;IACJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"start_anvil.d.ts","sourceRoot":"","sources":["../../src/test/start_anvil.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,aAAa,CAAC;AAGtD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,GAAE;IACJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GACL,OAAO,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAiD9F"}
|
package/dest/test/start_anvil.js
CHANGED
|
@@ -20,7 +20,8 @@ import { dirname, resolve } from 'path';
|
|
|
20
20
|
blockTime: opts.l1BlockTime,
|
|
21
21
|
stopTimeout: 1000,
|
|
22
22
|
accounts: opts.accounts ?? 20,
|
|
23
|
-
gasLimit: 45_000_000n
|
|
23
|
+
gasLimit: 45_000_000n,
|
|
24
|
+
chainId: opts.chainId ?? 31337
|
|
24
25
|
});
|
|
25
26
|
// Listen to the anvil output to get the port.
|
|
26
27
|
const removeHandler = anvil.on('message', (message)=>{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/ethereum",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.8-rc.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -31,16 +31,16 @@
|
|
|
31
31
|
"../package.common.json"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@aztec/blob-lib": "2.1.
|
|
35
|
-
"@aztec/constants": "2.1.
|
|
36
|
-
"@aztec/foundation": "2.1.
|
|
37
|
-
"@aztec/l1-artifacts": "2.1.
|
|
34
|
+
"@aztec/blob-lib": "2.1.8-rc.1",
|
|
35
|
+
"@aztec/constants": "2.1.8-rc.1",
|
|
36
|
+
"@aztec/foundation": "2.1.8-rc.1",
|
|
37
|
+
"@aztec/l1-artifacts": "2.1.8-rc.1",
|
|
38
38
|
"@viem/anvil": "^0.0.10",
|
|
39
39
|
"dotenv": "^16.0.3",
|
|
40
40
|
"lodash.chunk": "^4.2.0",
|
|
41
41
|
"lodash.pickby": "^4.5.0",
|
|
42
42
|
"tslib": "^2.4.0",
|
|
43
|
-
"viem": "npm:@
|
|
43
|
+
"viem": "npm:@aztec/viem@2.38.2",
|
|
44
44
|
"zod": "^3.23.8"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type ConfigMappingsType,
|
|
3
|
-
bigintConfigHelper,
|
|
4
3
|
booleanConfigHelper,
|
|
4
|
+
floatConfigHelper,
|
|
5
5
|
getConfigFromMappings,
|
|
6
6
|
getDefaultConfig,
|
|
7
7
|
numberConfigHelper,
|
|
@@ -15,11 +15,11 @@ export interface L1TxUtilsConfig {
|
|
|
15
15
|
/**
|
|
16
16
|
* Maximum gas price in gwei
|
|
17
17
|
*/
|
|
18
|
-
maxGwei?:
|
|
18
|
+
maxGwei?: number;
|
|
19
19
|
/**
|
|
20
20
|
* Maximum blob fee per gas in gwei
|
|
21
21
|
*/
|
|
22
|
-
maxBlobGwei?:
|
|
22
|
+
maxBlobGwei?: number;
|
|
23
23
|
/**
|
|
24
24
|
* Priority fee bump percentage
|
|
25
25
|
*/
|
|
@@ -71,12 +71,14 @@ export const l1TxUtilsConfigMappings: ConfigMappingsType<L1TxUtilsConfig> = {
|
|
|
71
71
|
maxGwei: {
|
|
72
72
|
description: 'Maximum gas price in gwei to be used for transactions.',
|
|
73
73
|
env: 'L1_GAS_PRICE_MAX',
|
|
74
|
-
|
|
74
|
+
fallback: ['L1_FEE_PER_GAS_GWEI_MAX'],
|
|
75
|
+
...floatConfigHelper(2000),
|
|
75
76
|
},
|
|
76
77
|
maxBlobGwei: {
|
|
77
78
|
description: 'Maximum blob fee per gas in gwei',
|
|
78
79
|
env: 'L1_BLOB_FEE_PER_GAS_MAX',
|
|
79
|
-
|
|
80
|
+
fallback: ['L1_BLOB_FEE_PER_GAS_GWEI_MAX'],
|
|
81
|
+
...floatConfigHelper(3000),
|
|
80
82
|
},
|
|
81
83
|
priorityFeeBumpPercentage: {
|
|
82
84
|
description: 'How much to increase priority fee by each attempt (percentage)',
|
|
@@ -91,7 +93,8 @@ export const l1TxUtilsConfigMappings: ConfigMappingsType<L1TxUtilsConfig> = {
|
|
|
91
93
|
fixedPriorityFeePerGas: {
|
|
92
94
|
description: 'Fixed priority fee per gas in Gwei. Overrides any priority fee bump percentage',
|
|
93
95
|
env: 'L1_FIXED_PRIORITY_FEE_PER_GAS',
|
|
94
|
-
|
|
96
|
+
fallback: ['L1_FIXED_PRIORITY_FEE_PER_GAS_GWEI'],
|
|
97
|
+
...floatConfigHelper(0),
|
|
95
98
|
},
|
|
96
99
|
maxSpeedUpAttempts: {
|
|
97
100
|
description: 'Maximum number of speed-up attempts',
|
|
@@ -248,8 +248,7 @@ export class ReadOnlyL1TxUtils {
|
|
|
248
248
|
this.logger?.debug('Using fixed priority fee per L1 gas', {
|
|
249
249
|
fixedPriorityFeePerGas: gasConfig.fixedPriorityFeePerGas,
|
|
250
250
|
});
|
|
251
|
-
|
|
252
|
-
priorityFee = BigInt(gasConfig.fixedPriorityFeePerGas * 1_000_000) * (WEI_CONST / 1_000_000n);
|
|
251
|
+
priorityFee = BigInt(Math.trunc(gasConfig.fixedPriorityFeePerGas * Number(WEI_CONST)));
|
|
253
252
|
} else {
|
|
254
253
|
// Get competitive priority fee (includes network estimate + analysis)
|
|
255
254
|
priorityFee = this.getCompetitivePriorityFee(networkEstimateResult, pendingBlockResult, feeHistoryResult);
|
|
@@ -321,8 +320,8 @@ export class ReadOnlyL1TxUtils {
|
|
|
321
320
|
}
|
|
322
321
|
|
|
323
322
|
// maxGwei and maxBlobGwei are hard limits
|
|
324
|
-
const effectiveMaxGwei = gasConfig.maxGwei! * WEI_CONST;
|
|
325
|
-
const effectiveMaxBlobGwei = gasConfig.maxBlobGwei! * WEI_CONST;
|
|
323
|
+
const effectiveMaxGwei = BigInt(Math.trunc(gasConfig.maxGwei! * Number(WEI_CONST)));
|
|
324
|
+
const effectiveMaxBlobGwei = BigInt(Math.trunc(gasConfig.maxBlobGwei! * Number(WEI_CONST)));
|
|
326
325
|
|
|
327
326
|
// Ensure we don't exceed maxGwei
|
|
328
327
|
if (effectiveMaxGwei > 0n) {
|
|
@@ -6,7 +6,8 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
6
6
|
import { pluralize } from '@aztec/foundation/string';
|
|
7
7
|
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
8
8
|
|
|
9
|
-
import { type Hex, type Transaction, createPublicClient, fallback, hexToNumber, http } from 'viem';
|
|
9
|
+
import { type Chain, type Hex, type Transaction, createPublicClient, fallback, hexToNumber, http } from 'viem';
|
|
10
|
+
import { foundry } from 'viem/chains';
|
|
10
11
|
|
|
11
12
|
import type { ViemPublicClient } from '../types.js';
|
|
12
13
|
|
|
@@ -24,9 +25,14 @@ export class EthCheatCodes {
|
|
|
24
25
|
* The logger to use for the eth cheatcodes
|
|
25
26
|
*/
|
|
26
27
|
public logger = createLogger('ethereum:cheat_codes'),
|
|
28
|
+
/**
|
|
29
|
+
* The chain configuration provided to Anvil
|
|
30
|
+
*/
|
|
31
|
+
public chain: Chain = foundry,
|
|
27
32
|
) {
|
|
28
33
|
this.publicClient = createPublicClient({
|
|
29
34
|
transport: fallback(this.rpcUrls.map(url => http(url))),
|
|
35
|
+
chain: chain,
|
|
30
36
|
});
|
|
31
37
|
}
|
|
32
38
|
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
hexToBigInt,
|
|
15
15
|
http,
|
|
16
16
|
} from 'viem';
|
|
17
|
-
import { foundry } from 'viem/chains';
|
|
18
17
|
|
|
19
18
|
import { EthCheatCodes } from './eth_cheat_codes.js';
|
|
20
19
|
|
|
@@ -30,7 +29,7 @@ export class RollupCheatCodes {
|
|
|
30
29
|
addresses: Pick<L1ContractAddresses, 'rollupAddress'>,
|
|
31
30
|
) {
|
|
32
31
|
this.client = createPublicClient({
|
|
33
|
-
chain:
|
|
32
|
+
chain: ethCheatCodes.chain,
|
|
34
33
|
transport: fallback(ethCheatCodes.rpcUrls.map(url => http(url))),
|
|
35
34
|
});
|
|
36
35
|
this.rollup = getContract({
|
package/src/test/start_anvil.ts
CHANGED
|
@@ -15,6 +15,7 @@ export async function startAnvil(
|
|
|
15
15
|
log?: boolean;
|
|
16
16
|
captureMethodCalls?: boolean;
|
|
17
17
|
accounts?: number;
|
|
18
|
+
chainId?: number;
|
|
18
19
|
} = {},
|
|
19
20
|
): Promise<{ anvil: Anvil; methodCalls?: string[]; rpcUrl: string; stop: () => Promise<void> }> {
|
|
20
21
|
const anvilBinary = resolve(dirname(fileURLToPath(import.meta.url)), '../../', 'scripts/anvil_kill_wrapper.sh');
|
|
@@ -35,6 +36,7 @@ export async function startAnvil(
|
|
|
35
36
|
stopTimeout: 1000,
|
|
36
37
|
accounts: opts.accounts ?? 20,
|
|
37
38
|
gasLimit: 45_000_000n,
|
|
39
|
+
chainId: opts.chainId ?? 31337,
|
|
38
40
|
});
|
|
39
41
|
|
|
40
42
|
// Listen to the anvil output to get the port.
|