@aztec/ethereum 0.0.1-commit.fce3e4f → 0.0.1-commit.fffb133c

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.
Files changed (166) hide show
  1. package/dest/client.js +6 -2
  2. package/dest/config.d.ts +19 -68
  3. package/dest/config.d.ts.map +1 -1
  4. package/dest/config.js +51 -378
  5. package/dest/contracts/empire_base.d.ts +2 -1
  6. package/dest/contracts/empire_base.d.ts.map +1 -1
  7. package/dest/contracts/empire_slashing_proposer.d.ts +2 -1
  8. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  9. package/dest/contracts/empire_slashing_proposer.js +9 -0
  10. package/dest/contracts/fee_asset_handler.d.ts +6 -5
  11. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  12. package/dest/contracts/fee_asset_handler.js +9 -9
  13. package/dest/contracts/governance.d.ts +3 -1
  14. package/dest/contracts/governance.d.ts.map +1 -1
  15. package/dest/contracts/governance.js +9 -1
  16. package/dest/contracts/governance_proposer.d.ts +2 -1
  17. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  18. package/dest/contracts/governance_proposer.js +391 -8
  19. package/dest/contracts/inbox.d.ts +24 -3
  20. package/dest/contracts/inbox.d.ts.map +1 -1
  21. package/dest/contracts/inbox.js +36 -1
  22. package/dest/contracts/index.d.ts +3 -1
  23. package/dest/contracts/index.d.ts.map +1 -1
  24. package/dest/contracts/index.js +2 -0
  25. package/dest/contracts/log.d.ts +13 -0
  26. package/dest/contracts/log.d.ts.map +1 -0
  27. package/dest/contracts/log.js +1 -0
  28. package/dest/contracts/outbox.d.ts +41 -0
  29. package/dest/contracts/outbox.d.ts.map +1 -0
  30. package/dest/contracts/outbox.js +86 -0
  31. package/dest/contracts/rollup.d.ts +176 -96
  32. package/dest/contracts/rollup.d.ts.map +1 -1
  33. package/dest/contracts/rollup.js +698 -141
  34. package/dest/contracts/tally_slashing_proposer.d.ts +3 -2
  35. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  36. package/dest/contracts/tally_slashing_proposer.js +1 -1
  37. package/dest/deploy_aztec_l1_contracts.d.ts +260 -0
  38. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -0
  39. package/dest/deploy_aztec_l1_contracts.js +398 -0
  40. package/dest/deploy_l1_contract.d.ts +68 -0
  41. package/dest/deploy_l1_contract.d.ts.map +1 -0
  42. package/dest/deploy_l1_contract.js +312 -0
  43. package/dest/forwarder_proxy.d.ts +32 -0
  44. package/dest/forwarder_proxy.d.ts.map +1 -0
  45. package/dest/forwarder_proxy.js +93 -0
  46. package/dest/generated/l1-contracts-defaults.d.ts +30 -0
  47. package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
  48. package/dest/generated/l1-contracts-defaults.js +30 -0
  49. package/dest/l1_artifacts.d.ts +4964 -1573
  50. package/dest/l1_artifacts.d.ts.map +1 -1
  51. package/dest/l1_contract_addresses.d.ts +1 -1
  52. package/dest/l1_contract_addresses.d.ts.map +1 -1
  53. package/dest/l1_contract_addresses.js +3 -3
  54. package/dest/l1_reader.d.ts +3 -1
  55. package/dest/l1_reader.d.ts.map +1 -1
  56. package/dest/l1_reader.js +6 -0
  57. package/dest/l1_tx_utils/config.d.ts +3 -3
  58. package/dest/l1_tx_utils/config.d.ts.map +1 -1
  59. package/dest/l1_tx_utils/config.js +17 -3
  60. package/dest/l1_tx_utils/constants.d.ts +7 -1
  61. package/dest/l1_tx_utils/constants.d.ts.map +1 -1
  62. package/dest/l1_tx_utils/constants.js +25 -0
  63. package/dest/l1_tx_utils/fee-strategies/index.d.ts +10 -0
  64. package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
  65. package/dest/l1_tx_utils/fee-strategies/index.js +12 -0
  66. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +8 -0
  67. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
  68. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +129 -0
  69. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +23 -0
  70. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
  71. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +191 -0
  72. package/dest/l1_tx_utils/fee-strategies/types.d.ts +51 -0
  73. package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
  74. package/dest/l1_tx_utils/fee-strategies/types.js +3 -0
  75. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
  76. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
  77. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +48 -0
  78. package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
  79. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
  80. package/dest/l1_tx_utils/index-blobs.js +2 -0
  81. package/dest/l1_tx_utils/index.d.ts +3 -1
  82. package/dest/l1_tx_utils/index.d.ts.map +1 -1
  83. package/dest/l1_tx_utils/index.js +2 -0
  84. package/dest/l1_tx_utils/interfaces.d.ts +2 -2
  85. package/dest/l1_tx_utils/interfaces.d.ts.map +1 -1
  86. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +233 -0
  87. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
  88. package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
  89. package/dest/l1_tx_utils/l1_tx_utils.d.ts +1 -1
  90. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
  91. package/dest/l1_tx_utils/l1_tx_utils.js +17 -4
  92. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +4 -15
  93. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
  94. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +52 -159
  95. package/dest/queries.d.ts +2 -2
  96. package/dest/queries.d.ts.map +1 -1
  97. package/dest/queries.js +12 -4
  98. package/dest/test/chain_monitor.d.ts +15 -13
  99. package/dest/test/chain_monitor.d.ts.map +1 -1
  100. package/dest/test/chain_monitor.js +7 -9
  101. package/dest/test/eth_cheat_codes.d.ts +13 -1
  102. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  103. package/dest/test/eth_cheat_codes.js +4 -2
  104. package/dest/test/rollup_cheat_codes.d.ts +7 -6
  105. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  106. package/dest/test/rollup_cheat_codes.js +23 -6
  107. package/dest/test/start_anvil.d.ts +3 -1
  108. package/dest/test/start_anvil.d.ts.map +1 -1
  109. package/dest/test/tx_delayer.d.ts +1 -1
  110. package/dest/test/tx_delayer.d.ts.map +1 -1
  111. package/dest/test/tx_delayer.js +4 -3
  112. package/dest/types.d.ts +57 -2
  113. package/dest/types.d.ts.map +1 -1
  114. package/dest/utils.d.ts +15 -3
  115. package/dest/utils.d.ts.map +1 -1
  116. package/dest/utils.js +18 -0
  117. package/package.json +33 -14
  118. package/src/client.ts +2 -2
  119. package/src/config.ts +62 -457
  120. package/src/contracts/README.md +157 -0
  121. package/src/contracts/empire_base.ts +1 -1
  122. package/src/contracts/empire_slashing_proposer.ts +6 -1
  123. package/src/contracts/fee_asset_handler.ts +8 -7
  124. package/src/contracts/governance.ts +8 -1
  125. package/src/contracts/governance_proposer.ts +6 -1
  126. package/src/contracts/inbox.ts +55 -3
  127. package/src/contracts/index.ts +2 -0
  128. package/src/contracts/log.ts +13 -0
  129. package/src/contracts/outbox.ts +98 -0
  130. package/src/contracts/rollup.ts +375 -111
  131. package/src/contracts/tally_slashing_proposer.ts +3 -1
  132. package/src/deploy_aztec_l1_contracts.ts +619 -0
  133. package/src/deploy_l1_contract.ts +362 -0
  134. package/src/forwarder_proxy.ts +108 -0
  135. package/src/generated/l1-contracts-defaults.ts +32 -0
  136. package/src/l1_contract_addresses.ts +22 -20
  137. package/src/l1_reader.ts +8 -0
  138. package/src/l1_tx_utils/config.ts +24 -6
  139. package/src/l1_tx_utils/constants.ts +11 -0
  140. package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
  141. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +163 -0
  142. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +245 -0
  143. package/src/l1_tx_utils/fee-strategies/types.ts +56 -0
  144. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +119 -0
  145. package/src/l1_tx_utils/index-blobs.ts +2 -0
  146. package/src/l1_tx_utils/index.ts +2 -0
  147. package/src/l1_tx_utils/interfaces.ts +1 -1
  148. package/src/l1_tx_utils/l1_fee_analyzer.ts +803 -0
  149. package/src/l1_tx_utils/l1_tx_utils.ts +24 -4
  150. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +65 -204
  151. package/src/queries.ts +11 -3
  152. package/src/test/chain_monitor.ts +18 -16
  153. package/src/test/eth_cheat_codes.ts +2 -2
  154. package/src/test/rollup_cheat_codes.ts +23 -9
  155. package/src/test/start_anvil.ts +2 -0
  156. package/src/test/tx_delayer.ts +5 -3
  157. package/src/types.ts +62 -0
  158. package/src/utils.ts +30 -1
  159. package/dest/deploy_l1_contracts.d.ts +0 -673
  160. package/dest/deploy_l1_contracts.d.ts.map +0 -1
  161. package/dest/deploy_l1_contracts.js +0 -1491
  162. package/dest/index.d.ts +0 -18
  163. package/dest/index.d.ts.map +0 -1
  164. package/dest/index.js +0 -17
  165. package/src/deploy_l1_contracts.ts +0 -1869
  166. package/src/index.ts +0 -17
