@aztec/ethereum 0.0.1-commit.0c875d939 → 0.0.1-commit.0dc957cde

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 (152) hide show
  1. package/dest/client.d.ts +16 -2
  2. package/dest/client.d.ts.map +1 -1
  3. package/dest/client.js +27 -7
  4. package/dest/config.d.ts +8 -6
  5. package/dest/config.d.ts.map +1 -1
  6. package/dest/config.js +14 -10
  7. package/dest/contracts/chain_state_override.d.ts +38 -0
  8. package/dest/contracts/chain_state_override.d.ts.map +1 -0
  9. package/dest/contracts/chain_state_override.js +100 -0
  10. package/dest/contracts/empire_base.d.ts +3 -1
  11. package/dest/contracts/empire_base.d.ts.map +1 -1
  12. package/dest/contracts/fee_asset_price_oracle.d.ts +2 -1
  13. package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -1
  14. package/dest/contracts/fee_asset_price_oracle.js +20 -3
  15. package/dest/contracts/governance.js +3 -3
  16. package/dest/contracts/governance_proposer.d.ts +3 -1
  17. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  18. package/dest/contracts/governance_proposer.js +9 -0
  19. package/dest/contracts/inbox.d.ts +3 -3
  20. package/dest/contracts/inbox.d.ts.map +1 -1
  21. package/dest/contracts/inbox.js +11 -6
  22. package/dest/contracts/index.d.ts +3 -3
  23. package/dest/contracts/index.d.ts.map +1 -1
  24. package/dest/contracts/index.js +2 -2
  25. package/dest/contracts/multicall.d.ts +51 -2
  26. package/dest/contracts/multicall.d.ts.map +1 -1
  27. package/dest/contracts/multicall.js +85 -0
  28. package/dest/contracts/registry.d.ts +3 -1
  29. package/dest/contracts/registry.d.ts.map +1 -1
  30. package/dest/contracts/registry.js +30 -1
  31. package/dest/contracts/rollup.d.ts +4984 -25
  32. package/dest/contracts/rollup.d.ts.map +1 -1
  33. package/dest/contracts/rollup.js +314 -61
  34. package/dest/contracts/{tally_slashing_proposer.d.ts → slashing_proposer.d.ts} +3 -4
  35. package/dest/contracts/slashing_proposer.d.ts.map +1 -0
  36. package/dest/contracts/{tally_slashing_proposer.js → slashing_proposer.js} +13 -15
  37. package/dest/deploy_aztec_l1_contracts.d.ts +4 -8
  38. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
  39. package/dest/deploy_aztec_l1_contracts.js +2 -4
  40. package/dest/deploy_l1_contract.js +3 -3
  41. package/dest/generated/l1-contracts-defaults.d.ts +2 -2
  42. package/dest/generated/l1-contracts-defaults.js +2 -2
  43. package/dest/l1_artifacts.d.ts +9384 -15802
  44. package/dest/l1_artifacts.d.ts.map +1 -1
  45. package/dest/l1_artifacts.js +9 -24
  46. package/dest/l1_contract_addresses.d.ts +1 -5
  47. package/dest/l1_contract_addresses.d.ts.map +1 -1
  48. package/dest/l1_contract_addresses.js +0 -6
  49. package/dest/l1_reader.d.ts +3 -1
  50. package/dest/l1_reader.d.ts.map +1 -1
  51. package/dest/l1_reader.js +6 -1
  52. package/dest/l1_tx_utils/config.d.ts +7 -1
  53. package/dest/l1_tx_utils/config.d.ts.map +1 -1
  54. package/dest/l1_tx_utils/config.js +14 -1
  55. package/dest/l1_tx_utils/factory.d.ts +18 -10
  56. package/dest/l1_tx_utils/factory.d.ts.map +1 -1
  57. package/dest/l1_tx_utils/factory.js +17 -7
  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 +20 -7
  68. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
  69. package/dest/l1_tx_utils/l1_tx_utils.js +75 -51
  70. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -1
  71. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
  72. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +8 -4
  73. package/dest/l1_tx_utils/tx_delayer.d.ts +56 -0
  74. package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
  75. package/dest/{test → l1_tx_utils}/tx_delayer.js +62 -34
  76. package/dest/publisher_manager.d.ts +21 -7
  77. package/dest/publisher_manager.d.ts.map +1 -1
  78. package/dest/publisher_manager.js +81 -7
  79. package/dest/queries.d.ts +13 -2
  80. package/dest/queries.d.ts.map +1 -1
  81. package/dest/queries.js +62 -3
  82. package/dest/test/chain_monitor.d.ts +23 -3
  83. package/dest/test/chain_monitor.d.ts.map +1 -1
  84. package/dest/test/chain_monitor.js +38 -2
  85. package/dest/test/eth_cheat_codes.d.ts +6 -4
  86. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  87. package/dest/test/eth_cheat_codes.js +6 -4
  88. package/dest/test/index.d.ts +1 -3
  89. package/dest/test/index.d.ts.map +1 -1
  90. package/dest/test/index.js +0 -2
  91. package/dest/test/rollup_cheat_codes.d.ts +5 -1
  92. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  93. package/dest/test/rollup_cheat_codes.js +9 -1
  94. package/dest/test/start_anvil.d.ts +23 -3
  95. package/dest/test/start_anvil.d.ts.map +1 -1
  96. package/dest/test/start_anvil.js +143 -29
  97. package/dest/test/upgrade_utils.js +2 -2
  98. package/dest/utils.d.ts +1 -1
  99. package/dest/utils.d.ts.map +1 -1
  100. package/dest/utils.js +16 -12
  101. package/package.json +5 -7
  102. package/src/client.ts +28 -2
  103. package/src/config.ts +23 -14
  104. package/src/contracts/chain_state_override.ts +147 -0
  105. package/src/contracts/empire_base.ts +2 -0
  106. package/src/contracts/fee_asset_price_oracle.ts +20 -2
  107. package/src/contracts/governance.ts +3 -3
  108. package/src/contracts/governance_proposer.ts +6 -0
  109. package/src/contracts/inbox.ts +12 -4
  110. package/src/contracts/index.ts +2 -2
  111. package/src/contracts/multicall.ts +65 -1
  112. package/src/contracts/registry.ts +31 -1
  113. package/src/contracts/rollup.ts +349 -69
  114. package/src/contracts/{tally_slashing_proposer.ts → slashing_proposer.ts} +14 -16
  115. package/src/deploy_aztec_l1_contracts.ts +20 -7
  116. package/src/deploy_l1_contract.ts +3 -3
  117. package/src/generated/l1-contracts-defaults.ts +2 -2
  118. package/src/l1_artifacts.ts +12 -35
  119. package/src/l1_contract_addresses.ts +0 -7
  120. package/src/l1_reader.ts +13 -1
  121. package/src/l1_tx_utils/config.ts +20 -0
  122. package/src/l1_tx_utils/factory.ts +31 -31
  123. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +43 -54
  124. package/src/l1_tx_utils/index-blobs.ts +2 -2
  125. package/src/l1_tx_utils/index.ts +1 -0
  126. package/src/l1_tx_utils/l1_tx_utils.ts +68 -30
  127. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +8 -4
  128. package/src/{test → l1_tx_utils}/tx_delayer.ts +78 -50
  129. package/src/publisher_manager.ts +105 -10
  130. package/src/queries.ts +70 -4
  131. package/src/test/chain_monitor.ts +65 -3
  132. package/src/test/eth_cheat_codes.ts +6 -4
  133. package/src/test/index.ts +0 -2
  134. package/src/test/rollup_cheat_codes.ts +11 -1
  135. package/src/test/start_anvil.ts +177 -29
  136. package/src/test/upgrade_utils.ts +2 -2
  137. package/src/utils.ts +17 -14
  138. package/dest/contracts/empire_slashing_proposer.d.ts +0 -67
  139. package/dest/contracts/empire_slashing_proposer.d.ts.map +0 -1
  140. package/dest/contracts/empire_slashing_proposer.js +0 -207
  141. package/dest/contracts/tally_slashing_proposer.d.ts.map +0 -1
  142. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
  143. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
  144. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
  145. package/dest/test/delayed_tx_utils.d.ts +0 -13
  146. package/dest/test/delayed_tx_utils.d.ts.map +0 -1
  147. package/dest/test/delayed_tx_utils.js +0 -28
  148. package/dest/test/tx_delayer.d.ts +0 -36
  149. package/dest/test/tx_delayer.d.ts.map +0 -1
  150. package/src/contracts/empire_slashing_proposer.ts +0 -259
  151. package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
  152. package/src/test/delayed_tx_utils.ts +0 -52
package/dest/client.d.ts CHANGED
@@ -8,11 +8,25 @@ type Config = {
8
8
  l1ChainId: number;
9
9
  /** The polling interval viem uses in ms */
10
10
  viemPollingIntervalMS?: number;
11
+ /** Timeout for HTTP requests to the L1 RPC node in ms. */
12
+ l1HttpTimeoutMS?: number;
11
13
  };
