@aztec/ethereum 0.82.3 → 0.83.0

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 (49) 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/config.d.ts +8 -0
  8. package/dest/config.d.ts.map +1 -1
  9. package/dest/config.js +17 -2
  10. package/dest/contracts/forwarder.d.ts +1 -0
  11. package/dest/contracts/forwarder.d.ts.map +1 -1
  12. package/dest/contracts/forwarder.js +7 -1
  13. package/dest/contracts/registry.d.ts +2 -0
  14. package/dest/contracts/registry.d.ts.map +1 -1
  15. package/dest/contracts/registry.js +19 -12
  16. package/dest/contracts/rollup.d.ts +3 -1
  17. package/dest/contracts/rollup.d.ts.map +1 -1
  18. package/dest/contracts/rollup.js +12 -3
  19. package/dest/deploy_l1_contracts.d.ts +2356 -564
  20. package/dest/deploy_l1_contracts.d.ts.map +1 -1
  21. package/dest/deploy_l1_contracts.js +248 -195
  22. package/dest/index.d.ts +1 -0
  23. package/dest/index.d.ts.map +1 -1
  24. package/dest/index.js +1 -0
  25. package/dest/l1_contract_addresses.d.ts +4 -0
  26. package/dest/l1_contract_addresses.d.ts.map +1 -1
  27. package/dest/l1_contract_addresses.js +7 -1
  28. package/dest/queries.d.ts +1 -0
  29. package/dest/queries.d.ts.map +1 -1
  30. package/dest/queries.js +5 -3
  31. package/dest/test/start_anvil.d.ts +1 -0
  32. package/dest/test/start_anvil.d.ts.map +1 -1
  33. package/dest/test/start_anvil.js +3 -5
  34. package/dest/test/upgrade_utils.d.ts +1 -0
  35. package/dest/test/upgrade_utils.d.ts.map +1 -1
  36. package/dest/test/upgrade_utils.js +9 -2
  37. package/package.json +6 -5
  38. package/src/account.ts +5 -0
  39. package/src/cli/forwarder_address.ts +12 -0
  40. package/src/config.ts +26 -1
  41. package/src/contracts/forwarder.ts +6 -1
  42. package/src/contracts/registry.ts +19 -10
  43. package/src/contracts/rollup.ts +13 -4
  44. package/src/deploy_l1_contracts.ts +298 -214
  45. package/src/index.ts +1 -0
  46. package/src/l1_contract_addresses.ts +11 -1
  47. package/src/queries.ts +10 -1
  48. package/src/test/start_anvil.ts +4 -2
  49. 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/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
+ }
@@ -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>;
@@ -48,6 +49,7 @@ export declare class RollupContract {
48
49
  getCommitteeAt(timestamp: bigint): Promise<readonly `0x${string}`[]>;
49
50
  getSampleSeedAt(timestamp: bigint): Promise<bigint>;
50
51
  getCurrentSampleSeed(): Promise<bigint>;
52
+ getCurrentEpoch(): Promise<bigint>;
51
53
  getCurrentEpochCommittee(): Promise<readonly `0x${string}`[]>;
52
54
  getCurrentProposer(): Promise<`0x${string}`>;
53
55
  getProposerAt(timestamp: bigint): Promise<`0x${string}`>;
@@ -64,6 +66,7 @@ export declare class RollupContract {
64
66
  getTimestampForSlot(slot: bigint): Promise<bigint>;
65
67
  getEpochNumber(blockNumber?: bigint): Promise<bigint>;
66
68
  getRollupAddresses(): Promise<L1RollupContractAddresses>;
69
+ getFeeJuicePortal(): Promise<EthAddress>;
67
70
  getEpochNumberForSlotNumber(slotNumber: bigint): Promise<bigint>;
68
71
  getEpochProofPublicInputs(args: readonly [bigint, bigint, EpochProofPublicInputArgs, readonly `0x${string}`[], `0x${string}`, `0x${string}`]): Promise<readonly `0x${string}`[]>;
69
72
  validateHeader(args: readonly [
@@ -90,7 +93,6 @@ export declare class RollupContract {
90
93
  /** Calls getHasSubmitted directly. Returns whether the given prover has submitted a proof with the given length for the given epoch. */
91
94
  getHasSubmittedProof(epochNumber: number, numberOfBlocksInEpoch: number, prover: Hex | EthAddress): Promise<boolean>;
92
95
  getManaBaseFeeAt(timestamp: bigint, inFeeAsset: boolean): Promise<bigint>;
93
- getVersion(): Promise<bigint>;
94
96
  getSlotAt(timestamp: bigint): Promise<bigint>;
95
97
  status(blockNumber: bigint, options?: {
96
98
  blockNumber?: bigint;
@@ -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
  }
@@ -132,6 +135,9 @@ export class RollupContract {
132
135
  getCurrentSampleSeed() {
133
136
  return this.rollup.read.getCurrentSampleSeed();
134
137
  }
138
+ getCurrentEpoch() {
139
+ return this.rollup.read.getCurrentEpoch();
140
+ }
135
141
  async getCurrentEpochCommittee() {
136
142
  const { result } = await this.client.simulateContract({
137
143
  address: this.address,
@@ -210,6 +216,9 @@ export class RollupContract {
210
216
  rewardDistributorAddress
211
217
  };
212
218
  }
219
+ async getFeeJuicePortal() {
220
+ return EthAddress.fromString(await this.rollup.read.getFeeAssetPortal());
221
+ }
213
222
  async getEpochNumberForSlotNumber(slotNumber) {
214
223
  return await this.rollup.read.getEpochAtSlot([
215
224
  slotNumber
@@ -279,9 +288,6 @@ export class RollupContract {
279
288
  inFeeAsset
280
289
  ]);
281
290
  }
282
- getVersion() {
283
- return this.rollup.read.getVersion();
284
- }
285
291
  getSlotAt(timestamp) {
286
292
  return this.rollup.read.getSlotAt([
287
293
  timestamp
@@ -386,3 +392,6 @@ _ts_decorate([
386
392
  _ts_decorate([
387
393
  memoize
388
394
  ], RollupContract.prototype, "getManaLimit", null);
395
+ _ts_decorate([
396
+ memoize
397
+ ], RollupContract.prototype, "getVersion", null);