@aztec/ethereum 2.1.0-rc.9 → 3.0.0-devnet.2

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 (40) hide show
  1. package/dest/client.d.ts +1 -1
  2. package/dest/client.d.ts.map +1 -1
  3. package/dest/config.d.ts.map +1 -1
  4. package/dest/config.js +13 -3
  5. package/dest/contracts/rollup.d.ts +2 -2
  6. package/dest/contracts/rollup.d.ts.map +1 -1
  7. package/dest/contracts/rollup.js +9 -6
  8. package/dest/contracts/tally_slashing_proposer.d.ts +7 -1
  9. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  10. package/dest/contracts/tally_slashing_proposer.js +12 -2
  11. package/dest/deploy_l1_contracts.d.ts +4 -3
  12. package/dest/deploy_l1_contracts.d.ts.map +1 -1
  13. package/dest/deploy_l1_contracts.js +241 -205
  14. package/dest/l1_artifacts.d.ts +730 -192
  15. package/dest/l1_artifacts.d.ts.map +1 -1
  16. package/dest/l1_artifacts.js +5 -5
  17. package/dest/l1_reader.d.ts +1 -1
  18. package/dest/l1_reader.d.ts.map +1 -1
  19. package/dest/l1_reader.js +1 -1
  20. package/dest/test/eth_cheat_codes.d.ts +15 -6
  21. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  22. package/dest/test/eth_cheat_codes.js +17 -9
  23. package/dest/test/rollup_cheat_codes.d.ts +8 -8
  24. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  25. package/dest/test/rollup_cheat_codes.js +36 -4
  26. package/dest/test/upgrade_utils.d.ts.map +1 -1
  27. package/dest/test/upgrade_utils.js +2 -1
  28. package/dest/zkPassportVerifierAddress.js +1 -1
  29. package/package.json +6 -6
  30. package/src/client.ts +1 -1
  31. package/src/config.ts +14 -4
  32. package/src/contracts/rollup.ts +9 -8
  33. package/src/contracts/tally_slashing_proposer.ts +12 -3
  34. package/src/deploy_l1_contracts.ts +221 -152
  35. package/src/l1_artifacts.ts +6 -6
  36. package/src/l1_reader.ts +2 -2
  37. package/src/test/eth_cheat_codes.ts +25 -12
  38. package/src/test/rollup_cheat_codes.ts +49 -12
  39. package/src/test/upgrade_utils.ts +2 -1
  40. package/src/zkPassportVerifierAddress.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"rollup_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/rollup_cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAMT,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8CAA8C;AAC9C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA4D;IAE1E,OAAO,CAAC,MAAM,CAAuC;gBAG3C,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC;IAavD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,gBAAgB;IAKzG,+BAA+B;IAClB,OAAO;IAKpB,gCAAgC;IACnB,QAAQ;IAKrB;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7C,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IAQF;;OAEG;IACU,WAAW;IAmBxB,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC;IAQF;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;QACtC,wBAAwB;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAcR,4CAA4C;IAC/B,kBAAkB,CAC7B,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;KAClC;IAeR,6DAA6D;IAChD,iBAAiB;IAQ9B;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM;IASzC;;;OAGG;IACI,YAAY,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAiCtD;;;OAGG;IACU,OAAO,CAClB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAQ1G;;OAEG;IACU,UAAU;IASvB,4CAA4C;IAC/B,oBAAoB;IAQjC;;;OAGG;IACU,sBAAsB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM;IAMtE;;;OAGG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM;CAWpD"}
1
+ {"version":3,"file":"rollup_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/rollup_cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAMT,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8CAA8C;AAC9C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA4D;IAE1E,OAAO,CAAC,MAAM,CAAuC;gBAG3C,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC;IAavD,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EACrD,YAAY,EAAE,YAAY,GACzB,gBAAgB;IAKnB,+BAA+B;IAClB,OAAO;IAKpB,gCAAgC;IACnB,QAAQ;IAKrB;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7C,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IAQF;;OAEG;IACU,WAAW;IAmBxB,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC;IAQF;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,GAAE;QACJ,wBAAwB;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAcR,4CAA4C;IAC/B,kBAAkB;IAa/B,6DAA6D;IAChD,iBAAiB;IAQ9B;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM;IASzC;;;OAGG;IACI,YAAY,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAiCtD;;;OAGG;IACI,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCxE;;;OAGG;IACU,OAAO,CAClB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAQ1G;;OAEG;IACU,UAAU;IASvB,4CAA4C;IAC/B,oBAAoB;IAQjC;;;OAGG;IACU,sBAAsB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM;IAMtE;;;OAGG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM;CAWpD"}
@@ -23,8 +23,8 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
23
23
  client: this.client
24
24
  });
25
25
  }