12
14
  export type { Config as EthereumClientConfig };
15
+ /** Creates a viem fallback HTTP transport for the given L1 RPC URLs. */
16
+ export declare function makeL1HttpTransport(rpcUrls: string[], opts?: {
17
+ timeout?: number;
18
+ }): import("viem").FallbackTransport<import("viem").HttpTransport<undefined, false>[]>;
19
+ /**
20
+ * Returns the individual RPC URLs underlying a viem public client that was constructed with a
21
+ * fallback HTTP transport (see {@link makeL1HttpTransport}). Returns an empty array if the
22
+ * transport shape is not recognized (e.g. mock clients in tests, or non-fallback transports).
23
+ */
24
+ export declare function getRpcUrlsFromClient(client: ViemPublicClient): string[];
13
25
  /** Returns a viem public client given the L1 config. */
14
26
  export declare function getPublicClient(config: Config): ViemPublicClient;
15
27
  /** Returns a viem public client after waiting for the L1 RPC node to become available. */
16
28
  export declare function waitForPublicClient(config: Config, logger?: Logger): Promise<ViemPublicClient>;
17
- export declare function createExtendedL1Client(rpcUrls: string[], mnemonicOrPrivateKeyOrHdAccount: string | HDAccount | PrivateKeyAccount | LocalAccount, chain?: Chain, pollingIntervalMS?: number, addressIndex?: number): ExtendedViemWalletClient;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3BELE9BQU8sRUFDTCxLQUFLLEtBQUssRUFDVixLQUFLLFNBQVMsRUFDZCxLQUFLLFlBQVksRUFDakIsS0FBSyxpQkFBaUIsRUFNdkIsTUFBTSxNQUFNLENBQUM7QUFLZCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3RSxLQUFLLE1BQU0sR0FBRztJQUNaLDBGQUEwRjtJQUMxRixTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEIseUNBQXlDO0lBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsMkNBQTJDO0lBQzNDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2hDLENBQUM7QUFFRixZQUFZLEVBQUUsTUFBTSxJQUFJLG9CQUFvQixFQUFFLENBQUM7QUFJL0Msd0RBQXdEO0FBQ3hELHdCQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxnQkFBZ0IsQ0FPaEU7QUFFRCwwRkFBMEY7QUFDMUYsd0JBQXNCLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUlwRztBQXlCRCx3QkFBZ0Isc0JBQXNCLENBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFDakIsK0JBQStCLEVBQUUsTUFBTSxHQUFHLFNBQVMsR0FBRyxpQkFBaUIsR0FBRyxZQUFZLEVBQ3RGLEtBQUssR0FBRSxLQUFlLEVBQ3RCLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxFQUMxQixZQUFZLENBQUMsRUFBRSxNQUFNLEdBQ3BCLHdCQUF3QixDQWdCMUIifQ==
29
+ export declare function createExtendedL1Client(rpcUrls: string[], mnemonicOrPrivateKeyOrHdAccount: string | HDAccount | PrivateKeyAccount | LocalAccount, chain?: Chain, pollingIntervalMS?: number, addressIndex?: number, opts?: {
30
+ httpTimeoutMS?: number;
31
+ }): ExtendedViemWalletClient;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3BELE9BQU8sRUFDTCxLQUFLLEtBQUssRUFDVixLQUFLLFNBQVMsRUFDZCxLQUFLLFlBQVksRUFDakIsS0FBSyxpQkFBaUIsRUFNdkIsTUFBTSxNQUFNLENBQUM7QUFLZCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3RSxLQUFLLE1BQU0sR0FBRztJQUNaLDBGQUEwRjtJQUMxRixTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEIseUNBQXlDO0lBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsMkNBQTJDO0lBQzNDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQy9CLDBEQUEwRDtJQUMxRCxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDMUIsQ0FBQztBQUVGLFlBQVksRUFBRSxNQUFNLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUUvQyx3RUFBd0U7QUFDeEUsd0JBQWdCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtJQUFFLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLHNGQUVqRjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isb0JBQW9CLENBQUMsTUFBTSxFQUFFLGdCQUFnQixHQUFHLE1BQU0sRUFBRSxDQVd2RTtBQUlELHdEQUF3RDtBQUN4RCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLENBT2hFO0FBRUQsMEZBQTBGO0FBQzFGLHdCQUFzQixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FJcEc7QUF5QkQsd0JBQWdCLHNCQUFzQixDQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQ2pCLCtCQUErQixFQUFFLE1BQU0sR0FBRyxTQUFTLEdBQUcsaUJBQWlCLEdBQUcsWUFBWSxFQUN0RixLQUFLLEdBQUUsS0FBZSxFQUN0QixpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sRUFDMUIsWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUNyQixJQUFJLENBQUMsRUFBRTtJQUFFLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQ2hDLHdCQUF3QixDQWdCMUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAMvB,MAAM,MAAM,CAAC;AAKd,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7E,KAAK,MAAM,GAAG;IACZ,0FAA0F;IAC1F,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,YAAY,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;AAI/C,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAOhE;AAED,0FAA0F;AAC1F,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIpG;AAyBD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EAAE,EACjB,+BAA+B,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,EACtF,KAAK,GAAE,KAAe,EACtB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,YAAY,CAAC,EAAE,MAAM,GACpB,wBAAwB,CAgB1B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAMvB,MAAM,MAAM,CAAC;AAKd,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7E,KAAK,MAAM,GAAG;IACZ,0FAA0F;IAC1F,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,YAAY,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;AAE/C,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,sFAEjF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAWvE;AAID,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAOhE;AAED,0FAA0F;AAC1F,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIpG;AAyBD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EAAE,EACjB,+BAA+B,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,EACtF,KAAK,GAAE,KAAe,EACtB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,wBAAwB,CAgB1B"}
package/dest/client.js CHANGED
@@ -3,14 +3,34 @@ import { createPublicClient, createWalletClient, fallback, http, publicActions }
3
3
  import { mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
4
4
  import { foundry } from 'viem/chains';
5
5
  import { createEthereumChain } from './chain.js';
6
+ /** Creates a viem fallback HTTP transport for the given L1 RPC URLs. */ export function makeL1HttpTransport(rpcUrls, opts) {
7
+ return fallback(rpcUrls.map((url)=>http(url, {
8
+ batch: false,
9
+ timeout: opts?.timeout
10
+ })));
11
+ }
12
+ /**
13
+ * Returns the individual RPC URLs underlying a viem public client that was constructed with a
14
+ * fallback HTTP transport (see {@link makeL1HttpTransport}). Returns an empty array if the
15
+ * transport shape is not recognized (e.g. mock clients in tests, or non-fallback transports).
16
+ */ export function getRpcUrlsFromClient(client) {
17
+ const transport = client.transport;
18
+ if (Array.isArray(transport?.transports)) {
19
+ return transport.transports.map((t)=>t?.value?.url).filter((url)=>typeof url === 'string');
20
+ }
21
+ const singleUrl = transport?.value?.url ?? transport?.url;
22
+ return typeof singleUrl === 'string' ? [
23
+ singleUrl
24
+ ] : [];
25
+ }
6
26
  // TODO: Use these methods to abstract the creation of viem clients.
7
27
  /** Returns a viem public client given the L1 config. */ export function getPublicClient(config) {
8
28
  const chain = createEthereumChain(config.l1RpcUrls, config.l1ChainId);
9
29
  return createPublicClient({
10
30
  chain: chain.chainInfo,
11
- transport: fallback(config.l1RpcUrls.map((url)=>http(url, {
12
- batch: false
13
- }))),
31
+ transport: makeL1HttpTransport(config.l1RpcUrls, {
32
+ timeout: config.l1HttpTimeoutMS
33
+ }),
14
34
  pollingInterval: config.viemPollingIntervalMS
15
35
  });
16
36
  }
@@ -33,16 +53,16 @@ async function waitForRpc(client, config, logger) {
33
53
  throw new Error(`Ethereum node at ${config.l1RpcUrls.join(', ')} has chain ID ${l1ChainId} but expected ${config.l1ChainId}`);
34
54
  }
35
55
  }
