@aztec/ethereum 0.82.2 → 0.82.3-nightly.20250403

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 (55) 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/cli/forwarder_address.d.ts +2 -0
  5. package/dest/cli/forwarder_address.d.ts.map +1 -0
  6. package/dest/cli/forwarder_address.js +10 -0
  7. package/dest/client.d.ts +1 -1
  8. package/dest/client.d.ts.map +1 -1
  9. package/dest/config.d.ts +8 -0
  10. package/dest/config.d.ts.map +1 -1
  11. package/dest/config.js +17 -2
  12. package/dest/contracts/fee_juice.d.ts.map +1 -1
  13. package/dest/contracts/fee_juice.js +10 -2
  14. package/dest/contracts/forwarder.d.ts +1 -0
  15. package/dest/contracts/forwarder.d.ts.map +1 -1
  16. package/dest/contracts/forwarder.js +7 -1
  17. package/dest/contracts/registry.d.ts +2 -0
  18. package/dest/contracts/registry.d.ts.map +1 -1
  19. package/dest/contracts/registry.js +19 -12
  20. package/dest/contracts/rollup.d.ts +3 -2
  21. package/dest/contracts/rollup.d.ts.map +1 -1
  22. package/dest/contracts/rollup.js +20 -8
  23. package/dest/deploy_l1_contracts.d.ts +2412 -596
  24. package/dest/deploy_l1_contracts.d.ts.map +1 -1
  25. package/dest/deploy_l1_contracts.js +248 -195
  26. package/dest/index.d.ts +1 -0
  27. package/dest/index.d.ts.map +1 -1
  28. package/dest/index.js +1 -0
  29. package/dest/l1_contract_addresses.d.ts +4 -0
  30. package/dest/l1_contract_addresses.d.ts.map +1 -1
  31. package/dest/l1_contract_addresses.js +7 -1
  32. package/dest/queries.d.ts +1 -0
  33. package/dest/queries.d.ts.map +1 -1
  34. package/dest/queries.js +5 -3
  35. package/dest/test/start_anvil.d.ts +1 -0
  36. package/dest/test/start_anvil.d.ts.map +1 -1
  37. package/dest/test/start_anvil.js +3 -5
  38. package/dest/test/upgrade_utils.d.ts +1 -0
  39. package/dest/test/upgrade_utils.d.ts.map +1 -1
  40. package/dest/test/upgrade_utils.js +9 -2
  41. package/package.json +6 -5
  42. package/src/account.ts +5 -0
  43. package/src/cli/forwarder_address.ts +12 -0
  44. package/src/client.ts +2 -0
  45. package/src/config.ts +26 -1
  46. package/src/contracts/fee_juice.ts +12 -2
  47. package/src/contracts/forwarder.ts +6 -1
  48. package/src/contracts/registry.ts +19 -10
  49. package/src/contracts/rollup.ts +20 -8
  50. package/src/deploy_l1_contracts.ts +298 -214
  51. package/src/index.ts +1 -0
  52. package/src/l1_contract_addresses.ts +11 -1
  53. package/src/queries.ts +10 -1
  54. package/src/test/start_anvil.ts +4 -2
  55. package/src/test/upgrade_utils.ts +12 -3
@@ -0,0 +1,2 @@
1
+ export declare function getAddressFromPrivateKey(privateKey: `0x${string}`): `0x${string}`;
2
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAEjF"}
@@ -0,0 +1,4 @@
1
+ import { privateKeyToAccount } from 'viem/accounts';
2
+ export function getAddressFromPrivateKey(privateKey) {
3
+ return privateKeyToAccount(privateKey).address;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=forwarder_address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forwarder_address.d.ts","sourceRoot":"","sources":["../../src/cli/forwarder_address.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { ForwarderContract } from '../contracts/index.js';
2
+ const ownerAddress = process.argv[2];
3
+ if (!ownerAddress) {
4
+ process.stderr.write('Please provide an owner address as an argument\n');
5
+ process.exit(1);
6
+ }
7
+ // Ensure the address starts with 0x
8
+ const formattedAddress = ownerAddress.startsWith('0x') ? ownerAddress : `0x${ownerAddress}`;
9
+ const address = ForwarderContract.expectedAddress(formattedAddress);
10
+ process.stdout.write(`${address}\n`);
package/dest/client.d.ts CHANGED
@@ -8,9 +8,9 @@ type Config = {
8
8
  /** The polling interval viem uses in ms */
9
9
  viemPollingIntervalMS?: number;
10
10
  };
11
+ export type { Config as EthereumClientConfig };
11
12
  /** Returns a viem public client given the L1 config. */
12
13
  export declare function getPublicClient(config: Config): ViemPublicClient;
13
14
  /** Returns a viem public client after waiting for the L1 RPC node to become available. */
14
15
  export declare function waitForPublicClient(config: Config, logger?: Logger): Promise<ViemPublicClient>;
15
- export {};
16
16
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAMpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,KAAK,MAAM,GAAG;IACZ,wCAAwC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAIF,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAOhE;AAED,0FAA0F;AAC1F,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIpG"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAMpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,KAAK,MAAM,GAAG;IACZ,wCAAwC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,YAAY,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;AAI/C,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAOhE;AAED,0FAA0F;AAC1F,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIpG"}
package/dest/config.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  import { type ConfigMappingsType } from '@aztec/foundation/config';
2
2
  import { type L1TxUtilsConfig } from './l1_tx_utils.js';
