@aztec/ethereum 0.0.1-commit.6d3c34e → 0.0.1-commit.7ac86ea28

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 (138) hide show
  1. package/dest/config.d.ts +15 -28
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +50 -57
  4. package/dest/contracts/empire_base.d.ts +3 -1
  5. package/dest/contracts/empire_base.d.ts.map +1 -1
  6. package/dest/contracts/empire_slashing_proposer.d.ts +3 -1
  7. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  8. package/dest/contracts/empire_slashing_proposer.js +22 -15
  9. package/dest/contracts/fee_asset_handler.d.ts +1 -1
  10. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  11. package/dest/contracts/fee_asset_handler.js +2 -0
  12. package/dest/contracts/fee_asset_price_oracle.d.ts +101 -0
  13. package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
  14. package/dest/contracts/fee_asset_price_oracle.js +651 -0
  15. package/dest/contracts/governance.d.ts +3 -1
  16. package/dest/contracts/governance.d.ts.map +1 -1
  17. package/dest/contracts/governance.js +14 -4
  18. package/dest/contracts/governance_proposer.d.ts +3 -1
  19. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  20. package/dest/contracts/governance_proposer.js +13 -1
  21. package/dest/contracts/inbox.d.ts +18 -1
  22. package/dest/contracts/inbox.d.ts.map +1 -1
  23. package/dest/contracts/inbox.js +32 -1
  24. package/dest/contracts/index.d.ts +3 -1
  25. package/dest/contracts/index.d.ts.map +1 -1
  26. package/dest/contracts/index.js +2 -0
  27. package/dest/contracts/log.d.ts +13 -0
  28. package/dest/contracts/log.d.ts.map +1 -0
  29. package/dest/contracts/log.js +1 -0
  30. package/dest/contracts/multicall.d.ts +1 -1
  31. package/dest/contracts/multicall.d.ts.map +1 -1
  32. package/dest/contracts/multicall.js +2 -1
  33. package/dest/contracts/rollup.d.ts +35 -3
  34. package/dest/contracts/rollup.d.ts.map +1 -1
  35. package/dest/contracts/rollup.js +76 -6
  36. package/dest/contracts/tally_slashing_proposer.d.ts +1 -1
  37. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  38. package/dest/contracts/tally_slashing_proposer.js +8 -1
  39. package/dest/deploy_aztec_l1_contracts.d.ts +7 -3
  40. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
  41. package/dest/deploy_aztec_l1_contracts.js +56 -28
  42. package/dest/deploy_l1_contract.js +3 -3
  43. package/dest/generated/l1-contracts-defaults.d.ts +30 -0
  44. package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
  45. package/dest/generated/l1-contracts-defaults.js +30 -0
  46. package/dest/l1_artifacts.d.ts +2405 -473
  47. package/dest/l1_artifacts.d.ts.map +1 -1
  48. package/dest/l1_tx_utils/config.d.ts +7 -1
  49. package/dest/l1_tx_utils/config.d.ts.map +1 -1
  50. package/dest/l1_tx_utils/config.js +14 -1
  51. package/dest/l1_tx_utils/constants.d.ts +1 -1
  52. package/dest/l1_tx_utils/constants.js +2 -2
  53. package/dest/l1_tx_utils/factory.d.ts +18 -10
  54. package/dest/l1_tx_utils/factory.d.ts.map +1 -1
  55. package/dest/l1_tx_utils/factory.js +17 -7
  56. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +1 -1
  57. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +1 -1
  58. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +15 -15
  59. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -1
  60. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +9 -15
  61. package/dest/l1_tx_utils/index-blobs.d.ts +3 -3
  62. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -1
  63. package/dest/l1_tx_utils/index-blobs.js +2 -2
  64. package/dest/l1_tx_utils/index.d.ts +2 -1
  65. package/dest/l1_tx_utils/index.d.ts.map +1 -1
  66. package/dest/l1_tx_utils/index.js +1 -0
  67. package/dest/l1_tx_utils/l1_tx_utils.d.ts +15 -5
  68. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
  69. package/dest/l1_tx_utils/l1_tx_utils.js +47 -13
  70. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +3 -3
  71. package/dest/l1_tx_utils/tx_delayer.d.ts +56 -0
  72. package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
  73. package/dest/{test → l1_tx_utils}/tx_delayer.js +62 -34
  74. package/dest/publisher_manager.d.ts +3 -2
  75. package/dest/publisher_manager.d.ts.map +1 -1
  76. package/dest/publisher_manager.js +2 -2
  77. package/dest/queries.d.ts +2 -2
  78. package/dest/queries.d.ts.map +1 -1
  79. package/dest/queries.js +4 -1
  80. package/dest/test/eth_cheat_codes.d.ts +13 -1
  81. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  82. package/dest/test/index.d.ts +1 -3
  83. package/dest/test/index.d.ts.map +1 -1
  84. package/dest/test/index.js +0 -2
  85. package/dest/test/rollup_cheat_codes.d.ts +4 -2
  86. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  87. package/dest/test/rollup_cheat_codes.js +10 -1
  88. package/dest/test/start_anvil.js +1 -1
  89. package/dest/test/upgrade_utils.js +2 -2
  90. package/dest/utils.d.ts +2 -1
  91. package/dest/utils.d.ts.map +1 -1
  92. package/dest/utils.js +46 -0
  93. package/package.json +8 -7
  94. package/src/config.ts +58 -56
  95. package/src/contracts/README.md +157 -0
  96. package/src/contracts/empire_base.ts +2 -0
  97. package/src/contracts/empire_slashing_proposer.ts +22 -27
  98. package/src/contracts/fee_asset_handler.ts +2 -0
  99. package/src/contracts/fee_asset_price_oracle.ts +280 -0
  100. package/src/contracts/governance.ts +13 -4
  101. package/src/contracts/governance_proposer.ts +10 -1
  102. package/src/contracts/inbox.ts +48 -1
  103. package/src/contracts/index.ts +2 -0
  104. package/src/contracts/log.ts +13 -0
  105. package/src/contracts/multicall.ts +5 -2
  106. package/src/contracts/rollup.ts +111 -11
  107. package/src/contracts/tally_slashing_proposer.ts +5 -1
  108. package/src/deploy_aztec_l1_contracts.ts +80 -35
  109. package/src/deploy_l1_contract.ts +3 -3
  110. package/src/generated/l1-contracts-defaults.ts +32 -0
  111. package/src/l1_tx_utils/config.ts +20 -0
  112. package/src/l1_tx_utils/constants.ts +2 -2
  113. package/src/l1_tx_utils/factory.ts +31 -31
  114. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +1 -1
  115. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +1 -1
  116. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +43 -54
  117. package/src/l1_tx_utils/index-blobs.ts +2 -2
  118. package/src/l1_tx_utils/index.ts +1 -0
  119. package/src/l1_tx_utils/l1_tx_utils.ts +52 -17
  120. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +3 -3
  121. package/src/{test → l1_tx_utils}/tx_delayer.ts +78 -50
  122. package/src/publisher_manager.ts +4 -2
  123. package/src/queries.ts +3 -1
  124. package/src/test/index.ts +0 -2
  125. package/src/test/rollup_cheat_codes.ts +11 -2
  126. package/src/test/start_anvil.ts +1 -1
  127. package/src/test/upgrade_utils.ts +2 -2
  128. package/src/utils.ts +53 -0
  129. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
  130. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
  131. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
  132. package/dest/test/delayed_tx_utils.d.ts +0 -13
  133. package/dest/test/delayed_tx_utils.d.ts.map +0 -1
  134. package/dest/test/delayed_tx_utils.js +0 -28
  135. package/dest/test/tx_delayer.d.ts +0 -36
  136. package/dest/test/tx_delayer.d.ts.map +0 -1
  137. package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
  138. 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 { EthSigner } from '../eth-signer/eth-signer.js';
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 { L1TxUtilsWithBlobs } from './l1_tx_utils_with_blobs.js';
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 L1TxUtilsWithBlobs to wrap all transactions through a forwarder contract.
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 L1TxUtilsWithBlobs {
16
+ export declare class ForwarderL1TxUtils extends L1TxUtils {
15
17
  private readonly forwarderAddress;
16
- constructor(client: ViemClient | ExtendedViemWalletClient, senderAddress: EthAddress, signingCallback: SigningCallback, logger: Logger | undefined, dateProvider: DateProvider | undefined, config: Partial<L1TxUtilsConfig>, debugMaxGasLimit: boolean, store: IL1TxStore | undefined, metrics: IL1TxMetrics | undefined, forwarderAddress: EthAddress);
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 createForwarderL1TxUtilsFromViemWallet(client: ExtendedViemWalletClient, forwarderAddress: EthAddress, deps?: {
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
- }, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean): ForwarderL1TxUtils;
35
- export declare function createForwarderL1TxUtilsFromEthSigner(client: ViemClient, signer: EthSigner, forwarderAddress: EthAddress, deps?: {
36
- logger?: Logger;
37
- dateProvider?: DateProvider;
38
- store?: IL1TxStore;
39
- metrics?: IL1TxMetrics;
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;AAI5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzF;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,kBAAkB;IAWtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAVnC,YACE,MAAM,EAAE,UAAU,GAAG,wBAAwB,EAC7C,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,EAChB,gBAAgB,EAAE,UAAU,EAG9C;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,sCAAsC,CACpD,MAAM,EAAE,wBAAwB,EAChC,gBAAgB,EAAE,UAAU,EAC5B,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACnB,EACN,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,gBAAgB,GAAE,OAAe,sBAclC;AAED,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,SAAS,EACjB,gBAAgB,EAAE,UAAU,EAC5B,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACnB,EACN,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,gBAAgB,GAAE,OAAe,sBAkBlC"}
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 { L1TxUtilsWithBlobs } from './l1_tx_utils_with_blobs.js';
5
- import { createViemSigner } from './signer.js';
3
+ import { resolveSignerSource } from './factory.js';
4
+ import { L1TxUtils } from './l1_tx_utils.js';
6
5
  /**
7
- * Extends L1TxUtilsWithBlobs to wrap all transactions through a forwarder contract.
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 L1TxUtilsWithBlobs {
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 createForwarderL1TxUtilsFromViemWallet(client, forwarderAddress, deps = {}, config = {}, debugMaxGasLimit = false) {
41
- return new ForwarderL1TxUtils(client, EthAddress.fromString(client.account.address), createViemSigner(client), deps.logger, deps.dateProvider, config, debugMaxGasLimit, deps.store, deps.metrics, forwarderAddress);
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 * from './forwarder_l1_tx_utils.js';
2
- export * from './l1_tx_utils_with_blobs.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtYmxvYnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9pbmRleC1ibG9icy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUMifQ==
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,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC"}
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 * from './forwarder_l1_tx_utils.js';
2
- export * from './l1_tx_utils_with_blobs.js';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQyJ9
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
5
  import { type Abi, type BlockOverrides, type Hex, type NonceManager, 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;
@@ -15,7 +17,11 @@ export declare class L1TxUtils extends ReadOnlyL1TxUtils {
15
17
  protected metrics?: IL1TxMetrics | undefined;
16
18
  protected nonceManager: NonceManager;
17
19
  protected txs: L1TxState[];
18
- constructor(client: ViemClient, address: EthAddress, signer: SigningCallback, logger?: Logger, dateProvider?: DateProvider, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean, store?: IL1TxStore | undefined, metrics?: IL1TxMetrics | undefined);
20
+ /** Tx delayer for testing. Only set when enableDelayer config is true. */
21
+ delayer?: Delayer;
22
+ /** KZG instance for blob operations. */
23
+ protected kzg?: BlobKzgInstance;
24
+ 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
25
  get state(): TxUtilsState;
20
26
  get lastMinedAtBlockNumber(): bigint | undefined;
21
27
  protected updateState(l1TxState: L1TxState, newState: TxUtilsState.MINED, l1Timestamp: number): Promise<void>;
@@ -88,7 +94,11 @@ export declare class L1TxUtils extends ReadOnlyL1TxUtils {
88
94
  */
89
95
  protected attemptTxCancellation(state: L1TxState): Promise<void>;
90
96
  private getL1Timestamp;
91
- /** Makes empty blob inputs for the cancellation tx. To be overridden in L1TxUtilsWithBlobs. */
92
- protected makeEmptyBlobInputs(_maxFeePerBlobGas: bigint): Required<L1BlobInputs>;
97
+ /** Makes empty blob inputs for the cancellation tx. */
98
+ protected makeEmptyBlobInputs(maxFeePerBlobGas: bigint): Required<L1BlobInputs>;
99
+ /** Creates a new delayer instance. */
100
+ protected createDelayer(opts: {
101
+ ethereumSlotDuration: bigint | number;
102
+ }, bindings: LoggerBindings): Delayer;
93
103
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9sMV90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl2RCxPQUFPLEVBQ0wsS0FBSyxHQUFHLEVBQ1IsS0FBSyxjQUFjLEVBQ25CLEtBQUssR0FBRyxFQUNSLEtBQUssWUFBWSxFQUNqQixLQUFLLGdDQUFnQyxFQUNyQyxLQUFLLGFBQWEsRUFDbEIsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSxNQUFNLENBQUM7QUFHZCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUU1RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUVMLEtBQUssWUFBWSxFQUNqQixLQUFLLFVBQVUsRUFDZixLQUFLLFdBQVcsRUFDaEIsS0FBSyxTQUFTLEVBQ2QsS0FBSyxlQUFlLEVBRXBCLFlBQVksRUFFYixNQUFNLFlBQVksQ0FBQztBQUlwQixxQkFBYSxTQUFVLFNBQVEsaUJBQWlCO0lBSzVCLE1BQU0sRUFBRSxVQUFVO0lBQzNCLE9BQU8sRUFBRSxVQUFVO0lBQzFCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZUFBZTtJQUtqQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ2hCLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFacEIsU0FBUyxDQUFDLFlBQVksRUFB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
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9sMV90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUk3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl2RCxPQUFPLEVBQ0wsS0FBSyxHQUFHLEVBQ1IsS0FBSyxjQUFjLEVBQ25CLEtBQUssR0FBRyxFQUNSLEtBQUssWUFBWSxFQUNqQixLQUFLLGdDQUFnQyxFQUNyQyxLQUFLLGFBQWEsRUFDbEIsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSxNQUFNLENBQUM7QUFHZCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUU1RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBd0MsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBRUwsS0FBSyxZQUFZLEVBQ2pCLEtBQUssVUFBVSxFQUNmLEtBQUssV0FBVyxFQUNoQixLQUFLLFNBQVMsRUFDZCxLQUFLLGVBQWUsRUFFcEIsWUFBWSxFQUViLE1BQU0sWUFBWSxDQUFDO0FBSXBCLHFCQUFhLFNBQVUsU0FBUSxpQkFBaUI7SUFTNUIsTUFBTSxFQUFFLFVBQVU7SUFDM0IsT0FBTyxFQUFFLFVBQVU7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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":"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"}
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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"}
@@ -11,8 +11,9 @@ import { createNonceManager, formatGwei, serializeTransaction } from 'viem';
11
11
  import { jsonRpc } from 'viem/nonce';
12
12
  import { formatViemError } from '../utils.js';
13
13
  import { l1TxUtilsConfigMappings } from './config.js';
14
- import { LARGE_GAS_LIMIT } from './constants.js';
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 {
@@ -23,11 +24,28 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
23
24
  metrics;
24
25
  nonceManager;
25
26
  txs;
26
- constructor(client, address, signer, logger = createLogger('ethereum:publisher'), dateProvider = new DateProvider(), config, debugMaxGasLimit = false, store, metrics){
27
+ /** Tx delayer for testing. Only set when enableDelayer config is true. */ delayer;
28
+ /** KZG instance for blob operations. */ kzg;
29
+ constructor(client, address, signer, logger = createLogger('ethereum:publisher'), dateProvider = new DateProvider(), config, debugMaxGasLimit = false, store, metrics, kzg, delayer){
27
30
  super(client, logger, dateProvider, config, debugMaxGasLimit), this.client = client, this.address = address, this.signer = signer, this.store = store, this.metrics = metrics, this.txs = [];
28
31
  this.nonceManager = createNonceManager({
29
32
  source: jsonRpc()
30
33
  });
34
+ this.kzg = kzg;
35
+ // Set up delayer: use provided one or create new
36
+ if (config?.enableDelayer && config?.ethereumSlotDuration) {
37
+ this.delayer = delayer ?? this.createDelayer({
38
+ ethereumSlotDuration: config.ethereumSlotDuration
39
+ }, logger.getBindings());
40
+ this.client = wrapClientWithDelayer(this.client, this.delayer);
41
+ if (config.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
42
+ this.delayer.setMaxInclusionTimeIntoSlot(config.txDelayerMaxInclusionTimeIntoSlot);
43
+ }
44
+ } else if (delayer) {
45
+ // Delayer provided but enableDelayer not set — just store it without wrapping
46
+ logger.warn('Delayer provided but enableDelayer config is not set; delayer will not be used');
47
+ this.delayer = delayer;
48
+ }
31
49
  }
32
50
  get state() {
33
51
  return this.txs.at(-1)?.status ?? TxUtilsState.IDLE;
@@ -134,7 +152,7 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
134
152
  const account = this.getSenderAddress().toString();
135
153
  let gasLimit;
136
154
  if (this.debugMaxGasLimit) {
137
- gasLimit = LARGE_GAS_LIMIT;
155
+ gasLimit = MAX_L1_TX_LIMIT;
138
156
  } else if (gasConfig.gasLimit) {
139
157
  gasLimit = gasConfig.gasLimit;
140
158
  } else {
@@ -148,6 +166,13 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
148
166
  if (this.interrupted) {
149
167
  throw new InterruptError(`Transaction sending is interrupted`);
150
168
  }
169
+ // Check timeout before consuming nonce to avoid leaking a nonce that was never sent.
170
+ // A leaked nonce creates a gap (e.g. nonce 107 consumed but unsent), so all subsequent
171
+ // transactions (108, 109, ...) can never be mined since the chain expects 107 first.
172
+ const now = new Date(await this.getL1Timestamp());
173
+ if (gasConfig.txTimeoutAt && now > gasConfig.txTimeoutAt) {
174
+ throw new TimeoutError(`Transaction timed out before sending (now ${now.toISOString()} > timeoutAt ${gasConfig.txTimeoutAt.toISOString()})`);
175
+ }
151
176
  const nonce = await this.nonceManager.consume({
152
177
  client: this.client,
153
178
  address: account,
@@ -163,10 +188,6 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
163
188
  const txData = this.makeTxData(baseState, {
164
189
  isCancelTx: false
165
190
  });
166
- const now = new Date(await this.getL1Timestamp());
167
- if (gasConfig.txTimeoutAt && now > gasConfig.txTimeoutAt) {
168
- throw new TimeoutError(`Transaction timed out before sending (now ${now.toISOString()} > timeoutAt ${gasConfig.txTimeoutAt.toISOString()})`);
169
- }
170
191
  // Send the new tx
171
192
  const signedRequest = await this.prepareSignedTransaction(txData);
172
193
  const txHash = await this.client.sendRawTransaction({
@@ -217,7 +238,7 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
217
238
  };
218
239
  } catch (err) {
219
240
  const viemError = formatViemError(err, request.abi);
220
- this.logger.error(`Failed to send L1 transaction`, viemError, {
241
+ this.logger.error(`Failed to send L1 transaction: ${viemError.message}`, viemError, {
221
242
  request: pick(request, 'to', 'value')
222
243
  });
223
244
  throw viemError;
@@ -522,11 +543,11 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
522
543
  from: request.from ?? this.getSenderAddress().toString(),
523
544
  maxFeePerGas: gasPrice.maxFeePerGas,
524
545
  maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas,
525
- gas: request.gas ?? LARGE_GAS_LIMIT
546
+ gas: request.gas ?? MAX_L1_TX_LIMIT
526
547
  };
527
548
  if (!request.gas && !gasConfig.ignoreBlockGasLimit) {
528
- // LARGE_GAS_LIMIT is set as call.gas, increase block gasLimit
529
- blockOverrides.gasLimit = LARGE_GAS_LIMIT * 2n;
549
+ // MAX_L1_TX_LIMIT is set as call.gas, ensure block gasLimit is sufficient
550
+ blockOverrides.gasLimit = MAX_L1_TX_LIMIT;
530
551
  }
531
552
  return this._simulate(call, blockOverrides, stateOverrides, gasConfig, abi);
532
553
  }
@@ -617,7 +638,20 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
617
638
  });
618
639
  return Number(timestamp) * 1000;
619
640
  }
620
- /** Makes empty blob inputs for the cancellation tx. To be overridden in L1TxUtilsWithBlobs. */ makeEmptyBlobInputs(_maxFeePerBlobGas) {
621
- throw new Error('Cannot make empty blob inputs for cancellation');
641
+ /** Makes empty blob inputs for the cancellation tx. */ makeEmptyBlobInputs(maxFeePerBlobGas) {
642
+ if (!this.kzg) {
643
+ throw new Error('Cannot make empty blob inputs for cancellation without kzg');
644
+ }
645
+ const blobData = new Uint8Array(131072).fill(0);
646
+ return {
647
+ blobs: [
648
+ blobData
649
+ ],
650
+ kzg: this.kzg,
651
+ maxFeePerBlobGas
652
+ };
653
+ }
654
+ /** Creates a new delayer instance. */ createDelayer(opts, bindings) {
655
+ return createDelayer(this.dateProvider, opts, bindings);
622
656
  }
623
657
  }
@@ -5,7 +5,7 @@ import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
5
5
  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
- import { BLOCK_TIME_MS, LARGE_GAS_LIMIT, MIN_BLOB_REPLACEMENT_BUMP_PERCENTAGE, MIN_REPLACEMENT_BUMP_PERCENTAGE, WEI_CONST } from './constants.js';
8
+ import { BLOCK_TIME_MS, MAX_L1_TX_LIMIT, MIN_BLOB_REPLACEMENT_BUMP_PERCENTAGE, MIN_REPLACEMENT_BUMP_PERCENTAGE, WEI_CONST } from './constants.js';
9
9
  import { P75AllTxsPriorityFeeStrategy } from './fee-strategies/index.js';
10
10
  import { getCalldataGasUsage, tryGetCustomErrorNameContractFunction } from './utils.js';
11
11
  // Change this to the current strategy we want to use
@@ -170,7 +170,7 @@ export class ReadOnlyL1TxUtils {
170
170
  ...request,
171
171
  ..._blobInputs,
172
172
  maxFeePerBlobGas: gasPrice.maxFeePerBlobGas,
173
- gas: LARGE_GAS_LIMIT,
173
+ gas: MAX_L1_TX_LIMIT,
174
174
  blockTag: 'latest'
175
175
  });
176
176
  this.logger?.trace(`Estimated gas for blob tx: ${initialEstimate}`);
@@ -178,7 +178,7 @@ export class ReadOnlyL1TxUtils {
178
178
  initialEstimate = await this.client.estimateGas({
179
179
  account,
180
180
  ...request,
181
- gas: LARGE_GAS_LIMIT,
181
+ gas: MAX_L1_TX_LIMIT,
182
182
  blockTag: 'latest'
183
183
  });
184
184
  this.logger?.trace(`Estimated gas for non-blob tx: ${initialEstimate}`);
@@ -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"}