@aztec/ethereum 3.0.0-canary.a9708bd → 3.0.0-devnet.20251212

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 (195) hide show
  1. package/dest/account.d.ts +1 -1
  2. package/dest/chain.d.ts +1 -1
  3. package/dest/client.d.ts +2 -2
  4. package/dest/client.d.ts.map +1 -1
  5. package/dest/config.d.ts +16 -8
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +160 -62
  8. package/dest/constants.d.ts +1 -1
  9. package/dest/contracts/empire_base.d.ts +7 -6
  10. package/dest/contracts/empire_base.d.ts.map +1 -1
  11. package/dest/contracts/empire_base.js +1 -1
  12. package/dest/contracts/empire_slashing_proposer.d.ts +7 -6
  13. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  14. package/dest/contracts/empire_slashing_proposer.js +9 -3
  15. package/dest/contracts/errors.d.ts +1 -1
  16. package/dest/contracts/errors.d.ts.map +1 -1
  17. package/dest/contracts/fee_asset_handler.d.ts +4 -4
  18. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  19. package/dest/contracts/fee_juice.d.ts +1 -1
  20. package/dest/contracts/fee_juice.d.ts.map +1 -1
  21. package/dest/contracts/governance.d.ts +16 -16
  22. package/dest/contracts/governance.d.ts.map +1 -1
  23. package/dest/contracts/governance.js +7 -3
  24. package/dest/contracts/governance_proposer.d.ts +6 -6
  25. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  26. package/dest/contracts/governance_proposer.js +9 -4
  27. package/dest/contracts/gse.d.ts +1 -1
  28. package/dest/contracts/gse.d.ts.map +1 -1
  29. package/dest/contracts/inbox.d.ts +1 -1
  30. package/dest/contracts/inbox.d.ts.map +1 -1
  31. package/dest/contracts/index.d.ts +1 -1
  32. package/dest/contracts/multicall.d.ts +5 -7
  33. package/dest/contracts/multicall.d.ts.map +1 -1
  34. package/dest/contracts/multicall.js +6 -4
  35. package/dest/contracts/registry.d.ts +1 -1
  36. package/dest/contracts/registry.d.ts.map +1 -1
  37. package/dest/contracts/rollup.d.ts +83 -72
  38. package/dest/contracts/rollup.d.ts.map +1 -1
  39. package/dest/contracts/rollup.js +144 -139
  40. package/dest/contracts/slasher_contract.d.ts +11 -1
  41. package/dest/contracts/slasher_contract.d.ts.map +1 -1
  42. package/dest/contracts/slasher_contract.js +18 -0
  43. package/dest/contracts/tally_slashing_proposer.d.ts +30 -9
  44. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  45. package/dest/contracts/tally_slashing_proposer.js +58 -8
  46. package/dest/contracts/utils.d.ts +1 -1
  47. package/dest/deploy_l1_contracts.d.ts +477 -15
  48. package/dest/deploy_l1_contracts.d.ts.map +1 -1
  49. package/dest/deploy_l1_contracts.js +610 -386
  50. package/dest/eth-signer/eth-signer.d.ts +1 -1
  51. package/dest/eth-signer/index.d.ts +1 -1
  52. package/dest/forwarder_proxy.d.ts +32 -0
  53. package/dest/forwarder_proxy.d.ts.map +1 -0
  54. package/dest/forwarder_proxy.js +93 -0
  55. package/dest/l1_artifacts.d.ts +14258 -6015
  56. package/dest/l1_artifacts.d.ts.map +1 -1
  57. package/dest/l1_artifacts.js +10 -5
  58. package/dest/l1_contract_addresses.d.ts +8 -4
  59. package/dest/l1_contract_addresses.d.ts.map +1 -1
  60. package/dest/l1_contract_addresses.js +16 -26
  61. package/dest/l1_reader.d.ts +4 -2
  62. package/dest/l1_reader.d.ts.map +1 -1
  63. package/dest/l1_reader.js +14 -8
  64. package/dest/l1_tx_utils/config.d.ts +59 -0
  65. package/dest/l1_tx_utils/config.d.ts.map +1 -0
  66. package/dest/l1_tx_utils/config.js +96 -0
  67. package/dest/l1_tx_utils/constants.d.ts +6 -0
  68. package/dest/l1_tx_utils/constants.d.ts.map +1 -0
  69. package/dest/l1_tx_utils/constants.js +14 -0
  70. package/dest/l1_tx_utils/factory.d.ts +24 -0
  71. package/dest/l1_tx_utils/factory.d.ts.map +1 -0
  72. package/dest/l1_tx_utils/factory.js +12 -0
  73. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
  74. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
  75. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +48 -0
  76. package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
  77. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
  78. package/dest/l1_tx_utils/index-blobs.js +2 -0
  79. package/dest/l1_tx_utils/index.d.ts +10 -0
  80. package/dest/l1_tx_utils/index.d.ts.map +1 -0
  81. package/dest/l1_tx_utils/index.js +10 -0
  82. package/dest/l1_tx_utils/interfaces.d.ts +76 -0
  83. package/dest/l1_tx_utils/interfaces.d.ts.map +1 -0
  84. package/dest/l1_tx_utils/interfaces.js +4 -0
  85. package/dest/l1_tx_utils/l1_tx_utils.d.ts +94 -0
  86. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -0
  87. package/dest/l1_tx_utils/l1_tx_utils.js +623 -0
  88. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +26 -0
  89. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +1 -0
  90. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +26 -0
  91. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +94 -0
  92. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -0
  93. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +431 -0
  94. package/dest/l1_tx_utils/signer.d.ts +4 -0
  95. package/dest/l1_tx_utils/signer.d.ts.map +1 -0
  96. package/dest/l1_tx_utils/signer.js +16 -0
  97. package/dest/l1_tx_utils/types.d.ts +67 -0
  98. package/dest/l1_tx_utils/types.d.ts.map +1 -0
  99. package/dest/l1_tx_utils/types.js +26 -0
  100. package/dest/l1_tx_utils/utils.d.ts +4 -0
  101. package/dest/l1_tx_utils/utils.d.ts.map +1 -0
  102. package/dest/l1_tx_utils/utils.js +14 -0
  103. package/dest/l1_types.d.ts +1 -1
  104. package/dest/publisher_manager.d.ts +8 -3
  105. package/dest/publisher_manager.d.ts.map +1 -1
  106. package/dest/publisher_manager.js +36 -8
  107. package/dest/queries.d.ts +1 -1
  108. package/dest/queries.d.ts.map +1 -1
  109. package/dest/queries.js +13 -12
  110. package/dest/test/chain_monitor.d.ts +33 -19
  111. package/dest/test/chain_monitor.d.ts.map +1 -1
  112. package/dest/test/chain_monitor.js +100 -33
  113. package/dest/test/delayed_tx_utils.d.ts +3 -3
  114. package/dest/test/delayed_tx_utils.d.ts.map +1 -1
  115. package/dest/test/delayed_tx_utils.js +2 -2
  116. package/dest/test/eth_cheat_codes.d.ts +36 -14
  117. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  118. package/dest/test/eth_cheat_codes.js +124 -31
  119. package/dest/test/eth_cheat_codes_with_state.d.ts +1 -1
  120. package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -1
  121. package/dest/test/index.d.ts +1 -1
  122. package/dest/test/rollup_cheat_codes.d.ts +23 -20
  123. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  124. package/dest/test/rollup_cheat_codes.js +79 -42
  125. package/dest/test/start_anvil.d.ts +2 -1
  126. package/dest/test/start_anvil.d.ts.map +1 -1
  127. package/dest/test/start_anvil.js +2 -1
  128. package/dest/test/tx_delayer.d.ts +1 -1
  129. package/dest/test/tx_delayer.d.ts.map +1 -1
  130. package/dest/test/tx_delayer.js +3 -2
  131. package/dest/test/upgrade_utils.d.ts +1 -1
  132. package/dest/test/upgrade_utils.d.ts.map +1 -1
  133. package/dest/test/upgrade_utils.js +3 -2
  134. package/dest/types.d.ts +57 -2
  135. package/dest/types.d.ts.map +1 -1
  136. package/dest/utils.d.ts +2 -2
  137. package/dest/utils.d.ts.map +1 -1
  138. package/dest/utils.js +10 -161
  139. package/dest/zkPassportVerifierAddress.d.ts +1 -1
  140. package/dest/zkPassportVerifierAddress.js +1 -1
  141. package/package.json +27 -13
  142. package/src/client.ts +1 -1
  143. package/src/config.ts +177 -65
  144. package/src/contracts/empire_base.ts +7 -6
  145. package/src/contracts/empire_slashing_proposer.ts +18 -8
  146. package/src/contracts/fee_asset_handler.ts +1 -1
  147. package/src/contracts/governance.ts +3 -3
  148. package/src/contracts/governance_proposer.ts +14 -9
  149. package/src/contracts/multicall.ts +12 -10
  150. package/src/contracts/rollup.ts +170 -171
  151. package/src/contracts/slasher_contract.ts +22 -0
  152. package/src/contracts/tally_slashing_proposer.ts +63 -12
  153. package/src/deploy_l1_contracts.ts +610 -337
  154. package/src/forwarder_proxy.ts +108 -0
  155. package/src/l1_artifacts.ts +14 -6
  156. package/src/l1_contract_addresses.ts +17 -26
  157. package/src/l1_reader.ts +17 -9
  158. package/src/l1_tx_utils/README.md +177 -0
  159. package/src/l1_tx_utils/config.ts +161 -0
  160. package/src/l1_tx_utils/constants.ts +18 -0
  161. package/src/l1_tx_utils/factory.ts +64 -0
  162. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +119 -0
  163. package/src/l1_tx_utils/index-blobs.ts +2 -0
  164. package/src/l1_tx_utils/index.ts +12 -0
  165. package/src/l1_tx_utils/interfaces.ts +86 -0
  166. package/src/l1_tx_utils/l1_tx_utils.ts +738 -0
  167. package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +77 -0
  168. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +557 -0
  169. package/src/l1_tx_utils/signer.ts +28 -0
  170. package/src/l1_tx_utils/types.ts +85 -0
  171. package/src/l1_tx_utils/utils.ts +16 -0
  172. package/src/publisher_manager.ts +51 -9
  173. package/src/queries.ts +16 -8
  174. package/src/test/chain_monitor.ts +118 -36
  175. package/src/test/delayed_tx_utils.ts +2 -2
  176. package/src/test/eth_cheat_codes.ts +149 -30
  177. package/src/test/rollup_cheat_codes.ts +94 -52
  178. package/src/test/start_anvil.ts +2 -0
  179. package/src/test/tx_delayer.ts +4 -2
  180. package/src/test/upgrade_utils.ts +3 -2
  181. package/src/types.ts +62 -0
  182. package/src/utils.ts +12 -184
  183. package/src/zkPassportVerifierAddress.ts +1 -1
  184. package/dest/index.d.ts +0 -18
  185. package/dest/index.d.ts.map +0 -1
  186. package/dest/index.js +0 -17
  187. package/dest/l1_tx_utils.d.ts +0 -250
  188. package/dest/l1_tx_utils.d.ts.map +0 -1
  189. package/dest/l1_tx_utils.js +0 -826
  190. package/dest/l1_tx_utils_with_blobs.d.ts +0 -19
  191. package/dest/l1_tx_utils_with_blobs.d.ts.map +0 -1
  192. package/dest/l1_tx_utils_with_blobs.js +0 -85
  193. package/src/index.ts +0 -17
  194. package/src/l1_tx_utils.ts +0 -1105
  195. package/src/l1_tx_utils_with_blobs.ts +0 -144
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,MAAM,CAAC;AAE3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9F,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,YAAY;IACtB,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,SAAS,IAAA;IACT,KAAK,IAAA;CACN;AAED,eAAO,MAAM,oBAAoB,gBAAkE,CAAC;AAEpG,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,cAAc,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,UAAU,CAAC;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,EAAE,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,WAAW,EAAE,uBAAuB,EACpC,cAAc,EAAE,UAAU,KACvB,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEvC,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAGzC;CACF;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAGzC;CACF"}
@@ -0,0 +1,26 @@
1
+ export var TxUtilsState = /*#__PURE__*/ function(TxUtilsState) {
2
+ TxUtilsState[TxUtilsState["IDLE"] = 0] = "IDLE";
3
+ TxUtilsState[TxUtilsState["SENT"] = 1] = "SENT";
4
+ TxUtilsState[TxUtilsState["SPEED_UP"] = 2] = "SPEED_UP";
5
+ TxUtilsState[TxUtilsState["CANCELLED"] = 3] = "CANCELLED";
6
+ TxUtilsState[TxUtilsState["NOT_MINED"] = 4] = "NOT_MINED";
7
+ TxUtilsState[TxUtilsState["MINED"] = 5] = "MINED";
8
+ return TxUtilsState;
9
+ }({});
10
+ export const TerminalTxUtilsState = [
11
+ 0,
12
+ 5,
13
+ 4
14
+ ];
15
+ export class UnknownMinedTxError extends Error {
16
+ constructor(nonce, account){
17
+ super(`Nonce ${nonce} from account ${account} is MINED but not by one of our expected transactions`);
18
+ this.name = 'UnknownMinedTxError';
19
+ }
20
+ }
21
+ export class DroppedTransactionError extends Error {
22
+ constructor(nonce, account){
23
+ super(`Transaction with nonce ${nonce} from account ${account} was dropped from the mempool`);
24
+ this.name = 'DroppedTransactionError';
25
+ }
26
+ }
@@ -0,0 +1,4 @@
1
+ import type { ContractFunctionExecutionError } from 'viem';
2
+ export declare function tryGetCustomErrorNameContractFunction(err: ContractFunctionExecutionError): string;
3
+ export declare function getCalldataGasUsage(data: Uint8Array): number;
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRCx3QkFBZ0IscUNBQXFDLENBQUMsR0FBRyxFQUFFLDhCQUE4QixVQUV4RjtBQU9ELHdCQUFnQixtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxVQUVuRCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,MAAM,CAAC;AAE3D,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,8BAA8B,UAExF;AAOD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,UAEnD"}
@@ -0,0 +1,14 @@
1
+ import { compactArray } from '@aztec/foundation/collection';
2
+ export function tryGetCustomErrorNameContractFunction(err) {
3
+ return compactArray([
4
+ err.shortMessage,
5
+ ...(err.metaMessages ?? []).slice(0, 2).map((s)=>s.trim())
6
+ ]).join(' ');
7
+ }
8
+ /*
9
+ * Returns cost of calldata usage in Ethereum.
10
+ * @param data - Calldata.
11
+ * @returns 4 for each zero byte, 16 for each nonzero.
12
+ */ export function getCalldataGasUsage(data) {
13
+ return data.filter((byte)=>byte === 0).length * 4 + data.filter((byte)=>byte !== 0).length * 16;
14
+ }
@@ -3,4 +3,4 @@ export type L1BlockId = {
3
3
  l1BlockNumber: bigint;
4
4
  l1BlockHash: Buffer32;
5
5
  };
