@aztec/ethereum 0.0.1-commit.24de95ac → 0.0.1-commit.2e2504e2

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 (208) hide show
  1. package/dest/account.d.ts +1 -1
  2. package/dest/chain.d.ts +1 -1
  3. package/dest/client.d.ts +1 -1
  4. package/dest/client.js +6 -2
  5. package/dest/config.d.ts +22 -68
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +57 -378
  8. package/dest/constants.d.ts +1 -1
  9. package/dest/contracts/empire_base.d.ts +7 -5
  10. package/dest/contracts/empire_base.d.ts.map +1 -1
  11. package/dest/contracts/empire_base.js +1 -1
  12. package/dest/contracts/empire_slashing_proposer.d.ts +6 -4
  13. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  14. package/dest/contracts/empire_slashing_proposer.js +30 -17
  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 +6 -5
  18. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  19. package/dest/contracts/fee_asset_handler.js +11 -9
  20. package/dest/contracts/fee_juice.d.ts +1 -1
  21. package/dest/contracts/fee_juice.d.ts.map +1 -1
  22. package/dest/contracts/governance.d.ts +18 -16
  23. package/dest/contracts/governance.d.ts.map +1 -1
  24. package/dest/contracts/governance.js +11 -1
  25. package/dest/contracts/governance_proposer.d.ts +6 -4
  26. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  27. package/dest/contracts/governance_proposer.js +403 -11
  28. package/dest/contracts/gse.d.ts +1 -1
  29. package/dest/contracts/gse.d.ts.map +1 -1
  30. package/dest/contracts/inbox.d.ts +24 -3
  31. package/dest/contracts/inbox.d.ts.map +1 -1
  32. package/dest/contracts/inbox.js +36 -1
  33. package/dest/contracts/index.d.ts +3 -1
  34. package/dest/contracts/index.d.ts.map +1 -1
  35. package/dest/contracts/index.js +2 -0
  36. package/dest/contracts/log.d.ts +13 -0
  37. package/dest/contracts/log.d.ts.map +1 -0
  38. package/dest/contracts/log.js +1 -0
  39. package/dest/contracts/multicall.d.ts +2 -2
  40. package/dest/contracts/multicall.d.ts.map +1 -1
  41. package/dest/contracts/multicall.js +2 -1
  42. package/dest/contracts/outbox.d.ts +41 -0
  43. package/dest/contracts/outbox.d.ts.map +1 -0
  44. package/dest/contracts/outbox.js +86 -0
  45. package/dest/contracts/registry.d.ts +1 -1
  46. package/dest/contracts/registry.d.ts.map +1 -1
  47. package/dest/contracts/rollup.d.ts +194 -123
  48. package/dest/contracts/rollup.d.ts.map +1 -1
  49. package/dest/contracts/rollup.js +750 -184
  50. package/dest/contracts/slasher_contract.d.ts +1 -1
  51. package/dest/contracts/slasher_contract.d.ts.map +1 -1
  52. package/dest/contracts/tally_slashing_proposer.d.ts +9 -7
  53. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  54. package/dest/contracts/tally_slashing_proposer.js +11 -4
  55. package/dest/contracts/utils.d.ts +1 -1
  56. package/dest/deploy_aztec_l1_contracts.d.ts +260 -0
  57. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -0
  58. package/dest/deploy_aztec_l1_contracts.js +399 -0
  59. package/dest/deploy_l1_contract.d.ts +68 -0
  60. package/dest/deploy_l1_contract.d.ts.map +1 -0
  61. package/dest/deploy_l1_contract.js +312 -0
  62. package/dest/eth-signer/eth-signer.d.ts +1 -1
  63. package/dest/eth-signer/index.d.ts +1 -1
  64. package/dest/forwarder_proxy.d.ts +32 -0
  65. package/dest/forwarder_proxy.d.ts.map +1 -0
  66. package/dest/forwarder_proxy.js +93 -0
  67. package/dest/generated/l1-contracts-defaults.d.ts +30 -0
  68. package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
  69. package/dest/generated/l1-contracts-defaults.js +30 -0
  70. package/dest/l1_artifacts.d.ts +6597 -2046
  71. package/dest/l1_artifacts.d.ts.map +1 -1
  72. package/dest/l1_contract_addresses.d.ts +3 -3
  73. package/dest/l1_contract_addresses.d.ts.map +1 -1
  74. package/dest/l1_contract_addresses.js +3 -3
  75. package/dest/l1_reader.d.ts +3 -1
  76. package/dest/l1_reader.d.ts.map +1 -1
  77. package/dest/l1_reader.js +6 -0
  78. package/dest/l1_tx_utils/config.d.ts +5 -5
  79. package/dest/l1_tx_utils/config.d.ts.map +1 -1
  80. package/dest/l1_tx_utils/config.js +30 -7
  81. package/dest/l1_tx_utils/constants.d.ts +8 -2
  82. package/dest/l1_tx_utils/constants.d.ts.map +1 -1
  83. package/dest/l1_tx_utils/constants.js +27 -2
  84. package/dest/l1_tx_utils/factory.d.ts +1 -1
  85. package/dest/l1_tx_utils/fee-strategies/index.d.ts +10 -0
  86. package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
  87. package/dest/l1_tx_utils/fee-strategies/index.js +12 -0
  88. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +8 -0
  89. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
  90. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +129 -0
  91. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +23 -0
  92. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
  93. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +191 -0
  94. package/dest/l1_tx_utils/fee-strategies/types.d.ts +51 -0
  95. package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
  96. package/dest/l1_tx_utils/fee-strategies/types.js +3 -0
  97. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
  98. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
  99. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +48 -0
  100. package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
  101. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
  102. package/dest/l1_tx_utils/index-blobs.js +2 -0
  103. package/dest/l1_tx_utils/index.d.ts +3 -1
  104. package/dest/l1_tx_utils/index.d.ts.map +1 -1
  105. package/dest/l1_tx_utils/index.js +2 -0
  106. package/dest/l1_tx_utils/interfaces.d.ts +2 -2
  107. package/dest/l1_tx_utils/interfaces.d.ts.map +1 -1
  108. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +233 -0
  109. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
  110. package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
  111. package/dest/l1_tx_utils/l1_tx_utils.d.ts +1 -2
  112. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
  113. package/dest/l1_tx_utils/l1_tx_utils.js +23 -10
  114. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +1 -1
  115. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +1 -1
  116. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +19 -30
  117. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
  118. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +55 -163
  119. package/dest/l1_tx_utils/signer.d.ts +1 -1
  120. package/dest/l1_tx_utils/types.d.ts +1 -1
  121. package/dest/l1_tx_utils/types.d.ts.map +1 -1
  122. package/dest/l1_tx_utils/utils.d.ts +1 -1
  123. package/dest/l1_types.d.ts +1 -1
  124. package/dest/publisher_manager.d.ts +3 -2
  125. package/dest/publisher_manager.d.ts.map +1 -1
  126. package/dest/publisher_manager.js +2 -2
  127. package/dest/queries.d.ts +2 -2
  128. package/dest/queries.d.ts.map +1 -1
  129. package/dest/queries.js +16 -6
  130. package/dest/test/chain_monitor.d.ts +27 -24
  131. package/dest/test/chain_monitor.d.ts.map +1 -1
  132. package/dest/test/chain_monitor.js +33 -36
  133. package/dest/test/delayed_tx_utils.d.ts +1 -1
  134. package/dest/test/delayed_tx_utils.d.ts.map +1 -1
  135. package/dest/test/eth_cheat_codes.d.ts +11 -3
  136. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  137. package/dest/test/eth_cheat_codes.js +11 -3
  138. package/dest/test/eth_cheat_codes_with_state.d.ts +1 -1
  139. package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -1
  140. package/dest/test/index.d.ts +1 -1
  141. package/dest/test/rollup_cheat_codes.d.ts +17 -13
  142. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  143. package/dest/test/rollup_cheat_codes.js +62 -38
  144. package/dest/test/start_anvil.d.ts +4 -1
  145. package/dest/test/start_anvil.d.ts.map +1 -1
  146. package/dest/test/start_anvil.js +3 -2
  147. package/dest/test/tx_delayer.d.ts +1 -1
  148. package/dest/test/tx_delayer.d.ts.map +1 -1
  149. package/dest/test/tx_delayer.js +4 -3
  150. package/dest/test/upgrade_utils.d.ts +1 -1
  151. package/dest/types.d.ts +57 -2
  152. package/dest/types.d.ts.map +1 -1
  153. package/dest/utils.d.ts +16 -3
  154. package/dest/utils.d.ts.map +1 -1
  155. package/dest/utils.js +64 -0
  156. package/dest/zkPassportVerifierAddress.d.ts +1 -1
  157. package/package.json +34 -14
  158. package/src/client.ts +2 -2
  159. package/src/config.ts +71 -458
  160. package/src/contracts/README.md +157 -0
  161. package/src/contracts/empire_base.ts +6 -5
  162. package/src/contracts/empire_slashing_proposer.ts +32 -32
  163. package/src/contracts/fee_asset_handler.ts +10 -7
  164. package/src/contracts/governance.ts +10 -1
  165. package/src/contracts/governance_proposer.ts +20 -6
  166. package/src/contracts/inbox.ts +55 -3
  167. package/src/contracts/index.ts +2 -0
  168. package/src/contracts/log.ts +13 -0
  169. package/src/contracts/multicall.ts +5 -2
  170. package/src/contracts/outbox.ts +98 -0
  171. package/src/contracts/rollup.ts +421 -160
  172. package/src/contracts/tally_slashing_proposer.ts +15 -8
  173. package/src/deploy_aztec_l1_contracts.ts +623 -0
  174. package/src/deploy_l1_contract.ts +362 -0
  175. package/src/forwarder_proxy.ts +108 -0
  176. package/src/generated/l1-contracts-defaults.ts +32 -0
  177. package/src/l1_contract_addresses.ts +22 -20
  178. package/src/l1_reader.ts +8 -0
  179. package/src/l1_tx_utils/config.ts +32 -11
  180. package/src/l1_tx_utils/constants.ts +13 -2
  181. package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
  182. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +163 -0
  183. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +245 -0
  184. package/src/l1_tx_utils/fee-strategies/types.ts +56 -0
  185. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +119 -0
  186. package/src/l1_tx_utils/index-blobs.ts +2 -0
  187. package/src/l1_tx_utils/index.ts +2 -0
  188. package/src/l1_tx_utils/interfaces.ts +1 -1
  189. package/src/l1_tx_utils/l1_fee_analyzer.ts +803 -0
  190. package/src/l1_tx_utils/l1_tx_utils.ts +30 -10
  191. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +69 -209
  192. package/src/publisher_manager.ts +4 -2
  193. package/src/queries.ts +17 -6
  194. package/src/test/chain_monitor.ts +51 -49
  195. package/src/test/eth_cheat_codes.ts +9 -3
  196. package/src/test/rollup_cheat_codes.ts +63 -43
  197. package/src/test/start_anvil.ts +5 -1
  198. package/src/test/tx_delayer.ts +5 -3
  199. package/src/types.ts +62 -0
  200. package/src/utils.ts +83 -1
  201. package/dest/deploy_l1_contracts.d.ts +0 -226
  202. package/dest/deploy_l1_contracts.d.ts.map +0 -1
  203. package/dest/deploy_l1_contracts.js +0 -1473
  204. package/dest/index.d.ts +0 -18
  205. package/dest/index.d.ts.map +0 -1
  206. package/dest/index.js +0 -17
  207. package/src/deploy_l1_contracts.ts +0 -1849
  208. package/src/index.ts +0 -17
