@aztec/epoch-cache 1.0.0-nightly.20250605 → 1.0.0-nightly.20250607

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.
@@ -52,7 +52,7 @@ export declare class EpochCache implements EpochCacheInterface {
52
52
  getEpochAndSlotNow(): EpochAndSlot;
53
53
  private nowInSeconds;
54
54
  private getEpochAndSlotAtSlot;
55
- getEpochAndSlotInNextSlot(): EpochAndSlot;
55
+ getEpochAndSlotInNextL1Slot(): EpochAndSlot;
56
56
  private getEpochAndSlotAtTimestamp;
57
57
  getCommitteeForEpoch(epoch: bigint): Promise<EpochCommitteeInfo>;
58
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"epoch_cache.d.ts","sourceRoot":"","sources":["../src/epoch_cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epoch_cache.d.ts","sourceRoot":"","sources":["../src/epoch_cache.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { RollupContract, createEthereumChain } from '@aztec/ethereum';
2
2
  import { EthAddress } from '@aztec/foundation/eth-address';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { DateProvider } from '@aztec/foundation/timer';
5
- import { EmptyL1RollupConstants, getEpochAtSlot, getEpochNumberAtTimestamp, getSlotAtTimestamp, getSlotRangeForEpoch, getTimestampRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
5
+ import { EmptyL1RollupConstants, getEpochAtSlot, getEpochNumberAtTimestamp, getSlotAtTimestamp, getSlotRangeForEpoch, getTimestampForSlot, getTimestampRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
6
6
  import { createPublicClient, encodeAbiParameters, fallback, http, keccak256 } from 'viem';
7
7
  import { getEpochCacheConfigEnvVars } from './config.js';
8
8
  /**
@@ -85,15 +85,16 @@ import { getEpochCacheConfigEnvVars } from './config.js';
85
85
  slot
86
86
  };
87
87
  }
88
- getEpochAndSlotInNextSlot() {
88
+ getEpochAndSlotInNextL1Slot() {
89
89
  const nextSlotTs = this.nowInSeconds() + BigInt(this.l1constants.ethereumSlotDuration);
90
90
  return this.getEpochAndSlotAtTimestamp(nextSlotTs);
91
91
  }
92
92
  getEpochAndSlotAtTimestamp(ts) {
93
+ const slot = getSlotAtTimestamp(ts, this.l1constants);
93
94
  return {
94
95
  epoch: getEpochNumberAtTimestamp(ts, this.l1constants),
95
- slot: getSlotAtTimestamp(ts, this.l1constants),
96
- ts
96
+ ts: getTimestampForSlot(slot, this.l1constants),
97
+ slot
97
98
  };
98
99
  }
99
100
  getCommitteeForEpoch(epoch) {
@@ -126,7 +127,7 @@ import { getEpochCacheConfigEnvVars } from './config.js';
126
127
  if (slot === 'now') {
127
128
  return this.getEpochAndSlotNow();
128
129
  } else if (slot === 'next') {
129
- return this.getEpochAndSlotInNextSlot();
130
+ return this.getEpochAndSlotInNextL1Slot();
130
131
  } else {
131
132
  return this.getEpochAndSlotAtSlot(slot);
132
133
  }
@@ -180,7 +181,7 @@ import { getEpochCacheConfigEnvVars } from './config.js';
180
181
  * which can be the next slot. If this is the case, then it will send proposals early.
181
182
  */ async getProposerAttesterAddressInCurrentOrNextSlot() {
182
183
  const current = this.getEpochAndSlotNow();
183
- const next = this.getEpochAndSlotInNextSlot();
184
+ const next = this.getEpochAndSlotInNextL1Slot();
184
185
  return {
185
186
  currentProposer: await this.getProposerAttesterAddressAt(current),
186
187
  nextProposer: await this.getProposerAttesterAddressAt(next),
@@ -189,7 +190,7 @@ import { getEpochCacheConfigEnvVars } from './config.js';
189
190
  };
190
191
  }
191
192
  getProposerAttesterAddressInNextSlot() {
192
- const epochAndSlot = this.getEpochAndSlotInNextSlot();
193
+ const epochAndSlot = this.getEpochAndSlotInNextL1Slot();
193
194
  return this.getProposerAttesterAddressAt(epochAndSlot);
194
195
  }
195
196
  async getProposerAttesterAddressAt(when) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/epoch-cache",
3
- "version": "1.0.0-nightly.20250605",
3
+ "version": "1.0.0-nightly.20250607",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -26,10 +26,10 @@
26
26
  "../package.common.json"
27
27
  ],
28
28
  "dependencies": {
29
- "@aztec/ethereum": "1.0.0-nightly.20250605",
30
- "@aztec/foundation": "1.0.0-nightly.20250605",
31
- "@aztec/l1-artifacts": "1.0.0-nightly.20250605",
32
- "@aztec/stdlib": "1.0.0-nightly.20250605",
29
+ "@aztec/ethereum": "1.0.0-nightly.20250607",
30
+ "@aztec/foundation": "1.0.0-nightly.20250607",
31
+ "@aztec/l1-artifacts": "1.0.0-nightly.20250607",
32
+ "@aztec/stdlib": "1.0.0-nightly.20250607",
33
33
  "@viem/anvil": "^0.0.10",
34
34
  "dotenv": "^16.0.3",
35
35
  "get-port": "^7.1.0",
@@ -9,6 +9,7 @@ import {
9
9
  getEpochNumberAtTimestamp,
10
10
  getSlotAtTimestamp,
11
11
  getSlotRangeForEpoch,
12
+ getTimestampForSlot,
12
13
  getTimestampRangeForEpoch,
13
14
  } from '@aztec/stdlib/epoch-helpers';
14
15
 
@@ -133,16 +134,17 @@ export class EpochCache implements EpochCacheInterface {
133
134
  return { epoch, ts, slot };
134
135
  }
135
136
 
136
- public getEpochAndSlotInNextSlot(): EpochAndSlot {
137
+ public getEpochAndSlotInNextL1Slot(): EpochAndSlot {
137
138
  const nextSlotTs = this.nowInSeconds() + BigInt(this.l1constants.ethereumSlotDuration);
138
139
  return this.getEpochAndSlotAtTimestamp(nextSlotTs);
139
140
  }
140
141
 
141
142
  private getEpochAndSlotAtTimestamp(ts: bigint): EpochAndSlot {
143
+ const slot = getSlotAtTimestamp(ts, this.l1constants);
142
144
  return {
143
145
  epoch: getEpochNumberAtTimestamp(ts, this.l1constants),
144
- slot: getSlotAtTimestamp(ts, this.l1constants),
145
- ts,
146
+ ts: getTimestampForSlot(slot, this.l1constants),
147
+ slot,
146
148
  };
147
149
  }
148
150
 
@@ -182,7 +184,7 @@ export class EpochCache implements EpochCacheInterface {
182
184
  if (slot === 'now') {
183
185
  return this.getEpochAndSlotNow();
184
186
  } else if (slot === 'next') {
185
- return this.getEpochAndSlotInNextSlot();
187
+ return this.getEpochAndSlotInNextL1Slot();
186
188
  } else {
187
189
  return this.getEpochAndSlotAtSlot(slot);
188
190
  }
@@ -230,7 +232,7 @@ export class EpochCache implements EpochCacheInterface {
230
232
  nextProposer: EthAddress;
231
233
  }> {
232
234
  const current = this.getEpochAndSlotNow();
233
- const next = this.getEpochAndSlotInNextSlot();
235
+ const next = this.getEpochAndSlotInNextL1Slot();
234
236
 
235
237
  return {
236
238
  currentProposer: await this.getProposerAttesterAddressAt(current),
@@ -241,7 +243,7 @@ export class EpochCache implements EpochCacheInterface {
241
243
  }
242
244
 
243
245
  getProposerAttesterAddressInNextSlot(): Promise<EthAddress> {
244
- const epochAndSlot = this.getEpochAndSlotInNextSlot();
246
+ const epochAndSlot = this.getEpochAndSlotInNextL1Slot();
245
247
 
246
248
  return this.getProposerAttesterAddressAt(epochAndSlot);
247
249
  }