36
- export function createExtendedL1Client(rpcUrls, mnemonicOrPrivateKeyOrHdAccount, chain = foundry, pollingIntervalMS, addressIndex) {
56
+ export function createExtendedL1Client(rpcUrls, mnemonicOrPrivateKeyOrHdAccount, chain = foundry, pollingIntervalMS, addressIndex, opts) {
37
57
  const hdAccount = typeof mnemonicOrPrivateKeyOrHdAccount === 'string' ? mnemonicOrPrivateKeyOrHdAccount.startsWith('0x') ? privateKeyToAccount(mnemonicOrPrivateKeyOrHdAccount) : mnemonicToAccount(mnemonicOrPrivateKeyOrHdAccount, {
38
58
  addressIndex
39
59
  }) : mnemonicOrPrivateKeyOrHdAccount;
40
60
  const extendedClient = createWalletClient({
41
61
  account: hdAccount,
42
62
  chain,
43
- transport: fallback(rpcUrls.map((url)=>http(url, {
44
- batch: false
45
- }))),
63
+ transport: makeL1HttpTransport(rpcUrls, {
64
+ timeout: opts?.httpTimeoutMS
65
+ }),
46
66
  pollingInterval: pollingIntervalMS
47
67
  }).extend(publicActions);
48
68
  return extendedClient;
package/dest/config.d.ts CHANGED
@@ -6,6 +6,8 @@ export type GenesisStateConfig = {
6
6
  testAccounts: boolean;
7
7
  /** Whether to populate the genesis state with initial fee juice for the sponsored FPC */
8
8
  sponsoredFPC: boolean;
9
+ /** Additional addresses to prefund with fee juice at genesis */
10
+ prefundAddresses: string[];
9
11
  };
10
12
  export type L1ContractsConfig = {
11
13
  /** How many seconds an L1 slot lasts. */
@@ -44,13 +46,13 @@ export type L1ContractsConfig = {
44
46
  slashingOffsetInRounds: number;
45
47
  /** How long slashing can be disabled for in seconds when vetoer disables it */
46
48
  slashingDisableDuration: number;
47
- /** Type of slasher proposer */
48
- slasherFlavor: 'empire' | 'tally' | 'none';
49
- /** Minimum amount that can be slashed in tally slashing */
49
+ /** Whether to deploy a slasher proposer */
50
+ slasherEnabled: boolean;
51
+ /** Minimum amount that can be slashed */
50
52
  slashAmountSmall: bigint;
51
- /** Medium amount to slash in tally slashing */
53
+ /** Medium amount to slash */
52
54
  slashAmountMedium: bigint;
53
- /** Largest amount that can be slashed per round in tally slashing */
55
+ /** Largest amount that can be slashed per round */
54
56
  slashAmountLarge: bigint;
55
57
  /** Governance proposing quorum (defaults to roundSize/2 + 1) */
56
58
  governanceProposerQuorum?: number;
@@ -81,4 +83,4 @@ export declare const DefaultL1ContractsConfig: L1ContractsConfig;
81
83
  export declare const genesisStateConfigMappings: ConfigMappingsType<GenesisStateConfig>;
82
84
  export declare function getL1ContractsConfigEnvVars(): L1ContractsConfig;
83
85
  export declare function getGenesisStateConfigEnvVars(): GenesisStateConfig;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQVF4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQTJCLE1BQU0seUJBQXlCLENBQUM7QUFFeEYsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0NBQ3ZCLENBQUM7QUFFRixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIseUNBQXlDO0lBQ3pDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3Qix1RkFBdUY7SUFDdkYsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLHdDQUF3QztJQUN4QyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsMkNBQTJDO0lBQzNDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQztJQUNqQyxvRkFBb0Y7SUFDcEYsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBQ25DLGlGQUFpRjtJQUNqRixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0Isc0ZBQXNGO0lBQ3RGLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsK0VBQStFO0lBQy9FLDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUNuQyx5Q0FBeUM7SUFDekMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDO0lBQzVCLHlDQUF5QztJQUN6QyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsbUhBQW1IO0lBQ25ILHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUMvQix3S0FBd0s7SUFDeEssY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLDRFQUE0RTtJQUM1RSx5QkFBeUIsRUFBRSxNQUFNLENBQUM7SUFDbEMsZ0dBQWdHO0lBQ2hHLHdCQUF3QixFQUFFLE1BQU0sQ0FBQztJQUNqQyx5R0FBeUc7SUFDekcsOEJBQThCLEVBQUUsTUFBTSxDQUFDO0lBQ3ZDLHlFQUF5RTtJQUN6RSxjQUFjLEVBQUUsVUFBVSxDQUFDO0lBQzNCLDRJQUE0STtJQUM1SSxzQkFBc0IsRUFBRSxNQUFNLENBQUM7SUFDL0IsK0VBQStFO0lBQy9FLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztJQUNoQywrQkFBK0I7SUFDL0IsYUFBYSxFQUFFLFFBQVEsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzNDLDJEQUEyRDtJQUMzRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDekIsK0NBQStDO0lBQy9DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixxRUFBcUU7SUFDckUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLGdFQUFnRTtJQUNoRSx3QkFBd0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQyxzQ0FBc0M7SUFDdEMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLDJGQUEyRjtJQUMzRix3QkFBd0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQyxxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixnQ0FBZ0M7SUFDaEMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDO0lBQzNCLGdFQUFnRTtJQUNoRSxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsZ0RBQWdEO0lBQ2hELGdCQUFnQixFQUFFLE1BQU0sQ0FBQztDQUMxQixHQUFHLGVBQWUsQ0FBQztBQUVwQjs7OztHQUlHO0FBQ0gsZUFBTyxNQUFNLHlCQUF5QixFQUFFLGtCQUFrQixDQUFDLGlCQUFpQixDQXlKM0UsQ0FBQztBQUVGOzs7R0FHRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsbUJBQThDLENBQUM7QUFFcEYsZUFBTyxNQUFNLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQVc3RSxDQUFDO0FBRUYsd0JBQWdCLDJCQUEyQixJQUFJLGlCQUFpQixDQUUvRDtBQUVELHdCQUFnQiw0QkFBNEIsSUFBSSxrQkFBa0IsQ0FFakUifQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQVF4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQTJCLE1BQU0seUJBQXlCLENBQUM7QUFFeEYsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLGdFQUFnRTtJQUNoRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUM1QixDQUFDO0FBRUYsTUFBTSxNQUFNLGlCQUFpQixHQUFHO0lBQzlCLHlDQUF5QztJQUN6QyxvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IsdUZBQXVGO0lBQ3ZGLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQix3Q0FBd0M7SUFDeEMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDO0lBQzNCLDJDQUEyQztJQUMzQyx3QkFBd0IsRUFBRSxNQUFNLENBQUM7SUFDakMsb0ZBQW9GO0lBQ3BGLDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUNuQyxpRkFBaUY7SUFDakYsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLHNGQUFzRjtJQUN0RixRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLCtFQUErRTtJQUMvRSwwQkFBMEIsRUFBRSxNQUFNLENBQUM7SUFDbkMseUNBQXlDO0lBQ3pDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1Qix5Q0FBeUM7SUFDekMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLG1IQUFtSDtJQUNuSCxzQkFBc0IsRUFBRSxNQUFNLENBQUM7SUFDL0Isd0tBQXdLO0lBQ3hLLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4Qiw0RUFBNEU7SUFDNUUseUJBQXlCLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLGdHQUFnRztJQUNoRyx3QkFBd0IsRUFBRSxNQUFNLENBQUM7SUFDakMseUdBQXlHO0lBQ3pHLDhCQUE4QixFQUFFLE1BQU0sQ0FBQztJQUN2Qyx5RUFBeUU7SUFDekUsY0FBYyxFQUFFLFVBQVUsQ0FBQztJQUMzQiw0SUFBNEk7SUFDNUksc0JBQXNCLEVBQUUsTUFBTSxDQUFDO0lBQy9CLCtFQUErRTtJQUMvRSx1QkFBdUIsRUFBRSxNQUFNLENBQUM7SUFDaEMsMkNBQTJDO0lBQzNDLGNBQWMsRUFBRSxPQUFPLENBQUM7SUFDeEIseUNBQXlDO0lBQ3pDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztJQUN6Qiw2QkFBNkI7SUFDN0IsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLG1EQUFtRDtJQUNuRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDekIsZ0VBQWdFO0lBQ2hFLHdCQUF3QixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLHNDQUFzQztJQUN0QywyQkFBMkIsRUFBRSxNQUFNLENBQUM7SUFDcEMsMkZBQTJGO0lBQzNGLHdCQUF3QixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLHFDQUFxQztJQUNyQyxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLGdDQUFnQztJQUNoQyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsZ0VBQWdFO0lBQ2hFLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QixnREFBZ0Q7SUFDaEQsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0NBQzFCLEdBQUcsZUFBZSxDQUFDO0FBRXBCOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0seUJBQXlCLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLENBc0ozRSxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsZUFBTyxNQUFNLHdCQUF3QixtQkFBOEMsQ0FBQztBQUVwRixlQUFPLE1BQU0sMEJBQTBCLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLENBcUI3RSxDQUFDO0FBRUYsd0JBQWdCLDJCQUEyQixJQUFJLGlCQUFpQixDQUUvRDtBQUVELHdCQUFnQiw0QkFBNEIsSUFBSSxrQkFBa0IsQ0FFakUifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAQxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,yBAAyB,CAAC;AAExF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,oFAAoF;IACpF,0BAA0B,EAAE,MAAM,CAAC;IACnC,iFAAiF;IACjF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sFAAsF;IACtF,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mHAAmH;IACnH,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wKAAwK;IACxK,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;IAClC,gGAAgG;IAChG,wBAAwB,EAAE,MAAM,CAAC;IACjC,yGAAyG;IACzG,8BAA8B,EAAE,MAAM,CAAC;IACvC,yEAAyE;IACzE,cAAc,EAAE,UAAU,CAAC;IAC3B,4IAA4I;IAC5I,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,uBAAuB,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2FAA2F;IAC3F,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,eAAe,CAAC;AAEpB;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAyJ3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,mBAA8C,CAAC;AAEpF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAW7E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,CAEjE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAQxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,yBAAyB,CAAC;AAExF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,oFAAoF;IACpF,0BAA0B,EAAE,MAAM,CAAC;IACnC,iFAAiF;IACjF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sFAAsF;IACtF,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mHAAmH;IACnH,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wKAAwK;IACxK,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;IAClC,gGAAgG;IAChG,wBAAwB,EAAE,MAAM,CAAC;IACjC,yGAAyG;IACzG,8BAA8B,EAAE,MAAM,CAAC;IACvC,yEAAyE;IACzE,cAAc,EAAE,UAAU,CAAC;IAC3B,4IAA4I;IAC5I,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,uBAAuB,EAAE,MAAM,CAAC;IAChC,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2FAA2F;IAC3F,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,eAAe,CAAC;AAEpB;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAsJ3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,mBAA8C,CAAC;AAEpF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAqB7E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,CAEjE"}
package/dest/config.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bigintConfigHelper, booleanConfigHelper, enumConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper } from '@aztec/foundation/config';
1
+ import { bigintConfigHelper, booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, omitConfigMappings, optionalNumberConfigHelper } from '@aztec/foundation/config';
2
2
  import { EthAddress } from '@aztec/foundation/eth-address';
3
3
  import { l1ContractsDefaultEnv } from './generated/l1-contracts-defaults.js';
4
4
  import { l1TxUtilsConfigMappings } from './l1_tx_utils/config.js';
@@ -67,14 +67,10 @@ import { l1TxUtilsConfigMappings } from './l1_tx_utils/config.js';
67
67
  description: 'How many slashing rounds back we slash (ie when slashing in round N, we slash for offenses committed during epochs of round N-offset)',
68
68
  ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_SLASHING_OFFSET_IN_ROUNDS)
69
69
  },
70
- slasherFlavor: {
71
- env: 'AZTEC_SLASHER_FLAVOR',
72
- description: 'Type of slasher proposer (empire, tally, or none)',
73
- ...enumConfigHelper([
74
- 'empire',
75
- 'tally',
76
- 'none'
77
- ], l1ContractsDefaultEnv.AZTEC_SLASHER_FLAVOR)
70
+ slasherEnabled: {
71
+ env: 'AZTEC_SLASHER_ENABLED',
72
+ description: 'Whether to deploy a slasher proposer',
73
+ ...booleanConfigHelper(true)
78
74
  },
79
75
  slashAmountSmall: {
80
76
  env: 'AZTEC_SLASH_AMOUNT_SMALL',
@@ -157,7 +153,9 @@ import { l1TxUtilsConfigMappings } from './l1_tx_utils/config.js';
157
153
  description: 'The delay before a validator can exit the set',
158
154
  ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_EXIT_DELAY_SECONDS)
159
155
  },
160
- ...l1TxUtilsConfigMappings
156
+ ...omitConfigMappings(l1TxUtilsConfigMappings, [
157
+ 'ethereumSlotDuration'
158
+ ])
161
159
  };