3
+ export type GenesisStateConfig = {
4
+ /** Whether to populate the genesis state with initial fee juice for the test accounts */
5
+ testAccounts: boolean;
6
+ /** Whether to populate the genesis state with initial fee juice for the sponsored FPC */
7
+ sponsoredFPC: boolean;
8
+ };
3
9
  export type L1ContractsConfig = {
4
10
  /** How many seconds an L1 slot lasts. */
5
11
  ethereumSlotDuration: number;
@@ -41,5 +47,7 @@ export declare const DefaultL1ContractsConfig: {
41
47
  provingCostPerMana: bigint;
42
48
  };
43
49
  export declare const l1ContractsConfigMappings: ConfigMappingsType<L1ContractsConfig>;
50
+ export declare const genesisStateConfigMappings: ConfigMappingsType<GenesisStateConfig>;
44
51
  export declare function getL1ContractsConfigEnvVars(): L1ContractsConfig;
52
+ export declare function getGenesisStateConfigEnvVars(): GenesisStateConfig;
45
53
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,sFAAsF;IACtF,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAaR,CAAC;AAE9B,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CA+D3E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAEjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,sFAAsF;IACtF,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAaR,CAAC;AAE9B,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CA+D3E,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAW7E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,CAEjE"}
package/dest/config.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bigintConfigHelper, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
1
+ import { bigintConfigHelper, booleanConfigHelper, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
2
2
  import { l1TxUtilsConfigMappings } from './l1_tx_utils.js';
3
3
  export const DefaultL1ContractsConfig = {
4
4
  ethereumSlotDuration: 12,
@@ -11,7 +11,7 @@ export const DefaultL1ContractsConfig = {
11
11
  slashingRoundSize: 10,
12
12
  governanceProposerQuorum: 6,
13
13
  governanceProposerRoundSize: 10,
14
- manaTarget: BigInt(100e6),
14
+ manaTarget: BigInt(1e10),
15
15
  provingCostPerMana: BigInt(100)
16
16
  };
17
17
  export const l1ContractsConfigMappings = {
@@ -77,6 +77,21 @@ export const l1ContractsConfigMappings = {
77
77
  },
78
78
  ...l1TxUtilsConfigMappings
79
79
  };
80
+ export const genesisStateConfigMappings = {
81
+ testAccounts: {
82
+ env: 'TEST_ACCOUNTS',
83
+ description: 'Whether to populate the genesis state with initial fee juice for the test accounts.',
84
+ ...booleanConfigHelper(false)
85
+ },
86
+ sponsoredFPC: {
87
+ env: 'SPONSORED_FPC',
88
+ description: 'Whether to populate the genesis state with initial fee juice for the sponsored FPC.',
89
+ ...booleanConfigHelper(false)
90
+ }
91
+ };
80
92
  export function getL1ContractsConfigEnvVars() {
81
93
  return getConfigFromMappings(l1ContractsConfigMappings);
82
94
  }
95
+ export function getGenesisStateConfigEnvVars() {
96
+ return getConfigFromMappings(genesisStateConfigMappings);
97
+ }
@@ -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,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;IAW5B,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;CAUlD"}
@@ -35,9 +35,13 @@ export class FeeJuiceContract {
35
35
  to,
36
36
  amount
37
37
  ]);
38
- await this.publicClient.waitForTransactionReceipt({
38
+ const receipt = await this.publicClient.waitForTransactionReceipt({
39
39
  hash: tx
40
40
  });
41
+ if (receipt.status === 'success') {
42
+ return;
43
+ }
44
+ throw new Error('Mint failed');
41
45
  }
42
46
  async approve(spender, amount) {
43
47
  const walletFeeJuice = this.assertWalletFeeJuice();
@@ -45,8 +49,12 @@ export class FeeJuiceContract {
45
49
  spender,
46
50
  amount
47
51
  ]);
48
- await this.publicClient.waitForTransactionReceipt({
52
+ const receipt = await this.publicClient.waitForTransactionReceipt({
49
53
  hash: tx
50
54
  });
55
+ if (receipt.status === 'success') {
56
+ return;
57
+ }
58
+ throw new Error('Approve failed');
51
59
  }
52
60
  }
@@ -7,6 +7,7 @@ export declare class ForwarderContract {
7
7
  readonly rollupAddress: Hex;
8
8
  private readonly forwarder;
9
9
  constructor(client: L1Clients['publicClient'], address: Hex, rollupAddress: Hex);
10
+ static expectedAddress(owner: Hex): `0x${string}`;
10
11
  static create(owner: Hex, walletClient: ViemWalletClient, publicClient: ViemPublicClient, logger: Logger, rollupAddress: Hex): Promise<ForwarderContract>;
11
12
  getAddress(): `0x${string}`;
12
13
  forward(requests: L1TxRequest[], l1TxUtils: L1TxUtils, gasConfig: L1GasConfig | undefined, blobConfig: L1BlobInputs | undefined, logger: Logger): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"forwarder.d.ts","sourceRoot":"","sources":["../../src/contracts/forwarder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAGL,KAAK,GAAG,EAGT,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjF,qBAAa,iBAAiB;aAGA,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC;aAAgC,aAAa,EAAE,GAAG;IAF/G,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+D;gBAE7D,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,EAAkB,aAAa,EAAE,GAAG;WAIlG,MAAM,CACjB,KAAK,EAAE,GAAG,EACV,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,GAAG;IAwBb,UAAU;IAIJ,OAAO,CAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM;;;;;;;;;;;CAqEjB"}
1
+ {"version":3,"file":"forwarder.d.ts","sourceRoot":"","sources":["../../src/contracts/forwarder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAGL,KAAK,GAAG,EAGT,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjF,qBAAa,iBAAiB;aAGA,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC;aAAgC,aAAa,EAAE,GAAG;IAF/G,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+D;gBAE7D,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,EAAkB,aAAa,EAAE,GAAG;IAI/G,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG;WAKpB,MAAM,CACjB,KAAK,EAAE,GAAG,EACV,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,GAAG;IAwBb,UAAU;IAIJ,OAAO,CAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM;;;;;;;;;;;CAqEjB"}
@@ -2,7 +2,7 @@ import { toHex } from '@aztec/foundation/bigint-buffer';
2
2
  import { ForwarderAbi } from '@aztec/l1-artifacts/ForwarderAbi';
3
3
  import { ForwarderBytecode } from '@aztec/l1-artifacts/ForwarderBytecode';
4
4
  import { encodeFunctionData, getContract } from 'viem';
5
- import { deployL1Contract } from '../deploy_l1_contracts.js';
5
+ import { deployL1Contract, getExpectedAddress } from '../deploy_l1_contracts.js';
6
6
  import { RollupContract } from './rollup.js';
7
7
  export class ForwarderContract {
8
8
  client;
@@ -17,6 +17,12 @@ export class ForwarderContract {
17
17
  client
18
18
  });
19
19
  }
20
+ static expectedAddress(owner) {
21
+ const { address } = getExpectedAddress(ForwarderAbi, ForwarderBytecode, [
22
+ owner
23
+ ], owner);
24
+ return address;
25
+ }
20
26
  static async create(owner, walletClient, publicClient, logger, rollupAddress) {
21
27
  logger.info('Deploying forwarder contract');
22
28
  const { address, txHash } = await deployL1Contract(walletClient, publicClient, ForwarderAbi, ForwarderBytecode, [
@@ -21,5 +21,7 @@ export declare class RegistryContract {
21
21
  getGovernanceAddresses(): Promise<Pick<L1ContractAddresses, 'governanceProposerAddress' | 'governanceAddress'>>;
22
22
  static collectAddresses(client: ViemPublicClient, registryAddress: Hex | EthAddress, rollupVersion: number | bigint | 'canonical'): Promise<L1ContractAddresses>;
23
23
  getNumberOfVersions(): Promise<number>;
24
+ getRollupVersions(): Promise<bigint[]>;
25
+ getRewardDistributor(): Promise<EthAddress>;
24
26
  }
25
27
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/contracts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,EAGL,KAAK,GAAG,EAIT,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI/D,qBAAa,gBAAgB;aAIC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC;IAHtD,OAAO,EAAE,UAAU,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgF;gBAE7E,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,UAAU;IAQxF;;;;OAIG;IACU,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAiB1F;;;OAGG;IACU,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC;IAS1C,sBAAsB,IAAI,OAAO,CAC5C,IAAI,CAAC,mBAAmB,EAAE,2BAA2B,GAAG,mBAAmB,CAAC,CAC7E;WAUmB,gBAAgB,CAClC,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,GAAG,GAAG,UAAU,EACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAC3C,OAAO,CAAC,mBAAmB,CAAC;IAyBlB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;CAIpD"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/contracts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,EAGL,KAAK,GAAG,EAIT,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI/D,qBAAa,gBAAgB;aAIC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC;IAHtD,OAAO,EAAE,UAAU,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgF;gBAE7E,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,UAAU;IAQxF;;;;OAIG;IACU,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB1F;;;OAGG;IACU,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC;IAI1C,sBAAsB,IAAI,OAAO,CAC5C,IAAI,CAAC,mBAAmB,EAAE,2BAA2B,GAAG,mBAAmB,CAAC,CAC7E;WAUmB,gBAAgB,CAClC,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,GAAG,GAAG,UAAU,EACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAC3C,OAAO,CAAC,mBAAmB,CAAC;IAyBlB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKtC,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAWtC,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC;CAGzD"}
@@ -31,25 +31,19 @@ export class RegistryContract {
31
31
  if (typeof version === 'number') {
32
32
  version = BigInt(version);
33
33
  }
34
- const snapshot = await this.registry.read.getSnapshot([
35
- version
36
- ]);
37
- const address = EthAddress.fromString(snapshot.rollup);
38
- if (address.equals(EthAddress.ZERO)) {
34
+ try {
35
+ return EthAddress.fromString(await this.registry.read.getRollup([
36
+ version
37
+ ]));
38
+ } catch (e) {
39
39
  throw new Error('Rollup address is undefined');
40
40
  }
41
- return address;
42
41
  }
43
42
  /**
44
43
  * Returns the canonical address of the rollup.
45
44
  * @returns The canonical address of the rollup. If the rollup is not set, throws an error.
46
45
  */ async getCanonicalAddress() {
47
- const snapshot = await this.registry.read.getCurrentSnapshot();
48
- const address = EthAddress.fromString(snapshot.rollup);
49
- if (address.equals(EthAddress.ZERO)) {
50
- throw new Error('Rollup address is undefined');
51
- }
52
- return address;
46
+ return EthAddress.fromString(await this.registry.read.getCanonicalRollup());
53
47
  }
54
48
  async getGovernanceAddresses() {
55
49
  const governanceAddress = await this.registry.read.getGovernance();
@@ -86,4 +80,17 @@ export class RegistryContract {
86
80
  const version = await this.registry.read.numberOfVersions();
87
81
  return Number(version);
88
82
  }
83
+ async getRollupVersions() {
84
+ const count = await this.getNumberOfVersions();
85
+ const versions = [];
86
+ for(let i = 0; i < count; i++){
87
+ versions.push(await this.registry.read.getVersion([
88
+ BigInt(i)
89
+ ]));
90
+ }
91
+ return versions;
92
+ }
93
+ async getRewardDistributor() {
94
+ return EthAddress.fromString(await this.registry.read.getRewardDistributor());
95
+ }
89
96
  }
@@ -40,6 +40,7 @@ export declare class RollupContract {
40
40
  getProvingCostPerMana(): Promise<bigint>;
41
41
  getProvingCostPerManaInFeeAsset(): Promise<bigint>;
42
42
  getManaLimit(): Promise<bigint>;
43
+ getVersion(): Promise<bigint>;
43
44
  getSlasher(): Promise<`0x${string}`>;
44
45
  getSlashingProposerAddress(): Promise<EthAddress>;
45
46
  getBlockNumber(): Promise<bigint>;
@@ -51,6 +52,7 @@ export declare class RollupContract {
51
52
  getCurrentEpochCommittee(): Promise<readonly `0x${string}`[]>;
52
53
  getCurrentProposer(): Promise<`0x${string}`>;
53
54
  getProposerAt(timestamp: bigint): Promise<`0x${string}`>;
55
+ getEpochCommittee(epoch: bigint): Promise<readonly `0x${string}`[]>;
54
56
  getBlock(blockNumber: bigint): Promise<{
55
57
  archive: `0x${string}`;
56
58
  blockHash: `0x${string}`;
@@ -63,6 +65,7 @@ export declare class RollupContract {
63
65
  getTimestampForSlot(slot: bigint): Promise<bigint>;
64
66
  getEpochNumber(blockNumber?: bigint): Promise<bigint>;
65
67
  getRollupAddresses(): Promise<L1RollupContractAddresses>;
68
+ getFeeJuicePortal(): Promise<EthAddress>;
66
69
  getEpochNumberForSlotNumber(slotNumber: bigint): Promise<bigint>;
67
70
  getEpochProofPublicInputs(args: readonly [bigint, bigint, EpochProofPublicInputArgs, readonly `0x${string}`[], `0x${string}`, `0x${string}`]): Promise<readonly `0x${string}`[]>;
68
71
  validateHeader(args: readonly [
@@ -89,7 +92,6 @@ export declare class RollupContract {
89
92
  /** Calls getHasSubmitted directly. Returns whether the given prover has submitted a proof with the given length for the given epoch. */
90
93
  getHasSubmittedProof(epochNumber: number, numberOfBlocksInEpoch: number, prover: Hex | EthAddress): Promise<boolean>;
91
94
  getManaBaseFeeAt(timestamp: bigint, inFeeAsset: boolean): Promise<bigint>;
92
- getVersion(): Promise<bigint>;
93
95
  getSlotAt(timestamp: bigint): Promise<bigint>;
94
96
  status(blockNumber: bigint, options?: {
95
97
  blockNumber?: bigint;
@@ -102,7 +104,6 @@ export declare class RollupContract {
102
104
  getSequencerRewards(address: Hex | EthAddress): Promise<bigint>;
103
105
  getSpecificProverRewardsForEpoch(epoch: bigint, prover: Hex | EthAddress): Promise<bigint>;
104
106
  getAttesters(): Promise<readonly `0x${string}`[]>;
105
- getEpochCommittee(epoch: bigint): Promise<readonly `0x${string}`[]>;
106
107
  getInfo(address: Hex | EthAddress): Promise<{
107
108
  stake: bigint;
108
109
  withdrawer: `0x${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/contracts/rollup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/contracts/rollup.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,9 @@ export class RollupContract {
92
92
  getManaLimit() {
93
93
  return this.rollup.read.getManaLimit();
94
94
  }
95
+ getVersion() {
96
+ return this.rollup.read.getVersion();
97
+ }
95
98
  getSlasher() {
96
99
  return this.rollup.read.getSlasher();
97
100
  }
@@ -161,6 +164,17 @@ export class RollupContract {
161
164
  });
162
165
  return result;
163
166
  }
167
+ async getEpochCommittee(epoch) {
168
+ const { result } = await this.client.simulateContract({
169
+ address: this.address,
170
+ abi: RollupAbi,
171
+ functionName: 'getEpochCommittee',
172
+ args: [
173
+ epoch
174
+ ]
175
+ });
176
+ return result;
177
+ }
164
178
  getBlock(blockNumber) {
165
179
  return this.rollup.read.getBlock([
166
180
  blockNumber
@@ -199,6 +213,9 @@ export class RollupContract {
199
213
  rewardDistributorAddress
200
214
  };
201
215
  }
216
+ async getFeeJuicePortal() {
217
+ return EthAddress.fromString(await this.rollup.read.getFeeAssetPortal());
218
+ }
202
219
  async getEpochNumberForSlotNumber(slotNumber) {
203
220
  return await this.rollup.read.getEpochAtSlot([
204
221
  slotNumber
@@ -268,9 +285,6 @@ export class RollupContract {
268
285
  inFeeAsset
269
286
  ]);
270
287
  }
271
- getVersion() {
272
- return this.rollup.read.getVersion();
273
- }
274
288
  getSlotAt(timestamp) {
275
289
  return this.rollup.read.getSlotAt([
276
290
  timestamp
@@ -314,11 +328,6 @@ export class RollupContract {
314
328
  getAttesters() {
315
329
  return this.rollup.read.getAttesters();
316
330
  }
317
- getEpochCommittee(epoch) {
318
- return this.rollup.read.getEpochCommittee([
319
- epoch
320
- ]);
321
- }
322
331
  getInfo(address) {
323
332
  if (address instanceof EthAddress) {
324
333
  address = address.toString();
@@ -380,3 +389,6 @@ _ts_decorate([
380
389
  _ts_decorate([
381
390
  memoize
382
391
  ], RollupContract.prototype, "getManaLimit", null);
392
+ _ts_decorate([
393
+ memoize
394
+ ], RollupContract.prototype, "getVersion", null);