6
- //# sourceMappingURL=l1_types.d.ts.map
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9sMV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsV0FBVyxFQUFFLFFBQVEsQ0FBQztDQUN2QixDQUFDIn0=
@@ -1,10 +1,15 @@
1
- import { L1TxUtils } from './l1_tx_utils.js';
1
+ import { L1TxUtils } from './l1_tx_utils/index.js';
2
2
  export type PublisherFilter<UtilsType extends L1TxUtils> = (utils: UtilsType) => boolean;
3
3
  export declare class PublisherManager<UtilsType extends L1TxUtils = L1TxUtils> {
4
4
  private publishers;
5
5
  private log;
6
- constructor(publishers: UtilsType[]);
6
+ private config;
7
+ constructor(publishers: UtilsType[], config: {
8
+ publisherAllowInvalidStates?: boolean;
9
+ });
10
+ /** Loads the state of all publishers and resumes monitoring any pending txs */
11
+ loadState(): Promise<void>;
7
12
  getAvailablePublisher(filter?: PublisherFilter<UtilsType>): Promise<UtilsType>;
8
13
  interrupt(): void;
9
14
  }
10
- //# sourceMappingURL=publisher_manager.d.ts.map
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVyX21hbmFnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWJsaXNoZXJfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLHdCQUF3QixDQUFDO0FBd0JqRSxNQUFNLE1BQU0sZUFBZSxDQUFDLFNBQVMsU0FBUyxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxLQUFLLE9BQU8sQ0FBQztBQUV6RixxQkFBYSxnQkFBZ0IsQ0FBQyxTQUFTLFNBQVMsU0FBUyxHQUFHLFNBQVM7SUFLakUsT0FBTyxDQUFDLFVBQVU7SUFKcEIsT0FBTyxDQUFDLEdBQUcsQ0FBcUM7SUFDaEQsT0FBTyxDQUFDLE1BQU0sQ0FBNEM7SUFFMUQsWUFDVSxVQUFVLEVBQUUsU0FBUyxFQUFFLEVBQy9CLE1BQU0sRUFBRTtRQUFFLDJCQUEyQixDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQUUsRUFLbEQ7SUFFRCwrRUFBK0U7SUFDbEUsU0FBUyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFdEM7SUFRWSxxQkFBcUIsQ0FBQyxNQUFNLEdBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBYyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0ErQ3RHO0lBRU0sU0FBUyxTQUVmO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"publisher_manager.d.ts","sourceRoot":"","sources":["../src/publisher_manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAK3D,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;AAEzF,qBAAa,gBAAgB,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS;IAGvD,OAAO,CAAC,UAAU;IAF9B,OAAO,CAAC,GAAG,CAAoC;gBAE3B,UAAU,EAAE,SAAS,EAAE;IAW9B,qBAAqB,CAAC,MAAM,GAAE,eAAe,CAAC,SAAS,CAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAqChG,SAAS;CAGjB"}
1
+ {"version":3,"file":"publisher_manager.d.ts","sourceRoot":"","sources":["../src/publisher_manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAgB,MAAM,wBAAwB,CAAC;AAwBjE,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;AAEzF,qBAAa,gBAAgB,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS;IAKjE,OAAO,CAAC,UAAU;IAJpB,OAAO,CAAC,GAAG,CAAqC;IAChD,OAAO,CAAC,MAAM,CAA4C;IAE1D,YACU,UAAU,EAAE,SAAS,EAAE,EAC/B,MAAM,EAAE;QAAE,2BAA2B,CAAC,EAAE,OAAO,CAAA;KAAE,EAKlD;IAED,+EAA+E;IAClE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAEtC;IAQY,qBAAqB,CAAC,MAAM,GAAE,eAAe,CAAC,SAAS,CAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA+CtG;IAEM,SAAS,SAEf;CACF"}
@@ -1,33 +1,61 @@
1
+ import { pick } from '@aztec/foundation/collection';
1
2
  import { createLogger } from '@aztec/foundation/log';
2
- import { TxUtilsState } from './l1_tx_utils.js';
3
+ import { TxUtilsState } from './l1_tx_utils/index.js';
4
+ // Defines the order in which we prioritise publishers based on their state (first is better)
3
5
  const sortOrder = [
6
+ // Always prefer sending from idle publishers
4
7
  TxUtilsState.IDLE,
5
- TxUtilsState.MINED
8
+ // Then from publishers that have sent a tx and it got mined
9
+ TxUtilsState.MINED,
10
+ // Then from publishers that have sent a tx but it's in-flight
11
+ TxUtilsState.SPEED_UP,
12
+ TxUtilsState.SENT,
13
+ // We leave cancelled and not-mined states for last, since these represent failures to mines and could be problematic
14
+ TxUtilsState.CANCELLED,
15
+ TxUtilsState.NOT_MINED
6
16
  ];
7
- const invalidStates = [
17
+ // Which states represent a busy publisher that we should avoid if possible
18
+ const busyStates = [
8
19
  TxUtilsState.SENT,
9
20
  TxUtilsState.SPEED_UP,
10
21
  TxUtilsState.CANCELLED,
11
22
  TxUtilsState.NOT_MINED
12
- ]; // Cancelled and not mined are states that can be handled by a later iteration
23
+ ];
13
24
  export class PublisherManager {
14
25
  publishers;
15
26
  log;
16
- constructor(publishers){
27
+ config;
28
+ constructor(publishers, config){
17
29
  this.publishers = publishers;
18
- this.log = createLogger('PublisherManager');
30
+ this.log = createLogger('publisher:manager');
19
31
  this.log.info(`PublisherManager initialized with ${publishers.length} publishers.`);
20
32
  this.publishers = publishers;
33
+ this.config = pick(config, 'publisherAllowInvalidStates');
34
+ }
35
+ /** Loads the state of all publishers and resumes monitoring any pending txs */ async loadState() {
36
+ await Promise.all(this.publishers.map((pub)=>pub.loadStateAndResumeMonitoring()));
21
37
  }
22
38
  // Finds and prioritises available publishers based on
23
39
  // 1. Validity as per the provided filter function
24
40
  // 2. Validity based on the state the publisher is in
25
- // 3. Priority based on state as defined bu sortOrder
41
+ // 3. Priority based on state as defined by sortOrder
26
42
  // 4. Then priority based on highest balance
27
43
  // 5. Then priority based on least recently used
28
44
  async getAvailablePublisher(filter = ()=>true) {
45
+ this.log.debug(`Getting available publisher`, {
46
+ publishers: this.publishers.map((p)=>({
47
+ address: p.getSenderAddress(),
48
+ state: p.state,
49
+ lastMined: p.lastMinedAtBlockNumber
50
+ }))
51
+ });
29
52
  // Extract the valid publishers
30
- const validPublishers = this.publishers.filter((pub)=>!invalidStates.includes(pub.state) && filter(pub));
53
+ let validPublishers = this.publishers.filter((pub)=>!busyStates.includes(pub.state) && filter(pub));
54
+ // If none found but we allow invalid (busy) states, try again including them
55
+ if (validPublishers.length === 0 && this.config.publisherAllowInvalidStates) {
56
+ this.log.warn(`No valid publishers found. Trying again including invalid states.`);
57
+ validPublishers = this.publishers.filter((pub)=>filter(pub));
58
+ }
31
59
  // Error if none found
32
60
  if (validPublishers.length === 0) {
33
61
  throw new Error(`Failed to find an available publisher.`);
package/dest/queries.d.ts CHANGED
@@ -11,4 +11,4 @@ export declare function getL1ContractsConfig(publicClient: ViemPublicClient, add
11
11
  rollupVersion: number;
12
12
  genesisArchiveTreeRoot: `0x${string}`;
13
13
  }>;
14
- //# sourceMappingURL=queries.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXJELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRW5ELHFEQUFxRDtBQUNyRCx3QkFBc0Isb0JBQW9CLENBQ3hDLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsU0FBUyxFQUFFO0lBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDO0lBQUMsYUFBYSxDQUFDLEVBQUUsVUFBVSxDQUFBO0NBQUUsR0FDdkUsT0FBTyxDQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyxHQUFHO0lBQ2hELFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHNCQUFzQixFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Q0FDdkMsQ0FDRixDQWdHQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAK3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qDAAqD;AACrD,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE;IAAE,iBAAiB,EAAE,UAAU,CAAC;IAAC,aAAa,CAAC,EAAE,UAAU,CAAA;CAAE,GACvE,OAAO,CACR,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAAG;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;CACvC,CACF,CAqFA"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qDAAqD;AACrD,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE;IAAE,iBAAiB,EAAE,UAAU,CAAC;IAAC,aAAa,CAAC,EAAE,UAAU,CAAA;CAAE,GACvE,OAAO,CACR,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAAG;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;CACvC,CACF,CAgGA"}
package/dest/queries.js CHANGED
@@ -1,6 +1,4 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
- import { SlasherAbi } from '@aztec/l1-artifacts/SlasherAbi';
3
- import { getContract } from 'viem';
4
2
  import { ReadOnlyGovernanceContract } from './contracts/governance.js';
5
3
  import { GovernanceProposerContract } from './contracts/governance_proposer.js';
6
4
  import { RollupContract } from './contracts/rollup.js';
@@ -11,21 +9,19 @@ import { RollupContract } from './contracts/rollup.js';
11
9
  const rollupAddress = addresses.rollupAddress ?? await governanceProposer.getRollupAddress();
12
10
  const rollup = new RollupContract(publicClient, rollupAddress.toString());
13
11
  const slasherProposer = await rollup.getSlashingProposer();
14
- const slasherAddress = await rollup.getSlasher();
15
- const slasher = getContract({
16
- address: slasherAddress,
17
- abi: SlasherAbi,
18
- client: publicClient
19
- });
20
- const [l1StartBlock, l1GenesisTime, aztecEpochDuration, aztecSlotDuration, aztecProofSubmissionEpochs, aztecTargetCommitteeSize, activationThreshold, ejectionThreshold, governanceProposerQuorum, governanceProposerRoundSize, slashingQuorum, slashingRoundSize, slashingLifetimeInRounds, slashingExecutionDelayInRounds, slashingOffsetInRounds, slashingAmounts, slashingVetoer, manaTarget, provingCostPerMana, rollupVersion, genesisArchiveTreeRoot, exitDelay] = await Promise.all([
12
+ const slasher = await rollup.getSlasherContract();
13
+ const [l1StartBlock, l1GenesisTime, aztecEpochDuration, aztecSlotDuration, aztecProofSubmissionEpochs, aztecTargetCommitteeSize, lagInEpochsForValidatorSet, lagInEpochsForRandao, activationThreshold, ejectionThreshold, localEjectionThreshold, governanceProposerQuorum, governanceProposerRoundSize, slashingQuorum, slashingRoundSize, slashingLifetimeInRounds, slashingExecutionDelayInRounds, slashingOffsetInRounds, slashingAmounts, slashingVetoer, slashingDisableDuration, manaTarget, provingCostPerMana, rollupVersion, genesisArchiveTreeRoot, exitDelay] = await Promise.all([
21
14
  rollup.getL1StartBlock(),
22
15
  rollup.getL1GenesisTime(),
23
16
  rollup.getEpochDuration(),
24
17
  rollup.getSlotDuration(),
25
18
  rollup.getProofSubmissionEpochs(),
26
19
  rollup.getTargetCommitteeSize(),
20
+ rollup.getLagInEpochsForValidatorSet(),
21
+ rollup.getLagInEpochsForRandao(),
27
22
  rollup.getActivationThreshold(),
28
23
  rollup.getEjectionThreshold(),
24
+ rollup.getLocalEjectionThreshold(),
29
25
  governanceProposer.getQuorumSize(),
30
26
  governanceProposer.getRoundSize(),
31
27
  slasherProposer?.getQuorumSize() ?? 0n,
@@ -38,7 +34,8 @@ import { RollupContract } from './contracts/rollup.js';
38
34
  0n,
39
35
  0n
40
36
  ],
41
- slasher.read.VETOER(),
37
+ slasher?.getVetoer() ?? EthAddress.ZERO,
38
+ slasher?.getSlashingDisableDuration() ?? 0,
42
39
  rollup.getManaTarget(),
43
40
  rollup.getProvingCostPerMana(),
44
41
  rollup.getVersion(),
@@ -52,16 +49,20 @@ import { RollupContract } from './contracts/rollup.js';
52
49
  aztecSlotDuration: Number(aztecSlotDuration),
53
50
  aztecProofSubmissionEpochs: Number(aztecProofSubmissionEpochs),
54
51
  aztecTargetCommitteeSize: Number(aztecTargetCommitteeSize),
52
+ lagInEpochsForValidatorSet: Number(lagInEpochsForValidatorSet),
53
+ lagInEpochsForRandao: Number(lagInEpochsForRandao),
55
54
  governanceProposerQuorum: Number(governanceProposerQuorum),
56
55
  governanceProposerRoundSize: Number(governanceProposerRoundSize),
57
56
  activationThreshold,
58
57
  ejectionThreshold,
58
+ localEjectionThreshold,
59
59
  slashingQuorum: Number(slashingQuorum),
60
60
  slashingRoundSizeInEpochs: Number(slashingRoundSize / aztecEpochDuration),
61
61
  slashingLifetimeInRounds: Number(slashingLifetimeInRounds),
62
62
  slashingExecutionDelayInRounds: Number(slashingExecutionDelayInRounds),
63
- slashingVetoer: EthAddress.fromString(slashingVetoer),
64
- manaTarget: manaTarget,
63
+ slashingVetoer,
64
+ slashingDisableDuration,
65
+ manaTarget,
65
66
  provingCostPerMana: provingCostPerMana,
66
67
  rollupVersion: Number(rollupVersion),
67
68
  genesisArchiveTreeRoot,
@@ -1,4 +1,5 @@
1
- import { type RollupContract } from '@aztec/ethereum/contracts';
1
+ import type { RollupContract } from '@aztec/ethereum/contracts';
2
+ import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
3
  import { EthAddress } from '@aztec/foundation/eth-address';
3
4
  import { DateProvider } from '@aztec/foundation/timer';
4
5
  import { EventEmitter } from 'events';
@@ -7,13 +8,16 @@ export type ChainMonitorEventMap = {
7
8
  l1BlockNumber: number;
8
9
  timestamp: bigint;
9
10
  }];
10
- 'l2-block': [{
11
- l2BlockNumber: number;
12
- l1BlockNumber: number;
13
- timestamp: bigint;
14
- }];
15
- 'l2-block-proven': [{
16
- l2ProvenBlockNumber: number;
11
+ checkpoint: [
12
+ {
13
+ checkpointNumber: CheckpointNumber;
14
+ l1BlockNumber: number;
15
+ l2SlotNumber: SlotNumber;
16
+ timestamp: bigint;
17
+ }
18
+ ];
19
+ 'checkpoint-proven': [{
20
+ provenCheckpointNumber: CheckpointNumber;
17
21
  l1BlockNumber: number;
18
22
  timestamp: bigint;
19
23
  }];
@@ -22,10 +26,14 @@ export type ChainMonitorEventMap = {
22
26
  l1BlockNumber: number;
23
27
  }];
24
28
  'l2-epoch': [{
25
- l2EpochNumber: number;
29
+ l2EpochNumber: EpochNumber;
26
30
  timestamp: bigint;
27
31
  committee: EthAddress[] | undefined;
28
32
  }];
33
+ 'l2-slot': [{
34
+ l2SlotNumber: SlotNumber;
35
+ timestamp: bigint;
36
+ }];
29
37
  };
30
38
  /** Utility class that polls the chain on quick intervals and logs new L1 blocks, L2 blocks, and L2 proofs. */
31
39
  export declare class ChainMonitor extends EventEmitter<ChainMonitorEventMap> {
@@ -39,23 +47,29 @@ export declare class ChainMonitor extends EventEmitter<ChainMonitorEventMap> {
39
47
  private running;
40
48
  /** Current L1 block number */
41
49
  l1BlockNumber: number;
42
- /** Current L2 block number */
43
- l2BlockNumber: number;
44
- /** Current L2 proven block number */
45
- l2ProvenBlockNumber: number;
46
- /** L1 timestamp for the current L2 block */
47
- l2BlockTimestamp: bigint;
48
- /** L1 timestamp for the proven L2 block */
49
- l2ProvenBlockTimestamp: bigint;
50
+ /** Current checkpoint number */
51
+ checkpointNumber: CheckpointNumber;
52
+ /** Current proven checkpoint number */
53
+ provenCheckpointNumber: CheckpointNumber;
54
+ /** L1 timestamp for the current checkpoint */
55
+ checkpointTimestamp: bigint;
56
+ /** L1 timestamp for the proven checkpoint */
57
+ provenCheckpointTimestamp: bigint;
50
58
  /** Total number of L2 messages pushed into the Inbox */
51
59
  totalL2Messages: number;
52
60
  /** Current L2 epoch number */
53
- l2EpochNumber: bigint;
61
+ l2EpochNumber: EpochNumber;
62
+ /** Current L2 slot number */
63
+ l2SlotNumber: SlotNumber;
54
64
  constructor(rollup: RollupContract, dateProvider?: DateProvider, logger?: import("@aztec/foundation/log").Logger, intervalMs?: number);
55
65
  start(): this;
56
66
  stop(): Promise<void>;
57
67
  private getInbox;
58
68
  protected safeRun(): void;
59
69
  run(force?: boolean): Promise<this>;
70
+ waitUntilL2Slot(slot: SlotNumber): Promise<void>;
71
+ waitUntilL1Block(block: number | bigint): Promise<void>;
72
+ waitUntilL1Timestamp(timestamp: number | bigint): Promise<void>;
73
+ waitUntilCheckpoint(checkpointNumber: CheckpointNumber): Promise<void>;
60
74
  }
61
- //# sourceMappingURL=chain_monitor.d.ts.map
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fbW9uaXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvY2hhaW5fbW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUl0QyxNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsVUFBVSxFQUFFLENBQUM7UUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztJQUMzRCxVQUFVLEVBQUU7UUFDVjtZQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO1lBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztZQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7WUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO1NBQUU7S0FDM0csQ0FBQztJQUNGLG1CQUFtQixFQUFFLENBQUM7UUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztRQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7UUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQzlHLGFBQWEsRUFBRSxDQUFDO1FBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQztRQUFDLGFBQWEsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDcEUsVUFBVSxFQUFFLENBQUM7UUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztRQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDckcsU0FBUyxFQUFFLENBQUM7UUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztDQUM5RCxDQUFDO0FBRUYsOEdBQThHO0FBQzlHLHFCQUFhLFlBQWEsU0FBUSxZQUFZLENBQUMsb0JBQW9CLENBQUM7SUF5QmhFLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVTtJQTNCN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQWE7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBNEI7SUFDekMsT0FBTyxDQUFDLE1BQU0sQ0FBNkI7SUFFM0MsT0FBTyxDQUFDLE9BQU8sQ0FBaUM7SUFFaEQsOEJBQThCO0lBQ3ZCLGFBQWEsRUFBRyxNQUFNLENBQUM7SUFDOUIsZ0NBQWdDO0lBQ3pCLGdCQUFnQixFQUFHLGdCQUFnQixDQUFDO0lBQzNDLHVDQUF1QztJQUNoQyxzQkFBc0IsRUFBRyxnQkFBZ0IsQ0FBQztJQUNqRCw4Q0FBOEM7SUFDdkMsbUJBQW1CLEVBQUcsTUFBTSxDQUFDO0lBQ3BDLDZDQUE2QztJQUN0Qyx5QkFBeUIsRUFBRyxNQUFNLENBQUM7SUFDMUMsd0RBQXdEO0lBQ2pELGVBQWUsRUFBRSxNQUFNLENBQUs7SUFDbkMsOEJBQThCO0lBQ3ZCLGFBQWEsRUFBRyxXQUFXLENBQUM7SUFDbkMsNkJBQTZCO0lBQ3RCLFlBQVksRUFBRyxVQUFVLENBQUM7SUFFakMsWUFDbUIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLE1BQU0seUNBQThDLEVBQ3BELFVBQVUsU0FBTSxFQUlsQztJQUVELEtBQUssU0FNSjtJQUVLLElBQUksa0JBV1Q7WUFFYSxRQUFRO0lBUXRCLFNBQVMsQ0FBQyxPQUFPLFNBWWhCO0lBRUssR0FBRyxDQUFDLEtBQUssVUFBUSxpQkFnRnRCO0lBRU0sZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWF0RDtJQUVNLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjN0Q7SUFFTSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBY3JFO0lBRU0sbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWE1RTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../src/test/chain_monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,UAAU,EAAE,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,iBAAiB,EAAE,CAAC;QAAE,mBAAmB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,aAAa,EAAE,CAAC;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,UAAU,EAAE,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;CACjG,CAAC;AAEF,8GAA8G;AAC9G,qBAAa,YAAa,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAuBhE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAzB7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,OAAO,CAAiC;IAEhD,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;IAC9B,qCAAqC;IAC9B,mBAAmB,EAAG,MAAM,CAAC;IACpC,4CAA4C;IACrC,gBAAgB,EAAG,MAAM,CAAC;IACjC,2CAA2C;IACpC,sBAAsB,EAAG,MAAM,CAAC;IACvC,wDAAwD;IACjD,eAAe,EAAE,MAAM,CAAK;IACnC,8BAA8B;IACvB,aAAa,EAAG,MAAM,CAAC;gBAGX,MAAM,EAAE,cAAc,EACtB,YAAY,GAAE,YAAiC,EAC/C,MAAM,yCAA8C,EACpD,UAAU,SAAM;IAMnC,KAAK;IAQC,IAAI;YAaI,QAAQ;IAQtB,SAAS,CAAC,OAAO;IAcX,GAAG,CAAC,KAAK,UAAQ;CAoExB"}
1
+ {"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../src/test/chain_monitor.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,13 @@ import { EventEmitter } from 'events';
15
15
  // eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
16
16
  running;
17
17
  /** Current L1 block number */ l1BlockNumber;
18
- /** Current L2 block number */ l2BlockNumber;
19
- /** Current L2 proven block number */ l2ProvenBlockNumber;
20
- /** L1 timestamp for the current L2 block */ l2BlockTimestamp;
21
- /** L1 timestamp for the proven L2 block */ l2ProvenBlockTimestamp;
18
+ /** Current checkpoint number */ checkpointNumber;
19
+ /** Current proven checkpoint number */ provenCheckpointNumber;
20
+ /** L1 timestamp for the current checkpoint */ checkpointTimestamp;
21
+ /** L1 timestamp for the proven checkpoint */ provenCheckpointTimestamp;
22
22
  /** Total number of L2 messages pushed into the Inbox */ totalL2Messages;
23
23
  /** Current L2 epoch number */ l2EpochNumber;
24
+ /** Current L2 slot number */ l2SlotNumber;
24
25
  constructor(rollup, dateProvider = new DateProvider(), logger = createLogger('aztecjs:utils:chain_monitor'), intervalMs = 200){
25
26
  super(), this.rollup = rollup, this.dateProvider = dateProvider, this.logger = logger, this.intervalMs = intervalMs, this.running = new Set(), this.totalL2Messages = 0;
26
27
  this.l1Client = rollup.client;
@@ -71,37 +72,42 @@ import { EventEmitter } from 'events';
71
72
  return this;
72
73
  }
73
74
  this.l1BlockNumber = newL1BlockNumber;
74
- const block = await this.l1Client.getBlock({
75
- blockNumber: BigInt(newL1BlockNumber),
76
- includeTransactions: false
77
- });
78
- const timestamp = block.timestamp;
75
+ const [l2SlotNumber, l2Epoch, l1block] = await Promise.all([
76
+ this.rollup.getSlotNumber(),
77
+ this.rollup.getCurrentEpoch(),
78
+ this.l1Client.getBlock({
79
+ blockNumber: BigInt(newL1BlockNumber),
80
+ includeTransactions: false
81
+ })
82
+ ]);
83
+ const timestamp = l1block.timestamp;
79
84
  const timestampString = new Date(Number(timestamp) * 1000).toTimeString().split(' ')[0];
80
85
  this.emit('l1-block', {
81
86
  l1BlockNumber: newL1BlockNumber,
82
87
  timestamp
83
88
  });
84
89
  let msg = `L1 block ${newL1BlockNumber} mined at ${timestampString}`;
85
- const newL2BlockNumber = Number(await this.rollup.getBlockNumber());
86
- if (this.l2BlockNumber !== newL2BlockNumber) {
87
- const epochNumber = await this.rollup.getEpochNumber(BigInt(newL2BlockNumber));
88
- msg += ` with new L2 block ${newL2BlockNumber} for epoch ${epochNumber}`;
89
- this.l2BlockNumber = newL2BlockNumber;
90
- this.l2BlockTimestamp = timestamp;
91
- this.emit('l2-block', {
92
- l2BlockNumber: newL2BlockNumber,
90
+ const newCheckpointNumber = await this.rollup.getCheckpointNumber();
91
+ if (this.checkpointNumber !== newCheckpointNumber) {
92
+ const epochNumber = await this.rollup.getEpochNumberForCheckpoint(newCheckpointNumber);
93
+ msg += ` with new checkpoint ${newCheckpointNumber} for epoch ${epochNumber}`;
94
+ this.checkpointNumber = newCheckpointNumber;
95
+ this.checkpointTimestamp = timestamp;
96
+ this.emit('checkpoint', {
97
+ checkpointNumber: newCheckpointNumber,
93
98
  l1BlockNumber: newL1BlockNumber,
99
+ l2SlotNumber,
94
100
  timestamp
95
101
  });
96
102
  }
97
- const newL2ProvenBlockNumber = Number(await this.rollup.getProvenBlockNumber());
98
- if (this.l2ProvenBlockNumber !== newL2ProvenBlockNumber) {
99
- const epochNumber = await this.rollup.getEpochNumber(BigInt(newL2ProvenBlockNumber));
100
- msg += ` with proof up to L2 block ${newL2ProvenBlockNumber} for epoch ${epochNumber}`;
101
- this.l2ProvenBlockNumber = newL2ProvenBlockNumber;
102
- this.l2ProvenBlockTimestamp = timestamp;
103
- this.emit('l2-block-proven', {
104
- l2ProvenBlockNumber: newL2ProvenBlockNumber,
103
+ const newProvenCheckpointNumber = await this.rollup.getProvenCheckpointNumber();
104
+ if (this.provenCheckpointNumber !== newProvenCheckpointNumber) {
105
+ const epochNumber = await this.rollup.getEpochNumberForCheckpoint(newProvenCheckpointNumber);
106
+ msg += ` with proof up to checkpoint ${newProvenCheckpointNumber} for epoch ${epochNumber}`;
107
+ this.provenCheckpointNumber = newProvenCheckpointNumber;
108
+ this.provenCheckpointTimestamp = timestamp;
109
+ this.emit('checkpoint-proven', {
110
+ provenCheckpointNumber: newProvenCheckpointNumber,
105
111
  l1BlockNumber: newL1BlockNumber,
106
112
  timestamp
107
113
  });
@@ -116,20 +122,23 @@ import { EventEmitter } from 'events';
116
122
  l1BlockNumber: newL1BlockNumber
117
123
  });
118
124
  }
119
- const [l2SlotNumber, l2Epoch] = await Promise.all([
120
- this.rollup.getSlotNumber(),
121
- this.rollup.getCurrentEpoch()
122
- ]);
123
125
  let committee;
124
126
  if (l2Epoch !== this.l2EpochNumber) {
125
127
  this.l2EpochNumber = l2Epoch;
126
128
  committee = (await this.rollup.getCurrentEpochCommittee())?.map((addr)=>EthAddress.fromString(addr));
127
129
  this.emit('l2-epoch', {
128
- l2EpochNumber: Number(l2Epoch),
130
+ l2EpochNumber: l2Epoch,
129
131
  timestamp,
130
132
  committee
131
133
  });
132
- msg += ` starting new epoch ${this.l2EpochNumber} with committee ${committee?.join(', ') ?? 'undefined'}`;
134
+ msg += ` starting new epoch ${this.l2EpochNumber} `;
135
+ }
136
+ if (l2SlotNumber !== this.l2SlotNumber) {
137
+ this.l2SlotNumber = l2SlotNumber;
138
+ this.emit('l2-slot', {
139
+ l2SlotNumber,
140
+ timestamp
141
+ });
133
142
  }
134
143
  this.logger.info(msg, {
135
144
  currentTimestamp: this.dateProvider.nowInSeconds(),
@@ -137,11 +146,69 @@ import { EventEmitter } from 'events';
137
146
  l1BlockNumber: this.l1BlockNumber,
138
147
  l2SlotNumber,
139
148
  l2Epoch,
140
- l2BlockNumber: this.l2BlockNumber,
141
- l2ProvenBlockNumber: this.l2ProvenBlockNumber,
149
+ checkpointNumber: this.checkpointNumber,
150
+ provenCheckpointNumber: this.provenCheckpointNumber,
142
151
  totalL2Messages: this.totalL2Messages,
143
152
  committee
144
153
  });
145
154
  return this;
146
155
  }
156
+ waitUntilL2Slot(slot) {
157
+ if (this.l2SlotNumber >= slot) {
158
+ return Promise.resolve();
159
+ }
160
+ return new Promise((resolve)=>{
161
+ const listener = (data)=>{
162
+ if (data.l2SlotNumber >= slot) {
163
+ this.off('l2-slot', listener);
164
+ resolve();
165
+ }
166
+ };
167
+ this.on('l2-slot', listener);
168
+ });
169
+ }
170
+ waitUntilL1Block(block) {
171
+ const targetBlock = typeof block === 'bigint' ? block.valueOf() : block;
172
+ if (this.l1BlockNumber >= targetBlock) {
173
+ return Promise.resolve();
174
+ }
175
+ return new Promise((resolve)=>{
176
+ const listener = (data)=>{
177
+ if (data.l1BlockNumber >= targetBlock) {
178
+ this.off('l1-block', listener);
179
+ resolve();
180
+ }
181
+ };
182
+ this.on('l1-block', listener);
183
+ });
184
+ }
185
+ waitUntilL1Timestamp(timestamp) {
186
+ const targetTimestamp = typeof timestamp === 'bigint' ? timestamp.valueOf() : timestamp;
187
+ if (this.l1BlockNumber >= targetTimestamp) {
188
+ return Promise.resolve();
189
+ }
190
+ return new Promise((resolve)=>{
191
+ const listener = (data)=>{
192
+ if (data.timestamp >= targetTimestamp) {
193
+ this.off('l1-block', listener);
194
+ resolve();
195
+ }
196
+ };
197
+ this.on('l1-block', listener);
198
+ });
199
+ }
200
+ waitUntilCheckpoint(checkpointNumber) {
201
+ if (this.checkpointNumber >= checkpointNumber) {
202
+ return Promise.resolve();
203
+ }
204
+ return new Promise((resolve)=>{
205
+ const listener = (data)=>{
206
+ if (data.checkpointNumber >= checkpointNumber) {
207
+ this.off('checkpoint', listener);
208
+ resolve();
209
+ }
210
+ };
211
+ this.on('checkpoint', listener);
212
+ });
213
+ }
147
214
  }
@@ -1,7 +1,7 @@
1
1
  import { type Logger } from '@aztec/foundation/log';
2
2
  import { DateProvider } from '@aztec/foundation/timer';
3
- import { type L1TxUtilsConfig } from '../l1_tx_utils.js';
4
- import { L1TxUtilsWithBlobs } from '../l1_tx_utils_with_blobs.js';
3
+ import { type L1TxUtilsConfig } from '../l1_tx_utils/index.js';
4
+ import { L1TxUtilsWithBlobs } from '../l1_tx_utils/l1_tx_utils_with_blobs.js';
5
5
  import type { ExtendedViemWalletClient } from '../types.js';
6
6
  import { type Delayer } from './tx_delayer.js';
7
7
  export declare class DelayedTxUtils extends L1TxUtilsWithBlobs {
@@ -10,4 +10,4 @@ export declare class DelayedTxUtils extends L1TxUtilsWithBlobs {
10
10
  enableDelayer(ethereumSlotDuration: number): void;
11
11
  }
12
12
  export declare function createDelayedL1TxUtilsFromViemWallet(client: ExtendedViemWalletClient, logger?: Logger, dateProvider?: DateProvider, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean): DelayedTxUtils;
13
- //# sourceMappingURL=delayed_tx_utils.d.ts.map
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXllZF90eF91dGlscy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvZGVsYXllZF90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RCxxQkFBYSxjQUFlLFNBQVEsa0JBQWtCO0lBQzdDLE9BQU8sRUFBRSxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBRXBDLE9BQWMsYUFBYSxDQUN6QixTQUFTLEVBQUUsa0JBQWtCLEVBQzdCLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsTUFBTSxFQUFFLHdCQUF3QixrQkFTakM7SUFFTSxhQUFhLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxRQU1oRDtDQUNGO0FBRUQsd0JBQWdCLG9DQUFvQyxDQUNsRCxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLE1BQU0sR0FBRSxNQUFrQyxFQUMxQyxZQUFZLEdBQUUsWUFBaUMsRUFDL0MsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUNqQyxnQkFBZ0IsR0FBRSxPQUFlLGtCQVdsQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"delayed_tx_utils.d.ts","sourceRoot":"","sources":["../../src/test/delayed_tx_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,cAAe,SAAQ,kBAAkB;IAC7C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;WAEtB,aAAa,CACzB,SAAS,EAAE,kBAAkB,EAC7B,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE,wBAAwB;IAW3B,aAAa,CAAC,oBAAoB,EAAE,MAAM;CAOlD;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,wBAAwB,EAChC,MAAM,GAAE,MAAkC,EAC1C,YAAY,GAAE,YAAiC,EAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,gBAAgB,GAAE,OAAe,kBAWlC"}
1
+ {"version":3,"file":"delayed_tx_utils.d.ts","sourceRoot":"","sources":["../../src/test/delayed_tx_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,cAAe,SAAQ,kBAAkB;IAC7C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAEpC,OAAc,aAAa,CACzB,SAAS,EAAE,kBAAkB,EAC7B,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE,wBAAwB,kBASjC;IAEM,aAAa,CAAC,oBAAoB,EAAE,MAAM,QAMhD;CACF;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,wBAAwB,EAChC,MAAM,GAAE,MAAkC,EAC1C,YAAY,GAAE,YAAiC,EAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,gBAAgB,GAAE,OAAe,kBAWlC"}
@@ -1,8 +1,8 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { DateProvider } from '@aztec/foundation/timer';
4
- import { createViemSigner } from '../l1_tx_utils.js';
5
- import { L1TxUtilsWithBlobs } from '../l1_tx_utils_with_blobs.js';
4
+ import { createViemSigner } from '../l1_tx_utils/index.js';
5
+ import { L1TxUtilsWithBlobs } from '../l1_tx_utils/l1_tx_utils_with_blobs.js';
6
6
  import { withDelayer } from './tx_delayer.js';
7
7
  export class DelayedTxUtils extends L1TxUtilsWithBlobs {
8
8
  delayer;