26
- static create(rpcUrls, addresses) {
27
- const ethCheatCodes = new EthCheatCodes(rpcUrls);
26
+ static create(rpcUrls, addresses, dateProvider) {
27
+ const ethCheatCodes = new EthCheatCodes(rpcUrls, dateProvider);
28
28
  return new RollupCheatCodes(ethCheatCodes, addresses);
29
29
  }
30
30
  /** Returns the current slot */ async getSlot() {
@@ -99,14 +99,13 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
99
99
  }
100
100
  return timestamp;
101
101
  }
102
- /** Warps time in L1 until the next epoch */ async advanceToNextEpoch(opts = {}) {
102
+ /** Warps time in L1 until the next epoch */ async advanceToNextEpoch() {
103
103
  const slot = await this.getSlot();
104
104
  const { epochDuration, slotDuration } = await this.getConfig();
105
105
  const slotsUntilNextEpoch = epochDuration - slot % epochDuration + 1n;
106
106
  const timeToNextEpoch = slotsUntilNextEpoch * slotDuration;
107
107
  const l1Timestamp = BigInt((await this.client.getBlock()).timestamp);
108
108
  await this.ethCheatCodes.warp(Number(l1Timestamp + timeToNextEpoch), {
109
- ...opts,
110
109
  silent: true,
111
110
  resetBlockInterval: true
112
111
  });
@@ -173,6 +172,39 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
173
172
  });
174
173
  }
175
174
  /**
175
+ * Overrides the inProgress field of the Inbox contract state
176
+ * @param howMuch - How many blocks to move it forward
177
+ */ advanceInboxInProgress(howMuch) {
178
+ return this.ethCheatCodes.execWithPausedAnvil(async ()=>{
179
+ // Storage slot 2 contains the InboxState struct
180
+ const inboxStateSlot = 2n;
181
+ // Get inbox and its current state values
182
+ const inboxAddress = await this.rollup.read.getInbox();
183
+ const currentStateValue = await this.ethCheatCodes.load(EthAddress.fromString(inboxAddress), inboxStateSlot);
184
+ // Extract current values from the packed storage slot
185
+ // Storage layout: rollingHash (128 bits) | totalMessagesInserted (64 bits) | inProgress (64 bits)
186
+ const currentRollingHash = currentStateValue & (1n << 128n) - 1n;
187
+ const currentTotalMessages = currentStateValue >> 128n & (1n << 64n) - 1n;
188
+ const currentInProgress = currentStateValue >> 192n;
189
+ const newInProgress = currentInProgress + BigInt(howMuch);
190
+ // Pack new values: rollingHash (low 128 bits) | totalMessages (middle 64 bits) | inProgress (high 64 bits)
191
+ const newValue = BigInt(newInProgress) << 192n | currentTotalMessages << 128n | currentRollingHash;
192
+ await this.ethCheatCodes.store(EthAddress.fromString(inboxAddress), inboxStateSlot, newValue, {
193
+ silent: true
194
+ });
195
+ this.logger.warn(`Inbox inProgress advanced from ${currentInProgress} to ${newInProgress}`, {
196
+ inbox: inboxAddress,
197
+ oldValue: '0x' + currentStateValue.toString(16),
198
+ newValue: '0x' + newValue.toString(16),
199
+ rollingHash: currentRollingHash,
200
+ totalMessages: currentTotalMessages,
201
+ oldInProgress: currentInProgress,
202
+ newInProgress
203
+ });
204
+ return newInProgress;
205
+ });
206
+ }
207
+ /**
176
208
  * Executes an action impersonated as the owner of the Rollup contract.
177
209
  * @param action - The action to execute
178
210
  */ async asOwner(action) {
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade_utils.d.ts","sourceRoot":"","sources":["../../src/test/upgrade_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAe,MAAM,MAAM,CAAC;AAGvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG9E,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,qBAAqB,CAAC,OAAO,aAAa,EAAE,gBAAgB,CAAC,EACzE,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,wBAAwB,EAClC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,iBAmCf;AAED,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,KAAK,MAAM,EAAE,EAC7B,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,gBAAgB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,UAAU,EAAE,qBAAqB,CAAC,OAAO,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAyCD"}
1
+ {"version":3,"file":"upgrade_utils.d.ts","sourceRoot":"","sources":["../../src/test/upgrade_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAe,MAAM,MAAM,CAAC;AAGvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG9E,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,qBAAqB,CAAC,OAAO,aAAa,EAAE,gBAAgB,CAAC,EACzE,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,wBAAwB,EAClC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,iBAmCf;AAED,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,KAAK,MAAM,EAAE,EAC7B,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,gBAAgB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,UAAU,EAAE,qBAAqB,CAAC,OAAO,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAyCD"}
@@ -1,3 +1,4 @@
1
+ import { DateProvider } from '@aztec/foundation/timer';
1
2
  import { GovernanceAbi } from '@aztec/l1-artifacts/GovernanceAbi';
2
3
  import { TestERC20Abi as StakingAssetAbi } from '@aztec/l1-artifacts/TestERC20Abi';
3
4
  import { getContract } from 'viem';
@@ -15,7 +16,7 @@ export async function executeGovernanceProposal(proposalId, governance, voteAmou
15
16
  value: 1n
16
17
  });
17
18
  };
