@aztec/ethereum 0.0.0-test.0
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/README.md +3 -0
- package/dest/chain.d.ts +25 -0
- package/dest/chain.d.ts.map +1 -0
- package/dest/chain.js +53 -0
- package/dest/client.d.ts +16 -0
- package/dest/client.d.ts.map +1 -0
- package/dest/client.js +31 -0
- package/dest/config.d.ts +39 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +70 -0
- package/dest/constants.d.ts +4 -0
- package/dest/constants.d.ts.map +1 -0
- package/dest/constants.js +2 -0
- package/dest/contracts/empire_base.d.ts +13 -0
- package/dest/contracts/empire_base.d.ts.map +1 -0
- package/dest/contracts/empire_base.js +11 -0
- package/dest/contracts/fee_juice.d.ts +15 -0
- package/dest/contracts/fee_juice.d.ts.map +1 -0
- package/dest/contracts/fee_juice.js +52 -0
- package/dest/contracts/forwarder.d.ts +24 -0
- package/dest/contracts/forwarder.d.ts.map +1 -0
- package/dest/contracts/forwarder.js +101 -0
- package/dest/contracts/governance.d.ts +79 -0
- package/dest/contracts/governance.d.ts.map +1 -0
- package/dest/contracts/governance.js +247 -0
- package/dest/contracts/governance_proposer.d.ts +28 -0
- package/dest/contracts/governance_proposer.d.ts.map +1 -0
- package/dest/contracts/governance_proposer.js +82 -0
- package/dest/contracts/index.d.ts +9 -0
- package/dest/contracts/index.d.ts.map +1 -0
- package/dest/contracts/index.js +8 -0
- package/dest/contracts/registry.d.ts +24 -0
- package/dest/contracts/registry.d.ts.map +1 -0
- package/dest/contracts/registry.js +85 -0
- package/dest/contracts/rollup.d.ts +92 -0
- package/dest/contracts/rollup.d.ts.map +1 -0
- package/dest/contracts/rollup.js +234 -0
- package/dest/contracts/slashing_proposer.d.ts +21 -0
- package/dest/contracts/slashing_proposer.d.ts.map +1 -0
- package/dest/contracts/slashing_proposer.js +47 -0
- package/dest/deploy_l1_contracts.d.ts +21210 -0
- package/dest/deploy_l1_contracts.d.ts.map +1 -0
- package/dest/deploy_l1_contracts.js +687 -0
- package/dest/eth_cheat_codes.d.ts +147 -0
- package/dest/eth_cheat_codes.d.ts.map +1 -0
- package/dest/eth_cheat_codes.js +303 -0
- package/dest/index.d.ts +14 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +13 -0
- package/dest/l1_contract_addresses.d.ts +57 -0
- package/dest/l1_contract_addresses.d.ts.map +1 -0
- package/dest/l1_contract_addresses.js +97 -0
- package/dest/l1_reader.d.ts +16 -0
- package/dest/l1_reader.d.ts.map +1 -0
- package/dest/l1_reader.js +27 -0
- package/dest/l1_tx_utils.d.ts +192 -0
- package/dest/l1_tx_utils.d.ts.map +1 -0
- package/dest/l1_tx_utils.js +641 -0
- package/dest/l1_tx_utils_with_blobs.d.ts +12 -0
- package/dest/l1_tx_utils_with_blobs.d.ts.map +1 -0
- package/dest/l1_tx_utils_with_blobs.js +64 -0
- package/dest/queries.d.ts +12 -0
- package/dest/queries.d.ts.map +1 -0
- package/dest/queries.js +35 -0
- package/dest/test/delayed_tx_utils.d.ts +8 -0
- package/dest/test/delayed_tx_utils.d.ts.map +1 -0
- package/dest/test/delayed_tx_utils.js +21 -0
- package/dest/test/eth_cheat_codes_with_state.d.ts +18 -0
- package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -0
- package/dest/test/eth_cheat_codes_with_state.js +34 -0
- package/dest/test/index.d.ts +6 -0
- package/dest/test/index.d.ts.map +1 -0
- package/dest/test/index.js +5 -0
- package/dest/test/start_anvil.d.ts +12 -0
- package/dest/test/start_anvil.d.ts.map +1 -0
- package/dest/test/start_anvil.js +46 -0
- package/dest/test/tx_delayer.d.ts +25 -0
- package/dest/test/tx_delayer.d.ts.map +1 -0
- package/dest/test/tx_delayer.js +116 -0
- package/dest/test/upgrade_utils.d.ts +11 -0
- package/dest/test/upgrade_utils.d.ts.map +1 -0
- package/dest/test/upgrade_utils.js +104 -0
- package/dest/types.d.ts +14 -0
- package/dest/types.d.ts.map +1 -0
- package/dest/types.js +1 -0
- package/dest/utils.d.ts +24 -0
- package/dest/utils.d.ts.map +1 -0
- package/dest/utils.js +209 -0
- package/package.json +98 -0
- package/src/chain.ts +71 -0
- package/src/client.ts +58 -0
- package/src/config.ts +103 -0
- package/src/constants.ts +4 -0
- package/src/contracts/empire_base.ts +19 -0
- package/src/contracts/fee_juice.ts +43 -0
- package/src/contracts/forwarder.ts +132 -0
- package/src/contracts/governance.ts +285 -0
- package/src/contracts/governance_proposer.ts +82 -0
- package/src/contracts/index.ts +8 -0
- package/src/contracts/registry.ts +106 -0
- package/src/contracts/rollup.ts +274 -0
- package/src/contracts/slashing_proposer.ts +51 -0
- package/src/deploy_l1_contracts.ts +948 -0
- package/src/eth_cheat_codes.ts +314 -0
- package/src/index.ts +13 -0
- package/src/l1_contract_addresses.ts +109 -0
- package/src/l1_reader.ts +42 -0
- package/src/l1_tx_utils.ts +847 -0
- package/src/l1_tx_utils_with_blobs.ts +86 -0
- package/src/queries.ts +58 -0
- package/src/test/delayed_tx_utils.ts +24 -0
- package/src/test/eth_cheat_codes_with_state.ts +38 -0
- package/src/test/index.ts +5 -0
- package/src/test/start_anvil.ts +52 -0
- package/src/test/tx_delayer.ts +163 -0
- package/src/test/upgrade_utils.ts +100 -0
- package/src/types.ts +33 -0
- package/src/utils.ts +276 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
2
|
+
import { l1ContractAddressesMapping } from './l1_contract_addresses.js';
|
|
3
|
+
export const l1ReaderConfigMappings = {
|
|
4
|
+
l1RpcUrls: {
|
|
5
|
+
env: 'ETHEREUM_HOSTS',
|
|
6
|
+
description: 'The RPC Url of the ethereum host.',
|
|
7
|
+
parseEnv: (val)=>val.split(',').map((url)=>url.trim())
|
|
8
|
+
},
|
|
9
|
+
l1ChainId: {
|
|
10
|
+
env: 'L1_CHAIN_ID',
|
|
11
|
+
parseEnv: (val)=>+val,
|
|
12
|
+
defaultValue: 31337,
|
|
13
|
+
description: 'The chain ID of the ethereum host.'
|
|
14
|
+
},
|
|
15
|
+
l1Contracts: {
|
|
16
|
+
description: 'The deployed L1 contract addresses',
|
|
17
|
+
nested: l1ContractAddressesMapping
|
|
18
|
+
},
|
|
19
|
+
viemPollingIntervalMS: {
|
|
20
|
+
env: 'L1_READER_VIEM_POLLING_INTERVAL_MS',
|
|
21
|
+
description: 'The polling interval viem uses in ms',
|
|
22
|
+
...numberConfigHelper(1_000)
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
export function getL1ReaderConfigFromEnv() {
|
|
26
|
+
return getConfigFromMappings(l1ReaderConfigMappings);
|
|
27
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
2
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
3
|
+
import { type Abi, type Account, type Address, type BlockOverrides, type ContractFunctionExecutionError, type Hex, type StateOverride, type TransactionReceipt } from 'viem';
|
|
4
|
+
import type { ViemPublicClient, ViemWalletClient } from './types.js';
|
|
5
|
+
export interface L1TxUtilsConfig {
|
|
6
|
+
/**
|
|
7
|
+
* How much to increase calculated gas limit.
|
|
8
|
+
*/
|
|
9
|
+
gasLimitBufferPercentage?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Maximum gas price in gwei
|
|
12
|
+
*/
|
|
13
|
+
maxGwei?: bigint;
|
|
14
|
+
/**
|
|
15
|
+
* Maximum blob fee per gas in gwei
|
|
16
|
+
*/
|
|
17
|
+
maxBlobGwei?: bigint;
|
|
18
|
+
/**
|
|
19
|
+
* Priority fee bump percentage
|
|
20
|
+
*/
|
|
21
|
+
priorityFeeBumpPercentage?: number;
|
|
22
|
+
/**
|
|
23
|
+
* How much to increase priority fee by each attempt (percentage)
|
|
24
|
+
*/
|
|
25
|
+
priorityFeeRetryBumpPercentage?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Fixed priority fee per gas in Gwei. Overrides any priority fee bump percentage config
|
|
28
|
+
*/
|
|
29
|
+
fixedPriorityFeePerGas?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Maximum number of speed-up attempts
|
|
32
|
+
*/
|
|
33
|
+
maxAttempts?: number;
|
|
34
|
+
/**
|
|
35
|
+
* How often to check tx status
|
|
36
|
+
*/
|
|
37
|
+
checkIntervalMs?: number;
|
|
38
|
+
/**
|
|
39
|
+
* How long before considering tx stalled
|
|
40
|
+
*/
|
|
41
|
+
stallTimeMs?: number;
|
|
42
|
+
/**
|
|
43
|
+
* How long to wait for a tx to be mined before giving up
|
|
44
|
+
*/
|
|
45
|
+
txTimeoutMs?: number;
|
|
46
|
+
/**
|
|
47
|
+
* How many attempts will be done to get a tx after it was sent?
|
|
48
|
+
* First attempt is done at 1s, second at 2s, third at 3s, etc.
|
|
49
|
+
*/
|
|
50
|
+
txPropagationMaxQueryAttempts?: number;
|
|
51
|
+
}
|
|
52
|
+
export declare const l1TxUtilsConfigMappings: ConfigMappingsType<L1TxUtilsConfig>;
|
|
53
|
+
export declare const defaultL1TxUtilsConfig: L1TxUtilsConfig;
|
|
54
|
+
export interface L1TxRequest {
|
|
55
|
+
to: Address | null;
|
|
56
|
+
data?: Hex;
|
|
57
|
+
value?: bigint;
|
|
58
|
+
}
|
|
59
|
+
export type L1GasConfig = Partial<L1TxUtilsConfig> & {
|
|
60
|
+
gasLimit?: bigint;
|
|
61
|
+
txTimeoutAt?: Date;
|
|
62
|
+
};
|
|
63
|
+
export interface L1BlobInputs {
|
|
64
|
+
blobs: Uint8Array[];
|
|
65
|
+
kzg: any;
|
|
66
|
+
maxFeePerBlobGas?: bigint;
|
|
67
|
+
}
|
|
68
|
+
export interface GasPrice {
|
|
69
|
+
maxFeePerGas: bigint;
|
|
70
|
+
maxPriorityFeePerGas: bigint;
|
|
71
|
+
maxFeePerBlobGas?: bigint;
|
|
72
|
+
}
|
|
73
|
+
export type TransactionStats = {
|
|
74
|
+
/** Address of the sender. */
|
|
75
|
+
sender: string;
|
|
76
|
+
/** Hash of the transaction. */
|
|
77
|
+
transactionHash: string;
|
|
78
|
+
/** Size in bytes of the tx calldata */
|
|
79
|
+
calldataSize: number;
|
|
80
|
+
/** Gas required to pay for the calldata inclusion (depends on size and number of zeros) */
|
|
81
|
+
calldataGas: number;
|
|
82
|
+
};
|
|
83
|
+
export declare class L1TxUtils {
|
|
84
|
+
publicClient: ViemPublicClient;
|
|
85
|
+
walletClient: ViemWalletClient;
|
|
86
|
+
protected logger: Logger;
|
|
87
|
+
private debugMaxGasLimit;
|
|
88
|
+
readonly config: L1TxUtilsConfig;
|
|
89
|
+
private interrupted;
|
|
90
|
+
constructor(publicClient: ViemPublicClient, walletClient: ViemWalletClient, logger?: Logger, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean);
|
|
91
|
+
interrupt(): void;
|
|
92
|
+
restart(): void;
|
|
93
|
+
getSenderAddress(): `0x${string}`;
|
|
94
|
+
getSenderBalance(): Promise<bigint>;
|
|
95
|
+
getBlock(): Promise<{
|
|
96
|
+
number: bigint;
|
|
97
|
+
hash: `0x${string}`;
|
|
98
|
+
nonce: `0x${string}`;
|
|
99
|
+
logsBloom: `0x${string}`;
|
|
100
|
+
baseFeePerGas: bigint | null;
|
|
101
|
+
blobGasUsed: bigint;
|
|
102
|
+
difficulty: bigint;
|
|
103
|
+
excessBlobGas: bigint;
|
|
104
|
+
extraData: `0x${string}`;
|
|
105
|
+
gasLimit: bigint;
|
|
106
|
+
gasUsed: bigint;
|
|
107
|
+
miner: `0x${string}`;
|
|
108
|
+
mixHash: `0x${string}`;
|
|
109
|
+
parentBeaconBlockRoot?: `0x${string}` | undefined;
|
|
110
|
+
parentHash: `0x${string}`;
|
|
111
|
+
receiptsRoot: `0x${string}`;
|
|
112
|
+
sealFields: `0x${string}`[];
|
|
113
|
+
sha3Uncles: `0x${string}`;
|
|
114
|
+
size: bigint;
|
|
115
|
+
stateRoot: `0x${string}`;
|
|
116
|
+
timestamp: bigint;
|
|
117
|
+
totalDifficulty: bigint | null;
|
|
118
|
+
transactionsRoot: `0x${string}`;
|
|
119
|
+
uncles: `0x${string}`[];
|
|
120
|
+
withdrawals?: import("viem").Withdrawal[] | undefined;
|
|
121
|
+
withdrawalsRoot?: `0x${string}` | undefined;
|
|
122
|
+
transactions: `0x${string}`[];
|
|
123
|
+
}>;
|
|
124
|
+
getBlockNumber(): Promise<bigint>;
|
|
125
|
+
/**
|
|
126
|
+
* Sends a transaction with gas estimation and pricing
|
|
127
|
+
* @param request - The transaction request (to, data, value)
|
|
128
|
+
* @param gasConfig - Optional gas configuration
|
|
129
|
+
* @returns The transaction hash and parameters used
|
|
130
|
+
*/
|
|
131
|
+
sendTransaction(request: L1TxRequest, _gasConfig?: L1GasConfig, blobInputs?: L1BlobInputs): Promise<{
|
|
132
|
+
txHash: Hex;
|
|
133
|
+
gasLimit: bigint;
|
|
134
|
+
gasPrice: GasPrice;
|
|
135
|
+
}>;
|
|
136
|
+
/**
|
|
137
|
+
* Monitors a transaction until completion, handling speed-ups if needed
|
|
138
|
+
* @param request - Original transaction request (needed for speed-ups)
|
|
139
|
+
* @param initialTxHash - Hash of the initial transaction
|
|
140
|
+
* @param params - Parameters used in the initial transaction
|
|
141
|
+
* @param gasConfig - Optional gas configuration
|
|
142
|
+
*/
|
|
143
|
+
monitorTransaction(request: L1TxRequest, initialTxHash: Hex, params: {
|
|
144
|
+
gasLimit: bigint;
|
|
145
|
+
}, _gasConfig?: Partial<L1TxUtilsConfig> & {
|
|
146
|
+
txTimeoutAt?: Date;
|
|
147
|
+
}, _blobInputs?: L1BlobInputs, isCancelTx?: boolean): Promise<TransactionReceipt>;
|
|
148
|
+
/**
|
|
149
|
+
* Sends a transaction and monitors it until completion
|
|
150
|
+
* @param request - The transaction request (to, data, value)
|
|
151
|
+
* @param gasConfig - Optional gas configuration
|
|
152
|
+
* @returns The receipt of the successful transaction
|
|
153
|
+
*/
|
|
154
|
+
sendAndMonitorTransaction(request: L1TxRequest, gasConfig?: L1GasConfig, blobInputs?: L1BlobInputs): Promise<{
|
|
155
|
+
receipt: TransactionReceipt;
|
|
156
|
+
gasPrice: GasPrice;
|
|
157
|
+
}>;
|
|
158
|
+
/**
|
|
159
|
+
* Gets the current gas price with bounds checking
|
|
160
|
+
*/
|
|
161
|
+
getGasPrice(_gasConfig?: L1TxUtilsConfig, isBlobTx?: boolean, attempt?: number, previousGasPrice?: typeof attempt extends 0 ? never : GasPrice): Promise<GasPrice>;
|
|
162
|
+
/**
|
|
163
|
+
* Estimates gas and adds buffer
|
|
164
|
+
*/
|
|
165
|
+
estimateGas(account: Account | Hex, request: L1TxRequest, _gasConfig?: L1TxUtilsConfig, _blobInputs?: L1BlobInputs): Promise<bigint>;
|
|
166
|
+
getTransactionStats(txHash: string): Promise<TransactionStats | undefined>;
|
|
167
|
+
tryGetErrorFromRevertedTx(data: Hex, args: {
|
|
168
|
+
args: readonly any[];
|
|
169
|
+
functionName: string;
|
|
170
|
+
abi: Abi;
|
|
171
|
+
address: Hex;
|
|
172
|
+
}, blobInputs: (L1BlobInputs & {
|
|
173
|
+
maxFeePerBlobGas: bigint;
|
|
174
|
+
}) | undefined, stateOverride?: StateOverride): Promise<string | undefined>;
|
|
175
|
+
simulateGasUsed(request: L1TxRequest & {
|
|
176
|
+
gas?: bigint;
|
|
177
|
+
}, blockOverrides?: BlockOverrides<bigint, number>, stateOverrides?: StateOverride, _gasConfig?: L1TxUtilsConfig & {
|
|
178
|
+
fallbackGasEstimate?: bigint;
|
|
179
|
+
}): Promise<bigint>;
|
|
180
|
+
bumpGasLimit(gasLimit: bigint, _gasConfig?: L1TxUtilsConfig): bigint;
|
|
181
|
+
/**
|
|
182
|
+
* Attempts to cancel a transaction by sending a 0-value tx to self with same nonce but higher gas prices
|
|
183
|
+
* @param nonce - The nonce of the transaction to cancel
|
|
184
|
+
* @param previousGasPrice - The gas price of the previous transaction
|
|
185
|
+
* @param attempts - The number of attempts to cancel the transaction
|
|
186
|
+
* @returns The hash of the cancellation transaction
|
|
187
|
+
*/
|
|
188
|
+
protected attemptTxCancellation(nonce: number, isBlobTx?: boolean, previousGasPrice?: GasPrice, attempts?: number): Promise<`0x${string}`>;
|
|
189
|
+
}
|
|
190
|
+
export declare function tryGetCustomErrorNameContractFunction(err: ContractFunctionExecutionError): string;
|
|
191
|
+
export declare function getCalldataGasUsage(data: Uint8Array): number;
|
|
192
|
+
//# sourceMappingURL=l1_tx_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../src/l1_tx_utils.ts"],"names":[],"mappings":"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"}
|