@@ -0,0 +1,98 @@
1
+ import type { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import { OutboxAbi } from '@aztec/l1-artifacts/OutboxAbi';
4
+
5
+ import { type GetContractReturnType, type Hex, encodeAbiParameters, getContract, hexToBigInt, keccak256 } from 'viem';
6
+
7
+ import { getPublicClient } from '../client.js';
8
+ import type { DeployAztecL1ContractsReturnType } from '../deploy_aztec_l1_contracts.js';
9
+ import type { L1ReaderConfig } from '../l1_reader.js';
10
+ import { type ExtendedViemWalletClient, type ViemClient, isExtendedClient } from '../types.js';
11
+
12
+ export type ViemL1Actor = {
13
+ actor: Hex;
14
+ chainId: bigint;
15
+ };
16
+
17
+ export type ViemL2Actor = {
18
+ actor: Hex;
19
+ version: bigint;
20
+ };
21
+
22
+ export type ViemL2ToL1Msg = {
23
+ sender: ViemL2Actor;
24
+ recipient: ViemL1Actor;
25
+ content: Hex;
26
+ };
27
+
28
+ export class OutboxContract {
29
+ private readonly outbox: GetContractReturnType<typeof OutboxAbi, ViemClient>;
30
+
31
+ static getFromL1ContractsValues(deployL1ContractsValues: DeployAztecL1ContractsReturnType) {
32
+ const {
33
+ l1Client,
34
+ l1ContractAddresses: { outboxAddress },
35
+ } = deployL1ContractsValues;
36
+ return new OutboxContract(l1Client, outboxAddress.toString());
37
+ }
38
+
39
+ static getFromConfig(config: L1ReaderConfig) {
40
+ const client = getPublicClient(config);
41
+ const address = config.l1Contracts.outboxAddress.toString();
42
+ return new OutboxContract(client, address);
43
+ }
44
+
45
+ static getEpochRootStorageSlot(epoch: EpochNumber) {
46
+ return hexToBigInt(keccak256(encodeAbiParameters([{ type: 'uint256' }, { type: 'uint256' }], [BigInt(epoch), 0n])));
47
+ }
48
+
49
+ constructor(
50
+ public readonly client: ViemClient,
51
+ address: Hex | EthAddress,
52
+ ) {
53
+ if (address instanceof EthAddress) {
54
+ address = address.toString();
55
+ }
56
+ this.outbox = getContract({ address, abi: OutboxAbi, client });
57
+ }
58
+
59
+ public get address() {
60
+ return this.outbox.address;
61
+ }
62
+
63
+ public getContract(): GetContractReturnType<typeof OutboxAbi, ViemClient> {
64
+ return this.outbox;
65
+ }
66
+
67
+ public hasMessageBeenConsumedAtEpoch(epoch: EpochNumber, leafId: bigint) {
68
+ return this.outbox.read.hasMessageBeenConsumedAtEpoch([BigInt(epoch), leafId]);
69
+ }
70
+
71
+ public getRootData(epoch: EpochNumber) {
72
+ return this.outbox.read.getRootData([BigInt(epoch)]);
73
+ }
74
+
75
+ public consume(message: ViemL2ToL1Msg, epoch: EpochNumber, leafIndex: bigint, path: Hex[]) {
76
+ const wallet = this.assertWallet();
77
+ return wallet.write.consume([message, BigInt(epoch), leafIndex, path]);
78
+ }
79
+
80
+ public async getMessageConsumedEvents(
81
+ l1BlockHash: Hex,
82
+ ): Promise<{ epoch: bigint; root: Hex; messageHash: Hex; leafId: bigint }[]> {
83
+ const events = await this.outbox.getEvents.MessageConsumed({}, { blockHash: l1BlockHash, strict: true });
84
+ return events.map(event => ({
85
+ epoch: event.args.epoch!,
86
+ root: event.args.root!,
87
+ messageHash: event.args.messageHash!,
88
+ leafId: event.args.leafId!,
89
+ }));
90
+ }
91
+
92
+ private assertWallet(): GetContractReturnType<typeof OutboxAbi, ExtendedViemWalletClient> {
93
+ if (!isExtendedClient(this.client)) {
94
+ throw new Error('Wallet client is required for this operation');
95
+ }
96
+ return this.outbox as GetContractReturnType<typeof OutboxAbi, ExtendedViemWalletClient>;
97
+ }
98
+ }