@aztec/ethereum 0.0.0-test.1 → 0.0.1-commit.0208eb9

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 (285) hide show
  1. package/dest/account.d.ts +2 -0
  2. package/dest/account.d.ts.map +1 -0
  3. package/dest/account.js +4 -0
  4. package/dest/chain.d.ts +1 -1
  5. package/dest/client.d.ts +6 -4
  6. package/dest/client.d.ts.map +1 -1
  7. package/dest/client.js +21 -3
  8. package/dest/config.d.ts +68 -23
  9. package/dest/config.d.ts.map +1 -1
  10. package/dest/config.js +145 -32
  11. package/dest/constants.d.ts +1 -1
  12. package/dest/contracts/empire_base.d.ts +25 -8
  13. package/dest/contracts/empire_base.d.ts.map +1 -1
  14. package/dest/contracts/empire_base.js +75 -2
  15. package/dest/contracts/empire_slashing_proposer.d.ts +67 -0
  16. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -0
  17. package/dest/contracts/empire_slashing_proposer.js +207 -0
  18. package/dest/contracts/errors.d.ts +7 -0
  19. package/dest/contracts/errors.d.ts.map +1 -0
  20. package/dest/contracts/errors.js +12 -0
  21. package/dest/contracts/fee_asset_handler.d.ts +20 -0
  22. package/dest/contracts/fee_asset_handler.d.ts.map +1 -0
  23. package/dest/contracts/fee_asset_handler.js +59 -0
  24. package/dest/contracts/fee_juice.d.ts +6 -7
  25. package/dest/contracts/fee_juice.d.ts.map +1 -1
  26. package/dest/contracts/fee_juice.js +27 -20
  27. package/dest/contracts/governance.d.ts +45 -32
  28. package/dest/contracts/governance.d.ts.map +1 -1
  29. package/dest/contracts/governance.js +98 -85
  30. package/dest/contracts/governance_proposer.d.ts +17 -13
  31. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  32. package/dest/contracts/governance_proposer.js +432 -26
  33. package/dest/contracts/gse.d.ts +32 -0
  34. package/dest/contracts/gse.d.ts.map +1 -0
  35. package/dest/contracts/gse.js +72 -0
  36. package/dest/contracts/inbox.d.ts +47 -0
  37. package/dest/contracts/inbox.d.ts.map +1 -0
  38. package/dest/contracts/inbox.js +80 -0
  39. package/dest/contracts/index.d.ts +11 -3
  40. package/dest/contracts/index.d.ts.map +1 -1
  41. package/dest/contracts/index.js +10 -2
  42. package/dest/contracts/log.d.ts +13 -0
  43. package/dest/contracts/log.d.ts.map +1 -0
  44. package/dest/contracts/log.js +1 -0
  45. package/dest/contracts/multicall.d.ts +21 -0
  46. package/dest/contracts/multicall.d.ts.map +1 -0
  47. package/dest/contracts/multicall.js +157 -0
  48. package/dest/contracts/outbox.d.ts +41 -0
  49. package/dest/contracts/outbox.d.ts.map +1 -0
  50. package/dest/contracts/outbox.js +86 -0
  51. package/dest/contracts/registry.d.ts +10 -5
  52. package/dest/contracts/registry.d.ts.map +1 -1
  53. package/dest/contracts/registry.js +44 -16
  54. package/dest/contracts/rollup.d.ts +297 -53
  55. package/dest/contracts/rollup.d.ts.map +1 -1
  56. package/dest/contracts/rollup.js +1127 -116
  57. package/dest/contracts/slasher_contract.d.ts +44 -0
  58. package/dest/contracts/slasher_contract.d.ts.map +1 -0
  59. package/dest/contracts/slasher_contract.js +75 -0
  60. package/dest/contracts/tally_slashing_proposer.d.ts +140 -0
  61. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -0
  62. package/dest/contracts/tally_slashing_proposer.js +320 -0
  63. package/dest/contracts/utils.d.ts +3 -0
  64. package/dest/contracts/utils.d.ts.map +1 -0
  65. package/dest/contracts/utils.js +11 -0
  66. package/dest/deploy_aztec_l1_contracts.d.ts +260 -0
  67. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -0
  68. package/dest/deploy_aztec_l1_contracts.js +399 -0
  69. package/dest/deploy_l1_contract.d.ts +68 -0
  70. package/dest/deploy_l1_contract.d.ts.map +1 -0
  71. package/dest/deploy_l1_contract.js +312 -0
  72. package/dest/eth-signer/eth-signer.d.ts +21 -0
  73. package/dest/eth-signer/eth-signer.d.ts.map +1 -0
  74. package/dest/eth-signer/eth-signer.js +5 -0
  75. package/dest/eth-signer/index.d.ts +2 -0
  76. package/dest/eth-signer/index.d.ts.map +1 -0
  77. package/dest/eth-signer/index.js +1 -0
  78. package/dest/forwarder_proxy.d.ts +32 -0
  79. package/dest/forwarder_proxy.d.ts.map +1 -0
  80. package/dest/forwarder_proxy.js +93 -0
  81. package/dest/generated/l1-contracts-defaults.d.ts +30 -0
  82. package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
  83. package/dest/generated/l1-contracts-defaults.js +30 -0
  84. package/dest/l1_artifacts.d.ts +80735 -0
  85. package/dest/l1_artifacts.d.ts.map +1 -0
  86. package/dest/l1_artifacts.js +166 -0
  87. package/dest/l1_contract_addresses.d.ts +24 -4
  88. package/dest/l1_contract_addresses.d.ts.map +1 -1
  89. package/dest/l1_contract_addresses.js +25 -21
  90. package/dest/l1_reader.d.ts +4 -2
  91. package/dest/l1_reader.d.ts.map +1 -1
  92. package/dest/l1_reader.js +14 -8
  93. package/dest/l1_tx_utils/config.d.ts +59 -0
  94. package/dest/l1_tx_utils/config.d.ts.map +1 -0
  95. package/dest/l1_tx_utils/config.js +96 -0
  96. package/dest/l1_tx_utils/constants.d.ts +12 -0
  97. package/dest/l1_tx_utils/constants.d.ts.map +1 -0
  98. package/dest/l1_tx_utils/constants.js +39 -0
  99. package/dest/l1_tx_utils/factory.d.ts +24 -0
  100. package/dest/l1_tx_utils/factory.d.ts.map +1 -0
  101. package/dest/l1_tx_utils/factory.js +12 -0
  102. package/dest/l1_tx_utils/fee-strategies/index.d.ts +10 -0
  103. package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
  104. package/dest/l1_tx_utils/fee-strategies/index.js +12 -0
  105. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +8 -0
  106. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
  107. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +129 -0
  108. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +23 -0
  109. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
  110. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +191 -0
  111. package/dest/l1_tx_utils/fee-strategies/types.d.ts +51 -0
  112. package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
  113. package/dest/l1_tx_utils/fee-strategies/types.js +3 -0
  114. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
  115. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
  116. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +48 -0
  117. package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
  118. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
  119. package/dest/l1_tx_utils/index-blobs.js +2 -0
  120. package/dest/l1_tx_utils/index.d.ts +12 -0
  121. package/dest/l1_tx_utils/index.d.ts.map +1 -0
  122. package/dest/l1_tx_utils/index.js +12 -0
  123. package/dest/l1_tx_utils/interfaces.d.ts +76 -0
  124. package/dest/l1_tx_utils/interfaces.d.ts.map +1 -0
  125. package/dest/l1_tx_utils/interfaces.js +4 -0
  126. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +233 -0
  127. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
  128. package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
  129. package/dest/l1_tx_utils/l1_tx_utils.d.ts +94 -0
  130. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -0
  131. package/dest/l1_tx_utils/l1_tx_utils.js +623 -0
  132. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +26 -0
  133. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +1 -0
  134. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +26 -0
  135. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +83 -0
  136. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -0
  137. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +323 -0
  138. package/dest/l1_tx_utils/signer.d.ts +4 -0
  139. package/dest/l1_tx_utils/signer.d.ts.map +1 -0
  140. package/dest/l1_tx_utils/signer.js +16 -0
  141. package/dest/l1_tx_utils/types.d.ts +67 -0
  142. package/dest/l1_tx_utils/types.d.ts.map +1 -0
  143. package/dest/l1_tx_utils/types.js +26 -0
  144. package/dest/l1_tx_utils/utils.d.ts +4 -0
  145. package/dest/l1_tx_utils/utils.d.ts.map +1 -0
  146. package/dest/l1_tx_utils/utils.js +14 -0
  147. package/dest/l1_types.d.ts +6 -0
  148. package/dest/l1_types.d.ts.map +1 -0
  149. package/dest/l1_types.js +1 -0
  150. package/dest/publisher_manager.d.ts +16 -0
  151. package/dest/publisher_manager.d.ts.map +1 -0
  152. package/dest/publisher_manager.js +88 -0
  153. package/dest/queries.d.ts +5 -3
  154. package/dest/queries.d.ts.map +1 -1
  155. package/dest/queries.js +61 -12
  156. package/dest/test/chain_monitor.d.ts +75 -0
  157. package/dest/test/chain_monitor.d.ts.map +1 -0
  158. package/dest/test/chain_monitor.js +213 -0
  159. package/dest/test/delayed_tx_utils.d.ts +8 -3
  160. package/dest/test/delayed_tx_utils.d.ts.map +1 -1
  161. package/dest/test/delayed_tx_utils.js +13 -6
  162. package/dest/test/eth_cheat_codes.d.ts +229 -0
  163. package/dest/test/eth_cheat_codes.d.ts.map +1 -0
  164. package/dest/test/eth_cheat_codes.js +560 -0
  165. package/dest/test/eth_cheat_codes_with_state.d.ts +2 -2
  166. package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -1
  167. package/dest/test/eth_cheat_codes_with_state.js +1 -1
  168. package/dest/test/index.d.ts +4 -1
  169. package/dest/test/index.d.ts.map +1 -1
  170. package/dest/test/index.js +3 -0
  171. package/dest/test/rollup_cheat_codes.d.ts +90 -0
  172. package/dest/test/rollup_cheat_codes.d.ts.map +1 -0
  173. package/dest/test/rollup_cheat_codes.js +292 -0
  174. package/dest/test/start_anvil.d.ts +9 -1
  175. package/dest/test/start_anvil.d.ts.map +1 -1
  176. package/dest/test/start_anvil.js +16 -7
  177. package/dest/test/tx_delayer.d.ts +18 -7
  178. package/dest/test/tx_delayer.d.ts.map +1 -1
  179. package/dest/test/tx_delayer.js +97 -20
  180. package/dest/test/upgrade_utils.d.ts +6 -5
  181. package/dest/test/upgrade_utils.d.ts.map +1 -1
  182. package/dest/test/upgrade_utils.js +23 -16
  183. package/dest/types.d.ts +62 -8
  184. package/dest/types.d.ts.map +1 -1
  185. package/dest/types.js +3 -1
  186. package/dest/utils.d.ts +17 -3
  187. package/dest/utils.d.ts.map +1 -1
  188. package/dest/utils.js +107 -88
  189. package/dest/zkPassportVerifierAddress.d.ts +15 -0
  190. package/dest/zkPassportVerifierAddress.d.ts.map +1 -0
  191. package/dest/zkPassportVerifierAddress.js +11 -0
  192. package/package.json +51 -23
  193. package/src/account.ts +5 -0
  194. package/src/client.ts +43 -5
  195. package/src/config.ts +207 -41
  196. package/src/contracts/README.md +157 -0
  197. package/src/contracts/empire_base.ts +77 -7
  198. package/src/contracts/empire_slashing_proposer.ts +259 -0
  199. package/src/contracts/errors.ts +13 -0
  200. package/src/contracts/fee_asset_handler.ts +66 -0
  201. package/src/contracts/fee_juice.ts +29 -15
  202. package/src/contracts/governance.ts +90 -78
  203. package/src/contracts/governance_proposer.ts +75 -25
  204. package/src/contracts/gse.ts +88 -0
  205. package/src/contracts/inbox.ts +115 -0
  206. package/src/contracts/index.ts +10 -2
  207. package/src/contracts/log.ts +13 -0
  208. package/src/contracts/multicall.ts +158 -0
  209. package/src/contracts/outbox.ts +98 -0
  210. package/src/contracts/registry.ts +51 -26
  211. package/src/contracts/rollup.ts +879 -89
  212. package/src/contracts/slasher_contract.ts +89 -0
  213. package/src/contracts/tally_slashing_proposer.ts +322 -0
  214. package/src/contracts/utils.ts +14 -0
  215. package/src/deploy_aztec_l1_contracts.ts +623 -0
  216. package/src/deploy_l1_contract.ts +362 -0
  217. package/src/eth-signer/eth-signer.ts +25 -0
  218. package/src/eth-signer/index.ts +1 -0
  219. package/src/forwarder_proxy.ts +108 -0
  220. package/src/generated/l1-contracts-defaults.ts +32 -0
  221. package/src/l1_artifacts.ts +254 -0
  222. package/src/l1_contract_addresses.ts +49 -34
  223. package/src/l1_reader.ts +17 -9
  224. package/src/l1_tx_utils/README.md +177 -0
  225. package/src/l1_tx_utils/config.ts +161 -0
  226. package/src/l1_tx_utils/constants.ts +29 -0
  227. package/src/l1_tx_utils/factory.ts +64 -0
  228. package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
  229. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +163 -0
  230. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +245 -0
  231. package/src/l1_tx_utils/fee-strategies/types.ts +56 -0
  232. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +119 -0
  233. package/src/l1_tx_utils/index-blobs.ts +2 -0
  234. package/src/l1_tx_utils/index.ts +14 -0
  235. package/src/l1_tx_utils/interfaces.ts +86 -0
  236. package/src/l1_tx_utils/l1_fee_analyzer.ts +803 -0
  237. package/src/l1_tx_utils/l1_tx_utils.ts +738 -0
  238. package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +77 -0
  239. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +419 -0
  240. package/src/l1_tx_utils/signer.ts +28 -0
  241. package/src/l1_tx_utils/types.ts +85 -0
  242. package/src/l1_tx_utils/utils.ts +16 -0
  243. package/src/l1_types.ts +6 -0
  244. package/src/publisher_manager.ts +108 -0
  245. package/src/queries.ts +82 -16
  246. package/src/test/chain_monitor.ts +245 -0
  247. package/src/test/delayed_tx_utils.ts +34 -6
  248. package/src/test/eth_cheat_codes.ts +588 -0
  249. package/src/test/eth_cheat_codes_with_state.ts +1 -1
  250. package/src/test/index.ts +3 -0
  251. package/src/test/rollup_cheat_codes.ts +330 -0
  252. package/src/test/start_anvil.ts +24 -5
  253. package/src/test/tx_delayer.ts +130 -27
  254. package/src/test/upgrade_utils.ts +30 -21
  255. package/src/types.ts +71 -7
  256. package/src/utils.ts +133 -92
  257. package/src/zkPassportVerifierAddress.ts +15 -0
  258. package/dest/contracts/forwarder.d.ts +0 -24
  259. package/dest/contracts/forwarder.d.ts.map +0 -1
  260. package/dest/contracts/forwarder.js +0 -101
  261. package/dest/contracts/slashing_proposer.d.ts +0 -21
  262. package/dest/contracts/slashing_proposer.d.ts.map +0 -1
  263. package/dest/contracts/slashing_proposer.js +0 -47
  264. package/dest/deploy_l1_contracts.d.ts +0 -21210
  265. package/dest/deploy_l1_contracts.d.ts.map +0 -1
  266. package/dest/deploy_l1_contracts.js +0 -687
  267. package/dest/eth_cheat_codes.d.ts +0 -147
  268. package/dest/eth_cheat_codes.d.ts.map +0 -1
  269. package/dest/eth_cheat_codes.js +0 -303
  270. package/dest/index.d.ts +0 -14
  271. package/dest/index.d.ts.map +0 -1
  272. package/dest/index.js +0 -13
  273. package/dest/l1_tx_utils.d.ts +0 -192
  274. package/dest/l1_tx_utils.d.ts.map +0 -1
  275. package/dest/l1_tx_utils.js +0 -641
  276. package/dest/l1_tx_utils_with_blobs.d.ts +0 -12
  277. package/dest/l1_tx_utils_with_blobs.d.ts.map +0 -1
  278. package/dest/l1_tx_utils_with_blobs.js +0 -64
  279. package/src/contracts/forwarder.ts +0 -132
  280. package/src/contracts/slashing_proposer.ts +0 -51
  281. package/src/deploy_l1_contracts.ts +0 -948
  282. package/src/eth_cheat_codes.ts +0 -314
  283. package/src/index.ts +0 -13
  284. package/src/l1_tx_utils.ts +0 -847
  285. package/src/l1_tx_utils_with_blobs.ts +0 -86
