@aztec/ethereum 0.0.1-commit.f2ce05ee → 0.0.1-commit.f5d02921e
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/client.d.ts +10 -2
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +13 -7
- package/dest/config.d.ts +3 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +10 -2
- package/dest/contracts/empire_base.d.ts +3 -1
- package/dest/contracts/empire_base.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts +3 -1
- package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.js +9 -0
- package/dest/contracts/fee_asset_price_oracle.d.ts +101 -0
- package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
- package/dest/contracts/fee_asset_price_oracle.js +651 -0
- package/dest/contracts/governance.js +3 -3
- package/dest/contracts/governance_proposer.d.ts +3 -1
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +9 -0
- package/dest/contracts/index.d.ts +2 -1
- package/dest/contracts/index.d.ts.map +1 -1
- package/dest/contracts/index.js +1 -0
- package/dest/contracts/multicall.d.ts +51 -2
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +85 -0
- package/dest/contracts/registry.d.ts +3 -1
- package/dest/contracts/registry.d.ts.map +1 -1
- package/dest/contracts/registry.js +30 -1
- package/dest/contracts/rollup.d.ts +45 -9
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +209 -17
- package/dest/deploy_aztec_l1_contracts.d.ts +2 -3
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +33 -19
- package/dest/deploy_l1_contract.js +3 -3
- package/dest/generated/l1-contracts-defaults.d.ts +1 -1
- package/dest/generated/l1-contracts-defaults.js +1 -1
- package/dest/l1_artifacts.d.ts +1051 -42
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_reader.d.ts +3 -1
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +6 -1
- package/dest/l1_tx_utils/config.d.ts +7 -1
- package/dest/l1_tx_utils/config.d.ts.map +1 -1
- package/dest/l1_tx_utils/config.js +14 -1
- package/dest/l1_tx_utils/factory.d.ts +18 -10
- package/dest/l1_tx_utils/factory.d.ts.map +1 -1
- package/dest/l1_tx_utils/factory.js +17 -7
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +1 -1
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +1 -1
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +15 -15
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +9 -15
- package/dest/l1_tx_utils/index-blobs.d.ts +3 -3
- package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -1
- package/dest/l1_tx_utils/index-blobs.js +2 -2
- package/dest/l1_tx_utils/index.d.ts +2 -1
- package/dest/l1_tx_utils/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/index.js +1 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +20 -7
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.js +74 -50
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +8 -4
- package/dest/l1_tx_utils/tx_delayer.d.ts +56 -0
- package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
- package/dest/{test → l1_tx_utils}/tx_delayer.js +62 -34
- package/dest/publisher_manager.d.ts +21 -7
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +81 -7
- package/dest/test/chain_monitor.d.ts +22 -3
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +33 -2
- package/dest/test/eth_cheat_codes.d.ts +6 -4
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +6 -4
- package/dest/test/index.d.ts +1 -3
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +0 -2
- package/dest/test/start_anvil.d.ts +23 -3
- package/dest/test/start_anvil.d.ts.map +1 -1
- package/dest/test/start_anvil.js +143 -29
- package/dest/test/upgrade_utils.js +2 -2
- package/dest/utils.d.ts +1 -1
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +16 -12
- package/package.json +5 -7
- package/src/client.ts +10 -2
- package/src/config.ts +14 -1
- package/src/contracts/empire_base.ts +2 -0
- package/src/contracts/empire_slashing_proposer.ts +6 -0
- package/src/contracts/fee_asset_price_oracle.ts +280 -0
- package/src/contracts/governance.ts +3 -3
- package/src/contracts/governance_proposer.ts +6 -0
- package/src/contracts/index.ts +1 -0
- package/src/contracts/multicall.ts +65 -1
- package/src/contracts/registry.ts +31 -1
- package/src/contracts/rollup.ts +244 -29
- package/src/deploy_aztec_l1_contracts.ts +56 -29
- package/src/deploy_l1_contract.ts +3 -3
- package/src/generated/l1-contracts-defaults.ts +1 -1
- package/src/l1_reader.ts +13 -1
- package/src/l1_tx_utils/config.ts +20 -0
- package/src/l1_tx_utils/factory.ts +31 -31
- package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +1 -1
- package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +1 -1
- package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +43 -54
- package/src/l1_tx_utils/index-blobs.ts +2 -2
- package/src/l1_tx_utils/index.ts +1 -0
- package/src/l1_tx_utils/l1_tx_utils.ts +67 -29
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +8 -4
- package/src/{test → l1_tx_utils}/tx_delayer.ts +78 -50
- package/src/publisher_manager.ts +105 -10
- package/src/test/chain_monitor.ts +60 -3
- package/src/test/eth_cheat_codes.ts +6 -4
- package/src/test/index.ts +0 -2
- package/src/test/start_anvil.ts +177 -29
- package/src/test/upgrade_utils.ts +2 -2
- package/src/utils.ts +17 -14
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
- package/dest/test/delayed_tx_utils.d.ts +0 -13
- package/dest/test/delayed_tx_utils.d.ts.map +0 -1
- package/dest/test/delayed_tx_utils.js +0 -28
- package/dest/test/tx_delayer.d.ts +0 -36
- package/dest/test/tx_delayer.d.ts.map +0 -1
- package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
- package/src/test/delayed_tx_utils.ts +0 -52
|
@@ -1,19 +1,21 @@
|
|
|
1
|
+
import type { BlobKzgInstance } from '@aztec/blob-lib/types';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
4
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
4
|
-
import type {
|
|
5
|
-
import type { ExtendedViemWalletClient, ViemClient } from '../types.js';
|
|
5
|
+
import type { ViemClient } from '../types.js';
|
|
6
6
|
import type { L1TxUtilsConfig } from './config.js';
|
|
7
|
+
import type { L1SignerSource } from './factory.js';
|
|
7
8
|
import type { IL1TxMetrics, IL1TxStore } from './interfaces.js';
|
|
8
|
-
import {
|
|
9
|
+
import { L1TxUtils } from './l1_tx_utils.js';
|
|
10
|
+
import { Delayer } from './tx_delayer.js';
|
|
9
11
|
import type { L1BlobInputs, L1TxConfig, L1TxRequest, SigningCallback } from './types.js';
|
|
10
12
|
/**
|
|
11
|
-
* Extends
|
|
13
|
+
* Extends L1TxUtils to wrap all transactions through a forwarder contract.
|
|
12
14
|
* This is mainly used for testing the archiver's ability to decode transactions that go through proxies.
|
|
13
15
|
*/
|
|
14
|
-
export declare class ForwarderL1TxUtils extends
|
|
16
|
+
export declare class ForwarderL1TxUtils extends L1TxUtils {
|
|
15
17
|
private readonly forwarderAddress;
|
|
16
|
-
constructor(client: ViemClient
|
|
18
|
+
constructor(client: ViemClient, senderAddress: EthAddress, signingCallback: SigningCallback, logger: Logger | undefined, dateProvider: DateProvider | undefined, config: Partial<L1TxUtilsConfig>, debugMaxGasLimit: boolean, store: IL1TxStore | undefined, metrics: IL1TxMetrics | undefined, kzg: BlobKzgInstance | undefined, delayer: Delayer | undefined, forwarderAddress: EthAddress);
|
|
17
19
|
/**
|
|
18
20
|
* Wraps the transaction request in a call to the forwarder contract.
|
|
19
21
|
*/
|
|
@@ -26,16 +28,14 @@ export declare class ForwarderL1TxUtils extends L1TxUtilsWithBlobs {
|
|
|
26
28
|
state: import("./types.js").L1TxState;
|
|
27
29
|
}>;
|
|
28
30
|
}
|
|
29
|
-
export declare function
|
|
31
|
+
export declare function createForwarderL1TxUtils(source: L1SignerSource, forwarderAddress: EthAddress, deps?: {
|
|
30
32
|
logger?: Logger;
|
|
31
33
|
dateProvider?: DateProvider;
|
|
32
34
|
store?: IL1TxStore;
|
|
33
35
|
metrics?: IL1TxMetrics;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean): ForwarderL1TxUtils;
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGVyX2wxX3R4X3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbDFfdHhfdXRpbHMvZm9yd2FyZGVyX2wxX3R4X3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk1RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekY7OztHQUdHO0FBQ0gscUJBQWEsa0JBQW1CLFNBQVEsa0JBQWtCO0lBV3RELE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO0lBVm5DLFlBQ0UsTUFBTSxFQUFFLFVBQVUsR0FBRyx3QkFBd0IsRUFDN0MsYUFBYSxFQUFFLFVBQVUsRUFDekIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzFCLFlBQVksRUFBRSxZQUFZLEdBQUcsU0FBUyxFQUN0QyxNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUNoQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQ3pCLEtBQUssRUFBRSxVQUFVLEdBQUcsU0FBUyxFQUM3QixPQUFPLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFDaEIsZ0JBQWdCLEVBQUUsVUFBVSxFQUc5QztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLGVBQWU7SUFldkI7O09BRUc7SUFDYSx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxZQUFZOzs7T0FJaEg7Q0FDRjtBQUVELHdCQUFnQixzQ0FBc0MsQ0FDcEQsTUFBTSxFQUFFLHdCQUF3QixFQUNoQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQzVCLElBQUksR0FBRTtJQUNKLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQztDQUNuQixFQUNOLE1BQU0sR0FBRSxPQUFPLENBQUMsZUFBZSxDQUFNLEVBQ3JDLGdCQUFnQixHQUFFLE9BQWUsc0JBY2xDO0FBRUQsd0JBQWdCLHFDQUFxQyxDQUNuRCxNQUFNLEVBQUUsVUFBVSxFQUNsQixNQUFNLEVBQUUsU0FBUyxFQUNqQixnQkFBZ0IsRUFBRSxVQUFVLEVBQzVCLElBQUksR0FBRTtJQUNKLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQztDQUNuQixFQUNOLE1BQU0sR0FBRSxPQUFPLENBQUMsZUFBZSxDQUFNLEVBQ3JDLGdCQUFnQixHQUFFLE9BQWUsc0JBa0JsQyJ9
|
|
36
|
+
kzg?: BlobKzgInstance;
|
|
37
|
+
delayer?: Delayer;
|
|
38
|
+
}, config?: Partial<L1TxUtilsConfig> & {
|
|
39
|
+
debugMaxGasLimit?: boolean;
|
|
40
|
+
}): ForwarderL1TxUtils;
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGVyX2wxX3R4X3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbDFfdHhfdXRpbHMvZm9yd2FyZGVyX2wxX3R4X3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUs1RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekY7OztHQUdHO0FBQ0gscUJBQWEsa0JBQW1CLFNBQVEsU0FBUztJQWE3QyxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtJQVpuQyxZQUNFLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLGFBQWEsRUFBRSxVQUFVLEVBQ3pCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLE1BQU0sRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUMxQixZQUFZLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFDdEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFDaEMsZ0JBQWdCLEVBQUUsT0FBTyxFQUN6QixLQUFLLEVBQUUsVUFBVSxHQUFHLFNBQVMsRUFDN0IsT0FBTyxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2pDLEdBQUcsRUFBRSxlQUFlLEdBQUcsU0FBUyxFQUNoQyxPQUFPLEVBQUUsT0FBTyxHQUFHLFNBQVMsRUFDWCxnQkFBZ0IsRUFBRSxVQUFVLEVBZTlDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsZUFBZTtJQWV2Qjs7T0FFRztJQUNhLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLFlBQVk7OztPQUloSDtDQUNGO0FBRUQsd0JBQWdCLHdCQUF3QixDQUN0QyxNQUFNLEVBQUUsY0FBYyxFQUN0QixnQkFBZ0IsRUFBRSxVQUFVLEVBQzVCLElBQUksQ0FBQyxFQUFFO0lBQ0wsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFlBQVksQ0FBQyxFQUFFLFlBQVksQ0FBQztJQUM1QixLQUFLLENBQUMsRUFBRSxVQUFVLENBQUM7SUFDbkIsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQ3ZCLEdBQUcsQ0FBQyxFQUFFLGVBQWUsQ0FBQztJQUN0QixPQUFPLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDbkIsRUFDRCxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUc7SUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEdBQ2pFLGtCQUFrQixDQWdCcEIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwarder_l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/forwarder_l1_tx_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"forwarder_l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/forwarder_l1_tx_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAK5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzF;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAa7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAZnC,YACE,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,UAAU,EACzB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,EAChC,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,OAAO,EAAE,YAAY,GAAG,SAAS,EACjC,GAAG,EAAE,eAAe,GAAG,SAAS,EAChC,OAAO,EAAE,OAAO,GAAG,SAAS,EACX,gBAAgB,EAAE,UAAU,EAe9C;IAED;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACa,yBAAyB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,YAAY;;;OAIhH;CACF;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EACtB,gBAAgB,EAAE,UAAU,EAC5B,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,EACD,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GACjE,kBAAkB,CAgBpB"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
1
|
import { encodeFunctionData } from 'viem';
|
|
3
2
|
import { FORWARDER_ABI } from '../forwarder_proxy.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { resolveSignerSource } from './factory.js';
|
|
4
|
+
import { L1TxUtils } from './l1_tx_utils.js';
|
|
6
5
|
/**
|
|
7
|
-
* Extends
|
|
6
|
+
* Extends L1TxUtils to wrap all transactions through a forwarder contract.
|
|
8
7
|
* This is mainly used for testing the archiver's ability to decode transactions that go through proxies.
|
|
9
|
-
*/ export class ForwarderL1TxUtils extends
|
|
8
|
+
*/ export class ForwarderL1TxUtils extends L1TxUtils {
|
|
10
9
|
forwarderAddress;
|
|
11
|
-
constructor(client, senderAddress, signingCallback, logger, dateProvider, config, debugMaxGasLimit, store, metrics, forwarderAddress){
|
|
12
|
-
super(client, senderAddress, signingCallback, logger, dateProvider, config, debugMaxGasLimit, store, metrics), this.forwarderAddress = forwarderAddress;
|
|
10
|
+
constructor(client, senderAddress, signingCallback, logger, dateProvider, config, debugMaxGasLimit, store, metrics, kzg, delayer, forwarderAddress){
|
|
11
|
+
super(client, senderAddress, signingCallback, logger, dateProvider, config, debugMaxGasLimit, store, metrics, kzg, delayer), this.forwarderAddress = forwarderAddress;
|
|
13
12
|
}
|
|
14
13
|
/**
|
|
15
14
|
* Wraps the transaction request in a call to the forwarder contract.
|
|
@@ -37,12 +36,7 @@ import { createViemSigner } from './signer.js';
|
|
|
37
36
|
return super.sendAndMonitorTransaction(wrappedRequest, gasConfig, blobInputs);
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
|
-
export function
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
export function createForwarderL1TxUtilsFromEthSigner(client, signer, forwarderAddress, deps = {}, config = {}, debugMaxGasLimit = false) {
|
|
44
|
-
const callback = async (transaction, _signingAddress)=>{
|
|
45
|
-
return (await signer.signTransaction(transaction)).toViemTransactionSignature();
|
|
46
|
-
};
|
|
47
|
-
return new ForwarderL1TxUtils(client, signer.address, callback, deps.logger, deps.dateProvider, config, debugMaxGasLimit, deps.store, deps.metrics, forwarderAddress);
|
|
39
|
+
export function createForwarderL1TxUtils(source, forwarderAddress, deps, config) {
|
|
40
|
+
const { client, address, signingCallback } = resolveSignerSource(source);
|
|
41
|
+
return new ForwarderL1TxUtils(client, address, signingCallback, deps?.logger, deps?.dateProvider, config ?? {}, config?.debugMaxGasLimit ?? false, deps?.store, deps?.metrics, deps?.kzg, deps?.delayer, forwarderAddress);
|
|
48
42
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export { createForwarderL1TxUtils, ForwarderL1TxUtils } from './forwarder_l1_tx_utils.js';
|
|
2
|
+
export { createL1TxUtils, type L1SignerSource, resolveSignerSource } from './factory.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtYmxvYnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9pbmRleC1ibG9icy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-blobs.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/index-blobs.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index-blobs.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/index-blobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export { createForwarderL1TxUtils, ForwarderL1TxUtils } from './forwarder_l1_tx_utils.js';
|
|
2
|
+
export { createL1TxUtils, resolveSignerSource } from './factory.js';
|
|
@@ -8,5 +8,6 @@ export * from './l1_tx_utils.js';
|
|
|
8
8
|
export * from './readonly_l1_tx_utils.js';
|
|
9
9
|
export * from './signer.js';
|
|
10
10
|
export * from './types.js';
|
|
11
|
+
export * from './tx_delayer.js';
|
|
11
12
|
export * from './utils.js';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsWUFBWSxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -8,5 +8,6 @@ export * from './l1_tx_utils.js';
|
|
|
8
8
|
export * from './readonly_l1_tx_utils.js';
|
|
9
9
|
export * from './signer.js';
|
|
10
10
|
export * from './types.js';
|
|
11
|
+
export * from './tx_delayer.js';
|
|
11
12
|
export * from './utils.js'; // Note: We intentionally do not export l1_tx_utils_with_blobs.js
|
|
12
13
|
// to avoid accidentally importing blob-lib dependency.
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import type { BlobKzgInstance } from '@aztec/blob-lib/types';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { type Logger } from '@aztec/foundation/log';
|
|
3
|
+
import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
|
|
3
4
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
4
|
-
import { type Abi, type BlockOverrides, type Hex, type
|
|
5
|
+
import { type Abi, type BlockOverrides, type Hex, type PrepareTransactionRequestRequest, type StateOverride, type TransactionReceipt } from 'viem';
|
|
5
6
|
import type { ViemClient } from '../types.js';
|
|
6
7
|
import { type L1TxUtilsConfig } from './config.js';
|
|
7
8
|
import type { IL1TxMetrics, IL1TxStore } from './interfaces.js';
|
|
8
9
|
import { ReadOnlyL1TxUtils } from './readonly_l1_tx_utils.js';
|
|
10
|
+
import { Delayer } from './tx_delayer.js';
|
|
9
11
|
import { type L1BlobInputs, type L1TxConfig, type L1TxRequest, type L1TxState, type SigningCallback, TxUtilsState } from './types.js';
|
|
10
12
|
export declare class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
11
13
|
client: ViemClient;
|
|
@@ -13,9 +15,16 @@ export declare class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
13
15
|
protected signer: SigningCallback;
|
|
14
16
|
protected store?: IL1TxStore | undefined;
|
|
15
17
|
protected metrics?: IL1TxMetrics | undefined;
|
|
16
|
-
protected nonceManager: NonceManager;
|
|
17
18
|
protected txs: L1TxState[];
|
|
18
|
-
|
|
19
|
+
/** Last nonce successfully sent to the chain. Used as a lower bound when a fallback RPC node returns a stale count. */
|
|
20
|
+
private lastSentNonce;
|
|
21
|
+
/** Mutex to prevent concurrent sendTransaction calls from racing on the same nonce. */
|
|
22
|
+
private readonly sendMutex;
|
|
23
|
+
/** Tx delayer for testing. Only set when enableDelayer config is true. */
|
|
24
|
+
delayer?: Delayer;
|
|
25
|
+
/** KZG instance for blob operations. */
|
|
26
|
+
protected kzg?: BlobKzgInstance;
|
|
27
|
+
constructor(client: ViemClient, address: EthAddress, signer: SigningCallback, logger?: Logger, dateProvider?: DateProvider, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean, store?: IL1TxStore | undefined, metrics?: IL1TxMetrics | undefined, kzg?: BlobKzgInstance, delayer?: Delayer);
|
|
19
28
|
get state(): TxUtilsState;
|
|
20
29
|
get lastMinedAtBlockNumber(): bigint | undefined;
|
|
21
30
|
protected updateState(l1TxState: L1TxState, newState: TxUtilsState.MINED, l1Timestamp: number): Promise<void>;
|
|
@@ -88,7 +97,11 @@ export declare class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
88
97
|
*/
|
|
89
98
|
protected attemptTxCancellation(state: L1TxState): Promise<void>;
|
|
90
99
|
private getL1Timestamp;
|
|
91
|
-
/** Makes empty blob inputs for the cancellation tx.
|
|
92
|
-
protected makeEmptyBlobInputs(
|
|
100
|
+
/** Makes empty blob inputs for the cancellation tx. */
|
|
101
|
+
protected makeEmptyBlobInputs(maxFeePerBlobGas: bigint): Required<L1BlobInputs>;
|
|
102
|
+
/** Creates a new delayer instance. */
|
|
103
|
+
protected createDelayer(opts: {
|
|
104
|
+
ethereumSlotDuration: bigint | number;
|
|
105
|
+
}, bindings: LoggerBindings): Delayer;
|
|
93
106
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9sMV90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUk3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSXZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl2RCxPQUFPLEVBQ0wsS0FBSyxHQUFHLEVBQ1IsS0FBSyxjQUFjLEVBQ25CLEtBQUssR0FBRyxFQUNSLEtBQUssZ0NBQWdDLEVBQ3JDLEtBQUssYUFBYSxFQUNsQixLQUFLLGtCQUFrQixFQUl4QixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQTJCLE1BQU0sYUFBYSxDQUFDO0FBRTVFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUF3QyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFFTCxLQUFLLFlBQVksRUFDakIsS0FBSyxVQUFVLEVBQ2YsS0FBSyxXQUFXLEVBQ2hCLEtBQUssU0FBUyxFQUNkLEtBQUssZUFBZSxFQUVwQixZQUFZLEVBRWIsTUFBTSxZQUFZLENBQUM7QUFJcEIscUJBQWEsU0FBVSxTQUFRLGlCQUFpQjtJQVk1QixNQUFNLEVBQUUsVUFBVTtJQUMzQixPQUFPLEVBQUUsVUFBVTtJQUMxQixTQUFTLENBQUMs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/l1_tx_utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/l1_tx_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,18 @@ import { maxBigint } from '@aztec/foundation/bigint';
|
|
|
2
2
|
import { merge, pick } from '@aztec/foundation/collection';
|
|
3
3
|
import { InterruptError, TimeoutError } from '@aztec/foundation/error';
|
|
4
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { Semaphore } from '@aztec/foundation/queue';
|
|
5
6
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
6
7
|
import { sleep } from '@aztec/foundation/sleep';
|
|
7
8
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
8
9
|
import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
|
|
9
10
|
import pickBy from 'lodash.pickby';
|
|
10
|
-
import {
|
|
11
|
-
import { jsonRpc } from 'viem/nonce';
|
|
11
|
+
import { formatGwei, serializeTransaction } from 'viem';
|
|
12
12
|
import { formatViemError } from '../utils.js';
|
|
13
13
|
import { l1TxUtilsConfigMappings } from './config.js';
|
|
14
14
|
import { MAX_L1_TX_LIMIT } from './constants.js';
|
|
15
15
|
import { ReadOnlyL1TxUtils } from './readonly_l1_tx_utils.js';
|
|
16
|
+
import { createDelayer, wrapClientWithDelayer } from './tx_delayer.js';
|
|
16
17
|
import { DroppedTransactionError, TerminalTxUtilsState, TxUtilsState, UnknownMinedTxError } from './types.js';
|
|
17
18
|
const MAX_L1_TX_STATES = 32;
|
|
18
19
|
export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
@@ -21,13 +22,28 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
21
22
|
signer;
|
|
22
23
|
store;
|
|
23
24
|
metrics;
|
|
24
|
-
nonceManager;
|
|
25
25
|
txs;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
/** Last nonce successfully sent to the chain. Used as a lower bound when a fallback RPC node returns a stale count. */ lastSentNonce;
|
|
27
|
+
/** Mutex to prevent concurrent sendTransaction calls from racing on the same nonce. */ sendMutex;
|
|
28
|
+
/** Tx delayer for testing. Only set when enableDelayer config is true. */ delayer;
|
|
29
|
+
/** KZG instance for blob operations. */ kzg;
|
|
30
|
+
constructor(client, address, signer, logger = createLogger('ethereum:publisher'), dateProvider = new DateProvider(), config, debugMaxGasLimit = false, store, metrics, kzg, delayer){
|
|
31
|
+
super(client, logger, dateProvider, config, debugMaxGasLimit), this.client = client, this.address = address, this.signer = signer, this.store = store, this.metrics = metrics, this.txs = [], this.sendMutex = new Semaphore(1);
|
|
32
|
+
this.kzg = kzg;
|
|
33
|
+
// Set up delayer: use provided one or create new
|
|
34
|
+
if (config?.enableDelayer && config?.ethereumSlotDuration) {
|
|
35
|
+
this.delayer = delayer ?? this.createDelayer({
|
|
36
|
+
ethereumSlotDuration: config.ethereumSlotDuration
|
|
37
|
+
}, logger.getBindings());
|
|
38
|
+
this.client = wrapClientWithDelayer(this.client, this.delayer);
|
|
39
|
+
if (config.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
|
|
40
|
+
this.delayer.setMaxInclusionTimeIntoSlot(config.txDelayerMaxInclusionTimeIntoSlot);
|
|
41
|
+
}
|
|
42
|
+
} else if (delayer) {
|
|
43
|
+
// Delayer provided but enableDelayer not set — just store it without wrapping
|
|
44
|
+
logger.warn('Delayer provided but enableDelayer config is not set; delayer will not be used');
|
|
45
|
+
this.delayer = delayer;
|
|
46
|
+
}
|
|
31
47
|
}
|
|
32
48
|
get state() {
|
|
33
49
|
return this.txs.at(-1)?.status ?? TxUtilsState.IDLE;
|
|
@@ -46,6 +62,11 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
46
62
|
this.metrics?.recordMinedTx(l1TxState, new Date(l1Timestamp));
|
|
47
63
|
} else if (newState === TxUtilsState.NOT_MINED) {
|
|
48
64
|
this.metrics?.recordDroppedTx(l1TxState);
|
|
65
|
+
// The tx was dropped: the chain nonce reverted to l1TxState.nonce, so our lower bound is
|
|
66
|
+
// no longer valid. Clear it so the next send fetches the real nonce from the chain.
|
|
67
|
+
if (this.lastSentNonce === l1TxState.nonce) {
|
|
68
|
+
this.lastSentNonce = undefined;
|
|
69
|
+
}
|
|
49
70
|
}
|
|
50
71
|
// Update state in the store
|
|
51
72
|
await this.store?.saveState(sender, l1TxState).catch((err)=>this.logger.error('Failed to persist L1 tx state', err));
|
|
@@ -148,30 +169,40 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
148
169
|
if (this.interrupted) {
|
|
149
170
|
throw new InterruptError(`Transaction sending is interrupted`);
|
|
150
171
|
}
|
|
151
|
-
const nonce = await this.nonceManager.consume({
|
|
152
|
-
client: this.client,
|
|
153
|
-
address: account,
|
|
154
|
-
chainId: this.client.chain.id
|
|
155
|
-
});
|
|
156
|
-
const baseState = {
|
|
157
|
-
request,
|
|
158
|
-
gasLimit,
|
|
159
|
-
blobInputs,
|
|
160
|
-
gasPrice,
|
|
161
|
-
nonce
|
|
162
|
-
};
|
|
163
|
-
const txData = this.makeTxData(baseState, {
|
|
164
|
-
isCancelTx: false
|
|
165
|
-
});
|
|
166
172
|
const now = new Date(await this.getL1Timestamp());
|
|
167
173
|
if (gasConfig.txTimeoutAt && now > gasConfig.txTimeoutAt) {
|
|
168
174
|
throw new TimeoutError(`Transaction timed out before sending (now ${now.toISOString()} > timeoutAt ${gasConfig.txTimeoutAt.toISOString()})`);
|
|
169
175
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
176
|
+
let txHash;
|
|
177
|
+
let nonce;
|
|
178
|
+
let baseState;
|
|
179
|
+
await this.sendMutex.acquire();
|
|
180
|
+
try {
|
|
181
|
+
const chainNonce = await this.client.getTransactionCount({
|
|
182
|
+
address: account,
|
|
183
|
+
blockTag: 'pending'
|
|
184
|
+
});
|
|
185
|
+
// If a fallback RPC node returns a stale count (lower than what we last sent), use our
|
|
186
|
+
// local lower bound to avoid sending a duplicate of an already-pending transaction.
|
|
187
|
+
nonce = this.lastSentNonce !== undefined && chainNonce <= this.lastSentNonce ? this.lastSentNonce + 1 : chainNonce;
|
|
188
|
+
baseState = {
|
|
189
|
+
request,
|
|
190
|
+
gasLimit,
|
|
191
|
+
blobInputs,
|
|
192
|
+
gasPrice,
|
|
193
|
+
nonce
|
|
194
|
+
};
|
|
195
|
+
const txData = this.makeTxData(baseState, {
|
|
196
|
+
isCancelTx: false
|
|
197
|
+
});
|
|
198
|
+
const signedRequest = await this.prepareSignedTransaction(txData);
|
|
199
|
+
txHash = await this.client.sendRawTransaction({
|
|
200
|
+
serializedTransaction: signedRequest
|
|
201
|
+
});
|
|
202
|
+
this.lastSentNonce = nonce;
|
|
203
|
+
} finally{
|
|
204
|
+
this.sendMutex.release();
|
|
205
|
+
}
|
|
175
206
|
// Create the new state for monitoring
|
|
176
207
|
const l1TxState = {
|
|
177
208
|
...baseState,
|
|
@@ -346,10 +377,6 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
346
377
|
timePassed
|
|
347
378
|
});
|
|
348
379
|
await this.updateState(state, TxUtilsState.NOT_MINED);
|
|
349
|
-
this.nonceManager.reset({
|
|
350
|
-
address: account,
|
|
351
|
-
chainId: this.client.chain.id
|
|
352
|
-
});
|
|
353
380
|
throw new DroppedTransactionError(nonce, account);
|
|
354
381
|
}
|
|
355
382
|
// Break if the tx has timed out (ie expired)
|
|
@@ -421,15 +448,7 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
421
448
|
}
|
|
422
449
|
// Oh no, the transaction has timed out!
|
|
423
450
|
if (isCancelTx || !gasConfig.cancelTxOnTimeout) {
|
|
424
|
-
// If this was already a cancellation tx, or we are configured to not cancel txs, we just mark it as NOT_MINED
|
|
425
|
-
// and reset the nonce manager, so the next tx that comes along can reuse the nonce if/when this tx gets dropped.
|
|
426
|
-
// This is the nastiest scenario for us, since the new tx could acquire the next nonce, but then this tx is dropped,
|
|
427
|
-
// and the new tx would never get mined. Eventually, the new tx would also drop.
|
|
428
451
|
await this.updateState(state, TxUtilsState.NOT_MINED);
|
|
429
|
-
this.nonceManager.reset({
|
|
430
|
-
address: account,
|
|
431
|
-
chainId: this.client.chain.id
|
|
432
|
-
});
|
|
433
452
|
} else {
|
|
434
453
|
// Otherwise we fire the cancellation without awaiting to avoid blocking the caller,
|
|
435
454
|
// and monitor it in the background so we can speed it up as needed.
|
|
@@ -545,10 +564,6 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
545
564
|
account
|
|
546
565
|
});
|
|
547
566
|
await this.updateState(state, TxUtilsState.NOT_MINED);
|
|
548
|
-
this.nonceManager.reset({
|
|
549
|
-
address: account,
|
|
550
|
-
chainId: this.client.chain.id
|
|
551
|
-
});
|
|
552
567
|
return;
|
|
553
568
|
}
|
|
554
569
|
// Check if the original tx is still pending
|
|
@@ -563,10 +578,6 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
563
578
|
currentNonce
|
|
564
579
|
});
|
|
565
580
|
await this.updateState(state, TxUtilsState.NOT_MINED);
|
|
566
|
-
this.nonceManager.reset({
|
|
567
|
-
address: account,
|
|
568
|
-
chainId: this.client.chain.id
|
|
569
|
-
});
|
|
570
581
|
return;
|
|
571
582
|
}
|
|
572
583
|
// Get gas price with higher priority fee for cancellation
|
|
@@ -617,7 +628,20 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
617
628
|
});
|
|
618
629
|
return Number(timestamp) * 1000;
|
|
619
630
|
}
|
|
620
|
-
/** Makes empty blob inputs for the cancellation tx.
|
|
621
|
-
|
|
631
|
+
/** Makes empty blob inputs for the cancellation tx. */ makeEmptyBlobInputs(maxFeePerBlobGas) {
|
|
632
|
+
if (!this.kzg) {
|
|
633
|
+
throw new Error('Cannot make empty blob inputs for cancellation without kzg');
|
|
634
|
+
}
|
|
635
|
+
const blobData = new Uint8Array(131072).fill(0);
|
|
636
|
+
return {
|
|
637
|
+
blobs: [
|
|
638
|
+
blobData
|
|
639
|
+
],
|
|
640
|
+
kzg: this.kzg,
|
|
641
|
+
maxFeePerBlobGas
|
|
642
|
+
};
|
|
643
|
+
}
|
|
644
|
+
/** Creates a new delayer instance. */ createDelayer(opts, bindings) {
|
|
645
|
+
return createDelayer(this.dateProvider, opts, bindings);
|
|
622
646
|
}
|
|
623
647
|
}
|
|
@@ -80,4 +80,4 @@ export declare class ReadOnlyL1TxUtils {
|
|
|
80
80
|
}>;
|
|
81
81
|
bumpGasLimit(gasLimit: bigint, _gasConfig?: L1TxUtilsConfig): bigint;
|
|
82
82
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHlfbDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9yZWFkb25seV9sMV90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXZELE9BQU8sRUFDTCxLQUFLLEdBQUcsRUFDUixLQUFLLE9BQU8sRUFFWixLQUFLLGNBQWMsRUFFbkIsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxHQUFHLEVBR1IsS0FBSyxhQUFhLEVBS25CLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBbUQsTUFBTSxhQUFhLENBQUM7QUFTcEcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNeEYscUJBQWEsaUJBQWlCO0lBS25CLE1BQU0sRUFBRSxVQUFVO0lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTTthQUNSLFlBQVksRUFBRSxZQUFZO0lBRTFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPO0lBUjlCLE1BQU0sRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsU0FBUyxDQUFDLFdBQVcsVUFBUztJQUU5QixZQUNTLE1BQU0sRUFBRSxVQUFVLEVBQ2YsTUFBTSxvQkFBcUQsRUFDckQsWUFBWSxFQUFFLFlBQVksRUFDMUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUN2QixnQkFBZ0IsR0FBRSxPQUFlLEVBRzVDO0lBRU0sU0FBUyxTQUVmO0lBRU0sT0FBTyxTQUViO0lBRU0sUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQUVkO0lBRU0sY0FBYyxvQkFFcEI7SUFFTSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFOUQ7SUFFRDs7T0FFRztJQUNVLFdBQVcsQ0FDdEIsa0JBQWtCLENBQUMsRUFBRSxlQUFlLEVBQ3BDLFFBQVEsR0FBRSxPQUFlLEVBQ3pCLE9BQU8sR0FBRSxNQUFVLEVBQ25CLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxPQUFPLFNBQVMsQ0FBQyxHQUFHLEtBQUssR0FBRyxRQUFRLEdBQzdELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FvSm5CO0lBRUQ7O09BRUc7SUFDVSxXQUFXLENBQ3RCLE9BQU8sRUFBRSxPQUFPLEdBQUcsR0FBRyxFQUN0QixPQUFPLEVBQUUsV0FBVyxFQUNwQixVQUFVLENBQUMsRUFBRSxlQUFlLEVBQzVCLFdBQVcsQ0FBQyxFQUFFLFlBQVksR0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQWlDakI7SUFFSyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FZL0U7SUFFWSx5QkFBeUIsQ0FDcEMsSUFBSSxFQUFFLEdBQUcsRUFDVCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixZQUFZLEVBQUUsTUFBTSxDQUFDO1FBQ3JCLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDVCxPQUFPLEVBQUUsR0FBRyxDQUFDO0tBQ2QsRUFDRCxVQUFVLEVBQUUsQ0FBQyxZQUFZLEdBQUc7UUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLEdBQUcsU0FBUyxFQUNyRSxhQUFhLEdBQUUsYUFBa0IsK0JBZ0RsQztJQUVZLFFBQVEsQ0FDbkIsT0FBTyxFQUFFLFdBQVcsR0FBRztRQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQTtLQUFFLEVBQ25ELGNBQWMsR0FBRSxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBTSxFQUNuRCxjQUFjLEdBQUUsYUFBa0IsRUFDbEMsR0FBRyxHQUFFLEdBQWUsRUFDcEIsVUFBVSxDQUFDLEVBQUUsZUFBZSxHQUFHO1FBQUUsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxHQUM5RCxPQUFPLENBQUM7UUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQUMsTUFBTSxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBVXJEO0lBRUQsVUFBZ0IsU0FBUyxDQUN2QixJQUFJLEVBQUUsR0FBRyxFQUNULGNBQWMsNENBQXFDLEVBQ25ELGNBQWMsMkJBQW9CLEVBQ2xDLFNBQVMsRUFBRSxlQUFlLEdBQUc7UUFBRSxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQzdELEdBQUcsRUFBRSxHQUFHOzs7T0FvQ1Q7SUFFTSxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxlQUFlLEdBQUcsTUFBTSxDQVcxRTtDQUNGIn0=
|
|
@@ -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,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,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,iBAAiB,EACtB,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;AASpG,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMxF,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;IAE9B,YACS,MAAM,EAAE,UAAU,EACf,MAAM,oBAAqD,EACrD,YAAY,EAAE,YAAY,EAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACvB,gBAAgB,GAAE,OAAe,EAG5C;IAEM,SAAS,SAEf;IAEM,OAAO,SAEb;IAEM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEd;IAEM,cAAc,oBAEpB;IAEM,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE9D;IAED;;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":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,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,iBAAiB,EACtB,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;AASpG,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMxF,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;IAE9B,YACS,MAAM,EAAE,UAAU,EACf,MAAM,oBAAqD,EACrD,YAAY,EAAE,YAAY,EAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACvB,gBAAgB,GAAE,OAAe,EAG5C;IAEM,SAAS,SAEf;IAEM,OAAO,SAEb;IAEM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEd;IAEM,cAAc,oBAEpB;IAEM,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE9D;IAED;;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,CAoJnB;IAED;;OAEG;IACU,WAAW,CACtB,OAAO,EAAE,OAAO,GAAG,GAAG,EACtB,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,eAAe,EAC5B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC,MAAM,CAAC,CAiCjB;IAEK,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAY/E;IAEY,yBAAyB,CACpC,IAAI,EAAE,GAAG,EACT,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,GAAG,CAAC;QACT,OAAO,EAAE,GAAG,CAAC;KACd,EACD,UAAU,EAAE,CAAC,YAAY,GAAG;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,EACrE,aAAa,GAAE,aAAkB,+BAgDlC;IAEY,QAAQ,CACnB,OAAO,EAAE,WAAW,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,EACnD,cAAc,GAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAM,EACnD,cAAc,GAAE,aAAkB,EAClC,GAAG,GAAE,GAAe,EACpB,UAAU,CAAC,EAAE,eAAe,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;KAAE,CAAC,CAUrD;IAED,UAAgB,SAAS,CACvB,IAAI,EAAE,GAAG,EACT,cAAc,4CAAqC,EACnD,cAAc,2BAAoB,EAClC,SAAS,EAAE,eAAe,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7D,GAAG,EAAE,GAAG;;;OAoCT;IAEM,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,MAAM,CAW1E;CACF"}
|
|
@@ -78,9 +78,10 @@ export class ReadOnlyL1TxUtils {
|
|
|
78
78
|
const numBlocks = Math.ceil(gasConfig.stallTimeMs / BLOCK_TIME_MS);
|
|
79
79
|
for(let i = 0; i < numBlocks; i++){
|
|
80
80
|
// each block can go up 12.5% from previous baseFee
|
|
81
|
-
|
|
81
|
+
// ceil, (a+b-1)/b, to avoid truncation at small values (e.g. 1 wei blob base fee)
|
|
82
|
+
maxFeePerGas = (maxFeePerGas * (1_000n + 125n) + 999n) / 1_000n;
|
|
82
83
|
// same for blob gas fee
|
|
83
|
-
maxFeePerBlobGas = maxFeePerBlobGas * (1_000n + 125n) / 1_000n;
|
|
84
|
+
maxFeePerBlobGas = (maxFeePerBlobGas * (1_000n + 125n) + 999n) / 1_000n;
|
|
84
85
|
}
|
|
85
86
|
if (attempt > 0) {
|
|
86
87
|
const configBump = gasConfig.priorityFeeRetryBumpPercentage ?? defaultL1TxUtilsConfig.priorityFeeRetryBumpPercentage;
|
|
@@ -163,13 +164,16 @@ export class ReadOnlyL1TxUtils {
|
|
|
163
164
|
};
|
|
164
165
|
let initialEstimate = 0n;
|
|
165
166
|
if (_blobInputs) {
|
|
166
|
-
// @note requests with blobs also require maxFeePerBlobGas to be set
|
|
167
|
+
// @note requests with blobs also require maxFeePerBlobGas to be set.
|
|
168
|
+
// Use 2x buffer for maxFeePerBlobGas to avoid stale fees and to pass EIP-4844 validation (even if it is a gas estimation call).
|
|
169
|
+
// 1. maxFeePerBlobGas >= blobBaseFee
|
|
170
|
+
// 2. account balance >= gas * maxFeePerGas + maxFeePerBlobGas * blobCount + value
|
|
167
171
|
const gasPrice = await this.getGasPrice(gasConfig, true, 0);
|
|
168
172
|
initialEstimate = await this.client.estimateGas({
|
|
169
173
|
account,
|
|
170
174
|
...request,
|
|
171
175
|
..._blobInputs,
|
|
172
|
-
maxFeePerBlobGas: gasPrice.maxFeePerBlobGas,
|
|
176
|
+
maxFeePerBlobGas: gasPrice.maxFeePerBlobGas * 2n,
|
|
173
177
|
gas: MAX_L1_TX_LIMIT,
|
|
174
178
|
blockTag: 'latest'
|
|
175
179
|
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
|
|
2
|
+
import type { DateProvider } from '@aztec/foundation/timer';
|
|
3
|
+
import { type Client, type Hex } from 'viem';
|
|
4
|
+
import type { ViemClient } from '../types.js';
|
|
5
|
+
export declare function waitUntilBlock<T extends Client>(client: T, blockNumber: number | bigint, logger?: Logger, timeout?: number): Promise<boolean>;
|
|
6
|
+
export declare function waitUntilL1Timestamp<T extends Client>(client: T, timestamp: number | bigint, logger?: Logger, timeout?: number): Promise<boolean>;
|
|
7
|
+
/** Manages tx delaying for testing, intercepting sendRawTransaction calls to delay or cancel them. */
|
|
8
|
+
export declare class Delayer {
|
|
9
|
+
dateProvider: DateProvider;
|
|
10
|
+
private logger;
|
|
11
|
+
maxInclusionTimeIntoSlot: number | undefined;
|
|
12
|
+
ethereumSlotDuration: bigint;
|
|
13
|
+
nextWait: {
|
|
14
|
+
l1Timestamp: bigint;
|
|
15
|
+
} | {
|
|
16
|
+
l1BlockNumber: bigint;
|
|
17
|
+
} | {
|
|
18
|
+
indefinitely: true;
|
|
19
|
+
} | undefined;
|
|
20
|
+
sentTxHashes: Hex[];
|
|
21
|
+
cancelledTxs: Hex[];
|
|
22
|
+
constructor(dateProvider: DateProvider, opts: {
|
|
23
|
+
ethereumSlotDuration: bigint | number;
|
|
24
|
+
}, bindings: LoggerBindings);
|
|
25
|
+
/** Returns the logger instance used by this delayer. */
|
|
26
|
+
getLogger(): Logger;
|
|
27
|
+
/** Returns the hashes of all effectively sent txs. */
|
|
28
|
+
getSentTxHashes(): `0x${string}`[];
|
|
29
|
+
/** Returns the raw hex for all cancelled txs. */
|
|
30
|
+
getCancelledTxs(): Hex[];
|
|
31
|
+
/** Delays the next tx to be sent so it lands on the given L1 block number. */
|
|
32
|
+
pauseNextTxUntilBlock(l1BlockNumber: number | bigint): void;
|
|
33
|
+
/** Delays the next tx to be sent so it lands on the given timestamp. */
|
|
34
|
+
pauseNextTxUntilTimestamp(l1Timestamp: number | bigint): void;
|
|
35
|
+
/** Delays the next tx to be sent indefinitely. */
|
|
36
|
+
cancelNextTx(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Sets max inclusion time into slot. If more than this many seconds have passed
|
|
39
|
+
* since the last L1 block was mined, then any tx will not be mined in the current
|
|
40
|
+
* L1 slot but will be deferred for the next one.
|
|
41
|
+
*/
|
|
42
|
+
setMaxInclusionTimeIntoSlot(seconds: number | undefined): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates a new Delayer instance. Exposed so callers can create a single shared delayer
|
|
46
|
+
* and pass it to multiple `wrapClientWithDelayer` calls.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createDelayer(dateProvider: DateProvider, opts: {
|
|
49
|
+
ethereumSlotDuration: bigint | number;
|
|
50
|
+
}, bindings: LoggerBindings): Delayer;
|
|
51
|
+
/**
|
|
52
|
+
* Wraps a viem client with tx delaying logic. Returns the wrapped client.
|
|
53
|
+
* The delayer intercepts sendRawTransaction calls and delays them based on the delayer's state.
|
|
54
|
+
*/
|
|
55
|
+
export declare function wrapClientWithDelayer<T extends ViemClient>(client: T, delayer: Delayer): T;
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZGVsYXllci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2wxX3R4X3V0aWxzL3R4X2RlbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzVELE9BQU8sRUFDTCxLQUFLLE1BQU0sRUFDWCxLQUFLLEdBQUcsRUFVVCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sS0FBSyxFQUE0QixVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJeEUsd0JBQWdCLGNBQWMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUM3QyxNQUFNLEVBQUUsQ0FBQyxFQUNULFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUM1QixNQUFNLENBQUMsRUFBRSxNQUFNLEVBQ2YsT0FBTyxDQUFDLEVBQUUsTUFBTSxvQkFpQmpCO0FBRUQsd0JBQWdCLG9CQUFvQixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQ25ELE1BQU0sRUFBRSxDQUFDLEVBQ1QsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQzFCLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFDZixPQUFPLENBQUMsRUFBRSxNQUFNLG9CQXdCakI7QUFFRCxzR0FBc0c7QUFDdEcscUJBQWEsT0FBTztJQVVULFlBQVksRUFBRSxZQUFZO0lBVG5DLE9BQU8sQ0FBQyxNQUFNLENBQVM7SUFFaEIsd0JBQXdCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBYTtJQUN6RCxvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IsUUFBUSxFQUFFO1FBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEdBQUc7UUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFBO0tBQUUsR0FBRztRQUFFLFlBQVksRUFBRSxJQUFJLENBQUE7S0FBRSxHQUFHLFNBQVMsQ0FBYTtJQUMvRyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQU07SUFDekIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFNO0lBRWhDLFlBQ1MsWUFBWSxFQUFFLFlBQVksRUFDakMsSUFBSSxFQUFFO1FBQUUsb0JBQW9CLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQTtLQUFFLEVBQy9DLFFBQVEsRUFBRSxjQUFjLEVBSXpCO0lBRUQsd0RBQXdEO0lBQ3hELFNBQVMsSUFBSSxNQUFNLENBRWxCO0lBRUQsc0RBQXNEO0lBQ3RELGVBQWUsb0JBRWQ7SUFFRCxpREFBaUQ7SUFDakQsZUFBZSxJQUFJLEdBQUcsRUFBRSxDQUV2QjtJQUVELDhFQUE4RTtJQUM5RSxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxHQUFHLE1BQU0sUUFFbkQ7SUFFRCx3RUFBd0U7SUFDeEUseUJBQXlCLENBQUMsV0FBVyxFQUFFLE1BQU0sR0FBRyxNQUFNLFFBRXJEO0lBRUQsa0RBQWtEO0lBQ2xELFlBQVksU0FFWDtJQUVEOzs7O09BSUc7SUFDSCwyQkFBMkIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsUUFFdEQ7Q0FDRjtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixhQUFhLENBQzNCLFlBQVksRUFBRSxZQUFZLEVBQzFCLElBQUksRUFBRTtJQUFFLG9CQUFvQixFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUE7Q0FBRSxFQUMvQyxRQUFRLEVBQUUsY0FBYyxHQUN2QixPQUFPLENBRVQ7QUFhRDs7O0dBR0c7QUFDSCx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxTQUFTLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQWtIMUYifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx_delayer.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/tx_delayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EACL,KAAK,MAAM,EACX,KAAK,GAAG,EAUT,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAA4B,UAAU,EAAE,MAAM,aAAa,CAAC;AAIxE,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,EAAE,CAAC,EACT,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,oBAiBjB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EACnD,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,oBAwBjB;AAED,sGAAsG;AACtG,qBAAa,OAAO;IAUT,YAAY,EAAE,YAAY;IATnC,OAAO,CAAC,MAAM,CAAS;IAEhB,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAa;IACzD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,YAAY,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS,CAAa;IAC/G,YAAY,EAAE,GAAG,EAAE,CAAM;IACzB,YAAY,EAAE,GAAG,EAAE,CAAM;IAEhC,YACS,YAAY,EAAE,YAAY,EACjC,IAAI,EAAE;QAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAC/C,QAAQ,EAAE,cAAc,EAIzB;IAED,wDAAwD;IACxD,SAAS,IAAI,MAAM,CAElB;IAED,sDAAsD;IACtD,eAAe,oBAEd;IAED,iDAAiD;IACjD,eAAe,IAAI,GAAG,EAAE,CAEvB;IAED,8EAA8E;IAC9E,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,QAEnD;IAED,wEAAwE;IACxE,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,QAErD;IAED,kDAAkD;IAClD,YAAY,SAEX;IAED;;;;OAIG;IACH,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,QAEtD;CACF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE;IAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC/C,QAAQ,EAAE,cAAc,GACvB,OAAO,CAET;AAaD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAkH1F"}
|