162
160
  /**
163
161
  * Default L1 contracts configuration derived from l1ContractsConfigMappings.
@@ -173,6 +171,12 @@ export const genesisStateConfigMappings = {
173
171
  env: 'SPONSORED_FPC',
174
172
  description: 'Whether to populate the genesis state with initial fee juice for the sponsored FPC.',
175
173
  ...booleanConfigHelper(false)
174
+ },
175
+ prefundAddresses: {
176
+ env: 'PREFUND_ADDRESSES',
177
+ description: 'Comma-separated list of Aztec addresses to prefund with fee juice at genesis (local network only).',
178
+ parseEnv: (val)=>val.split(',').map((a)=>a.trim()).filter((a)=>a.length > 0),
179
+ defaultValue: []
176
180
  }
177
181
  };
178
182
  export function getL1ContractsConfigEnvVars() {
@@ -0,0 +1,38 @@
1
+ import type { CheckpointNumber } from '@aztec/foundation/branded-types';
2
+ import type { Fr } from '@aztec/foundation/curves/bn254';
3
+ import type { StateOverride } from 'viem';
4
+ import { type FeeHeader, RollupContract } from './rollup.js';
5
+ export type PendingCheckpointOverrideState = {
6
+ archive?: Fr;
7
+ feeHeader?: FeeHeader;
8
+ };
9
+ /** Describes the simulated L1 rollup state that downstream calls should observe. */
10
+ export type SimulationOverridesPlan = {
11
+ pendingCheckpointNumber?: CheckpointNumber;
12
+ pendingCheckpointState?: PendingCheckpointOverrideState;
13
+ disableBlobCheck?: boolean;
14
+ };
15
+ /** Builds a single-checkpoint simulation plan before it is translated into a viem state override. */
16
+ export declare class SimulationOverridesBuilder {
17
+ private pendingCheckpointNumber?;
18
+ private pendingCheckpointState?;
19
+ private disableBlobCheck;
20
+ /** Starts from an existing plan so callers can extend or specialize it. */
21
+ static from(plan: SimulationOverridesPlan | undefined): SimulationOverridesBuilder;
22
+ /** Merges another plan into this builder. Later values win. */
23
+ merge(plan: SimulationOverridesPlan | undefined): this;
24
+ /** Sets the checkpoint number that archive and fee header overrides should attach to. */
25
+ forPendingCheckpoint(pendingCheckpointNumber: CheckpointNumber | undefined): this;
26
+ /** Overrides the archive root for the configured pending checkpoint. */
27
+ withPendingArchive(archive: Fr): this;
28
+ /** Overrides the fee header for the configured pending checkpoint. */
29
+ withPendingFeeHeader(feeHeader: FeeHeader): this;
30
+ /** Disables blob checking for simulations that cannot provide DA inputs. */
31
+ withoutBlobCheck(): this;
32
+ /** Builds the final plan, or `undefined` when no overrides were configured. */
33
+ build(): SimulationOverridesPlan | undefined;
34
+ private assertPendingCheckpointNumber;
35
+ }
36
+ /** Translates a simulation plan into the viem state override shape expected by rollup calls. */
37
+ export declare function buildSimulationOverridesStateOverride(rollup: RollupContract, plan: SimulationOverridesPlan | undefined): Promise<StateOverride>;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fc3RhdGVfb3ZlcnJpZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvY2hhaW5fc3RhdGVfb3ZlcnJpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3RCxNQUFNLE1BQU0sOEJBQThCLEdBQUc7SUFDM0MsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2IsU0FBUyxDQUFDLEVBQUUsU0FBUyxDQUFDO0NBQ3ZCLENBQUM7QUFFRixvRkFBb0Y7QUFDcEYsTUFBTSxNQUFNLHVCQUF1QixHQUFHO0lBQ3BDLHVCQUF1QixDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDM0Msc0JBQXNCLENBQUMsRUFBRSw4QkFBOEIsQ0FBQztJQUN4RCxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUM1QixDQUFDO0FBRUYscUdBQXFHO0FBQ3JHLHFCQUFhLDBCQUEwQjtJQUNyQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBbUI7SUFDbkQsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQWlDO0lBQ2hFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBUztJQUVqQywyRUFBMkU7SUFDM0UsT0FBYyxJQUFJLENBQUMsSUFBSSxFQUFFLHVCQUF1QixHQUFHLFNBQVMsR0FBRywwQkFBMEIsQ0FFeEY7SUFFRCwrREFBK0Q7SUFDeEQsS0FBSyxDQUFDLElBQUksRUFBRSx1QkFBdUIsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQVk1RDtJQUVELHlGQUF5RjtJQUNsRixvQkFBb0IsQ0FBQyx1QkFBdUIsRUFBRSxnQkFBZ0IsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUd2RjtJQUVELHdFQUF3RTtJQUNqRSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FJM0M7SUFFRCxzRUFBc0U7SUFDL0Qsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxJQUFJLENBSXREO0lBRUQsNEVBQTRFO0lBQ3JFLGdCQUFnQixJQUFJLElBQUksQ0FHOUI7SUFFRCwrRUFBK0U7SUFDeEUsS0FBSyxJQUFJLHVCQUF1QixHQUFHLFNBQVMsQ0FVbEQ7SUFFRCxPQUFPLENBQUMsNkJBQTZCO0NBS3RDO0FBRUQsZ0dBQWdHO0FBQ2hHLHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLGNBQWMsRUFDdEIsSUFBSSxFQUFFLHVCQUF1QixHQUFHLFNBQVMsR0FDeEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQTZDeEIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain_state_override.d.ts","sourceRoot":"","sources":["../../src/contracts/chain_state_override.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,KAAK,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,uBAAuB,GAAG;IACpC,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,qGAAqG;AACrG,qBAAa,0BAA0B;IACrC,OAAO,CAAC,uBAAuB,CAAC,CAAmB;IACnD,OAAO,CAAC,sBAAsB,CAAC,CAAiC;IAChE,OAAO,CAAC,gBAAgB,CAAS;IAEjC,2EAA2E;IAC3E,OAAc,IAAI,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS,GAAG,0BAA0B,CAExF;IAED,+DAA+D;IACxD,KAAK,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS,GAAG,IAAI,CAY5D;IAED,yFAAyF;IAClF,oBAAoB,CAAC,uBAAuB,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAGvF;IAED,wEAAwE;IACjE,kBAAkB,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAI3C;IAED,sEAAsE;IAC/D,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAItD;IAED,4EAA4E;IACrE,gBAAgB,IAAI,IAAI,CAG9B;IAED,+EAA+E;IACxE,KAAK,IAAI,uBAAuB,GAAG,SAAS,CAUlD;IAED,OAAO,CAAC,6BAA6B;CAKtC;AAED,gGAAgG;AAChG,wBAAsB,qCAAqC,CACzD,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,uBAAuB,GAAG,SAAS,GACxC,OAAO,CAAC,aAAa,CAAC,CA6CxB"}
@@ -0,0 +1,100 @@
1
+ import { toHex as toPaddedHex } from '@aztec/foundation/bigint-buffer';
2
+ import { RollupContract } from './rollup.js';
3
+ /** Builds a single-checkpoint simulation plan before it is translated into a viem state override. */ export class SimulationOverridesBuilder {
4
+ pendingCheckpointNumber;
5
+ pendingCheckpointState;
6
+ disableBlobCheck = false;
7
+ /** Starts from an existing plan so callers can extend or specialize it. */ static from(plan) {
8
+ return new SimulationOverridesBuilder().merge(plan);
9
+ }
10
+ /** Merges another plan into this builder. Later values win. */ merge(plan) {
11
+ if (!plan) {
12
+ return this;
13
+ }
14
+ this.pendingCheckpointNumber = plan.pendingCheckpointNumber;
15
+ this.pendingCheckpointState = plan.pendingCheckpointState ? {
16
+ ...this.pendingCheckpointState ?? {},
17
+ ...plan.pendingCheckpointState
18
+ } : this.pendingCheckpointState;
19
+ this.disableBlobCheck = this.disableBlobCheck || (plan.disableBlobCheck ?? false);
20
+ return this;
21
+ }
22
+ /** Sets the checkpoint number that archive and fee header overrides should attach to. */ forPendingCheckpoint(pendingCheckpointNumber) {
23
+ this.pendingCheckpointNumber = pendingCheckpointNumber;
24
+ return this;
25
+ }
26
+ /** Overrides the archive root for the configured pending checkpoint. */ withPendingArchive(archive) {
27
+ this.assertPendingCheckpointNumber();
28
+ this.pendingCheckpointState = {
29
+ ...this.pendingCheckpointState ?? {},
30
+ archive
31
+ };
32
+ return this;
33
+ }
34
+ /** Overrides the fee header for the configured pending checkpoint. */ withPendingFeeHeader(feeHeader) {
35
+ this.assertPendingCheckpointNumber();
36
+ this.pendingCheckpointState = {
37
+ ...this.pendingCheckpointState ?? {},
38
+ feeHeader
39
+ };
40
+ return this;
41
+ }
42
+ /** Disables blob checking for simulations that cannot provide DA inputs. */ withoutBlobCheck() {
43
+ this.disableBlobCheck = true;
44
+ return this;
45
+ }
46
+ /** Builds the final plan, or `undefined` when no overrides were configured. */ build() {
47
+ if (!this.pendingCheckpointState && this.pendingCheckpointNumber === undefined && !this.disableBlobCheck) {
48
+ return undefined;
49
+ }
50
+ return {
51
+ pendingCheckpointNumber: this.pendingCheckpointNumber,
52
+ pendingCheckpointState: this.pendingCheckpointState,
53
+ disableBlobCheck: this.disableBlobCheck || undefined
54
+ };
55
+ }
56
+ assertPendingCheckpointNumber() {
57
+ if (this.pendingCheckpointNumber === undefined) {
58
+ throw new Error('pendingCheckpointNumber must be set before attaching archive or fee header overrides');
59
+ }
60
+ }
61
+ }
62
+ /** Translates a simulation plan into the viem state override shape expected by rollup calls. */ export async function buildSimulationOverridesStateOverride(rollup, plan) {
63
+ if (!plan) {
64
+ return [];
65
+ }
66
+ const rollupStateDiff = [];
67
+ if (plan.pendingCheckpointNumber !== undefined) {
68
+ rollupStateDiff.push(...extractRollupStateDiff(await rollup.makePendingCheckpointNumberOverride(plan.pendingCheckpointNumber)));
69
+ }
70
+ if (plan.pendingCheckpointState && plan.pendingCheckpointNumber === undefined) {
71
+ throw new Error('pendingCheckpointState requires pendingCheckpointNumber to be set');
72
+ }
73
+ if (plan.pendingCheckpointState?.archive) {
74
+ rollupStateDiff.push(...extractRollupStateDiff(rollup.makeArchiveOverride(plan.pendingCheckpointNumber, plan.pendingCheckpointState.archive)));
75
+ }
76
+ if (plan.pendingCheckpointState?.feeHeader) {
77
+ rollupStateDiff.push(...extractRollupStateDiff(await rollup.makeFeeHeaderOverride(plan.pendingCheckpointNumber, plan.pendingCheckpointState.feeHeader)));
78
+ }
79
+ if (plan.disableBlobCheck) {
80
+ rollupStateDiff.push({
81
+ slot: toPaddedHex(RollupContract.checkBlobStorageSlot, true),
82
+ value: toPaddedHex(0n, true)
83
+ });
84
+ }
85
+ if (rollupStateDiff.length === 0) {
86
+ return [];
87
+ }
88
+ return [
89
+ {
90
+ address: rollup.address,
91
+ stateDiff: rollupStateDiff
92
+ }
93
+ ];
94
+ }
95
+ function extractRollupStateDiff(override) {
96
+ const entries = Array.isArray(override) ? override : override ? [
97
+ override
98
+ ] : [];
99
+ return entries.flatMap((entry)=>entry.stateDiff ?? []);
100
+ }
@@ -14,6 +14,8 @@ export interface IEmpireBase {
14
14
  computeRound(slot: SlotNumber): Promise<bigint>;
15
15
  createSignalRequest(payload: Hex): L1TxRequest;
16
16
  createSignalRequestWithSignature(payload: Hex, slot: SlotNumber, chainId: number, signerAddress: Hex, signer: (msg: TypedDataDefinition) => Promise<Hex>): Promise<L1TxRequest>;
17
+ /** Checks if a payload was ever submitted to governance via submitRoundWinner. */
18
+ hasPayloadBeenProposed(payload: Hex, fromBlock: bigint): Promise<boolean>;
17
19
  }