@@ -18,6 +18,8 @@ import {
18
18
 
19
19
  import { type ViemClient, isExtendedClient } from '../types.js';
20
20
 
21
+ const MAX_WAIT_TIME_SECONDS = 180;
22
+
21
23
  export function waitUntilBlock<T extends Client>(
22
24
  client: T,
23
25
  blockNumber: number | bigint,
@@ -36,7 +38,7 @@ export function waitUntilBlock<T extends Client>(
36
38
  return currentBlockNumber >= BigInt(blockNumber);
37
39
  },
38
40
  `Wait until L1 block ${blockNumber}`,
39
- timeout ?? 120,
41
+ timeout ?? MAX_WAIT_TIME_SECONDS,
40
42
  0.1,
41
43
  );
42
44
  }
@@ -66,7 +68,7 @@ export function waitUntilL1Timestamp<T extends Client>(
66
68
  return currentTs >= BigInt(timestamp);
67
69
  },
68
70
  `Wait until L1 timestamp ${timestamp}`,
69
- timeout ?? 120,
71
+ timeout ?? MAX_WAIT_TIME_SECONDS,
70
72
  0.1,
71
73
  );
72
74
  }
@@ -230,7 +232,7 @@ export function withDelayer<T extends ViemClient>(
230
232
  return Promise.resolve(txHash!);
231
233
  } else {
232
234
  const txHash = await client.sendRawTransaction(...args);
233
- logger.verbose(`Sent tx immediately ${txHash}`);
235
+ logger.debug(`Sent tx immediately ${txHash}`);
234
236
  delayer.sentTxHashes.push(txHash);
235
237
  return txHash;
236
238
  }