18
- const cheatCodes = new EthCheatCodes(rpcUrls, logger);
19
+ const cheatCodes = new EthCheatCodes(rpcUrls, new DateProvider(), logger);
19
20
  const timeToActive = proposal.creation + proposal.config.votingDelay;
20
21
  logger.info(`Warping to ${timeToActive + 1n}`);
21
22
  await cheatCodes.warp(Number(timeToActive + 1n));
@@ -2,7 +2,7 @@ import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  /**
3
3
  * The address of the zk passport verifier on sepolia
4
4
  * get address from: ROOT/l1-contracts/lib/circuits/src/solidity/deployments/deployment-11155111.json
5
- */ export const ZK_PASSPORT_VERIFIER_ADDRESS = EthAddress.fromString('0xBec82dec0747C9170D760D5aba9cc44929B17C05');
5
+ */ export const ZK_PASSPORT_VERIFIER_ADDRESS = EthAddress.fromString('0x3101Bad9eA5fACadA5554844a1a88F7Fe48D4DE0');
6
6
  /**
7
7
  * The default domain of the zk passport site
8
8
  */ export const ZK_PASSPORT_DOMAIN = 'testnet.aztec.network';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/ethereum",
3
- "version": "2.1.0-rc.9",
3
+ "version": "3.0.0-devnet.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -31,16 +31,16 @@
31
31
  "../package.common.json"
32
32
  ],
33
33
  "dependencies": {
34
- "@aztec/blob-lib": "2.1.0-rc.9",
35
- "@aztec/constants": "2.1.0-rc.9",
36
- "@aztec/foundation": "2.1.0-rc.9",
37
- "@aztec/l1-artifacts": "2.1.0-rc.9",
34
+ "@aztec/blob-lib": "3.0.0-devnet.2",
35
+ "@aztec/constants": "3.0.0-devnet.2",
36
+ "@aztec/foundation": "3.0.0-devnet.2",
37
+ "@aztec/l1-artifacts": "3.0.0-devnet.2",
38
38
  "@viem/anvil": "^0.0.10",
39
39
  "dotenv": "^16.0.3",
40
40
  "lodash.chunk": "^4.2.0",
41
41
  "lodash.pickby": "^4.5.0",
42
42
  "tslib": "^2.4.0",
43
- "viem": "2.23.7",
43
+ "viem": "npm:@spalladino/viem@2.38.2-eip7594.0",
44
44
  "zod": "^3.23.8"
45
45
  },
