@aztec/ethereum 0.0.1-commit.b655e406 → 0.0.1-commit.c7c42ec

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 (184) hide show
  1. package/dest/account.d.ts +1 -1
  2. package/dest/chain.d.ts +1 -1
  3. package/dest/client.d.ts +1 -1
  4. package/dest/client.js +6 -2
  5. package/dest/config.d.ts +11 -44
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +20 -332
  8. package/dest/constants.d.ts +1 -1
  9. package/dest/contracts/empire_base.d.ts +7 -5
  10. package/dest/contracts/empire_base.d.ts.map +1 -1
  11. package/dest/contracts/empire_base.js +1 -1
  12. package/dest/contracts/empire_slashing_proposer.d.ts +6 -4
  13. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  14. package/dest/contracts/empire_slashing_proposer.js +17 -2
  15. package/dest/contracts/errors.d.ts +1 -1
  16. package/dest/contracts/errors.d.ts.map +1 -1
  17. package/dest/contracts/fee_asset_handler.d.ts +1 -1
  18. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  19. package/dest/contracts/fee_juice.d.ts +1 -1
  20. package/dest/contracts/fee_juice.d.ts.map +1 -1
  21. package/dest/contracts/governance.d.ts +16 -16
  22. package/dest/contracts/governance.d.ts.map +1 -1
  23. package/dest/contracts/governance_proposer.d.ts +6 -4
  24. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  25. package/dest/contracts/governance_proposer.js +17 -2
  26. package/dest/contracts/gse.d.ts +1 -1
  27. package/dest/contracts/gse.d.ts.map +1 -1
  28. package/dest/contracts/inbox.d.ts +7 -3
  29. package/dest/contracts/inbox.d.ts.map +1 -1
  30. package/dest/contracts/inbox.js +4 -0
  31. package/dest/contracts/index.d.ts +1 -1
  32. package/dest/contracts/multicall.d.ts +2 -2
  33. package/dest/contracts/multicall.d.ts.map +1 -1
  34. package/dest/contracts/registry.d.ts +1 -1
  35. package/dest/contracts/registry.d.ts.map +1 -1
  36. package/dest/contracts/rollup.d.ts +71 -64
  37. package/dest/contracts/rollup.d.ts.map +1 -1
  38. package/dest/contracts/rollup.js +90 -67
  39. package/dest/contracts/slasher_contract.d.ts +1 -1
  40. package/dest/contracts/slasher_contract.d.ts.map +1 -1
  41. package/dest/contracts/tally_slashing_proposer.d.ts +9 -7
  42. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  43. package/dest/contracts/tally_slashing_proposer.js +4 -4
  44. package/dest/contracts/utils.d.ts +1 -1
  45. package/dest/deploy_aztec_l1_contracts.d.ts +247 -0
  46. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -0
  47. package/dest/deploy_aztec_l1_contracts.js +336 -0
  48. package/dest/deploy_l1_contract.d.ts +68 -0
  49. package/dest/deploy_l1_contract.d.ts.map +1 -0
  50. package/dest/deploy_l1_contract.js +312 -0
  51. package/dest/eth-signer/eth-signer.d.ts +1 -1
  52. package/dest/eth-signer/index.d.ts +1 -1
  53. package/dest/forwarder_proxy.d.ts +32 -0
  54. package/dest/forwarder_proxy.d.ts.map +1 -0
  55. package/dest/forwarder_proxy.js +93 -0
  56. package/dest/l1_artifacts.d.ts +2078 -880
  57. package/dest/l1_artifacts.d.ts.map +1 -1
  58. package/dest/l1_contract_addresses.d.ts +3 -3
  59. package/dest/l1_contract_addresses.d.ts.map +1 -1
  60. package/dest/l1_contract_addresses.js +3 -3
  61. package/dest/l1_reader.d.ts +3 -1
  62. package/dest/l1_reader.d.ts.map +1 -1
  63. package/dest/l1_reader.js +6 -0
  64. package/dest/l1_tx_utils/config.d.ts +5 -5
  65. package/dest/l1_tx_utils/config.d.ts.map +1 -1
  66. package/dest/l1_tx_utils/config.js +30 -7
  67. package/dest/l1_tx_utils/constants.d.ts +7 -1
  68. package/dest/l1_tx_utils/constants.d.ts.map +1 -1
  69. package/dest/l1_tx_utils/constants.js +25 -0
  70. package/dest/l1_tx_utils/factory.d.ts +1 -1
  71. package/dest/l1_tx_utils/fee-strategies/index.d.ts +9 -0
  72. package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
  73. package/dest/l1_tx_utils/fee-strategies/index.js +11 -0
  74. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +18 -0
  75. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
  76. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +111 -0
  77. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +32 -0
  78. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
  79. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +173 -0
  80. package/dest/l1_tx_utils/fee-strategies/types.d.ts +64 -0
  81. package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
  82. package/dest/l1_tx_utils/fee-strategies/types.js +24 -0
  83. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
  84. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
  85. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +48 -0
  86. package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
  87. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
  88. package/dest/l1_tx_utils/index-blobs.js +2 -0
  89. package/dest/l1_tx_utils/index.d.ts +3 -1
  90. package/dest/l1_tx_utils/index.d.ts.map +1 -1
  91. package/dest/l1_tx_utils/index.js +2 -0
  92. package/dest/l1_tx_utils/interfaces.d.ts +2 -2
  93. package/dest/l1_tx_utils/interfaces.d.ts.map +1 -1
  94. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +233 -0
  95. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
  96. package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
  97. package/dest/l1_tx_utils/l1_tx_utils.d.ts +1 -2
  98. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
  99. package/dest/l1_tx_utils/l1_tx_utils.js +17 -4
  100. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +1 -1
  101. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +1 -1
  102. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +19 -26
  103. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
  104. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +70 -141
  105. package/dest/l1_tx_utils/signer.d.ts +1 -1
  106. package/dest/l1_tx_utils/types.d.ts +1 -1
  107. package/dest/l1_tx_utils/types.d.ts.map +1 -1
  108. package/dest/l1_tx_utils/utils.d.ts +1 -1
  109. package/dest/l1_types.d.ts +1 -1
  110. package/dest/publisher_manager.d.ts +1 -1
  111. package/dest/publisher_manager.d.ts.map +1 -1
  112. package/dest/queries.d.ts +1 -1
  113. package/dest/queries.d.ts.map +1 -1
  114. package/dest/queries.js +10 -3
  115. package/dest/test/chain_monitor.d.ts +27 -24
  116. package/dest/test/chain_monitor.d.ts.map +1 -1
  117. package/dest/test/chain_monitor.js +32 -34
  118. package/dest/test/delayed_tx_utils.d.ts +1 -1
  119. package/dest/test/delayed_tx_utils.d.ts.map +1 -1
  120. package/dest/test/eth_cheat_codes.d.ts +8 -12
  121. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  122. package/dest/test/eth_cheat_codes.js +11 -3
  123. package/dest/test/eth_cheat_codes_with_state.d.ts +1 -1
  124. package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -1
  125. package/dest/test/index.d.ts +1 -1
  126. package/dest/test/rollup_cheat_codes.d.ts +14 -13
  127. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  128. package/dest/test/rollup_cheat_codes.js +46 -39
  129. package/dest/test/start_anvil.d.ts +4 -1
  130. package/dest/test/start_anvil.d.ts.map +1 -1
  131. package/dest/test/start_anvil.js +2 -1
  132. package/dest/test/tx_delayer.d.ts +1 -1
  133. package/dest/test/tx_delayer.d.ts.map +1 -1
  134. package/dest/test/tx_delayer.js +4 -3
  135. package/dest/test/upgrade_utils.d.ts +1 -1
  136. package/dest/types.d.ts +57 -2
  137. package/dest/types.d.ts.map +1 -1
  138. package/dest/utils.d.ts +15 -3
  139. package/dest/utils.d.ts.map +1 -1
  140. package/dest/utils.js +18 -0
  141. package/dest/zkPassportVerifierAddress.d.ts +1 -1
  142. package/package.json +33 -14
  143. package/src/client.ts +2 -2
  144. package/src/config.ts +24 -412
  145. package/src/contracts/empire_base.ts +6 -5
  146. package/src/contracts/empire_slashing_proposer.ts +16 -5
  147. package/src/contracts/governance_proposer.ts +16 -5
  148. package/src/contracts/inbox.ts +7 -2
  149. package/src/contracts/rollup.ts +99 -82
  150. package/src/contracts/tally_slashing_proposer.ts +11 -8
  151. package/src/deploy_aztec_l1_contracts.ts +557 -0
  152. package/src/deploy_l1_contract.ts +362 -0
  153. package/src/forwarder_proxy.ts +108 -0
  154. package/src/l1_contract_addresses.ts +22 -20
  155. package/src/l1_reader.ts +8 -0
  156. package/src/l1_tx_utils/config.ts +32 -11
  157. package/src/l1_tx_utils/constants.ts +11 -0
  158. package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
  159. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +159 -0
  160. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +241 -0
  161. package/src/l1_tx_utils/fee-strategies/types.ts +88 -0
  162. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +119 -0
  163. package/src/l1_tx_utils/index-blobs.ts +2 -0
  164. package/src/l1_tx_utils/index.ts +2 -0
  165. package/src/l1_tx_utils/interfaces.ts +1 -1
  166. package/src/l1_tx_utils/l1_fee_analyzer.ts +804 -0
  167. package/src/l1_tx_utils/l1_tx_utils.ts +24 -4
  168. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +78 -179
  169. package/src/queries.ts +12 -3
  170. package/src/test/chain_monitor.ts +50 -48
  171. package/src/test/eth_cheat_codes.ts +9 -3
  172. package/src/test/rollup_cheat_codes.ts +45 -43
  173. package/src/test/start_anvil.ts +4 -0
  174. package/src/test/tx_delayer.ts +5 -3
  175. package/src/types.ts +62 -0
  176. package/src/utils.ts +30 -1
  177. package/dest/deploy_l1_contracts.d.ts +0 -226
  178. package/dest/deploy_l1_contracts.d.ts.map +0 -1
  179. package/dest/deploy_l1_contracts.js +0 -1473
  180. package/dest/index.d.ts +0 -18
  181. package/dest/index.d.ts.map +0 -1
  182. package/dest/index.js +0 -17
  183. package/src/deploy_l1_contracts.ts +0 -1849
  184. package/src/index.ts +0 -17