18
20
  export declare function encodeSignal(payload: Hex): Hex;
19
21
  export declare function encodeSignalWithSignature(payload: Hex, signature: Signature): `0x${string}`;
@@ -27,4 +29,4 @@ export declare function encodeSignalWithSignature(payload: Hex, signature: Signa
27
29
  * @returns The EIP-712 signature
28
30
  */
29
31
  export declare function signSignalWithSig(signer: (msg: TypedDataDefinition) => Promise<Hex>, payload: Hex, slot: SlotNumber, instance: Hex, verifyingContract: Hex, chainId: number): Promise<Signature>;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX2Jhc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvZW1waXJlX2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLG1CQUFtQixFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUU5RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRCxNQUFNLFdBQVcsV0FBVztJQUMxQixJQUFJLE9BQU8sSUFBSSxVQUFVLENBQUM7SUFDMUIsWUFBWSxDQUNWLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLEtBQUssRUFBRSxNQUFNLEdBQ1osT0FBTyxDQUFDO1FBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQztRQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7UUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ25ILFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQztJQUMvQyxnQ0FBZ0MsQ0FDOUIsT0FBTyxFQUFFLEdBQUcsRUFDWixJQUFJLEVBQUUsVUFBVSxFQUNoQixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQ2pELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUN6QjtBQUVELHdCQUFnQixZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBTTlDO0FBRUQsd0JBQWdCLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsaUJBTTNFO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsUUFBUSxFQUFFLEdBQUcsRUFDYixpQkFBaUIsRUFBRSxHQUFHLEVBQ3RCLE9BQU8sRUFBRSxNQUFNLEdBQ2QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQThCcEIifQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX2Jhc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvZW1waXJlX2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLG1CQUFtQixFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUU5RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRCxNQUFNLFdBQVcsV0FBVztJQUMxQixJQUFJLE9BQU8sSUFBSSxVQUFVLENBQUM7SUFDMUIsWUFBWSxDQUNWLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLEtBQUssRUFBRSxNQUFNLEdBQ1osT0FBTyxDQUFDO1FBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQztRQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7UUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ25ILFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQztJQUMvQyxnQ0FBZ0MsQ0FDOUIsT0FBTyxFQUFFLEdBQUcsRUFDWixJQUFJLEVBQUUsVUFBVSxFQUNoQixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQ2pELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QixrRkFBa0Y7SUFDbEYsc0JBQXNCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUMzRTtBQUVELHdCQUFnQixZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBTTlDO0FBRUQsd0JBQWdCLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsaUJBTTNFO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsUUFBUSxFQUFFLEdBQUcsRUFDYixpQkFBaUIsRUFBRSxHQUFHLEVBQ3RCLE9BQU8sRUFBRSxNQUFNLEdBQ2QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQThCcEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"empire_base.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAsB,MAAM,MAAM,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,IAAI,OAAO,IAAI,UAAU,CAAC;IAC1B,YAAY,CACV,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAAC;IAC/C,gCAAgC,CAC9B,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAM9C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,iBAM3E;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,EAClD,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,GAAG,EACb,iBAAiB,EAAE,GAAG,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CA8BpB"}