@@ -0,0 +1,67 @@
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import EventEmitter from 'events';
4
+ import { type Hex, type Log, type TypedDataDefinition } from 'viem';
5
+ import type { L1TxRequest, L1TxUtils } from '../l1_tx_utils/index.js';
6
+ import type { ViemClient } from '../types.js';
7
+ import { type IEmpireBase } from './empire_base.js';
8
+ export declare class ProposalAlreadyExecutedError extends Error {
9
+ constructor(round: bigint);
10
+ }
11
+ export declare class EmpireSlashingProposerContract extends EventEmitter implements IEmpireBase {
12
+ readonly client: ViemClient;
13
+ private readonly logger;
14
+ private readonly proposer;
15
+ readonly type: "empire";
16
+ constructor(client: ViemClient, address: Hex | EthAddress);
17
+ get address(): EthAddress;
18
+ getQuorumSize(): Promise<bigint>;
19
+ getRoundSize(): Promise<bigint>;
20
+ getLifetimeInRounds(): Promise<bigint>;
21
+ getExecutionDelayInRounds(): Promise<bigint>;
22
+ getCurrentRound(): Promise<bigint>;
23
+ computeRound(slot: SlotNumber): Promise<bigint>;
24
+ getInstance(): Promise<`0x${string}`>;
25
+ getRoundInfo(rollupAddress: Hex, round: bigint): Promise<{
26
+ lastSignalSlot: SlotNumber;
27
+ payloadWithMostSignals: Hex;
28
+ quorumReached: boolean;
29
+ executed: boolean;
30
+ }>;
31
+ getPayloadSignals(rollupAddress: Hex, round: bigint, payload: Hex): Promise<bigint>;
32
+ createSignalRequest(payload: Hex): L1TxRequest;
33
+ createSignalRequestWithSignature(payload: Hex, slot: SlotNumber, chainId: number, signerAddress: Hex, signer: (msg: TypedDataDefinition) => Promise<Hex>): Promise<L1TxRequest>;
34
+ listenToSubmittablePayloads(callback: (args: {
35
+ payload: `0x${string}`;
36
+ round: bigint;
37
+ }) => unknown): import("viem").WatchContractEventReturnType;
38
+ listenToPayloadSubmitted(callback: (args: {
39
+ round: bigint;
40
+ payload: `0x${string}`;
41
+ }) => unknown): import("viem").WatchContractEventReturnType;
42
+ listenToSignalCasted(callback: (args: {
43
+ round: bigint;
44
+ payload: `0x${string}`;
45
+ signaler: `0x${string}`;
46
+ }) => unknown): import("viem").WatchContractEventReturnType;
47
+ /** Creates an L1TxRequest to submit the round winner for the given round. */
48
+ buildExecuteRoundRequest(round: bigint): L1TxRequest;
49
+ /** Tries to extract a PayloadSubmitted event from the given logs. */
50
+ tryExtractPayloadSubmittedEvent(logs: Log[]): {
51
+ eventName: "PayloadSubmitted";
52
+ args: {
53
+ payload: `0x${string}`;
54
+ round: bigint;
55
+ };
56
+ } | undefined;
57
+ /**
58
+ * Wait for a round to be reached.
59
+ *
60
+ * @param round - The round to wait for.
61
+ * @param pollingIntervalSeconds - The interval in seconds to poll for the round.
62
+ * @returns True if the round was reached, false otherwise.
63
+ */
64
+ waitForRound(round: bigint, pollingIntervalSeconds?: number): Promise<boolean>;
65
+ executeRound(txUtils: L1TxUtils, round: bigint | number): ReturnType<typeof txUtils.sendAndMonitorTransaction>;
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX3NsYXNoaW5nX3Byb3Bvc2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL2VtcGlyZV9zbGFzaGluZ19wcm9wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSzNELE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBRUwsS0FBSyxHQUFHLEVBQ1IsS0FBSyxHQUFHLEVBQ1IsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBOEQsTUFBTSxrQkFBa0IsQ0FBQztBQUVoSCxxQkFBYSw0QkFBNkIsU0FBUSxLQUFLO0lBQ3JELFlBQVksS0FBSyxFQUFFLE1BQU0sRUFFeEI7Q0FDRjtBQUVELHFCQUFhLDhCQUErQixTQUFRLFlBQWEsWUFBVyxXQUFXO2FBT25FLE1BQU0sRUFBRSxVQUFVO0lBTnBDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUErRDtJQUN0RixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBc0U7SUFFL0YsU0FBZ0IsSUFBSSxXQUFxQjtJQUV6QyxZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFRMUI7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFTSxhQUFhLG9CQUVuQjtJQUVNLFlBQVksb0JBRWxCO0lBRU0sbUJBQW1CLG9CQUV6QjtJQUVNLHlCQUF5QixvQkFFL0I7SUFFTSxlQUFlLG9CQUVyQjtJQUVNLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFckQ7SUFFTSxXQUFXLDJCQUVqQjtJQUVZLFlBQVksQ0FDdkIsYUFBYSxFQUFFLEdBQUcsRUFDbEIsS0FBSyxFQUFFLE1BQU0sR0FDWixPQUFPLENBQUM7UUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDO1FBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDO1FBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztRQUFDLFFBQVEsRUFBRSxPQUFPLENBQUE7S0FBRSxDQUFDLENBWWpIO0lBRU0saUJBQWlCLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV6RjtJQUVNLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsV0FBVyxDQU1wRDtJQUVZLGdDQUFnQyxDQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUNaLElBQUksRUFBRSxVQUFVLEVBQ2hCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLEdBQUcsRUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLG1CQUFtQixLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FDakQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQWN0QjtJQUVNLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUFFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQUssT0FBTywrQ0FleEc7SUFFTSx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUE7S0FBRSxLQUFLLE9BQU8sK0NBY3JHO0lBRU0sb0JBQW9CLENBQ3pCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7UUFBQyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUFDLFFBQVEsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFBO0tBQUUsS0FBSyxPQUFPLCtDQWVoRztJQUVELDZFQUE2RTtJQUN0RSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FVMUQ7SUFFRCxxRUFBcUU7SUFDOUQsK0JBQStCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTs7Ozs7O2tCQUVqRDtJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixHQUFFLE1BQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBYXZGO0lBRVksWUFBWSxDQUN2QixPQUFPLEVBQUUsU0FBUyxFQUNsQixLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FDckIsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBbUN0RDtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empire_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_slashing_proposer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import { createLogger } from '@aztec/foundation/log';
4
+ import { retryUntil } from '@aztec/foundation/retry';
5
+ import { EmpireSlashingProposerAbi } from '@aztec/l1-artifacts/EmpireSlashingProposerAbi';
6
+ import EventEmitter from 'events';
7
+ import { encodeFunctionData, getContract } from 'viem';
8
+ import { FormattedViemError, tryExtractEvent } from '../utils.js';
9
+ import { encodeSignal, encodeSignalWithSignature, signSignalWithSig } from './empire_base.js';
10
+ export class ProposalAlreadyExecutedError extends Error {
11
+ constructor(round){
12
+ super(`Proposal already executed: ${round}`);
13
+ }
14
+ }
15
+ export class EmpireSlashingProposerContract extends EventEmitter {
16
+ client;
17
+ logger;
18
+ proposer;
19
+ type;
20
+ constructor(client, address){
21
+ super(), this.client = client, this.logger = createLogger('ethereum:contracts:empire_slashing_proposer'), this.type = 'empire';
22
+ this.proposer = getContract({
23
+ address: typeof address === 'string' ? address : address.toString(),
24
+ abi: EmpireSlashingProposerAbi,
25
+ client
26
+ });
27
+ }
28
+ get address() {
29
+ return EthAddress.fromString(this.proposer.address);
30
+ }
31
+ getQuorumSize() {
32
+ return this.proposer.read.QUORUM_SIZE();
33
+ }
34
+ getRoundSize() {
35
+ return this.proposer.read.ROUND_SIZE();
36
+ }
37
+ getLifetimeInRounds() {
38
+ return this.proposer.read.LIFETIME_IN_ROUNDS();
39
+ }
40
+ getExecutionDelayInRounds() {
41
+ return this.proposer.read.EXECUTION_DELAY_IN_ROUNDS();
42
+ }
43
+ getCurrentRound() {
44
+ return this.proposer.read.getCurrentRound();
45
+ }
46
+ computeRound(slot) {
47
+ return this.proposer.read.computeRound([
48
+ BigInt(slot)
49
+ ]);
50
+ }
51
+ getInstance() {
52
+ return this.proposer.read.getInstance();
53
+ }
54
+ async getRoundInfo(rollupAddress, round) {
55
+ const result = await this.proposer.read.getRoundData([
56
+ rollupAddress,
57
+ round
58
+ ]);
59
+ const [signalCount, quorum] = await Promise.all([
60
+ this.proposer.read.signalCount([
61
+ rollupAddress,
62
+ round,
63
+ result.payloadWithMostSignals
64
+ ]),
65
+ this.getQuorumSize()
66
+ ]);
67
+ return {
68
+ lastSignalSlot: SlotNumber.fromBigInt(result.lastSignalSlot),
69
+ payloadWithMostSignals: result.payloadWithMostSignals,
70
+ quorumReached: signalCount >= quorum,
71
+ executed: result.executed
72
+ };
73
+ }
74
+ getPayloadSignals(rollupAddress, round, payload) {
75
+ return this.proposer.read.signalCount([
76
+ rollupAddress,
77
+ round,
78
+ payload
79
+ ]);
80
+ }
81
+ createSignalRequest(payload) {
82
+ return {
83
+ to: this.address.toString(),
84
+ abi: EmpireSlashingProposerAbi,
85
+ data: encodeSignal(payload)
86
+ };
87
+ }
88
+ async createSignalRequestWithSignature(payload, slot, chainId, signerAddress, signer) {
89
+ const signature = await signSignalWithSig(signer, payload, slot, await this.getInstance(), this.address.toString(), chainId);
90
+ return {
91
+ to: this.address.toString(),
92
+ abi: EmpireSlashingProposerAbi,
93
+ data: encodeSignalWithSignature(payload, signature)
94
+ };
95
+ }
96
+ listenToSubmittablePayloads(callback) {
97
+ return this.proposer.watchEvent.PayloadSubmittable({}, {
98
+ strict: true,
99
+ onLogs: (logs)=>{
100
+ for (const log of logs){
101
+ const { payload, round } = log.args;
102
+ if (payload && round) {
103
+ callback({
104
+ payload,
105
+ round
106
+ });
107
+ }
108
+ }
109
+ }
110
+ });
111
+ }
112
+ listenToPayloadSubmitted(callback) {
113
+ return this.proposer.watchEvent.PayloadSubmitted({}, {
114
+ onLogs: (logs)=>{
115
+ for (const log of logs){
116
+ const { payload, round } = log.args;
117
+ if (round && payload) {
118
+ callback({
119
+ round,
120
+ payload
121
+ });
122
+ }
123
+ }
124
+ }
125
+ });
126
+ }
127
+ listenToSignalCasted(callback) {
128
+ return this.proposer.watchEvent.SignalCast({}, {
129
+ onLogs: (logs)=>{
130
+ for (const log of logs){
131
+ const { round, payload, signaler } = log.args;
132
+ if (round && payload && signaler) {
133
+ callback({
134
+ round,
135
+ payload,
136
+ signaler
137
+ });
138
+ }
139
+ }
140
+ }
141
+ });
142
+ }
143
+ /** Creates an L1TxRequest to submit the round winner for the given round. */ buildExecuteRoundRequest(round) {
144
+ return {
145
+ to: this.address.toString(),
146
+ abi: EmpireSlashingProposerAbi,
147
+ data: encodeFunctionData({
148
+ abi: EmpireSlashingProposerAbi,
149
+ functionName: 'submitRoundWinner',
150
+ args: [
151
+ round
152
+ ]
153
+ })
154
+ };
155
+ }
156
+ /** Tries to extract a PayloadSubmitted event from the given logs. */ tryExtractPayloadSubmittedEvent(logs) {
157
+ return tryExtractEvent(logs, this.address.toString(), EmpireSlashingProposerAbi, 'PayloadSubmitted');
158
+ }
159
+ /**
160
+ * Wait for a round to be reached.
161
+ *
162
+ * @param round - The round to wait for.
163
+ * @param pollingIntervalSeconds - The interval in seconds to poll for the round.
164
+ * @returns True if the round was reached, false otherwise.
165
+ */ waitForRound(round, pollingIntervalSeconds = 1) {
166
+ return retryUntil(async ()=>{
167
+ const currentRound = await this.proposer.read.getCurrentRound().catch((e)=>{
168
+ this.logger.error('Error getting current round', e);
169
+ return undefined;
170
+ });
171
+ return currentRound !== undefined && currentRound >= round;
172
+ }, `Waiting for round ${round} to be reached`, 0, pollingIntervalSeconds).catch(()=>false);
173
+ }
174
+ async executeRound(txUtils, round) {
175
+ if (typeof round === 'number') {
176
+ round = BigInt(round);
177
+ }
178
+ const request = this.buildExecuteRoundRequest(round);
179
+ const response = await txUtils.sendAndMonitorTransaction(request, {
180
+ // Gas estimation is way off for this, likely because we are creating the contract/selector to call
181
+ // for the actual slashing dynamically.
182
+ gasLimitBufferPercentage: 50
183
+ }).catch((err)=>{
184
+ if (err instanceof FormattedViemError && err.message.includes('ProposalAlreadyExecuted')) {
185
+ throw new ProposalAlreadyExecutedError(round);
186
+ }
187
+ throw err;
188
+ });
189
+ if (response.receipt.status === 'reverted') {
190
+ const args = {
191
+ abi: EmpireSlashingProposerAbi,
192
+ functionName: 'submitRoundWinner',
193
+ args: [
194
+ round
195
+ ],
196
+ address: this.address.toString()
197
+ };
198
+ const error = await txUtils.tryGetErrorFromRevertedTx(request.data, args, undefined, []);
199
+ if (error?.includes('ProposalAlreadyExecuted')) {
200
+ throw new ProposalAlreadyExecutedError(round);
201
+ }
202
+ const errorMessage = `Failed to execute round ${round}, TxHash: ${response.receipt.transactionHash}, Error: ${error ?? 'Unknown error'}`;
203
+ throw new Error(errorMessage);
204
+ }
205
+ return response;
206
+ }
207
+ }
@@ -0,0 +1,7 @@
1
+ export declare class BlockTagTooOldError extends Error {
2
+ constructor(blockTag: bigint | number, latestBlock: bigint | number);
3
+ }
4
+ export declare class NoCommitteeError extends Error {
5
+ constructor();
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBYSxtQkFBb0IsU0FBUSxLQUFLO0lBQzVDLFlBQVksUUFBUSxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBR2xFO0NBQ0Y7QUFFRCxxQkFBYSxnQkFBaUIsU0FBUSxLQUFLO0lBQ3pDLGNBR0M7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/contracts/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAGlE;CACF;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,cAGC;CACF"}
@@ -0,0 +1,12 @@
1
+ export class BlockTagTooOldError extends Error {
2
+ constructor(blockTag, latestBlock){
3
+ super(`Block tag ${blockTag} is more than 128 blocks behind the latest block ${latestBlock}`);
4
+ this.name = 'BlockTagTooOldError';
5
+ }
6
+ }
7
+ export class NoCommitteeError extends Error {
8
+ constructor(){
9
+ super('The committee does not exist on L1');
10
+ this.name = 'NoCommitteeError';
11
+ }
12
+ }
@@ -0,0 +1,20 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { type Hex } from 'viem';
3
+ import type { L1TxUtils } from '../l1_tx_utils/index.js';
4
+ import type { ViemClient } from '../types.js';
5
+ export declare class FeeAssetHandlerContract {
6
+ readonly client: ViemClient;
7
+ address: EthAddress;
8
+ constructor(client: ViemClient, address: Hex | EthAddress);
9
+ getOwner(): Promise<EthAddress>;
10
+ getMintAmount(): Promise<bigint>;
11
+ mint(txUtils: L1TxUtils, recipient: Hex | EthAddress): Promise<{
12
+ receipt: import("viem").TransactionReceipt;
13
+ state: import("../l1_tx_utils/types.js").L1TxState;
14
+ }>;
15
+ setMintAmount(txUtils: L1TxUtils, amount: bigint): Promise<{
16
+ receipt: import("viem").TransactionReceipt;
17
+ state: import("../l1_tx_utils/types.js").L1TxState;
18
+ }>;
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2Fzc2V0X2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvZmVlX2Fzc2V0X2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBbUMsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLHFCQUFhLHVCQUF1QjthQUloQixNQUFNLEVBQUUsVUFBVTtJQUg3QixPQUFPLEVBQUUsVUFBVSxDQUFDO0lBRTNCLFlBQ2tCLE1BQU0sRUFBRSxVQUFVLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQU0xQjtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBTzNDO0lBRU0sYUFBYSxvQkFPbkI7SUFFTSxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxHQUFHLFVBQVU7OztPQWExRDtJQUVNLGFBQWEsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNOzs7T0FVdEQ7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee_asset_handler.d.ts","sourceRoot":"","sources":["../../src/contracts/fee_asset_handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,GAAG,EAAmC,MAAM,MAAM,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,qBAAa,uBAAuB;aAIhB,MAAM,EAAE,UAAU;IAH7B,OAAO,EAAE,UAAU,CAAC;IAE3B,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAEY,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAO3C;IAEM,aAAa,oBAOnB;IAEM,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,UAAU;;;OAa1D;IAEM,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;;;OAUtD;CACF"}
@@ -0,0 +1,59 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { FeeAssetHandlerAbi } from '@aztec/l1-artifacts/FeeAssetHandlerAbi';
3
+ import { encodeFunctionData, getContract } from 'viem';
4
+ export class FeeAssetHandlerContract {
5
+ client;
6
+ address;
7
+ constructor(client, address){
8
+ this.client = client;
9
+ if (address instanceof EthAddress) {
10
+ address = address.toString();
11
+ }
12
+ this.address = EthAddress.fromString(address);
13
+ }
14
+ async getOwner() {
15
+ const contract = getContract({
16
+ abi: FeeAssetHandlerAbi,
17
+ address: this.address.toString(),
18
+ client: this.client
19
+ });
20
+ return EthAddress.fromString(await contract.read.owner());
21
+ }
22
+ getMintAmount() {
23
+ const contract = getContract({
24
+ abi: FeeAssetHandlerAbi,
25
+ address: this.address.toString(),
26
+ client: this.client
27
+ });
28
+ return contract.read.mintAmount();
29
+ }
30
+ mint(txUtils, recipient) {
31
+ if (recipient instanceof EthAddress) {
32
+ recipient = recipient.toString();
33
+ }
34
+ return txUtils.sendAndMonitorTransaction({
35
+ to: this.address.toString(),
36
+ abi: FeeAssetHandlerAbi,
37
+ data: encodeFunctionData({
38
+ abi: FeeAssetHandlerAbi,
39
+ functionName: 'mint',
40
+ args: [
41
+ recipient
42
+ ]
43
+ })
44
+ });
45
+ }
46
+ setMintAmount(txUtils, amount) {
47
+ return txUtils.sendAndMonitorTransaction({
48
+ to: this.address.toString(),
49
+ abi: FeeAssetHandlerAbi,
50
+ data: encodeFunctionData({
51
+ abi: FeeAssetHandlerAbi,
52
+ functionName: 'setMintAmount',
53
+ args: [
54
+ amount
55
+ ]
56
+ })
57
+ });
58
+ }
59
+ }
@@ -1,15 +1,14 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import { type Hex } from 'viem';
3
- import type { L1Clients } from '../types.js';
3
+ import { type ViemClient } from '../types.js';
4
4
  export declare class FeeJuiceContract {
5
- readonly publicClient: L1Clients['publicClient'];
6
- readonly walletClient: L1Clients['walletClient'] | undefined;
7
- private readonly publicFeeJuice;
8
- private readonly walletFeeJuice;
9
- constructor(address: Hex, publicClient: L1Clients['publicClient'], walletClient: L1Clients['walletClient'] | undefined);
5
+ readonly client: ViemClient;
6
+ private readonly feeJuiceContract;
7
+ constructor(address: Hex | EthAddress, client: ViemClient);
10
8
  get address(): EthAddress;
9
+ getOwner(): Promise<EthAddress>;
11
10
  private assertWalletFeeJuice;
12
11
  mint(to: Hex, amount: bigint): Promise<void>;
13
12
  approve(spender: Hex, amount: bigint): Promise<void>;
14
13
  }
15
- //# sourceMappingURL=fee_juice.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2p1aWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL2ZlZV9qdWljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUE4QixLQUFLLEdBQUcsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUV6RSxPQUFPLEVBQWlDLEtBQUssVUFBVSxFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUUvRixxQkFBYSxnQkFBZ0I7YUFLVCxNQUFNLEVBQUUsVUFBVTtJQUpwQyxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUF3RDtJQUV6RixZQUNFLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQUNULE1BQU0sRUFBRSxVQUFVLEVBTW5DO0lBRUQsSUFBVyxPQUFPLGVBRWpCO0lBRVksUUFBUSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FFM0M7SUFFRCxPQUFPLENBQUMsb0JBQW9CO0lBT2YsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBU3hDO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBU2hEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"fee_juice.d.ts","sourceRoot":"","sources":["../../src/contracts/fee_juice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAA8B,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,gBAAgB;aAMT,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC;aACvC,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS;IANrE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuE;IACtG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmF;gBAGhH,OAAO,EAAE,GAAG,EACI,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,EACvC,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS;IAMrE,IAAW,OAAO,eAEjB;IAED,OAAO,CAAC,oBAAoB;IAOf,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;IAM5B,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;CAKlD"}
1
+ {"version":3,"file":"fee_juice.d.ts","sourceRoot":"","sources":["../../src/contracts/fee_juice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAA8B,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAEzE,OAAO,EAAiC,KAAK,UAAU,EAAoB,MAAM,aAAa,CAAC;AAE/F,qBAAa,gBAAgB;aAKT,MAAM,EAAE,UAAU;IAJpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwD;IAEzF,YACE,OAAO,EAAE,GAAG,GAAG,UAAU,EACT,MAAM,EAAE,UAAU,EAMnC;IAED,IAAW,OAAO,eAEjB;IAEY,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAE3C;IAED,OAAO,CAAC,oBAAoB;IAOf,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,iBASxC;IAEY,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,iBAShD;CACF"}
@@ -1,33 +1,32 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
- import { TestERC20Abi as FeeJuiceAbi } from '@aztec/l1-artifacts';
2
+ import { TestERC20Abi as FeeJuiceAbi } from '@aztec/l1-artifacts/TestERC20Abi';
3
3
  import { getContract } from 'viem';
4
+ import { isExtendedClient } from '../types.js';
4
5
  export class FeeJuiceContract {
5
- publicClient;
6
- walletClient;
7
- publicFeeJuice;
8
- walletFeeJuice;
9
- constructor(address, publicClient, walletClient){
10
- this.publicClient = publicClient;
11
- this.walletClient = walletClient;
12
- this.publicFeeJuice = getContract({
6
+ client;
7
+ feeJuiceContract;
8
+ constructor(address, client){
9
+ this.client = client;
10
+ if (address instanceof EthAddress) {
11
+ address = address.toString();
12
+ }
13
+ this.feeJuiceContract = getContract({
13
14
  address,
14
15
  abi: FeeJuiceAbi,
15
- client: publicClient
16
+ client
16
17
  });
17
- this.walletFeeJuice = walletClient ? getContract({
18
- address,
19
- abi: FeeJuiceAbi,
20
- client: walletClient
21
- }) : undefined;
22
18
  }
23
19
  get address() {
24
- return EthAddress.fromString(this.publicFeeJuice.address);
20
+ return EthAddress.fromString(this.feeJuiceContract.address);
21
+ }
22
+ async getOwner() {
23
+ return EthAddress.fromString(await this.feeJuiceContract.read.owner());
25
24
  }
26
25
  assertWalletFeeJuice() {
27
- if (!this.walletFeeJuice) {
26
+ if (!isExtendedClient(this.client)) {
28
27
  throw new Error('Wallet client is required for this operation');
29
28
  }
30
- return this.walletFeeJuice;
29
+ return this.feeJuiceContract;
31
30
  }
32
31
  async mint(to, amount) {
33
32
  const walletFeeJuice = this.assertWalletFeeJuice();
@@ -35,9 +34,13 @@ export class FeeJuiceContract {
35
34
  to,
36
35
  amount
37
36
  ]);
38
- await this.publicClient.waitForTransactionReceipt({
37
+ const receipt = await this.client.waitForTransactionReceipt({
39
38
  hash: tx
40
39
  });
40
+ if (receipt.status === 'success') {
41
+ return;
42
+ }
43
+ throw new Error('Mint failed');
41
44
  }
42
45
  async approve(spender, amount) {
43
46
  const walletFeeJuice = this.assertWalletFeeJuice();
@@ -45,8 +48,12 @@ export class FeeJuiceContract {
45
48
  spender,
46
49
  amount
47
50
  ]);
48
- await this.publicClient.waitForTransactionReceipt({
51
+ const receipt = await this.client.waitForTransactionReceipt({
49
52
  hash: tx
50
53
  });
54
+ if (receipt.status === 'success') {
55
+ return;
56
+ }
57
+ throw new Error('Approve failed');
51
58
  }
52
59
  }
@@ -1,9 +1,9 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import type { Logger } from '@aztec/foundation/log';
3
- import { type Hex } from 'viem';
3
+ import { GovernanceAbi } from '@aztec/l1-artifacts/GovernanceAbi';
4
+ import { type GetContractReturnType, type Hex, type Log } from 'viem';
4
5
  import type { L1ContractAddresses } from '../l1_contract_addresses.js';
5
- import type { ViemPublicClient, ViemWalletClient } from '../types.js';
6
- import { GovernanceProposerContract } from './governance_proposer.js';
6
+ import { type ExtendedViemWalletClient, type ViemClient } from '../types.js';
7
7
  export type L1GovernanceContractAddresses = Pick<L1ContractAddresses, 'governanceAddress' | 'rollupAddress' | 'registryAddress' | 'governanceProposerAddress'>;
8
8
  export declare enum ProposalState {
9
9
  Pending = 0,
@@ -15,45 +15,46 @@ export declare enum ProposalState {
15
15
  Dropped = 6,
16
16
  Expired = 7
17
17
  }
18
- export declare class GovernanceContract {
19
- readonly publicClient: ViemPublicClient;
20
- readonly walletClient: ViemWalletClient | undefined;
21
- private readonly publicGovernance;
22
- private readonly walletGovernance;
23
- constructor(address: Hex, publicClient: ViemPublicClient, walletClient: ViemWalletClient | undefined);
18
+ export declare function extractProposalIdFromLogs(logs: Log[]): bigint;
19
+ export declare class ReadOnlyGovernanceContract {
20
+ readonly client: ViemClient;
21
+ protected readonly governanceContract: GetContractReturnType<typeof GovernanceAbi, ViemClient>;
22
+ constructor(address: Hex, client: ViemClient);
24
23
  get address(): EthAddress;
25
- getProposer(): Promise<GovernanceProposerContract>;
26
- getGovernanceAddresses(): Promise<L1GovernanceContractAddresses>;
24
+ getGovernanceProposerAddress(): Promise<EthAddress>;
25
+ getConfiguration(): Promise<{
26
+ executionDelay: bigint;
27
+ gracePeriod: bigint;
28
+ minimumVotes: bigint;
29
+ proposeConfig: {
30
+ lockAmount: bigint;
31
+ lockDelay: bigint;
32
+ };
33
+ quorum: bigint;
34
+ requiredYeaMargin: bigint;
35
+ votingDelay: bigint;
36
+ votingDuration: bigint;
37
+ }>;
27
38
  getProposal(proposalId: bigint): Promise<{
39
+ cachedState: number;
28
40
  config: {
29
- proposeConfig: {
30
- lockDelay: bigint;
31
- lockAmount: bigint;
32
- };
33
- votingDelay: bigint;
34
- votingDuration: bigint;
35
41
  executionDelay: bigint;
36
42
  gracePeriod: bigint;
37
- quorum: bigint;
38
- voteDifferential: bigint;
39
43
  minimumVotes: bigint;
44
+ quorum: bigint;
45
+ requiredYeaMargin: bigint;
46
+ votingDelay: bigint;
47
+ votingDuration: bigint;
40
48
  };
41
- state: number;
42
- payload: `0x${string}`;
43
- governanceProposer: `0x${string}`;
44
49
  creation: bigint;
50
+ payload: `0x${string}`;
51
+ proposer: `0x${string}`;
45
52
  summedBallot: {
53
+ nay: bigint;
46
54
  yea: bigint;
47
- nea: bigint;
48
55
  };
49
56
  }>;
50
57
  getProposalState(proposalId: bigint): Promise<ProposalState>;
51
- private assertWalletGovernance;
52
- deposit(onBehalfOf: Hex, amount: bigint): Promise<void>;
53
- proposeWithLock({ payloadAddress, withdrawAddress, }: {
54
- payloadAddress: Hex;
55
- withdrawAddress: Hex;
56
- }): Promise<number>;
57
58
  awaitProposalActive({ proposalId, logger }: {
58
59
  proposalId: bigint;
59
60
  logger: Logger;
@@ -62,18 +63,30 @@ export declare class GovernanceContract {
62
63
  proposalId: bigint;
63
64
  logger: Logger;
64
65
  }): Promise<void>;
66
+ }
67
+ export declare class GovernanceContract extends ReadOnlyGovernanceContract {
68
+ readonly client: ExtendedViemWalletClient;
69
+ protected readonly governanceContract: GetContractReturnType<typeof GovernanceAbi, ExtendedViemWalletClient>;
70
+ constructor(address: Hex | EthAddress, client: ExtendedViemWalletClient);
71
+ deposit(onBehalfOf: Hex, amount: bigint): Promise<void>;
72
+ proposeWithLock({ payloadAddress, withdrawAddress }: {
73
+ payloadAddress: Hex;
74
+ withdrawAddress: Hex;
75
+ }): Promise<bigint>;
65
76
  getPower(): Promise<bigint>;
66
- vote({ proposalId, voteAmount, inFavor, retries, logger, }: {
77
+ /** Returns the user's voting power for a specific proposal, checked at pendingThrough timestamp. */
78
+ getPowerForProposal(proposalId: bigint): Promise<bigint>;
79
+ vote({ proposalId, voteAmount, inFavor, retries, logger }: {
67
80
  proposalId: bigint;
68
81
  voteAmount: bigint | undefined;
69
82
  inFavor: boolean;
70
83
  retries: number;
71
84
  logger: Logger;
72
85
  }): Promise<void>;
73
- executeProposal({ proposalId, retries, logger, }: {
86
+ executeProposal({ proposalId, retries, logger }: {
74
87
  proposalId: bigint;
75
88
  retries: number;
76
89
  logger: Logger;
77
90
  }): Promise<void>;
78
91
  }
79
- //# sourceMappingURL=governance.d.ts.map
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ292ZXJuYW5jZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9nb3Zlcm5hbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbEUsT0FBTyxFQUVMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUNSLEtBQUssR0FBRyxFQUlULE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsS0FBSyx3QkFBd0IsRUFBRSxLQUFLLFVBQVUsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFFL0YsTUFBTSxNQUFNLDZCQUE2QixHQUFHLElBQUksQ0FDOUMsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUFHLGVBQWUsR0FBRyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FDeEYsQ0FBQztBQUdGLG9CQUFZLGFBQWE7SUFDdkIsT0FBTyxJQUFBO0lBQ1AsTUFBTSxJQUFBO0lBQ04sTUFBTSxJQUFBO0lBQ04sVUFBVSxJQUFBO0lBQ1YsUUFBUSxJQUFBO0lBQ1IsUUFBUSxJQUFBO0lBQ1IsT0FBTyxJQUFBO0lBQ1AsT0FBTyxJQUFBO0NBQ1I7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FXN0Q7QUFFRCxxQkFBYSwwQkFBMEI7YUFLbkIsTUFBTSxFQUFFLFVBQVU7SUFKcEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUUvRixZQUNFLE9BQU8sRUFBRSxHQUFHLEVBQ0ksTUFBTSxFQUFFLFVBQVUsRUFHbkM7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFWSw0QkFBNEIsd0JBRXhDO0lBRU0sZ0JBQWdCOzs7Ozs7Ozs7Ozs7T0FFdEI7SUFFTSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7OztPQUVwQztJQUVZLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQU94RTtJQUVZLG1CQUFtQixDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQztRQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7S0FBRSxpQkFvQjlGO0lBRVksdUJBQXVCLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO1FBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQTtLQUFFLGlCQXlCbEc7Q0FDRjtBQUVELHFCQUFhLGtCQUFtQixTQUFRLDBCQUEwQjthQUtyQyxNQUFNLEVBQUUsd0JBQXdCO0lBSjNELG1CQUE0QixrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBRXRILFlBQ0UsT0FBTyxFQUFFLEdBQUcsR0FBRyxVQUFVLEVBQ0EsTUFBTSxFQUFFLHdCQUF3QixFQVUxRDtJQUVZLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUduRDtJQUVZLGVBQWUsQ0FBQyxFQUMzQixjQUFjLEVBQ2QsZUFBZSxFQUNoQixFQUFFO1FBQ0QsY0FBYyxFQUFFLEdBQUcsQ0FBQztRQUNwQixlQUFlLEVBQUUsR0FBRyxDQUFDO0tBQ3RCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQU9sQjtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBR3ZDO0lBRUQsb0dBQW9HO0lBQ3ZGLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUlwRTtJQUVZLElBQUksQ0FBQyxFQUNoQixVQUFVLEVBQ1YsVUFBVSxFQUNWLE9BQU8sRUFDUCxPQUFZLEVBQ1osTUFBTSxFQUNQLEVBQUU7UUFDRCxVQUFVLEVBQUUsTUFBTSxDQUFDO1FBQ25CLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQy9CLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUNoQixNQUFNLEVBQUUsTUFBTSxDQUFDO0tBQ2hCLGlCQWdEQTtJQUVZLGVBQWUsQ0FBQyxFQUMzQixVQUFVLEVBQ1YsT0FBWSxFQUNaLE1BQU0sRUFDUCxFQUFFO1FBQ0QsVUFBVSxFQUFFLE1BQU0sQ0FBQztRQUNuQixPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxNQUFNLENBQUM7S0FDaEIsaUJBMENBO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/contracts/governance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAGL,KAAK,GAAG,EAGT,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAC9C,mBAAmB,EACnB,mBAAmB,GAAG,eAAe,GAAG,iBAAiB,GAAG,2BAA2B,CACxF,CAAC;AAGF,oBAAY,aAAa;IACvB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,MAAM,IAAA;IACN,UAAU,IAAA;IACV,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED,qBAAa,kBAAkB;aAMX,YAAY,EAAE,gBAAgB;aAC9B,YAAY,EAAE,gBAAgB,GAAG,SAAS;IAN5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgE;IACjG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4E;gBAG3G,OAAO,EAAE,GAAG,EACI,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,GAAG,SAAS;IAQ5D,IAAW,OAAO,eAEjB;IAEY,WAAW;IAKX,sBAAsB,IAAI,OAAO,CAAC,6BAA6B,CAAC;IActE,WAAW,CAAC,UAAU,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;IAIxB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQzE,OAAO,CAAC,sBAAsB;IAOjB,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;IAMvC,eAAe,CAAC,EAC3B,cAAc,EACd,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,GAAG,CAAC;QACpB,eAAe,EAAE,GAAG,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYN,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAsBlF,uBAAuB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IA2BtF,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAM3B,IAAI,CAAC,EAChB,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAY,EACZ,MAAM,GACP,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB;IAkDY,eAAe,CAAC,EAC3B,UAAU,EACV,OAAY,EACZ,MAAM,GACP,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB;CA2CF"}
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/contracts/governance.ts"],"names":[],"mappings":"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"}