package/src/types.ts CHANGED
@@ -5,6 +5,7 @@ import type {
5
5
  Client,
6
6
  FallbackTransport,
7
7
  GetContractReturnType,
8
+ Hex,
8
9
  HttpTransport,
9
10
  PublicActions,
10
11
  PublicClient,
@@ -16,6 +17,67 @@ import type {
16
17
  /** Type for a viem public client */
17
18
  export type ViemPublicClient = PublicClient<FallbackTransport<HttpTransport[]>, Chain>;
18
19
 
20
+ export type PublicRpcDebugSchema = [
21
+ {
22
+ Method: 'debug_traceTransaction';
23
+ Parameters: [txHash: `0x${string}`, options: { tracer: 'callTracer' }];
24
+ ReturnType: DebugCallTrace;
25
+ },
26
+ {
27
+ Method: 'trace_transaction';
28
+ Parameters: [txHash: `0x${string}`];
29
+ ReturnType: TraceTransactionResponse[];
30
+ },
31
+ ];
32
+
33
+ /** Return type for a debug_traceTransaction call */
34
+ export type DebugCallTrace = {
35
+ from: Hex;
36
+ to?: Hex;
37
+ type: string;
38
+ input?: Hex;
39
+ output?: Hex;
40
+ gas?: Hex;
41
+ gasUsed?: Hex;
42
+ value?: Hex;
43
+ error?: string;
44
+ calls?: DebugCallTrace[];
45
+ };
46
+
47
+ /** Action object for a trace_transaction call */
48
+ export type TraceAction = {
49
+ from: Hex;
50
+ to?: Hex;
51
+ callType: string;
52
+ gas?: Hex;
53
+ input?: Hex;
54
+ value?: Hex;
55
+ };
56
+
57
+ /** Result object for a trace_transaction call */
58
+ export type TraceResult = {
59
+ gasUsed?: Hex;
60
+ output?: Hex;
61
+ };
62
+
63
+ /** Return type for a single trace in trace_transaction response */
64
+ export type TraceTransactionResponse = {
65
+ action: TraceAction;
66
+ result?: TraceResult;
67
+ error?: string;
68
+ subtraces: number;
69
+ traceAddress: number[];
70
+ type: string;
71
+ };
72
+
73
+ /** Type for a viem public client with support for debug methods */
74
+ export type ViemPublicDebugClient = PublicClient<
75
+ FallbackTransport<HttpTransport[]>,
76
+ Chain,
77
+ undefined,
78
+ [...PublicRpcSchema, ...PublicRpcDebugSchema]
79
+ >;
80
+
19
81
  export type ExtendedViemWalletClient = Client<
20
82
  FallbackTransport<readonly HttpTransport[]>,
21
83
  Chain,
package/src/utils.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { Logger } from '@aztec/foundation/log';
3
3
  import { ErrorsAbi } from '@aztec/l1-artifacts/ErrorsAbi';
4
4
 
@@ -8,6 +8,7 @@ import {
8
8
  type ContractEventName,
9
9
  ContractFunctionRevertedError,
10
10
  type DecodeEventLogReturnType,
11
+ type FormattedTransaction,
11
12
  type Hex,
12
13
  type Log,
13
14
  decodeErrorResult,
@@ -233,3 +234,31 @@ export function tryGetCustomErrorName(err: any) {
233
234
  return undefined;
234
235
  }
235
236
  }
237
+
238
+ /**
239
+ * Type guard to check if a transaction is a blob transaction (EIP-4844).
240
+ * Blob transactions have maxFeePerBlobGas and blobVersionedHashes fields.
241
+ */
242
+ export function isBlobTransaction(tx: FormattedTransaction): tx is FormattedTransaction & {
243
+ maxFeePerBlobGas: bigint;
244
+ blobVersionedHashes: readonly Hex[];
245
+ } {
246
+ return (
247
+ 'maxFeePerBlobGas' in tx &&
248
+ tx.maxFeePerBlobGas !== undefined &&
249
+ 'blobVersionedHashes' in tx &&
250
+ tx.blobVersionedHashes !== undefined
251
+ );
252
+ }
253
+
254
+ /**
255
+ * Calculates a percentile from an array of bigints
256
+ */
257
+ export function calculatePercentile(values: bigint[], percentile: number): bigint {
258
+ if (values.length === 0) {
259
+ return 0n;
260
+ }
261
+ const sorted = [...values].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
262
+ const index = Math.ceil((sorted.length - 1) * (percentile / 100));
263
+ return sorted[index];
264
+ }