1
+ {"version":3,"file":"empire_base.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAsB,MAAM,MAAM,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,IAAI,OAAO,IAAI,UAAU,CAAC;IAC1B,YAAY,CACV,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAAC;IAC/C,gCAAgC,CAC9B,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,kFAAkF;IAClF,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAM9C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,iBAM3E;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,EAClD,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,GAAG,EACb,iBAAiB,EAAE,GAAG,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CA8BpB"}
@@ -80,6 +80,7 @@ declare class UniswapPriceOracle {
80
80
  * Derived anyway to make it simpler to change if needed.
81
81
  */
82
82
  computePoolId(): Hex;
83
+ isPoolInitialized(): Promise<boolean>;
83
84
  /**
84
85
  * Gets the price as ETH per FeeAsset, scaled by 1e12.
85
86
  * This is the format expected by the rollup contract.
@@ -97,4 +98,4 @@ declare class UniswapPriceOracle {
97
98
  getMeanEthPerFeeAssetE12(numBlocks?: number): Promise<bigint>;
98
99
  }
99
100
  export {};
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2Fzc2V0X3ByaWNlX29yYWNsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9mZWVfYXNzZXRfcHJpY2Vfb3JhY2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFtRSxNQUFNLE1BQU0sQ0FBQztBQUVqRyxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3Qyw4RUFBNEU7QUFDNUUsZUFBTyxNQUFNLGdDQUFnQyxPQUFPLENBQUM7QUFFckQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDZCQUE2QixDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUV2RTtBQUVEOzs7R0FHRztBQUNILHFCQUFhLG1CQUFtQjtJQUU1QixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYztJQUMvQixPQUFPLENBQUMsR0FBRztJQUhiLFlBQ1UsTUFBTSxFQUFFLFVBQVUsRUFDVCxjQUFjLEVBQUUsY0FBYyxFQUN2QyxHQUFHLEdBQUUsTUFBK0MsRUFDMUQ7SUFHRSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLENBT2hFO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0csb0JBQW9CLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTJCNUM7SUFFRDs7O09BR0c7SUFDRyxjQUFjLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FZbEQ7SUFFRDs7Ozs7O09BTUc7SUFDSCx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWtCekU7Q0FDRjtBQUVELG9EQUFvRDtBQUNwRCxlQUFPLE1BQU0sa0JBQWtCLFlBQXNFLENBQUM7QUFJdEc7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCx3QkFBZ0IsK0JBQStCLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBSzVFO0FBbUJEOzs7R0FHRztBQUNILGNBQU0sa0JBQWtCO0lBTXBCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUx6QixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUMzQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBTTtJQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBUztJQUU3QixZQUNtQixNQUFNLEVBQUUsVUFBVSxFQUNuQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBVWI7SUFFRDs7Ozs7T0FLRztJQUVILGFBQWEsSUFBSSxHQUFHLENBVW5CO0lBRUQ7Ozs7O09BS0c7SUFDRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQU1oRTtJQUVEOzs7Ozs7T0FNRztJQUNHLHdCQUF3QixDQUFDLFNBQVMsR0FBRSxNQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTJCckU7Q0FDRiJ9
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2Fzc2V0X3ByaWNlX29yYWNsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9mZWVfYXNzZXRfcHJpY2Vfb3JhY2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFtRSxNQUFNLE1BQU0sQ0FBQztBQUVqRyxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3Qyw4RUFBNEU7QUFDNUUsZUFBTyxNQUFNLGdDQUFnQyxPQUFPLENBQUM7QUFFckQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDZCQUE2QixDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUV2RTtBQUVEOzs7R0FHRztBQUNILHFCQUFhLG1CQUFtQjtJQUU1QixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYztJQUMvQixPQUFPLENBQUMsR0FBRztJQUhiLFlBQ1UsTUFBTSxFQUFFLFVBQVUsRUFDVCxjQUFjLEVBQUUsY0FBYyxFQUN2QyxHQUFHLEdBQUUsTUFBK0MsRUFDMUQ7SUFHRSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLENBb0JoRTtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNHLG9CQUFvQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0EyQjVDO0lBRUQ7OztPQUdHO0lBQ0csY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBWWxEO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsdUJBQXVCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FrQnpFO0NBQ0Y7QUFFRCxvREFBb0Q7QUFDcEQsZUFBTyxNQUFNLGtCQUFrQixZQUFzRSxDQUFDO0FBSXRHOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQWdCLCtCQUErQixDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUs1RTtBQW1CRDs7O0dBR0c7QUFDSCxjQUFNLGtCQUFrQjtJQU1wQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFMekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDM0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQU07SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQVM7SUFFN0IsWUFDbUIsTUFBTSxFQUFFLFVBQVUsRUFDbkMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQVViO0lBRUQ7Ozs7O09BS0c7SUFFSCxhQUFhLElBQUksR0FBRyxDQVVuQjtJQUVLLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FHMUM7SUFFRDs7Ozs7T0FLRztJQUNHLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBTWhFO0lBRUQ7Ozs7OztPQU1HO0lBQ0csd0JBQXdCLENBQUMsU0FBUyxHQUFFLE1BQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBMkJyRTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fee_asset_price_oracle.d.ts","sourceRoot":"","sources":["../../src/contracts/fee_asset_price_oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,KAAK,GAAG,EAAmE,MAAM,MAAM,CAAC;AAEjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,8EAA4E;AAC5E,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,GAAG;IAHb,YACU,MAAM,EAAE,UAAU,EACT,cAAc,EAAE,cAAc,EACvC,GAAG,GAAE,MAA+C,EAC1D;IAGE,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAOhE;IAED;;;;;;;;;OASG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2B5C;IAED;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAYlD;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBzE;CACF;AAED,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,YAAsE,CAAC;AAItG;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAK5E;AAmBD;;;GAGG;AACH,cAAM,kBAAkB;IAMpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAM;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YACmB,MAAM,EAAE,UAAU,EACnC,GAAG,CAAC,EAAE,MAAM,EAUb;IAED;;;;;OAKG;IAEH,aAAa,IAAI,GAAG,CAUnB;IAED;;;;;OAKG;IACG,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhE;IAED;;;;;;OAMG;IACG,wBAAwB,CAAC,SAAS,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BrE;CACF"}
1
+ {"version":3,"file":"fee_asset_price_oracle.d.ts","sourceRoot":"","sources":["../../src/contracts/fee_asset_price_oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,KAAK,GAAG,EAAmE,MAAM,MAAM,CAAC;AAEjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,8EAA4E;AAC5E,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,GAAG;IAHb,YACU,MAAM,EAAE,UAAU,EACT,cAAc,EAAE,cAAc,EACvC,GAAG,GAAE,MAA+C,EAC1D;IAGE,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAoBhE;IAED;;;;;;;;;OASG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2B5C;IAED;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAYlD;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBzE;CACF;AAED,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,YAAsE,CAAC;AAItG;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAK5E;AAmBD;;;GAGG;AACH,cAAM,kBAAkB;IAMpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAM;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YACmB,MAAM,EAAE,UAAU,EACnC,GAAG,CAAC,EAAE,MAAM,EAUb;IAED;;;;;OAKG;IAEH,aAAa,IAAI,GAAG,CAUnB;IAEK,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG1C;IAED;;;;;OAKG;IACG,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhE;IAED;;;;;;OAMG;IACG,wBAAwB,CAAC,SAAS,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BrE;CACF"}
@@ -408,14 +408,25 @@ import { encodeAbiParameters, getContract, keccak256, parseAbiParameters } from
408
408
  _initProto(this);
409
409
  }
410
410
  async getUniswapOracle() {
411
- if (await this.client.getCode({
411
+ const code = await this.client.getCode({
412
412
  address: STATE_VIEW_ADDRESS.toString()
413
- }) === '0x') {
413
+ });
414
+ if (code === undefined || code === '0x') {
414
415
  this.log.warn('Uniswap V4 StateView contract not found, skipping fee asset price oracle');
415
416
  return undefined;
416
417
  }
417
418
  this.log.info('Uniswap V4 StateView contract found, initializing fee asset price oracle');
418
- return new UniswapPriceOracle(this.client, this.log);
419
+ const oracle = new UniswapPriceOracle(this.client, this.log);
420
+ try {
421
+ if (!await oracle.isPoolInitialized()) {
422
+ this.log.warn('Uniswap V4 pool not initialized, skipping fee asset price oracle');
423
+ return undefined;
424
+ }
425
+ } catch (err) {
426
+ this.log.warn(`Failed to check if Uniswap V4 pool is initialized: ${err}`);
427
+ return undefined;
428
+ }
429
+ return oracle;
419
430
  }
420
431
  /**
421
432
  * Computes the fee asset price modifier to be used in the next checkpoint proposal.
@@ -589,6 +600,12 @@ const PRECISION_Q192 = 10n ** 12n * 2n ** 192n;
589
600
  ]);
590
601
  return keccak256(encoded);
591
602
  }
603
+ async isPoolInitialized() {
604
+ const [sqrtPriceX96] = await this.stateView.read.getSlot0([
605
+ this.poolId
606
+ ], undefined);
607
+ return sqrtPriceX96 !== 0n;
608
+ }
592
609
  /**
593
610
  * Gets the price as ETH per FeeAsset, scaled by 1e12.
594
611
  * This is the format expected by the rollup contract.
@@ -2,7 +2,7 @@ import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import { sleep } from '@aztec/foundation/sleep';
3
3
  import { GovernanceAbi } from '@aztec/l1-artifacts/GovernanceAbi';
4
4
  import { encodeFunctionData, getContract, parseEventLogs } from 'viem';
5
- import { createL1TxUtilsFromViemWallet } from '../l1_tx_utils/index.js';
5
+ import { createL1TxUtils } from '../l1_tx_utils/index.js';
6
6
  import { isExtendedClient } from '../types.js';
7
7
  // NOTE: Must be kept in sync with DataStructures.ProposalState in l1-contracts
8
8
  export var ProposalState = /*#__PURE__*/ function(ProposalState) {
@@ -164,7 +164,7 @@ export class GovernanceContract extends ReadOnlyGovernanceContract {
164
164
  ]);
165
165
  }