46
46
  "devDependencies": {
package/src/client.ts CHANGED
@@ -19,7 +19,7 @@ import { createEthereumChain } from './chain.js';
19
19
  import type { ExtendedViemWalletClient, ViemPublicClient } from './types.js';
20
20
 
21
21
  type Config = {
22
- /** The RPC Url of the ethereum host. */
22
+ /** List of URLs of Ethereum RPC nodes that services will connect to (comma separated). */
23
23
  l1RpcUrls: string[];
24
24
  /** The chain ID of the ethereum host. */
25
25
  l1ChainId: number;
package/src/config.ts CHANGED
@@ -78,7 +78,7 @@ export const DefaultL1ContractsConfig = {
78
78
  aztecEpochDuration: 32,
79
79
  aztecTargetCommitteeSize: 48,
80
80
  lagInEpochs: 2,
81
- aztecProofSubmissionEpochs: 1, // you have 1 full epoch to submit a proof after the epoch to prove ends
81
+ aztecProofSubmissionEpochs: 1, // you have a full epoch to submit a proof after the epoch to prove ends
82
82
  activationThreshold: 100n * 10n ** 18n,
83
83
  ejectionThreshold: 50n * 10n ** 18n,
84
84
  localEjectionThreshold: 98n * 10n ** 18n,
@@ -128,7 +128,7 @@ const StagingPublicGovernanceConfiguration = {
128
128
 
129
129
  const TestnetGovernanceConfiguration = {
130
130
  proposeConfig: {
131
- lockDelay: 60n * 60n * 24n * 30n,
131
+ lockDelay: 10n * 365n * 24n * 60n * 60n,
132
132
  lockAmount: 1250n * 200_000n * 10n ** 18n,
133
133
  },
134
134
 
@@ -143,7 +143,7 @@ const TestnetGovernanceConfiguration = {
143
143
 
144
144
  const StagingIgnitionGovernanceConfiguration = {
145
145
  proposeConfig: {
146
- lockDelay: 60n * 60n * 24n * 30n,
146
+ lockDelay: 10n * 365n * 24n * 60n * 60n,
147
147
  lockAmount: 1250n * 200_000n * 10n ** 18n,
148
148
  },
149
149
 
@@ -160,6 +160,10 @@ export const getGovernanceConfiguration = (networkName: NetworkNames) => {
160
160
  switch (networkName) {
161
161
  case 'local':
162
162
  return LocalGovernanceConfiguration;
163
+ case 'next-net':
164
+ return LocalGovernanceConfiguration;
165
+ case 'devnet':
166
+ return LocalGovernanceConfiguration;
163
167
  case 'staging-public':
164
168
  return StagingPublicGovernanceConfiguration;
165
169
  case 'testnet':
@@ -185,6 +189,8 @@ const DefaultRewardConfig = {
185
189
  export const getRewardConfig = (networkName: NetworkNames) => {
186
190
  switch (networkName) {
187
191
  case 'local':
192
+ case 'devnet':
193
+ case 'next-net':
188
194
  case 'staging-public':
189
195
  case 'testnet':
190
196
  case 'staging-ignition':
@@ -212,7 +218,7 @@ const LocalEntryQueueConfig = {
212
218
  bootstrapFlushSize: 0n,
213
219
  normalFlushSizeMin: 48n,
214
220
  normalFlushSizeQuotient: 2n,
215
- maxQueueFlushSize: 32n,
221
+ maxQueueFlushSize: 48n,
216
222
  };
217
223
 
218
224
  const StagingPublicEntryQueueConfig = {
@@ -243,6 +249,10 @@ export const getEntryQueueConfig = (networkName: NetworkNames) => {
243
249
  switch (networkName) {
244
250
  case 'local':
245
251
  return LocalEntryQueueConfig;
252
+ case 'next-net':
253
+ return LocalEntryQueueConfig;
254
+ case 'devnet':
255
+ return LocalEntryQueueConfig;
246
256
  case 'staging-public':
247
257
  return StagingPublicEntryQueueConfig;
248
258
  case 'testnet':
@@ -221,6 +221,7 @@ export class RollupContract {
221
221
  return this.rollup.read.getEjectionThreshold();
222
222
  }
223
223
 
224
+ @memoize
224
225
  getLocalEjectionThreshold() {
225
226
  return this.rollup.read.getLocalEjectionThreshold();
226
227
  }
@@ -440,14 +441,6 @@ export class RollupContract {
440
441
  return this.rollup.read.getEntryQueueLength();
441
442
  }
442
443
 
443
- getCurrentEpochNumber(): Promise<bigint> {
444
- return this.rollup.read.getCurrentEpoch();
445
- }
446
-
447
- getEpochNumberForBlock(blockNumber: bigint) {
448
- return this.rollup.read.getEpochForBlock([BigInt(blockNumber)]);
449
- }
450
-
451
444
  getAvailableValidatorFlushes() {
452
445
  return this.rollup.read.getAvailableValidatorFlushes();
453
446
  }
@@ -456,6 +449,14 @@ export class RollupContract {
456
449
  return this.rollup.read.getNextFlushableEpoch();
457
450
  }
458
451
 
452
+ getCurrentEpochNumber(): Promise<bigint> {
453
+ return this.rollup.read.getCurrentEpoch();
454
+ }
455
+
456
+ getEpochNumberForBlock(blockNumber: bigint) {
457
+ return this.rollup.read.getEpochForBlock([BigInt(blockNumber)]);
458
+ }
459
+
459
460
  async getRollupAddresses(): Promise<L1RollupContractAddresses> {
460
461
  const [
461
462
  inboxAddress,
@@ -85,11 +85,20 @@ export class TallySlashingProposerContract {
85
85
  */
86
86
  public async getRound(round: bigint): Promise<{
87
87
  isExecuted: boolean;
88
- readyToExecute: boolean;
89
88
  voteCount: bigint;
90
89
  }> {
91
- const [isExecuted, readyToExecute, voteCount] = await this.contract.read.getRound([round]);
92
- return { isExecuted, readyToExecute, voteCount };
90
+ const [isExecuted, voteCount] = await this.contract.read.getRound([round]);
91
+ return { isExecuted, voteCount };
92
+ }
93
+
94
+ /**
95
+ * Check if a round is ready to execute at a given slot
96
+ * @param round - The round number to check
97
+ * @param slot - The slot number to check at
98
+ * @returns Whether the round is ready to execute
99
+ */
100
+ public async isRoundReadyToExecute(round: bigint, slot: bigint): Promise<boolean> {
101
+ return await this.contract.read.isRoundReadyToExecute([round, slot]);
93
102
  }
94
103
 
95
104
  /** Returns the slash actions and payload address for a given round (zero if no slash actions) */