@@ -1,6 +1,7 @@
1
+ import type { EthAddress } from '@aztec/foundation/eth-address';
1
2
  import { type Logger } from '@aztec/foundation/log';
2
3
  import { DateProvider } from '@aztec/foundation/timer';
3
- import { type Abi, type Account, type BlockOverrides, type Hex, type StateOverride } from 'viem';
4
+ import { type Abi, type Account, type BlockOverrides, type GetCodeReturnType, type Hex, type StateOverride } from 'viem';
4
5
  import type { ViemClient } from '../types.js';
5
6
  import { type L1TxUtilsConfig } from './config.js';
6
7
  import type { GasPrice, L1BlobInputs, L1TxRequest, TransactionStats } from './types.js';
@@ -15,44 +16,36 @@ export declare class ReadOnlyL1TxUtils {
15
16
  interrupt(): void;
16
17
  restart(): void;
17
18
  getBlock(): Promise<{
18
- number: bigint;
19
- hash: `0x${string}`;
20
- nonce: `0x${string}`;
21
- logsBloom: `0x${string}`;
22
19
  baseFeePerGas: bigint | null;
23
20
  blobGasUsed: bigint;
24
21
  difficulty: bigint;
25
22
  excessBlobGas: bigint;
26
- extraData: Hex;
23
+ extraData: `0x${string}`;
27
24
  gasLimit: bigint;
28
25
  gasUsed: bigint;
29
- miner: import("viem").Address;
30
- mixHash: import("viem").Hash;
26
+ hash: `0x${string}`;
27
+ logsBloom: `0x${string}`;
28
+ miner: `0x${string}`;
29
+ mixHash: `0x${string}`;
30
+ nonce: `0x${string}`;
31
+ number: bigint;
31
32
  parentBeaconBlockRoot?: `0x${string}` | undefined;
32
- parentHash: import("viem").Hash;
33
- receiptsRoot: Hex;
34
- sealFields: Hex[];
35
- sha3Uncles: import("viem").Hash;
33
+ parentHash: `0x${string}`;
34
+ receiptsRoot: `0x${string}`;
35
+ sealFields: `0x${string}`[];
36
+ sha3Uncles: `0x${string}`;
36
37
  size: bigint;
37
- stateRoot: import("viem").Hash;
38
+ stateRoot: `0x${string}`;
38
39
  timestamp: bigint;
39
40
  totalDifficulty: bigint | null;
40
- transactionsRoot: import("viem").Hash;
41
- uncles: import("viem").Hash[];
42
- withdrawals?: import("viem").Withdrawal[] | undefined | undefined;
41
+ transactionsRoot: `0x${string}`;
42
+ uncles: `0x${string}`[];
43
+ withdrawals?: import("viem").Withdrawal[] | undefined;
43
44
  withdrawalsRoot?: `0x${string}` | undefined;
44
45
  transactions: `0x${string}`[];
45
46
  }>;
46
47
  getBlockNumber(): Promise<bigint>;
47
- /**
48
- * Analyzes pending transactions and recent fee history to determine a competitive priority fee.
49
- * Falls back to network estimate if data is unavailable or fails.
50
- * @param networkEstimateResult - Result from estimateMaxPriorityFeePerGas RPC call
51
- * @param pendingBlockResult - Result from getBlock with pending tag RPC call
52
- * @param feeHistoryResult - Result from getFeeHistory RPC call
53
- * @returns A competitive priority fee based on pending txs and recent block history
54
- */
55
- protected getCompetitivePriorityFee(networkEstimateResult: PromiseSettledResult<bigint | null>, pendingBlockResult: PromiseSettledResult<Awaited<ReturnType<ViemClient['getBlock']>> | null>, feeHistoryResult: PromiseSettledResult<Awaited<ReturnType<ViemClient['getFeeHistory']>> | null>): bigint;
48
+ getCode(address: EthAddress): Promise<GetCodeReturnType>;
56
49
  /**
57
50
  * Gets the current gas price with bounds checking
58
51
  */
@@ -91,4 +84,4 @@ export declare class ReadOnlyL1TxUtils {
91
84
  */
92
85
  private tryTwice;
93
86
  }
94
- //# sourceMappingURL=readonly_l1_tx_utils.d.ts.map
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHlfbDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9yZWFkb25seV9sMV90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXZELE9BQU8sRUFDTCxLQUFLLEdBQUcsRUFDUixLQUFLLE9BQU8sRUFFWixLQUFLLGNBQWMsRUFFbkIsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxHQUFHLEVBR1IsS0FBSyxhQUFhLEVBS25CLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBbUQsTUFBTSxhQUFhLENBQUM7QUFTcEcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNeEYscUJBQWEsaUJBQWlCO0lBS25CLE1BQU0sRUFBRSxVQUFVO0lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTTthQUNSLFlBQVksRUFBRSxZQUFZO0lBRTFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPO0lBUjlCLE1BQU0sRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsU0FBUyxDQUFDLFdBQVcsVUFBUztJQUU5QixZQUNTLE1BQU0sRUFBRSxVQUFVLEVBQ2YsTUFBTSxvQkFBcUQsRUFDckQsWUFBWSxFQUFFLFlBQVksRUFDMUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUN2QixnQkFBZ0IsR0FBRSxPQUFlLEVBRzVDO0lBRU0sU0FBUyxTQUVmO0lBRU0sT0FBTyxTQUViO0lBRU0sUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQUVkO0lBRU0sY0FBYyxvQkFFcEI7SUFFTSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFOUQ7SUFFRDs7T0FFRztJQUNVLFdBQVcsQ0FDdEIsa0JBQWtCLENBQUMsRUFBRSxlQUFlLEVBQ3BDLFFBQVEsR0FBRSxPQUFlLEVBQ3pCLE9BQU8sR0FBRSxNQUFVLEVBQ25CLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxPQUFPLFNBQVMsQ0FBQyxHQUFHLEtBQUssR0FBRyxRQUFRLEdBQzdELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FtTG5CO0lBRUQ7O09BRUc7SUFDVSxXQUFXLENBQ3RCLE9BQU8sRUFBRSxPQUFPLEdBQUcsR0FBRyxFQUN0QixPQUFPLEVBQUUsV0FBVyxFQUNwQixVQUFVLENBQUMsRUFBRSxlQUFlLEVBQzVCLFdBQVcsQ0FBQyxFQUFFLFlBQVksR0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQThCakI7SUFFSyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FZL0U7SUFFWSx5QkFBeUIsQ0FDcEMsSUFBSSxFQUFFLEdBQUcsRUFDVCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixZQUFZLEVBQUUsTUFBTSxDQUFDO1FBQ3JCLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDVCxPQUFPLEVBQUUsR0FBRyxDQUFDO0tBQ2QsRUFDRCxVQUFVLEVBQUUsQ0FBQyxZQUFZLEdBQUc7UUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLEdBQUcsU0FBUyxFQUNyRSxhQUFhLEdBQUUsYUFBa0IsK0JBZ0RsQztJQUVZLFFBQVEsQ0FDbkIsT0FBTyxFQUFFLFdBQVcsR0FBRztRQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQTtLQUFFLEVBQ25ELGNBQWMsR0FBRSxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBTSxFQUNuRCxjQUFjLEdBQUUsYUFBa0IsRUFDbEMsR0FBRyxHQUFFLEdBQWUsRUFDcEIsVUFBVSxDQUFDLEVBQUUsZUFBZSxHQUFHO1FBQUUsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxHQUM5RCxPQUFPLENBQUM7UUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQUMsTUFBTSxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBVXJEO0lBRUQsVUFBZ0IsU0FBUyxDQUN2QixJQUFJLEVBQUUsR0FBRyxFQUNULGNBQWMsNENBQXFDLEVBQ25ELGNBQWMsMkJBQW9CLEVBQ2xDLFNBQVMsRUFBRSxlQUFlLEdBQUc7UUFBRSxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQzdELEdBQUcsRUFBRSxHQUFHOzs7T0FvQ1Q7SUFFTSxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxlQUFlLEdBQUcsTUFBTSxDQVcxRTtJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFFBQVE7Q0FHakIifQ==
@@ -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":"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"}
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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"}
@@ -1,4 +1,4 @@
1
- import { getKeys, median, merge, pick, times } from '@aztec/foundation/collection';
1
+ import { getKeys, merge, pick, times } from '@aztec/foundation/collection';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { makeBackoff, retry } from '@aztec/foundation/retry';
4
4
  import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
@@ -6,8 +6,10 @@ import pickBy from 'lodash.pickby';
6
6
  import { MethodNotFoundRpcError, MethodNotSupportedRpcError, decodeErrorResult, formatGwei, getContractError, hexToBytes } from 'viem';
7
7
  import { defaultL1TxUtilsConfig, l1TxUtilsConfigMappings } from './config.js';
8
8
  import { BLOCK_TIME_MS, LARGE_GAS_LIMIT, MIN_BLOB_REPLACEMENT_BUMP_PERCENTAGE, MIN_REPLACEMENT_BUMP_PERCENTAGE, WEI_CONST } from './constants.js';
9
+ import { P75AllTxsPriorityFeeStrategy } from './fee-strategies/index.js';
9
10
  import { getCalldataGasUsage, tryGetCustomErrorNameContractFunction } from './utils.js';
10
- const HISTORICAL_BLOCK_COUNT = 5;
11
+ // Change this to the current strategy we want to use
12
+ const CurrentStrategy = P75AllTxsPriorityFeeStrategy;
11
13
  export class ReadOnlyL1TxUtils {
12
14
  client;
13
15
  logger;
@@ -35,120 +37,38 @@ export class ReadOnlyL1TxUtils {
35
37
  getBlockNumber() {
36
38
  return this.client.getBlockNumber();
37
39
  }
38
- /**
39
- * Analyzes pending transactions and recent fee history to determine a competitive priority fee.
40
- * Falls back to network estimate if data is unavailable or fails.
41
- * @param networkEstimateResult - Result from estimateMaxPriorityFeePerGas RPC call
42
- * @param pendingBlockResult - Result from getBlock with pending tag RPC call
43
- * @param feeHistoryResult - Result from getFeeHistory RPC call
44
- * @returns A competitive priority fee based on pending txs and recent block history
45
- */ getCompetitivePriorityFee(networkEstimateResult, pendingBlockResult, feeHistoryResult) {
46
- const networkEstimate = networkEstimateResult.status === 'fulfilled' && typeof networkEstimateResult.value === 'bigint' ? networkEstimateResult.value : 0n;
47
- let competitiveFee = networkEstimate;
48
- if (pendingBlockResult.status === 'fulfilled' && pendingBlockResult.value !== null && pendingBlockResult.value.transactions && pendingBlockResult.value.transactions.length > 0) {
49
- const pendingBlock = pendingBlockResult.value;
50
- // Extract priority fees from pending transactions
51
- const pendingFees = pendingBlock.transactions.map((tx)=>{
52
- // Transaction can be just a hash string, so we need to check if it's an object
53
- if (typeof tx === 'string') {
54
- return 0n;
55
- }
56
- const fee = tx.maxPriorityFeePerGas || 0n;
57
- // Debug: Log suspicious fees
58
- if (fee > 100n * WEI_CONST) {
59
- this.logger?.warn('Suspicious high priority fee in pending tx', {
60
- txHash: tx.hash,
61
- maxPriorityFeePerGas: formatGwei(fee),
62
- maxFeePerGas: formatGwei(tx.maxFeePerGas || 0n),
63
- maxFeePerBlobGas: tx.maxFeePerBlobGas ? formatGwei(tx.maxFeePerBlobGas) : 'N/A'
64
- });
65
- }
66
- return fee;
67
- }).filter((fee)=>fee > 0n);
68
- if (pendingFees.length > 0) {
69
- // Use 75th percentile of pending fees to be competitive
70
- const sortedPendingFees = [
71
- ...pendingFees
72
- ].sort((a, b)=>a < b ? -1 : a > b ? 1 : 0);
73
- const percentile75Index = Math.floor((sortedPendingFees.length - 1) * 0.75);
74
- const pendingCompetitiveFee = sortedPendingFees[percentile75Index];
75
- if (pendingCompetitiveFee > competitiveFee) {
76
- competitiveFee = pendingCompetitiveFee;
77
- }
78
- this.logger?.debug('Analyzed pending transactions for competitive pricing', {
79
- pendingTxCount: pendingFees.length,
80
- pendingP75: formatGwei(pendingCompetitiveFee)
81
- });
82
- }
83
- }
84
- if (feeHistoryResult.status === 'fulfilled' && feeHistoryResult.value !== null && feeHistoryResult.value.reward && feeHistoryResult.value.reward.length > 0) {
85
- const feeHistory = feeHistoryResult.value;
86
- // Extract 75th percentile fees from each block
87
- const percentile75Fees = feeHistory.reward.map((rewards)=>rewards[0] || 0n).filter((fee)=>fee > 0n);
88
- if (percentile75Fees.length > 0) {
89
- // Calculate median of the 75th percentile fees across blocks
90
- const medianHistoricalFee = median(percentile75Fees) ?? 0n;
91
- // Debug: Log suspicious fees from history
92
- if (medianHistoricalFee > 100n * WEI_CONST) {
93
- this.logger?.warn('Suspicious high fee in history', {
94
- historicalMedian: formatGwei(medianHistoricalFee),
95
- allP75Fees: percentile75Fees.map((f)=>formatGwei(f))
96
- });
97
- }
98
- if (medianHistoricalFee > competitiveFee) {
99
- competitiveFee = medianHistoricalFee;
100
- }
101
- this.logger?.debug('Analyzed fee history for competitive pricing', {
102
- historicalMedian: formatGwei(medianHistoricalFee)
103
- });
104
- }
105
- }
106
- // Sanity check: cap competitive fee at 100x network estimate to avoid using unrealistic fees
107
- // (e.g., Anvil returns inflated historical fees that don't reflect actual network conditions)
108
- const maxReasonableFee = networkEstimate * 100n;
109
- if (competitiveFee > maxReasonableFee) {
110
- this.logger?.warn('Competitive fee exceeds sanity cap, using capped value', {
111
- competitiveFee: formatGwei(competitiveFee),
112
- networkEstimate: formatGwei(networkEstimate),
113
- cappedTo: formatGwei(maxReasonableFee)
114
- });
115
- competitiveFee = maxReasonableFee;
116
- }
117
- // Log final decision
118
- if (competitiveFee > networkEstimate) {
119
- this.logger?.debug('Using competitive fee from market analysis', {
120
- networkEstimate: formatGwei(networkEstimate),
121
- competitive: formatGwei(competitiveFee)
122
- });
123
- }
124
- return competitiveFee;
40
+ getCode(address) {
41
+ return this.client.getCode({
42
+ address: address.toString()
43
+ });
125
44
  }
126
45
  /**
127
46
  * Gets the current gas price with bounds checking
128
47
  */ async getGasPrice(gasConfigOverrides, isBlobTx = false, attempt = 0, previousGasPrice) {
129
48
  const gasConfig = merge(this.config, gasConfigOverrides);
130
49
  // Make all RPC calls in parallel upfront with retry logic
50
+ // First 2 calls are necessary to complete
131
51
  const latestBlockPromise = this.tryTwice(()=>this.client.getBlock({
132
52
  blockTag: 'latest'
133
53
  }), 'Getting latest block');
134
- const networkEstimatePromise = gasConfig.fixedPriorityFeePerGas ? null : this.tryTwice(()=>this.client.estimateMaxPriorityFeePerGas(), 'Estimating max priority fee per gas');
135
- const pendingBlockPromise = gasConfig.fixedPriorityFeePerGas ? null : this.tryTwice(()=>this.client.getBlock({
136
- blockTag: 'pending',
137
- includeTransactions: true
138
- }), 'Getting pending block');
139
- const feeHistoryPromise = gasConfig.fixedPriorityFeePerGas ? null : this.tryTwice(()=>this.client.getFeeHistory({
140
- blockCount: HISTORICAL_BLOCK_COUNT,
141
- rewardPercentiles: [
142
- 75
143
- ]
144
- }), 'Getting fee history');
145
- const blobBaseFeePromise = isBlobTx ? this.tryTwice(()=>this.client.getBlobBaseFee(), 'Getting blob base fee') : null;
146
- const [latestBlockResult, networkEstimateResult, pendingBlockResult, feeHistoryResult, blobBaseFeeResult] = await Promise.allSettled([
54
+ let blobBaseFeePromise = null;
55
+ if (isBlobTx) {
56
+ blobBaseFeePromise = this.tryTwice(()=>this.client.getBlobBaseFee(), 'Getting blob base fee');
57
+ }
58
+ // Get strategy promises for priority fee calculation
59
+ const strategyPromises = CurrentStrategy.getRequiredPromises(this.client, {
60
+ isBlobTx
61
+ });
62
+ const strategyPromiseKeys = [];
63
+ const strategyPromisesArr = [];
64
+ for (const [key, promise] of Object.entries(strategyPromises)){
65
+ strategyPromiseKeys.push(key);
66
+ strategyPromisesArr.push(this.tryTwice(()=>promise, `Getting strategy data for ${key}`));
67
+ }
68
+ const [latestBlockResult, blobBaseFeeResult, ...strategyResults] = await Promise.allSettled([
147
69
  latestBlockPromise,
148
- networkEstimatePromise ?? Promise.resolve(0n),
149
- pendingBlockPromise ?? Promise.resolve(null),
150
- feeHistoryPromise ?? Promise.resolve(null),
151
- blobBaseFeePromise ?? Promise.resolve(0n)
70
+ blobBaseFeePromise ?? Promise.resolve(0n),
71
+ ...strategyPromisesArr
152
72
  ]);
153
73
  // Extract results
154
74
  const baseFee = latestBlockResult.status === 'fulfilled' && typeof latestBlockResult.value === 'object' && latestBlockResult.value.baseFeePerGas ? latestBlockResult.value.baseFeePerGas : 0n;
@@ -160,15 +80,29 @@ export class ReadOnlyL1TxUtils {
160
80
  this.logger?.warn('Failed to get L1 blob base fee', attempt);
161
81
  }
162
82
  let priorityFee;
163
- if (gasConfig.fixedPriorityFeePerGas) {
164
- this.logger?.debug('Using fixed priority fee per L1 gas', {
165
- fixedPriorityFeePerGas: gasConfig.fixedPriorityFeePerGas
166
- });
167
- // try to maintain precision up to 1000000 wei
168
- priorityFee = BigInt(gasConfig.fixedPriorityFeePerGas * 1_000_000) * (WEI_CONST / 1_000_000n);
169
- } else {
170
- // Get competitive priority fee (includes network estimate + analysis)
171
- priorityFee = this.getCompetitivePriorityFee(networkEstimateResult, pendingBlockResult, feeHistoryResult);
83
+ // Get competitive priority fee using strategy
84
+ // Reconstruct the results object with the same keys as the promises
85
+ const resultsObject = {};
86
+ strategyPromiseKeys.forEach((key, index)=>{
87
+ resultsObject[key] = strategyResults[index];
88
+ });
89
+ const result = CurrentStrategy.calculate(resultsObject, {
90
+ gasConfig,
91
+ isBlobTx,
92
+ logger: this.logger
93
+ });
94
+ priorityFee = result.priorityFee;
95
+ // Apply minimum priority fee floor if configured
96
+ if (gasConfig.minimumPriorityFeePerGas) {
97
+ const minimumPriorityFee = BigInt(Math.trunc(gasConfig.minimumPriorityFeePerGas * Number(WEI_CONST)));
98
+ if (priorityFee < minimumPriorityFee) {
99
+ this.logger?.debug('Applying minimum priority fee floor', {
100
+ calculatedPriorityFee: formatGwei(priorityFee),
101
+ minimumPriorityFeePerGas: gasConfig.minimumPriorityFeePerGas,
102
+ appliedFee: formatGwei(minimumPriorityFee)
103
+ });
104
+ priorityFee = minimumPriorityFee;
105
+ }
172
106
  }
173
107
  let maxFeePerGas = baseFee;
174
108
  let maxFeePerBlobGas = blobBaseFee;
@@ -189,17 +123,14 @@ export class ReadOnlyL1TxUtils {
189
123
  // multiply by 100 & divide by 100 to maintain some precision
190
124
  const minPriorityFee = previousGasPrice.maxPriorityFeePerGas * (100_00n + BigInt(bumpPercentage * 1_00)) / 100_00n;
191
125
  const minMaxFee = previousGasPrice.maxFeePerGas * (100_00n + BigInt(bumpPercentage * 1_00)) / 100_00n;
192
- let competitivePriorityFee = priorityFee;
193
- if (!gasConfig.fixedPriorityFeePerGas) {
194
- // Apply bump percentage to competitive fee
195
- competitivePriorityFee = priorityFee * (100_00n + BigInt(configBump * 1_00)) / 100_00n;
196
- this.logger?.debug(`Speed-up attempt ${attempt}: using competitive fee strategy`, {
197
- networkEstimate: formatGwei(priorityFee),
198
- competitiveFee: formatGwei(competitivePriorityFee),
199
- minRequired: formatGwei(minPriorityFee),
200
- bumpPercentage: configBump
201
- });
202
- }
126
+ // Apply bump percentage to competitive fee
127
+ const competitivePriorityFee = priorityFee * (100_00n + BigInt(configBump * 1_00)) / 100_00n;
128
+ this.logger?.debug(`Speed-up attempt ${attempt}: using competitive fee strategy`, {
129
+ networkEstimate: formatGwei(priorityFee),
130
+ competitiveFee: formatGwei(competitivePriorityFee),
131
+ minRequired: formatGwei(minPriorityFee),
132
+ bumpPercentage: configBump
133
+ });
203
134
  // Use maximum between competitive fee and minimum required bump
204
135
  const finalPriorityFee = competitivePriorityFee > minPriorityFee ? competitivePriorityFee : minPriorityFee;
205
136
  const feeSource = finalPriorityFee === competitivePriorityFee ? 'competitive' : 'minimum-bump';
@@ -207,25 +138,21 @@ export class ReadOnlyL1TxUtils {
207
138
  // Add the final priority fee to maxFeePerGas
208
139
  maxFeePerGas += finalPriorityFee;
209
140
  maxFeePerGas = maxFeePerGas > minMaxFee ? maxFeePerGas : minMaxFee;
210
- if (!gasConfig.fixedPriorityFeePerGas) {
211
- this.logger?.debug(`Speed-up fee decision: using ${feeSource} fee`, {
212
- finalPriorityFee: formatGwei(finalPriorityFee)
213
- });
214
- }
141
+ this.logger?.debug(`Speed-up fee decision: using ${feeSource} fee`, {
142
+ finalPriorityFee: formatGwei(finalPriorityFee)
143
+ });
215
144
  } else {
216
145
  // First attempt: apply configured bump percentage to competitive fee
217
146
  // multiply by 100 & divide by 100 to maintain some precision
218
- if (!gasConfig.fixedPriorityFeePerGas) {
219
- priorityFee = priorityFee * (100_00n + BigInt((gasConfig.priorityFeeBumpPercentage || 0) * 1_00)) / 100_00n;
220
- this.logger?.debug('Initial transaction: using competitive fee from market analysis', {
221
- networkEstimate: formatGwei(priorityFee)
222
- });
223
- }
147
+ priorityFee = priorityFee * (100_00n + BigInt((gasConfig.priorityFeeBumpPercentage || 0) * 1_00)) / 100_00n;
148
+ this.logger?.debug('Initial transaction: using competitive fee from market analysis', {
149
+ networkEstimate: formatGwei(priorityFee)
150
+ });
224
151
  maxFeePerGas += priorityFee;
225
152
  }
226
153
  // maxGwei and maxBlobGwei are hard limits
227
- const effectiveMaxGwei = gasConfig.maxGwei * WEI_CONST;
228
- const effectiveMaxBlobGwei = gasConfig.maxBlobGwei * WEI_CONST;
154
+ const effectiveMaxGwei = BigInt(Math.trunc(gasConfig.maxGwei * Number(WEI_CONST)));
155
+ const effectiveMaxBlobGwei = BigInt(Math.trunc(gasConfig.maxBlobGwei * Number(WEI_CONST)));
229
156
  // Ensure we don't exceed maxGwei
230
157
  if (effectiveMaxGwei > 0n) {
231
158
  maxFeePerGas = maxFeePerGas > effectiveMaxGwei ? effectiveMaxGwei : maxFeePerGas;
@@ -275,14 +202,16 @@ export class ReadOnlyL1TxUtils {
275
202
  ...request,
276
203
  ..._blobInputs,
277
204
  maxFeePerBlobGas: gasPrice.maxFeePerBlobGas,
278
- gas: LARGE_GAS_LIMIT
205
+ gas: LARGE_GAS_LIMIT,
206
+ blockTag: 'latest'
279
207
  });
280
208
  this.logger?.trace(`Estimated gas for blob tx: ${initialEstimate}`);
281
209
  } else {
282
210
  initialEstimate = await this.client.estimateGas({
283
211
  account,
284
212
  ...request,
285
- gas: LARGE_GAS_LIMIT
213
+ gas: LARGE_GAS_LIMIT,
214
+ blockTag: 'latest'
286
215
  });
287
216
  this.logger?.trace(`Estimated gas for non-blob tx: ${initialEstimate}`);
288
217
  }
@@ -1,4 +1,4 @@
1
1
  import { type WalletClient } from 'viem';
2
2
  import type { SigningCallback } from './types.js';
3
3
  export declare function createViemSigner(client: WalletClient): SigningCallback;
4
- //# sourceMappingURL=signer.d.ts.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbDFfdHhfdXRpbHMvc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBZ0MsS0FBSyxZQUFZLEVBQW9CLE1BQU0sTUFBTSxDQUFDO0FBRXpGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVsRCx3QkFBZ0IsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFlBQVksbUJBb0JwRCJ9
@@ -64,4 +64,4 @@ export declare class UnknownMinedTxError extends Error {
64
64
  export declare class DroppedTransactionError extends Error {
65
65
  constructor(nonce: number, account: string);
66
66
  }
67
- //# sourceMappingURL=types.d.ts.map
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRixPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkQsTUFBTSxXQUFXLFdBQVc7SUFDMUIsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDbkIsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ1gsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDO0NBQ1g7QUFFRCxNQUFNLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRztJQUFFLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQTtDQUFFLENBQUM7QUFFOUYsTUFBTSxXQUFXLFlBQVk7SUFDM0IsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLEdBQUcsRUFBRSxlQUFlLENBQUM7SUFDckIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDM0I7QUFFRCxNQUFNLFdBQVcsUUFBUTtJQUN2QixZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMzQjtBQUVELE1BQU0sTUFBTSxnQkFBZ0IsR0FBRztJQUM3Qiw2QkFBNkI7SUFDN0IsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLCtCQUErQjtJQUMvQixlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLHVDQUF1QztJQUN2QyxZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLDRGQUE0RjtJQUM1RixXQUFXLEVBQUUsTUFBTSxDQUFDO0NBQ3JCLENBQUM7QUFFRixvQkFBWSxZQUFZO0lBQ3RCLElBQUksSUFBQTtJQUNKLElBQUksSUFBQTtJQUNKLFFBQVEsSUFBQTtJQUNSLFNBQVMsSUFBQTtJQUNULFNBQVMsSUFBQTtJQUNULEtBQUssSUFBQTtDQUNOO0FBRUQsZUFBTyxNQUFNLG9CQUFvQixnQkFBa0UsQ0FBQztBQUVwRyxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDaEIsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNuQixpQkFBaUIsRUFBRSxVQUFVLENBQUM7SUFDOUIsT0FBTyxFQUFFLFdBQVcsQ0FBQztJQUNyQixNQUFNLEVBQUUsWUFBWSxDQUFDO0lBQ3JCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLENBQUM7SUFDckIsT0FBTyxDQUFDLEVBQUUsa0JBQWtCLENBQUM7SUFDN0IsVUFBVSxFQUFFLFlBQVksR0FBRyxTQUFTLENBQUM7Q0FDdEMsQ0FBQztBQUVGLE1BQU0sTUFBTSxlQUFlLEdBQUcsQ0FDNUIsV0FBVyxFQUFFLHVCQUF1QixFQUNwQyxjQUFjLEVBQUUsVUFBVSxLQUN2QixPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUV2QyxxQkFBYSxtQkFBb0IsU0FBUSxLQUFLO0lBQzVDLFlBQVksS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUd6QztDQUNGO0FBRUQscUJBQWEsdUJBQXdCLFNBQVEsS0FBSztJQUNoRCxZQUFZLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFHekM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/types.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,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,MAAM,CAAC;AAE3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9F,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,YAAY;IACtB,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,SAAS,IAAA;IACT,KAAK,IAAA;CACN;AAED,eAAO,MAAM,oBAAoB,gBAAkE,CAAC;AAEpG,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,cAAc,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,UAAU,CAAC;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,EAAE,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,WAAW,EAAE,uBAAuB,EACpC,cAAc,EAAE,UAAU,KACvB,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEvC,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI3C;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI3C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/types.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,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,MAAM,CAAC;AAE3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9F,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,YAAY;IACtB,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,SAAS,IAAA;IACT,KAAK,IAAA;CACN;AAED,eAAO,MAAM,oBAAoB,gBAAkE,CAAC;AAEpG,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,cAAc,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,UAAU,CAAC;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,EAAE,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,WAAW,EAAE,uBAAuB,EACpC,cAAc,EAAE,UAAU,KACvB,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEvC,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAGzC;CACF;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAGzC;CACF"}
@@ -1,4 +1,4 @@
1
1
  import type { ContractFunctionExecutionError } from 'viem';
2
2
  export declare function tryGetCustomErrorNameContractFunction(err: ContractFunctionExecutionError): string;
3
3
  export declare function getCalldataGasUsage(data: Uint8Array): number;
4
- //# sourceMappingURL=utils.d.ts.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRCx3QkFBZ0IscUNBQXFDLENBQUMsR0FBRyxFQUFFLDhCQUE4QixVQUV4RjtBQU9ELHdCQUFnQixtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxVQUVuRCJ9
@@ -3,4 +3,4 @@ export type L1BlockId = {
3
3
  l1BlockNumber: bigint;
4
4
  l1BlockHash: Buffer32;
5
5
  };
6
- //# sourceMappingURL=l1_types.d.ts.map
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9sMV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsV0FBVyxFQUFFLFFBQVEsQ0FBQztDQUN2QixDQUFDIn0=
@@ -12,4 +12,4 @@ export declare class PublisherManager<UtilsType extends L1TxUtils = L1TxUtils> {
12
12
  getAvailablePublisher(filter?: PublisherFilter<UtilsType>): Promise<UtilsType>;
13
13
  interrupt(): void;
14
14
  }
15
- //# sourceMappingURL=publisher_manager.d.ts.map
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVyX21hbmFnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWJsaXNoZXJfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLHdCQUF3QixDQUFDO0FBd0JqRSxNQUFNLE1BQU0sZUFBZSxDQUFDLFNBQVMsU0FBUyxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxLQUFLLE9BQU8sQ0FBQztBQUV6RixxQkFBYSxnQkFBZ0IsQ0FBQyxTQUFTLFNBQVMsU0FBUyxHQUFHLFNBQVM7SUFLakUsT0FBTyxDQUFDLFVBQVU7SUFKcEIsT0FBTyxDQUFDLEdBQUcsQ0FBcUM7SUFDaEQsT0FBTyxDQUFDLE1BQU0sQ0FBNEM7SUFFMUQsWUFDVSxVQUFVLEVBQUUsU0FBUyxFQUFFLEVBQy9CLE1BQU0sRUFBRTtRQUFFLDJCQUEyQixDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQUUsRUFLbEQ7SUFFRCwrRUFBK0U7SUFDbEUsU0FBUyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFdEM7SUFRWSxxQkFBcUIsQ0FBQyxNQUFNLEdBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBYyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0ErQ3RHO0lBRU0sU0FBUyxTQUVmO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"publisher_manager.d.ts","sourceRoot":"","sources":["../src/publisher_manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAgB,MAAM,wBAAwB,CAAC;AAwBjE,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;AAEzF,qBAAa,gBAAgB,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS;IAKjE,OAAO,CAAC,UAAU;IAJpB,OAAO,CAAC,GAAG,CAAqC;IAChD,OAAO,CAAC,MAAM,CAA4C;gBAGhD,UAAU,EAAE,SAAS,EAAE,EAC/B,MAAM,EAAE;QAAE,2BAA2B,CAAC,EAAE,OAAO,CAAA;KAAE;IAOnD,+EAA+E;IAClE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAU1B,qBAAqB,CAAC,MAAM,GAAE,eAAe,CAAC,SAAS,CAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAiDhG,SAAS;CAGjB"}
1
+ {"version":3,"file":"publisher_manager.d.ts","sourceRoot":"","sources":["../src/publisher_manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAgB,MAAM,wBAAwB,CAAC;AAwBjE,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;AAEzF,qBAAa,gBAAgB,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS;IAKjE,OAAO,CAAC,UAAU;IAJpB,OAAO,CAAC,GAAG,CAAqC;IAChD,OAAO,CAAC,MAAM,CAA4C;IAE1D,YACU,UAAU,EAAE,SAAS,EAAE,EAC/B,MAAM,EAAE;QAAE,2BAA2B,CAAC,EAAE,OAAO,CAAA;KAAE,EAKlD;IAED,+EAA+E;IAClE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAEtC;IAQY,qBAAqB,CAAC,MAAM,GAAE,eAAe,CAAC,SAAS,CAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA+CtG;IAEM,SAAS,SAEf;CACF"}
package/dest/queries.d.ts CHANGED
@@ -11,4 +11,4 @@ export declare function getL1ContractsConfig(publicClient: ViemPublicClient, add
11
11
  rollupVersion: number;
12
12
  genesisArchiveTreeRoot: `0x${string}`;
13
13
  }>;
14
- //# sourceMappingURL=queries.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBS3JELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRW5ELHFEQUFxRDtBQUNyRCx3QkFBc0Isb0JBQW9CLENBQ3hDLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsU0FBUyxFQUFFO0lBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDO0lBQUMsYUFBYSxDQUFDLEVBQUUsVUFBVSxDQUFBO0NBQUUsR0FDdkUsT0FBTyxDQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyxHQUFHO0lBQ2hELFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHNCQUFzQixFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Q0FDdkMsQ0FDRixDQXFHQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qDAAqD;AACrD,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE;IAAE,iBAAiB,EAAE,UAAU,CAAC;IAAC,aAAa,CAAC,EAAE,UAAU,CAAA;CAAE,GACvE,OAAO,CACR,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAAG;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;CACvC,CACF,CA6FA"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qDAAqD;AACrD,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE;IAAE,iBAAiB,EAAE,UAAU,CAAC;IAAC,aAAa,CAAC,EAAE,UAAU,CAAA;CAAE,GACvE,OAAO,CACR,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAAG;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;CACvC,CACF,CAqGA"}
package/dest/queries.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import { ReadOnlyGovernanceContract } from './contracts/governance.js';
3
3
  import { GovernanceProposerContract } from './contracts/governance_proposer.js';
4
+ import { InboxContract } from './contracts/inbox.js';
4
5
  import { RollupContract } from './contracts/rollup.js';
5
6
  /** Reads the L1ContractsConfig from L1 contracts. */ export async function getL1ContractsConfig(publicClient, addresses) {
6
7
  const governance = new ReadOnlyGovernanceContract(addresses.governanceAddress.toString(), publicClient);
@@ -10,14 +11,18 @@ import { RollupContract } from './contracts/rollup.js';
10
11
  const rollup = new RollupContract(publicClient, rollupAddress.toString());
11
12
  const slasherProposer = await rollup.getSlashingProposer();
12
13
  const slasher = await rollup.getSlasherContract();
13
- const [l1StartBlock, l1GenesisTime, aztecEpochDuration, aztecSlotDuration, aztecProofSubmissionEpochs, aztecTargetCommitteeSize, lagInEpochs, activationThreshold, ejectionThreshold, localEjectionThreshold, governanceProposerQuorum, governanceProposerRoundSize, slashingQuorum, slashingRoundSize, slashingLifetimeInRounds, slashingExecutionDelayInRounds, slashingOffsetInRounds, slashingAmounts, slashingVetoer, slashingDisableDuration, manaTarget, provingCostPerMana, rollupVersion, genesisArchiveTreeRoot, exitDelay] = await Promise.all([
14
+ const rollupAddresses = await rollup.getRollupAddresses();
15
+ const inboxContract = new InboxContract(publicClient, rollupAddresses.inboxAddress.toString());
16
+ const [l1StartBlock, l1GenesisTime, aztecEpochDuration, aztecSlotDuration, aztecProofSubmissionEpochs, aztecTargetCommitteeSize, lagInEpochsForValidatorSet, lagInEpochsForRandao, inboxLag, activationThreshold, ejectionThreshold, localEjectionThreshold, governanceProposerQuorum, governanceProposerRoundSize, slashingQuorum, slashingRoundSize, slashingLifetimeInRounds, slashingExecutionDelayInRounds, slashingOffsetInRounds, slashingAmounts, slashingVetoer, slashingDisableDuration, manaTarget, provingCostPerMana, rollupVersion, genesisArchiveTreeRoot, exitDelay] = await Promise.all([
14
17
  rollup.getL1StartBlock(),
15
18
  rollup.getL1GenesisTime(),
16
19
  rollup.getEpochDuration(),
17
20
  rollup.getSlotDuration(),
18
21
  rollup.getProofSubmissionEpochs(),
19
22
  rollup.getTargetCommitteeSize(),
20
- rollup.getLagInEpochs(),
23
+ rollup.getLagInEpochsForValidatorSet(),
24
+ rollup.getLagInEpochsForRandao(),
25
+ inboxContract.getLag(),
21
26
  rollup.getActivationThreshold(),
22
27
  rollup.getEjectionThreshold(),
23
28
  rollup.getLocalEjectionThreshold(),
@@ -48,7 +53,9 @@ import { RollupContract } from './contracts/rollup.js';
48
53
  aztecSlotDuration: Number(aztecSlotDuration),
49
54
  aztecProofSubmissionEpochs: Number(aztecProofSubmissionEpochs),
50
55
  aztecTargetCommitteeSize: Number(aztecTargetCommitteeSize),
51
- lagInEpochs: Number(lagInEpochs),
56
+ lagInEpochsForValidatorSet: Number(lagInEpochsForValidatorSet),
57
+ lagInEpochsForRandao: Number(lagInEpochsForRandao),
58
+ inboxLag: Number(inboxLag),
52
59
  governanceProposerQuorum: Number(governanceProposerQuorum),
53
60
  governanceProposerRoundSize: Number(governanceProposerRoundSize),
54
61
  activationThreshold,
@@ -1,4 +1,5 @@
1
- import { type RollupContract } from '@aztec/ethereum/contracts';
1
+ import type { RollupContract } from '@aztec/ethereum/contracts';
2
+ import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
3
  import { EthAddress } from '@aztec/foundation/eth-address';
3
4
  import { DateProvider } from '@aztec/foundation/timer';
4
5
  import { EventEmitter } from 'events';
@@ -7,14 +8,16 @@ export type ChainMonitorEventMap = {
7
8
  l1BlockNumber: number;
8
9
  timestamp: bigint;
9
10
  }];
10
- 'l2-block': [{
11
- l2BlockNumber: number;
12
- l1BlockNumber: number;
13
- l2SlotNumber: number;
14
- timestamp: bigint;
15
- }];
16
- 'l2-block-proven': [{
17
- l2ProvenBlockNumber: number;
11
+ checkpoint: [
12
+ {
13
+ checkpointNumber: CheckpointNumber;
14
+ l1BlockNumber: number;
15
+ l2SlotNumber: SlotNumber;
16
+ timestamp: bigint;
17
+ }
18
+ ];
19
+ 'checkpoint-proven': [{
20
+ provenCheckpointNumber: CheckpointNumber;
18
21
  l1BlockNumber: number;
19
22
  timestamp: bigint;
20
23
  }];
@@ -23,12 +26,12 @@ export type ChainMonitorEventMap = {
23
26
  l1BlockNumber: number;
24
27
  }];
25
28
  'l2-epoch': [{
26
- l2EpochNumber: number;
29
+ l2EpochNumber: EpochNumber;
27
30
  timestamp: bigint;
28
31
  committee: EthAddress[] | undefined;
29
32
  }];
30
33
  'l2-slot': [{
31
- l2SlotNumber: number;
34
+ l2SlotNumber: SlotNumber;
32
35
  timestamp: bigint;
33
36
  }];
34
37
  };
@@ -44,29 +47,29 @@ export declare class ChainMonitor extends EventEmitter<ChainMonitorEventMap> {
44
47
  private running;
45
48
  /** Current L1 block number */
46
49
  l1BlockNumber: number;
47
- /** Current L2 block number */
48
- l2BlockNumber: number;
49
- /** Current L2 proven block number */
50
- l2ProvenBlockNumber: number;
51
- /** L1 timestamp for the current L2 block */
52
- l2BlockTimestamp: bigint;
53
- /** L1 timestamp for the proven L2 block */
54
- l2ProvenBlockTimestamp: bigint;
50
+ /** Current checkpoint number */
51
+ checkpointNumber: CheckpointNumber;
52
+ /** Current proven checkpoint number */
53
+ provenCheckpointNumber: CheckpointNumber;
54
+ /** L1 timestamp for the current checkpoint */
55
+ checkpointTimestamp: bigint;
56
+ /** L1 timestamp for the proven checkpoint */
57
+ provenCheckpointTimestamp: bigint;
55
58
  /** Total number of L2 messages pushed into the Inbox */
56
59
  totalL2Messages: number;
57
60
  /** Current L2 epoch number */
58
- l2EpochNumber: bigint;
61
+ l2EpochNumber: EpochNumber;
59
62
  /** Current L2 slot number */
60
- l2SlotNumber: bigint;
63
+ l2SlotNumber: SlotNumber;
61
64
  constructor(rollup: RollupContract, dateProvider?: DateProvider, logger?: import("@aztec/foundation/log").Logger, intervalMs?: number);
62
65
  start(): this;
63
66
  stop(): Promise<void>;
64
67
  private getInbox;
65
68
  protected safeRun(): void;
66
69
  run(force?: boolean): Promise<this>;
67
- waitUntilL2Slot(slot: number | bigint): Promise<void>;
70
+ waitUntilL2Slot(slot: SlotNumber): Promise<void>;
68
71
  waitUntilL1Block(block: number | bigint): Promise<void>;
69
72
  waitUntilL1Timestamp(timestamp: number | bigint): Promise<void>;
70
- waitUntilL2Block(l2BlockNumber: number | bigint): Promise<void>;
73
+ waitUntilCheckpoint(checkpointNumber: CheckpointNumber): Promise<void>;
71
74
  }
72
- //# sourceMappingURL=chain_monitor.d.ts.map
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fbW9uaXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvY2hhaW5fbW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUl0QyxNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsVUFBVSxFQUFFLENBQUM7UUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztJQUMzRCxVQUFVLEVBQUU7UUFDVjtZQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO1lBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztZQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7WUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO1NBQUU7S0FDM0csQ0FBQztJQUNGLG1CQUFtQixFQUFFLENBQUM7UUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztRQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7UUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQzlHLGFBQWEsRUFBRSxDQUFDO1FBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQztRQUFDLGFBQWEsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDcEUsVUFBVSxFQUFFLENBQUM7UUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztRQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDckcsU0FBUyxFQUFFLENBQUM7UUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztDQUM5RCxDQUFDO0FBRUYsOEdBQThHO0FBQzlHLHFCQUFhLFlBQWEsU0FBUSxZQUFZLENBQUMsb0JBQW9CLENBQUM7SUF5QmhFLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVTtJQTNCN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQWE7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBNEI7SUFDekMsT0FBTyxDQUFDLE1BQU0sQ0FBNkI7SUFFM0MsT0FBTyxDQUFDLE9BQU8sQ0FBaUM7SUFFaEQsOEJBQThCO0lBQ3ZCLGFBQWEsRUFBRyxNQUFNLENBQUM7SUFDOUIsZ0NBQWdDO0lBQ3pCLGdCQUFnQixFQUFHLGdCQUFnQixDQUFDO0lBQzNDLHVDQUF1QztJQUNoQyxzQkFBc0IsRUFBRyxnQkFBZ0IsQ0FBQztJQUNqRCw4Q0FBOEM7SUFDdkMsbUJBQW1CLEVBQUcsTUFBTSxDQUFDO0lBQ3BDLDZDQUE2QztJQUN0Qyx5QkFBeUIsRUFBRyxNQUFNLENBQUM7SUFDMUMsd0RBQXdEO0lBQ2pELGVBQWUsRUFBRSxNQUFNLENBQUs7SUFDbkMsOEJBQThCO0lBQ3ZCLGFBQWEsRUFBRyxXQUFXLENBQUM7SUFDbkMsNkJBQTZCO0lBQ3RCLFlBQVksRUFBRyxVQUFVLENBQUM7SUFFakMsWUFDbUIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLE1BQU0seUNBQThDLEVBQ3BELFVBQVUsU0FBTSxFQUlsQztJQUVELEtBQUssU0FNSjtJQUVLLElBQUksa0JBV1Q7WUFFYSxRQUFRO0lBUXRCLFNBQVMsQ0FBQyxPQUFPLFNBWWhCO0lBRUssR0FBRyxDQUFDLEtBQUssVUFBUSxpQkFnRnRCO0lBRU0sZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWF0RDtJQUVNLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjN0Q7SUFFTSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBY3JFO0lBRU0sbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWE1RTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../src/test/chain_monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,UAAU,EAAE,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxG,iBAAiB,EAAE,CAAC;QAAE,mBAAmB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,aAAa,EAAE,CAAC;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,UAAU,EAAE,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAChG,SAAS,EAAE,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D,CAAC;AAEF,8GAA8G;AAC9G,qBAAa,YAAa,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAyBhE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IA3B7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,OAAO,CAAiC;IAEhD,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,qCAAqC;IAC9B,mBAAmB,EAAG,MAAM,CAAC;IACpC,4CAA4C;IACrC,gBAAgB,EAAG,MAAM,CAAC;IACjC,2CAA2C;IACpC,sBAAsB,EAAG,MAAM,CAAC;IACvC,wDAAwD;IACjD,eAAe,EAAE,MAAM,CAAK;IACnC,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,6BAA6B;IACtB,YAAY,EAAG,MAAM,CAAC;gBAGV,MAAM,EAAE,cAAc,EACtB,YAAY,GAAE,YAAiC,EAC/C,MAAM,yCAA8C,EACpD,UAAU,SAAM;IAMnC,KAAK;IAQC,IAAI;YAaI,QAAQ;IAQtB,SAAS,CAAC,OAAO;IAcX,GAAG,CAAC,KAAK,UAAQ;IAkFhB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvD,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/D,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAevE"}
1
+ {"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../src/test/chain_monitor.ts"],"names":[],"mappings":"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"}