166
166
  async vote({ proposalId, voteAmount, inFavor, retries = 10, logger }) {
167
- const l1TxUtils = createL1TxUtilsFromViemWallet(this.client, {
167
+ const l1TxUtils = createL1TxUtils(this.client, {
168
168
  logger
169
169
  });
170
170
  const retryDelaySeconds = 12;
@@ -214,7 +214,7 @@ export class GovernanceContract extends ReadOnlyGovernanceContract {
214
214
  logger.info(`Proposal [${proposalId}] has summedBallot nay [${proposal.summedBallot.nay}]`);
215
215
  }
216
216
  async executeProposal({ proposalId, retries = 10, logger }) {
217
- const l1TxUtils = createL1TxUtilsFromViemWallet(this.client, {
217
+ const l1TxUtils = createL1TxUtils(this.client, {
218
218
  logger
219
219
  });
220
220
  const retryDelaySeconds = 12;
@@ -24,9 +24,11 @@ export declare class GovernanceProposerContract implements IEmpireBase {
24
24
  getPayloadSignals(rollupAddress: Hex, round: bigint, payload: Hex): Promise<bigint>;
25
25
  createSignalRequest(payload: Hex): L1TxRequest;
26
26
  createSignalRequestWithSignature(payload: Hex, slot: SlotNumber, chainId: number, signerAddress: Hex, signer: (msg: TypedDataDefinition) => Promise<Hex>): Promise<L1TxRequest>;
27
+ /** Checks if a payload was ever submitted to governance via submitRoundWinner. */
28
+ hasPayloadBeenProposed(payload: Hex, fromBlock: bigint): Promise<boolean>;
27
29
  submitRoundWinner(round: bigint, l1TxUtils: L1TxUtils): Promise<{
28
30
  receipt: TransactionReceipt;
29
31
  proposalId: bigint;
30
32
  }>;
31
33
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ292ZXJuYW5jZV9wcm9wb3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9nb3Zlcm5hbmNlX3Byb3Bvc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUVMLEtBQUssR0FBRyxFQUNSLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssbUJBQW1CLEVBR3pCLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQThELE1BQU0sa0JBQWtCLENBQUM7QUFHaEgscUJBQWEsMEJBQTJCLFlBQVcsV0FBVzthQUkxQyxNQUFNLEVBQUUsVUFBVTtJQUhwQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBa0U7SUFFM0YsWUFDa0IsTUFBTSxFQUFFLFVBQVUsRUFDbEMsT0FBTyxFQUFFLEdBQUcsR0FBRyxVQUFVLEVBTTFCO0lBRUQsSUFBVyxPQUFPLGVBRWpCO0lBRVksZ0JBQWdCLHdCQUU1QjtJQUdZLGtCQUFrQix3QkFFOUI7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV0QztJQUVNLFlBQVksSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJDO0lBRU0sV0FBVywyQkFFakI7SUFFTSxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJEO0lBRVksWUFBWSxDQUN2QixhQUFhLEVBQUUsR0FBRyxFQUNsQixLQUFLLEVBQUUsTUFBTSxHQUNaLE9BQU8sQ0FBQztRQUFFLGNBQWMsRUFBRSxVQUFVLENBQUM7UUFBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUM7UUFBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQTtLQUFFLENBQUMsQ0FZakg7SUFFTSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXpGO0lBRU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxXQUFXLENBTXBEO0lBRVksZ0NBQWdDLENBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsR0FBRyxFQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUNqRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBY3RCO0lBRVksaUJBQWlCLENBQzVCLEtBQUssRUFBRSxNQUFNLEVBQ2IsU0FBUyxFQUFFLFNBQVMsR0FDbkIsT0FBTyxDQUFDO1FBQ1QsT0FBTyxFQUFFLGtCQUFrQixDQUFDO1FBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUM7S0FDcEIsQ0FBQyxDQVlEO0NBQ0YifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ292ZXJuYW5jZV9wcm9wb3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9nb3Zlcm5hbmNlX3Byb3Bvc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUVMLEtBQUssR0FBRyxFQUNSLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssbUJBQW1CLEVBR3pCLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQThELE1BQU0sa0JBQWtCLENBQUM7QUFHaEgscUJBQWEsMEJBQTJCLFlBQVcsV0FBVzthQUkxQyxNQUFNLEVBQUUsVUFBVTtJQUhwQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBa0U7SUFFM0YsWUFDa0IsTUFBTSxFQUFFLFVBQVUsRUFDbEMsT0FBTyxFQUFFLEdBQUcsR0FBRyxVQUFVLEVBTTFCO0lBRUQsSUFBVyxPQUFPLGVBRWpCO0lBRVksZ0JBQWdCLHdCQUU1QjtJQUdZLGtCQUFrQix3QkFFOUI7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV0QztJQUVNLFlBQVksSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJDO0lBRU0sV0FBVywyQkFFakI7SUFFTSxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJEO0lBRVksWUFBWSxDQUN2QixhQUFhLEVBQUUsR0FBRyxFQUNsQixLQUFLLEVBQUUsTUFBTSxHQUNaLE9BQU8sQ0FBQztRQUFFLGNBQWMsRUFBRSxVQUFVLENBQUM7UUFBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUM7UUFBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQTtLQUFFLENBQUMsQ0FZakg7SUFFTSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXpGO0lBRU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxXQUFXLENBTXBEO0lBRVksZ0NBQWdDLENBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsR0FBRyxFQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUNqRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBY3RCO0lBRUQsa0ZBQWtGO0lBQ3JFLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBR3JGO0lBRVksaUJBQWlCLENBQzVCLEtBQUssRUFBRSxNQUFNLEVBQ2IsU0FBUyxFQUFFLFNBQVMsR0FDbkIsT0FBTyxDQUFDO1FBQ1QsT0FBTyxFQUFFLGtCQUFrQixDQUFDO1FBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUM7S0FDcEIsQ0FBQyxDQVlEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"governance_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/governance_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAGhH,qBAAa,0BAA2B,YAAW,WAAW;aAI1C,MAAM,EAAE,UAAU;IAHpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkE;IAE3F,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,eAEjB;IAEY,gBAAgB,wBAE5B;IAGY,kBAAkB,wBAE9B;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtC;IAEM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAErC;IAEM,WAAW,2BAEjB;IAEM,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErD;IAEY,YAAY,CACvB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAYjH;IAEM,iBAAiB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzF;IAEM,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAMpD;IAEY,gCAAgC,CAC3C,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CActB;IAEY,iBAAiB,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;QACT,OAAO,EAAE,kBAAkB,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAYD;CACF"}
1
+ {"version":3,"file":"governance_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/governance_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAGhH,qBAAa,0BAA2B,YAAW,WAAW;aAI1C,MAAM,EAAE,UAAU;IAHpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkE;IAE3F,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,eAEjB;IAEY,gBAAgB,wBAE5B;IAGY,kBAAkB,wBAE9B;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtC;IAEM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAErC;IAEM,WAAW,2BAEjB;IAEM,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErD;IAEY,YAAY,CACvB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAYjH;IAEM,iBAAiB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzF;IAEM,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAMpD;IAEY,gCAAgC,CAC3C,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CActB;IAED,kFAAkF;IACrE,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrF;IAEY,iBAAiB,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;QACT,OAAO,EAAE,kBAAkB,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAYD;CACF"}
@@ -467,6 +467,15 @@ export class GovernanceProposerContract {
467
467
  data: encodeSignalWithSignature(payload, signature)
468
468
  };
469
469
  }
470
+ /** Checks if a payload was ever submitted to governance via submitRoundWinner. */ async hasPayloadBeenProposed(payload, fromBlock) {
471
+ const events = await this.proposer.getEvents.PayloadSubmitted({
472
+ payload
473
+ }, {
474
+ fromBlock,
475
+ strict: true
476
+ });
477
+ return events.length > 0;
478
+ }
470
479
  async submitRoundWinner(round, l1TxUtils) {
471
480
  const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
472
481
  to: this.address.toString(),
@@ -35,8 +35,8 @@ export declare class InboxContract {
35
35
  }): Promise<InboxContractState>;
36
36
  /** Fetches MessageSent events within the given block range. */
37
37
  getMessageSentEvents(fromBlock: bigint, toBlock: bigint): Promise<MessageSentLog[]>;
38
- /** Fetches MessageSent events for a specific message hash within the given block range. */
39
- getMessageSentEventByHash(hash: Hex, fromBlock: bigint, toBlock: bigint): Promise<MessageSentLog[]>;
38
+ /** Fetches MessageSent events for a specific message hash around a specific block. */
39
+ getMessageSentEventByHash(msgHash: Hex, aroundL1BlockNumber: bigint): Promise<MessageSentLog>;
40
40
  private mapMessageSentLog;
41
41
  }
42
42
  export type InboxContractState = {
@@ -44,4 +44,4 @@ export type InboxContractState = {
44
44
  messagesRollingHash: Buffer16;
45
45
  treeInProgress: bigint;
46
46
  };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvaW5ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxLQUFLLHFCQUFxQixFQUFFLEtBQUssR0FBRyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBR3hGLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUczQywyQ0FBMkM7QUFDM0MsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLHVDQUF1QztBQUN2QyxNQUFNLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUV6RCxxQkFBYSxhQUFhO2FBa0JOLE1BQU0sRUFBRSxVQUFVO0lBakJwQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBcUQ7SUFFM0UsTUFBTSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixFQUFFLGdDQUFnQyxpQkFNeEY7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLGlCQUkxQztJQUVELFlBQ2tCLE1BQU0sRUFBRSxVQUFVLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQU0xQjtJQUVELElBQVcsT0FBTyxrQkFFakI7SUFFTSxXQUFXLElBQUkscUJBQXFCLENBQUMsT0FBTyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBRXZFO0lBRVksTUFBTSxDQUFDLElBQUksR0FBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUc3RjtJQUVZLFFBQVEsQ0FBQyxJQUFJLEdBQUU7UUFBRSxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUM7UUFBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVEzRztJQUVELCtEQUErRDtJQUN6RCxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBS3hGO0lBRUQsMkZBQTJGO0lBQ3JGLHlCQUF5QixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUd4RztJQUVELE9BQU8sQ0FBQyxpQkFBaUI7Q0FrQjFCO0FBRUQsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QixtQkFBbUIsRUFBRSxRQUFRLENBQUM7SUFDOUIsY0FBYyxFQUFFLE1BQU0sQ0FBQztDQUN4QixDQUFDIn0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvaW5ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxLQUFLLHFCQUFxQixFQUFFLEtBQUssR0FBRyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBR3hGLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUczQywyQ0FBMkM7QUFDM0MsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLHVDQUF1QztBQUN2QyxNQUFNLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUV6RCxxQkFBYSxhQUFhO2FBa0JOLE1BQU0sRUFBRSxVQUFVO0lBakJwQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBcUQ7SUFFM0UsTUFBTSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixFQUFFLGdDQUFnQyxpQkFNeEY7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLGlCQUkxQztJQUVELFlBQ2tCLE1BQU0sRUFBRSxVQUFVLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQU0xQjtJQUVELElBQVcsT0FBTyxrQkFFakI7SUFFTSxXQUFXLElBQUkscUJBQXFCLENBQUMsT0FBTyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBRXZFO0lBRVksTUFBTSxDQUFDLElBQUksR0FBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUc3RjtJQUVZLFFBQVEsQ0FBQyxJQUFJLEdBQUU7UUFBRSxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUM7UUFBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVEzRztJQUVELCtEQUErRDtJQUN6RCxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBS3hGO0lBRUQsc0ZBQXNGO0lBQ2hGLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FVbEc7SUFFRCxPQUFPLENBQUMsaUJBQWlCO0NBa0IxQjtBQUVELE1BQU0sTUFBTSxrQkFBa0IsR0FBRztJQUMvQixxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO0lBQzlCLGNBQWMsRUFBRSxNQUFNLENBQUM7Q0FDeEIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/contracts/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAGxF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,EAAE,CAAC;IACT,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAEzD,qBAAa,aAAa;aAkBN,MAAM,EAAE,UAAU;IAjBpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqD;IAE3E,MAAM,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,gCAAgC,iBAMxF;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,iBAI1C;IAED,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,kBAEjB;IAEM,WAAW,IAAI,qBAAqB,CAAC,OAAO,QAAQ,EAAE,UAAU,CAAC,CAEvE;IAEY,MAAM,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;IAEY,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ3G;IAED,+DAA+D;IACzD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAKxF;IAED,2FAA2F;IACrF,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAGxG;IAED,OAAO,CAAC,iBAAiB;CAkB1B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,QAAQ,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/contracts/inbox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAGxF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,EAAE,CAAC;IACT,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAEzD,qBAAa,aAAa;aAkBN,MAAM,EAAE,UAAU;IAjBpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqD;IAE3E,MAAM,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,gCAAgC,iBAMxF;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,iBAI1C;IAED,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,kBAEjB;IAEM,WAAW,IAAI,qBAAqB,CAAC,OAAO,QAAQ,EAAE,UAAU,CAAC,CAEvE;IAEY,MAAM,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;IAEY,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ3G;IAED,+DAA+D;IACzD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAKxF;IAED,sFAAsF;IAChF,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAUlG;IAED,OAAO,CAAC,iBAAiB;CAkB1B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,QAAQ,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { maxBigint } from '@aztec/foundation/bigint';
1
2
  import { CheckpointNumber } from '@aztec/foundation/branded-types';
2
3
  import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
3
4
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -55,14 +56,18 @@ export class InboxContract {
55
56
  });
56
57
  return logs.filter((log)=>log.blockNumber >= fromBlock && log.blockNumber <= toBlock).map((log)=>this.mapMessageSentLog(log));
57
58
  }
58
- /** Fetches MessageSent events for a specific message hash within the given block range. */ async getMessageSentEventByHash(hash, fromBlock, toBlock) {
59
- const logs = await this.inbox.getEvents.MessageSent({
60
- hash
59
+ /** Fetches MessageSent events for a specific message hash around a specific block. */ async getMessageSentEventByHash(msgHash, aroundL1BlockNumber) {
60
+ // We don't use blockHash here because we don't want the query to throw if the L1 block number no longer exists on chain
61
+ // due to an L1 reorg. The use case for this method is usually checking if a message still exists on the Inbox after
62
+ // a reorg, so it's possible the message was moved one block up or down, and that the original L1 block where we
63
+ // saw it no longer exists, rendering the block-by-hash approach invalid.
64
+ const [log] = await this.inbox.getEvents.MessageSent({
65
+ hash: msgHash
61
66
  }, {
62
- fromBlock,
63
- toBlock
67
+ fromBlock: maxBigint(aroundL1BlockNumber - 5n, 1n),
68
+ toBlock: aroundL1BlockNumber + 5n
64
69
  });
65
- return logs.map((log)=>this.mapMessageSentLog(log));
70
+ return log && this.mapMessageSentLog(log);
66
71
  }
67
72
  mapMessageSentLog(log) {
68
73
  return {