@aztec/archiver 1.0.0 → 1.1.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.
@@ -15,6 +15,7 @@ import type { L2LogsSource } from '@aztec/stdlib/interfaces/server';
15
15
  import { type LogFilter, type PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
16
16
  import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
17
17
  import { type BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
18
+ import type { UInt64 } from '@aztec/stdlib/types';
18
19
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
19
20
  import type { ArchiverDataStore, ArchiverL1SynchPoint } from './archiver_store.js';
20
21
  import type { ArchiverConfig } from './config.js';
@@ -179,7 +180,7 @@ export declare class Archiver extends Archiver_base implements ArchiveSource, Tr
179
180
  setProvenBlockNumber(blockNumber: number): Promise<void>;
180
181
  getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
181
182
  getBytecodeCommitment(id: Fr): Promise<Fr | undefined>;
182
- getContract(address: AztecAddress, blockNumber?: number): Promise<ContractInstanceWithAddress | undefined>;
183
+ getContract(address: AztecAddress, maybeTimestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
183
184
  /**
184
185
  * Gets L1 to L2 message (to be) included in a given block.
185
186
  * @param blockNumber - L2 block number to get messages for.
@@ -230,7 +231,7 @@ export declare class ArchiverStoreHelper implements Omit<ArchiverDataStore, 'add
230
231
  getSynchPoint(): Promise<ArchiverL1SynchPoint>;
231
232
  getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
232
233
  getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined>;
233
- getContractInstance(address: AztecAddress, blockNumber: number): Promise<ContractInstanceWithAddress | undefined>;
234
+ getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
234
235
  getContractClassIds(): Promise<Fr[]>;
235
236
  registerContractFunctionSignatures(signatures: string[]): Promise<void>;
236
237
  getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}
@@ -842,8 +842,16 @@ import { ArchiverInstrumentation } from './instrumentation.js';
842
842
  getBytecodeCommitment(id) {
843
843
  return this.store.getBytecodeCommitment(id);
844
844
  }
845
- async getContract(address, blockNumber) {
846
- return this.store.getContractInstance(address, blockNumber ?? await this.getBlockNumber());
845
+ async getContract(address, maybeTimestamp) {
846
+ let timestamp;
847
+ if (maybeTimestamp === undefined) {
848
+ const latestBlockHeader = await this.getBlockHeader('latest');
849
+ // If we get undefined block header, it means that the archiver has not yet synced any block so we default to 0.
850
+ timestamp = latestBlockHeader ? latestBlockHeader.globalVariables.timestamp : 0n;
851
+ } else {
852
+ timestamp = maybeTimestamp;
853
+ }
854
+ return this.store.getContractInstance(address, timestamp);
847
855
  }
848
856
  /**
849
857
  * Gets L1 to L2 message (to be) included in a given block.
@@ -1003,14 +1011,16 @@ var Operation = /*#__PURE__*/ function(Operation) {
1003
1011
  /**
1004
1012
  * Extracts and stores contract instances out of ContractInstanceDeployed events emitted by the canonical deployer contract.
1005
1013
  * @param allLogs - All logs emitted in a bunch of blocks.
1006
- */ async #updateUpdatedContractInstances(allLogs, blockNum, operation) {
1014
+ * @param timestamp - Timestamp at which the updates were scheduled.
1015
+ * @param operation - The operation to perform on the contract instance updates (Store or Delete).
1016
+ */ async #updateUpdatedContractInstances(allLogs, timestamp, operation) {
1007
1017
  const contractUpdates = allLogs.filter((log)=>ContractInstanceUpdatedEvent.isContractInstanceUpdatedEvent(log)).map((log)=>ContractInstanceUpdatedEvent.fromLog(log)).map((e)=>e.toContractInstanceUpdate());
1008
1018
  if (contractUpdates.length > 0) {
1009
1019
  contractUpdates.forEach((c)=>this.#log.verbose(`${Operation[operation]} contract instance update at ${c.address.toString()}`));
1010
1020
  if (operation == 0) {
1011
- return await this.store.addContractInstanceUpdates(contractUpdates, blockNum);
1021
+ return await this.store.addContractInstanceUpdates(contractUpdates, timestamp);
1012
1022
  } else if (operation == 1) {
1013
- return await this.store.deleteContractInstanceUpdates(contractUpdates, blockNum);
1023
+ return await this.store.deleteContractInstanceUpdates(contractUpdates, timestamp);
1014
1024
  }
1015
1025
  }
1016
1026
  return true;
@@ -1081,7 +1091,7 @@ var Operation = /*#__PURE__*/ function(Operation) {
1081
1091
  return (await Promise.all([
1082
1092
  this.#updateRegisteredContractClasses(contractClassLogs, block.block.number, 0),
1083
1093
  this.#updateDeployedContractInstances(privateLogs, block.block.number, 0),
1084
- this.#updateUpdatedContractInstances(publicLogs, block.block.number, 0),
1094
+ this.#updateUpdatedContractInstances(publicLogs, block.block.header.globalVariables.timestamp, 0),
1085
1095
  this.#storeBroadcastedIndividualFunctions(contractClassLogs, block.block.number)
1086
1096
  ])).every(Boolean);
1087
1097
  })
@@ -1109,7 +1119,7 @@ var Operation = /*#__PURE__*/ function(Operation) {
1109
1119
  return (await Promise.all([
1110
1120
  this.#updateRegisteredContractClasses(contractClassLogs, block.block.number, 1),
1111
1121
  this.#updateDeployedContractInstances(privateLogs, block.block.number, 1),
1112
- this.#updateUpdatedContractInstances(publicLogs, block.block.number, 1)
1122
+ this.#updateUpdatedContractInstances(publicLogs, block.block.header.globalVariables.timestamp, 1)
1113
1123
  ])).every(Boolean);
1114
1124
  }),
1115
1125
  this.store.deleteLogs(blocks.map((b)=>b.block)),
@@ -1177,8 +1187,8 @@ var Operation = /*#__PURE__*/ function(Operation) {
1177
1187
  getBytecodeCommitment(contractClassId) {
1178
1188
  return this.store.getBytecodeCommitment(contractClassId);
1179
1189
  }
1180
- getContractInstance(address, blockNumber) {
1181
- return this.store.getContractInstance(address, blockNumber);
1190
+ getContractInstance(address, timestamp) {
1191
+ return this.store.getContractInstance(address, timestamp);
1182
1192
  }
1183
1193
  getContractClassIds() {
1184
1194
  return this.store.getContractClassIds();
@@ -8,6 +8,7 @@ import type { ContractClassPublic, ContractInstanceUpdateWithAddress, ContractIn
8
8
  import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
9
9
  import type { LogFilter, PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
10
10
  import { BlockHeader, type IndexedTxEffect, type TxHash, type TxReceipt } from '@aztec/stdlib/tx';
11
+ import type { UInt64 } from '@aztec/stdlib/types';
11
12
  import type { InboxMessage } from './structs/inbox_message.js';
12
13
  import type { PublishedL2Block } from './structs/published.js';
13
14
  /**
@@ -185,21 +186,22 @@ export interface ArchiverDataStore {
185
186
  /**
186
187
  * Add new contract instance updates
187
188
  * @param data - List of contract updates to be added.
188
- * @param blockNumber - Number of the L2 block the updates were scheduled in.
189
+ * @param timestamp - Timestamp at which the updates were scheduled.
189
190
  * @returns True if the operation is successful.
190
191
  */
191
- addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], blockNumber: number): Promise<boolean>;
192
- deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], blockNumber: number): Promise<boolean>;
192
+ addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
193
+ deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
193
194
  /**
194
195
  * Adds private functions to a contract class.
195
196
  */
196
197
  addFunctions(contractClassId: Fr, privateFunctions: ExecutablePrivateFunctionWithMembershipProof[], utilityFunctions: UtilityFunctionWithMembershipProof[]): Promise<boolean>;
197
198
  /**
198
- * Returns a contract instance given its address and the given block number, or undefined if not exists.
199
+ * Returns a contract instance given its address and the given timestamp, or undefined if not exists.
199
200
  * @param address - Address of the contract.
200
- * @param blockNumber - Block number to get the contract instance at. Contract updates might change the instance at a given block.
201
+ * @param timestamp - Timestamp to get the contract instance at. Contract updates might change the instance.
202
+ * @returns The contract instance or undefined if not found.
201
203
  */
202
- getContractInstance(address: AztecAddress, blockNumber: number): Promise<ContractInstanceWithAddress | undefined>;
204
+ getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
203
205
  /** Returns the list of all class ids known by the archiver. */
204
206
  getContractClassIds(): Promise<Fr[]>;
205
207
  /** Register a public function signature, so it can be looked up by selector. */
@@ -1 +1 @@
1
- {"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AA4BA,OAAO,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAMnF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAs/B/D"}
1
+ {"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AA4BA,OAAO,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAMnF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAu/B/D"}
@@ -574,6 +574,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
574
574
  describe('contractInstances', ()=>{
575
575
  let contractInstance;
576
576
  const blockNum = 10;
577
+ const timestamp = 3600n;
577
578
  beforeEach(async ()=>{
578
579
  const classId = Fr.random();
579
580
  const randomInstance = await SerializableContractInstance.random({
@@ -589,23 +590,23 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
589
590
  ], blockNum);
590
591
  });
591
592
  it('returns previously stored contract instances', async ()=>{
592
- await expect(store.getContractInstance(contractInstance.address, blockNum)).resolves.toMatchObject(contractInstance);
593
+ await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toMatchObject(contractInstance);
593
594
  });
594
595
  it('returns undefined if contract instance is not found', async ()=>{
595
- await expect(store.getContractInstance(await AztecAddress.random(), blockNum)).resolves.toBeUndefined();
596
+ await expect(store.getContractInstance(await AztecAddress.random(), timestamp)).resolves.toBeUndefined();
596
597
  });
597
598
  it('returns undefined if previously stored contract instances was deleted', async ()=>{
598
599
  await store.deleteContractInstances([
599
600
  contractInstance
600
601
  ], blockNum);
601
- await expect(store.getContractInstance(contractInstance.address, blockNum)).resolves.toBeUndefined();
602
+ await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toBeUndefined();
602
603
  });
603
604
  });
604
605
  describe('contractInstanceUpdates', ()=>{
605
606
  let contractInstance;
606
607
  let classId;
607
608
  let nextClassId;
608
- const blockOfChange = 10;
609
+ const timestampOfChange = 3600n;
609
610
  beforeEach(async ()=>{
610
611
  classId = Fr.random();
611
612
  nextClassId = Fr.random();
@@ -624,23 +625,23 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
624
625
  {
625
626
  prevContractClassId: classId,
626
627
  newContractClassId: nextClassId,
627
- blockOfChange,
628
+ timestampOfChange,
628
629
  address: contractInstance.address
629
630
  }
630
- ], blockOfChange - 1);
631
+ ], timestampOfChange - 1n);
631
632
  });
632
633
  it('gets the correct current class id for a contract not updated yet', async ()=>{
633
- const fetchedInstance = await store.getContractInstance(contractInstance.address, blockOfChange - 1);
634
+ const fetchedInstance = await store.getContractInstance(contractInstance.address, timestampOfChange - 1n);
634
635
  expect(fetchedInstance?.originalContractClassId).toEqual(classId);
635
636
  expect(fetchedInstance?.currentContractClassId).toEqual(classId);
636
637
  });
637
638
  it('gets the correct current class id for a contract that has just been updated', async ()=>{
638
- const fetchedInstance = await store.getContractInstance(contractInstance.address, blockOfChange);
639
+ const fetchedInstance = await store.getContractInstance(contractInstance.address, timestampOfChange);
639
640
  expect(fetchedInstance?.originalContractClassId).toEqual(classId);
640
641
  expect(fetchedInstance?.currentContractClassId).toEqual(nextClassId);
641
642
  });
642
643
  it('gets the correct current class id for a contract that was updated in the past', async ()=>{
643
- const fetchedInstance = await store.getContractInstance(contractInstance.address, blockOfChange + 1);
644
+ const fetchedInstance = await store.getContractInstance(contractInstance.address, timestampOfChange + 1n);
644
645
  expect(fetchedInstance?.originalContractClassId).toEqual(classId);
645
646
  expect(fetchedInstance?.currentContractClassId).toEqual(nextClassId);
646
647
  });
@@ -657,7 +658,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
657
658
  await store.addContractInstances([
658
659
  otherContractInstance
659
660
  ], 1);
660
- const fetchedInstance = await store.getContractInstance(otherContractInstance.address, blockOfChange + 1);
661
+ const fetchedInstance = await store.getContractInstance(otherContractInstance.address, timestampOfChange + 1n);
661
662
  expect(fetchedInstance?.originalContractClassId).toEqual(otherClassId);
662
663
  expect(fetchedInstance?.currentContractClassId).toEqual(otherClassId);
663
664
  });
@@ -679,11 +680,11 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
679
680
  {
680
681
  prevContractClassId: otherClassId,
681
682
  newContractClassId: otherNextClassId,
682
- blockOfChange,
683
+ timestampOfChange,
683
684
  address: otherContractInstance.address
684
685
  }
685
- ], blockOfChange - 1);
686
- const fetchedInstance = await store.getContractInstance(contractInstance.address, blockOfChange + 1);
686
+ ], timestampOfChange - 1n);
687
+ const fetchedInstance = await store.getContractInstance(contractInstance.address, timestampOfChange + 1n);
687
688
  expect(fetchedInstance?.originalContractClassId).toEqual(classId);
688
689
  expect(fetchedInstance?.currentContractClassId).toEqual(nextClassId);
689
690
  });
@@ -1 +1 @@
1
- {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAEV,UAAU,EAGV,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,KAAK,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAW,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAgC,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErG,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAKT,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,EAAE,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,EAAE,CAAC;IACZ,YAAY,EAAE,oBAAoB,EAAE,CAAC;CACtC,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,gBAAgB,GAAG,gBAAgB,CA6CnG;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,EACjE,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EAAE,uBAAuB,EACvC,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,MAAiC,GACxC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA+C7B;AA4DD,wBAAsB,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzG;AAqID,iHAAiH;AACjH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,qBAAqB,CAAC,OAAO,QAAQ,EAAE,UAAU,CAAC,EACzD,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAKnC;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,qBAAqB,CAAC,OAAO,QAAQ,EAAE,UAAU,CAAC,EACzD,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBzB;AAgBD,iEAAiE;AACjE,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,UAAU,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,EAAE,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,EAAE,CAAC,CAexF;AAED,yDAAyD;AACzD,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,UAAU,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,aAAa,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,CAAC,CAAC,CAatG;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,EAAE,CAAC;IAChB,QAAQ,EAAE,EAAE,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,gBAAgB,EAC9B,MAAM,EAAE,KAAK,MAAM,EAAE,EACrB,gBAAgB,EAAE,EAAE,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAmC3B"}
1
+ {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
@@ -63,13 +63,15 @@ export function retrievedBlockToPublishedL2Block(retrievedBlock) {
63
63
  const lastLog = l2BlockProposedLogs[l2BlockProposedLogs.length - 1];
64
64
  logger.debug(`Got ${l2BlockProposedLogs.length} L2 block processed logs for L2 blocks ${l2BlockProposedLogs[0].args.blockNumber}-${lastLog.args.blockNumber} between L1 blocks ${searchStartBlock}-${searchEndBlock}`);
65
65
  if (rollupConstants === undefined) {
66
- const [chainId, version] = await Promise.all([
66
+ const [chainId, version, targetCommitteeSize] = await Promise.all([
67
67
  publicClient.getChainId(),
68
- rollup.read.getVersion()
68
+ rollup.read.getVersion(),
69
+ rollup.read.getTargetCommitteeSize()
69
70
  ]);
70
71
  rollupConstants = {
71
72
  chainId: new Fr(chainId),
72
- version: new Fr(version)
73
+ version: new Fr(version),
74
+ targetCommitteeSize: Number(targetCommitteeSize)
73
75
  };
74
76
  }
75
77
  const newBlocks = await processL2BlockProposedLogs(rollup, publicClient, blobSinkClient, l2BlockProposedLogs, rollupConstants, logger);
@@ -85,7 +87,7 @@ export function retrievedBlockToPublishedL2Block(retrievedBlock) {
85
87
  * @param publicClient - The viem public client to use for transaction retrieval.
86
88
  * @param logs - L2BlockProposed logs.
87
89
  * @returns - An array blocks.
88
- */ async function processL2BlockProposedLogs(rollup, publicClient, blobSinkClient, logs, { chainId, version }, logger) {
90
+ */ async function processL2BlockProposedLogs(rollup, publicClient, blobSinkClient, logs, { chainId, version, targetCommitteeSize }, logger) {
89
91
  const retrievedBlocks = [];
90
92
  await asyncPool(10, logs, async (log)=>{
91
93
  const l2BlockNumber = Number(log.args.blockNumber);
@@ -96,7 +98,7 @@ export function retrievedBlockToPublishedL2Block(retrievedBlock) {
96
98
  const blobHashes = log.args.versionedBlobHashes.map((blobHash)=>Buffer.from(blobHash.slice(2), 'hex'));
97
99
  // The value from the event and contract will match only if the block is in the chain.
98
100
  if (archive === archiveFromChain) {
99
- const block = await getBlockFromRollupTx(publicClient, blobSinkClient, log.transactionHash, blobHashes, l2BlockNumber, rollup.address, logger);
101
+ const block = await getBlockFromRollupTx(publicClient, blobSinkClient, log.transactionHash, blobHashes, l2BlockNumber, rollup.address, targetCommitteeSize, logger);
100
102
  const l1 = {
101
103
  blockNumber: log.blockNumber,
102
104
  blockHash: log.blockHash,
@@ -177,7 +179,7 @@ export async function getL1BlockTime(publicClient, blockNumber) {
177
179
  * @param txHash - Hash of the tx that published it.
178
180
  * @param l2BlockNumber - L2 block number.
179
181
  * @returns L2 block from the calldata, deserialized
180
- */ async function getBlockFromRollupTx(publicClient, blobSinkClient, txHash, blobHashes, l2BlockNumber, rollupAddress, logger) {
182
+ */ async function getBlockFromRollupTx(publicClient, blobSinkClient, txHash, blobHashes, l2BlockNumber, rollupAddress, targetCommitteeSize, logger) {
181
183
  const { input: forwarderData, blockHash } = await publicClient.getTransaction({
182
184
  hash: txHash
183
185
  });
@@ -218,7 +220,7 @@ export async function getL1BlockTime(publicClient, blockNumber) {
218
220
  stateReference,
219
221
  header,
220
222
  body,
221
- attestations: attestations.map(CommitteeAttestation.fromViem)
223
+ attestations: CommitteeAttestation.fromPacked(attestations, targetCommitteeSize)
222
224
  };
223
225
  }
224
226
  /** Given an L1 to L2 message, retrieves its corresponding event from the Inbox within a specific block range. */ export async function retrieveL1ToL2Message(inbox, leaf, fromBlock, toBlock) {
@@ -2,7 +2,8 @@ import type { Fr } from '@aztec/foundation/fields';
2
2
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { type ContractInstanceUpdateWithAddress, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
5
- type ContractInstanceUpdateKey = [string, number] | [string, number, number];
5
+ import type { UInt64 } from '@aztec/stdlib/types';
6
+ type ContractInstanceUpdateKey = [string, string] | [string, string, number];
6
7
  /**
7
8
  * LMDB implementation of the ArchiverDataStore interface.
8
9
  */
@@ -12,11 +13,11 @@ export declare class ContractInstanceStore {
12
13
  constructor(db: AztecAsyncKVStore);
13
14
  addContractInstance(contractInstance: ContractInstanceWithAddress, blockNumber: number): Promise<void>;
14
15
  deleteContractInstance(contractInstance: ContractInstanceWithAddress): Promise<void>;
15
- getUpdateKey(contractAddress: AztecAddress, blockNumber: number, logIndex?: number): ContractInstanceUpdateKey;
16
- addContractInstanceUpdate(contractInstanceUpdate: ContractInstanceUpdateWithAddress, blockNumber: number, logIndex: number): Promise<void>;
17
- deleteContractInstanceUpdate(contractInstanceUpdate: ContractInstanceUpdateWithAddress, blockNumber: number, logIndex: number): Promise<void>;
18
- getCurrentContractInstanceClassId(address: AztecAddress, blockNumber: number, originalClassId: Fr): Promise<Fr>;
19
- getContractInstance(address: AztecAddress, blockNumber: number): Promise<ContractInstanceWithAddress | undefined>;
16
+ getUpdateKey(contractAddress: AztecAddress, timestamp: UInt64, logIndex?: number): ContractInstanceUpdateKey;
17
+ addContractInstanceUpdate(contractInstanceUpdate: ContractInstanceUpdateWithAddress, timestamp: UInt64, logIndex: number): Promise<void>;
18
+ deleteContractInstanceUpdate(contractInstanceUpdate: ContractInstanceUpdateWithAddress, timestamp: UInt64, logIndex: number): Promise<void>;
19
+ getCurrentContractInstanceClassId(address: AztecAddress, timestamp: UInt64, originalClassId: Fr): Promise<Fr>;
20
+ getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
20
21
  getContractInstanceDeploymentBlockNumber(address: AztecAddress): Promise<number | undefined>;
21
22
  }
22
23
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"contract_instance_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/contract_instance_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,iCAAiC,EACtC,KAAK,2BAA2B,EAGjC,MAAM,wBAAwB,CAAC;AAEhC,KAAK,yBAAyB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7E;;GAEG;AACH,qBAAa,qBAAqB;;IAKpB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,iBAAiB;IAMzC,mBAAmB,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtG,sBAAsB,CAAC,gBAAgB,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF,YAAY,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB;IAQ9G,yBAAyB,CACvB,sBAAsB,EAAE,iCAAiC,EACzD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAOhB,4BAA4B,CAC1B,sBAAsB,EAAE,iCAAiC,EACzD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAMV,iCAAiC,CACrC,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,EAAE,GAClB,OAAO,CAAC,EAAE,CAAC;IAsBR,mBAAmB,CACvB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAenD,wCAAwC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG7F"}
1
+ {"version":3,"file":"contract_instance_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/contract_instance_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,iCAAiC,EACtC,KAAK,2BAA2B,EAGjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,KAAK,yBAAyB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7E;;GAEG;AACH,qBAAa,qBAAqB;;IAKpB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,iBAAiB;IAMzC,mBAAmB,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtG,sBAAsB,CAAC,gBAAgB,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF,YAAY,CAAC,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB;IAQ5G,yBAAyB,CACvB,sBAAsB,EAAE,iCAAiC,EACzD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAOhB,4BAA4B,CAC1B,sBAAsB,EAAE,iCAAiC,EACzD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAIV,iCAAiC,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAsB7G,mBAAmB,CACvB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAenD,wCAAwC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG7F"}
@@ -24,32 +24,32 @@ import { SerializableContractInstance, SerializableContractInstanceUpdate } from
24
24
  await this.#contractInstanceDeployedAt.delete(contractInstance.address.toString());
25
25
  });
26
26
  }
27
- getUpdateKey(contractAddress, blockNumber, logIndex) {
27
+ getUpdateKey(contractAddress, timestamp, logIndex) {
28
28
  if (logIndex === undefined) {
29
29
  return [
30
30
  contractAddress.toString(),
31
- blockNumber
31
+ timestamp.toString()
32
32
  ];
33
33
  } else {
34
34
  return [
35
35
  contractAddress.toString(),
36
- blockNumber,
36
+ timestamp.toString(),
37
37
  logIndex
38
38
  ];
39
39
  }
40
40
  }
41
- addContractInstanceUpdate(contractInstanceUpdate, blockNumber, logIndex) {
42
- return this.#contractInstanceUpdates.set(this.getUpdateKey(contractInstanceUpdate.address, blockNumber, logIndex), new SerializableContractInstanceUpdate(contractInstanceUpdate).toBuffer());
41
+ addContractInstanceUpdate(contractInstanceUpdate, timestamp, logIndex) {
42
+ return this.#contractInstanceUpdates.set(this.getUpdateKey(contractInstanceUpdate.address, timestamp, logIndex), new SerializableContractInstanceUpdate(contractInstanceUpdate).toBuffer());
43
43
  }
44
- deleteContractInstanceUpdate(contractInstanceUpdate, blockNumber, logIndex) {
45
- return this.#contractInstanceUpdates.delete(this.getUpdateKey(contractInstanceUpdate.address, blockNumber, logIndex));
44
+ deleteContractInstanceUpdate(contractInstanceUpdate, timestamp, logIndex) {
45
+ return this.#contractInstanceUpdates.delete(this.getUpdateKey(contractInstanceUpdate.address, timestamp, logIndex));
46
46
  }
47
- async getCurrentContractInstanceClassId(address, blockNumber, originalClassId) {
48
- // We need to find the last update before the given block number
47
+ async getCurrentContractInstanceClassId(address, timestamp, originalClassId) {
48
+ // We need to find the last update before the given timestamp
49
49
  const queryResult = await this.#contractInstanceUpdates.valuesAsync({
50
50
  reverse: true,
51
- start: this.getUpdateKey(address, 0),
52
- end: this.getUpdateKey(address, blockNumber + 1),
51
+ start: this.getUpdateKey(address, 0n),
52
+ end: this.getUpdateKey(address, timestamp + 1n),
53
53
  limit: 1
54
54
  }).next();
55
55
  if (queryResult.done) {
@@ -57,18 +57,18 @@ import { SerializableContractInstance, SerializableContractInstanceUpdate } from
57
57
  }
58
58
  const serializedUpdate = queryResult.value;
59
59
  const update = SerializableContractInstanceUpdate.fromBuffer(serializedUpdate);
60
- if (blockNumber < update.blockOfChange) {
60
+ if (timestamp < update.timestampOfChange) {
61
61
  return update.prevContractClassId.isZero() ? originalClassId : update.prevContractClassId;
62
62
  }
63
63
  return update.newContractClassId;
64
64
  }
65
- async getContractInstance(address, blockNumber) {
65
+ async getContractInstance(address, timestamp) {
66
66
  const contractInstance = await this.#contractInstances.getAsync(address.toString());
67
67
  if (!contractInstance) {
68
68
  return undefined;
69
69
  }
70
70
  const instance = SerializableContractInstance.fromBuffer(contractInstance).withAddress(address);
71
- instance.currentContractClassId = await this.getCurrentContractInstanceClassId(address, blockNumber, instance.originalContractClassId);
71
+ instance.currentContractClassId = await this.getCurrentContractInstanceClassId(address, timestamp, instance.originalContractClassId);
72
72
  return instance;
73
73
  }
74
74
  getContractInstanceDeploymentBlockNumber(address) {
@@ -8,6 +8,7 @@ import type { ContractClassPublic, ContractDataSource, ContractInstanceUpdateWit
8
8
  import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
9
9
  import { type LogFilter, PrivateLog, type TxScopedL2Log } from '@aztec/stdlib/logs';
10
10
  import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
11
+ import type { UInt64 } from '@aztec/stdlib/types';
11
12
  import type { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
12
13
  import type { InboxMessage } from '../structs/inbox_message.js';
13
14
  import type { PublishedL2Block } from '../structs/published.js';
@@ -25,14 +26,14 @@ export declare class KVArchiverDataStore implements ArchiverDataStore, ContractD
25
26
  constructor(db: AztecAsyncKVStore, logsMaxPageSize?: number);
26
27
  transactionAsync<T>(callback: () => Promise<T>): Promise<T>;
27
28
  getBlockNumber(): Promise<number>;
28
- getContract(address: AztecAddress, blockNumber?: number): Promise<ContractInstanceWithAddress | undefined>;
29
+ getContract(address: AztecAddress, maybeTimestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
29
30
  backupTo(path: string, compress?: boolean): Promise<string>;
30
31
  close(): Promise<void>;
31
32
  getDebugFunctionName(_address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
32
33
  registerContractFunctionSignatures(signatures: string[]): Promise<void>;
33
34
  getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
34
35
  getContractClassIds(): Promise<Fr[]>;
35
- getContractInstance(address: AztecAddress, blockNumber: number): Promise<ContractInstanceWithAddress | undefined>;
36
+ getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
36
37
  getContractInstanceDeploymentBlockNumber(address: AztecAddress): Promise<number | undefined>;
37
38
  addContractClasses(data: ContractClassPublic[], bytecodeCommitments: Fr[], blockNumber: number): Promise<boolean>;
38
39
  deleteContractClasses(data: ContractClassPublic[], blockNumber: number): Promise<boolean>;
@@ -40,8 +41,8 @@ export declare class KVArchiverDataStore implements ArchiverDataStore, ContractD
40
41
  addFunctions(contractClassId: Fr, privateFunctions: ExecutablePrivateFunctionWithMembershipProof[], utilityFunctions: UtilityFunctionWithMembershipProof[]): Promise<boolean>;
41
42
  addContractInstances(data: ContractInstanceWithAddress[], blockNumber: number): Promise<boolean>;
42
43
  deleteContractInstances(data: ContractInstanceWithAddress[], _blockNumber: number): Promise<boolean>;
43
- addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], blockNumber: number): Promise<boolean>;
44
- deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], blockNumber: number): Promise<boolean>;
44
+ addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
45
+ deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
45
46
  /**
46
47
  * Append new blocks to the store's list.
47
48
  * @param blocks - The L2 blocks to be added to the store and the last processed L1 block.
@@ -1 +1 @@
1
- {"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"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"}
@@ -38,8 +38,10 @@ export const MAX_FUNCTION_NAME_LEN = 256;
38
38
  getBlockNumber() {
39
39
  return this.getSynchedL2BlockNumber();
40
40
  }
41
- async getContract(address, blockNumber) {
42
- return this.getContractInstance(address, blockNumber ?? await this.getBlockNumber());
41
+ async getContract(address, maybeTimestamp) {
42
+ const [header] = await this.getBlockHeaders(await this.getBlockNumber(), 1);
43
+ const timestamp = maybeTimestamp ?? header.globalVariables.timestamp;
44
+ return this.getContractInstance(address, timestamp);
43
45
  }
44
46
  async backupTo(path, compress = true) {
45
47
  await this.db.backupTo(path, compress);
@@ -70,8 +72,8 @@ export const MAX_FUNCTION_NAME_LEN = 256;
70
72
  getContractClassIds() {
71
73
  return this.#contractClassStore.getContractClassIds();
72
74
  }
73
- getContractInstance(address, blockNumber) {
74
- return this.#contractInstanceStore.getContractInstance(address, blockNumber);
75
+ getContractInstance(address, timestamp) {
76
+ return this.#contractInstanceStore.getContractInstance(address, timestamp);
75
77
  }
76
78
  getContractInstanceDeploymentBlockNumber(address) {
77
79
  return this.#contractInstanceStore.getContractInstanceDeploymentBlockNumber(address);
@@ -94,11 +96,11 @@ export const MAX_FUNCTION_NAME_LEN = 256;
94
96
  async deleteContractInstances(data, _blockNumber) {
95
97
  return (await Promise.all(data.map((c)=>this.#contractInstanceStore.deleteContractInstance(c)))).every(Boolean);
96
98
  }
97
- async addContractInstanceUpdates(data, blockNumber) {
98
- return (await Promise.all(data.map((update, logIndex)=>this.#contractInstanceStore.addContractInstanceUpdate(update, blockNumber, logIndex)))).every(Boolean);
99
+ async addContractInstanceUpdates(data, timestamp) {
100
+ return (await Promise.all(data.map((update, logIndex)=>this.#contractInstanceStore.addContractInstanceUpdate(update, timestamp, logIndex)))).every(Boolean);
99
101
  }
100
- async deleteContractInstanceUpdates(data, blockNumber) {
101
- return (await Promise.all(data.map((update, logIndex)=>this.#contractInstanceStore.deleteContractInstanceUpdate(update, blockNumber, logIndex)))).every(Boolean);
102
+ async deleteContractInstanceUpdates(data, timestamp) {
103
+ return (await Promise.all(data.map((update, logIndex)=>this.#contractInstanceStore.deleteContractInstanceUpdate(update, timestamp, logIndex)))).every(Boolean);
102
104
  }
103
105
  /**
104
106
  * Append new blocks to the store's list.
@@ -6,6 +6,7 @@ import { L2Block, L2BlockHash, type L2BlockSource, type L2Tips } from '@aztec/st
6
6
  import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
7
7
  import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
8
8
  import { type BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
9
+ import type { UInt64 } from '@aztec/stdlib/types';
9
10
  /**
10
11
  * A mocked implementation of L2BlockSource to be used in tests.
11
12
  */
@@ -95,7 +96,7 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
95
96
  stop(): Promise<void>;
96
97
  getContractClass(_id: Fr): Promise<ContractClassPublic | undefined>;
97
98
  getBytecodeCommitment(_id: Fr): Promise<Fr | undefined>;
98
- getContract(_address: AztecAddress, _blockNumber?: number): Promise<ContractInstanceWithAddress | undefined>;
99
+ getContract(_address: AztecAddress, _timestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
99
100
  getContractClassIds(): Promise<Fr[]>;
100
101
  getDebugFunctionName(_address: AztecAddress, _selector: FunctionSelector): Promise<string | undefined>;
101
102
  registerContractFunctionSignatures(_signatures: string[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"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"}
@@ -195,7 +195,7 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
195
195
  getBytecodeCommitment(_id) {
196
196
  return Promise.resolve(undefined);
197
197
  }
198
- getContract(_address, _blockNumber) {
198
+ getContract(_address, _timestamp) {
199
199
  return Promise.resolve(undefined);
200
200
  }
201
201
  getContractClassIds() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -66,17 +66,17 @@
66
66
  ]
67
67
  },
68
68
  "dependencies": {
69
- "@aztec/blob-lib": "1.0.0",
70
- "@aztec/blob-sink": "1.0.0",
71
- "@aztec/constants": "1.0.0",
72
- "@aztec/ethereum": "1.0.0",
73
- "@aztec/foundation": "1.0.0",
74
- "@aztec/kv-store": "1.0.0",
75
- "@aztec/l1-artifacts": "1.0.0",
76
- "@aztec/noir-protocol-circuits-types": "1.0.0",
77
- "@aztec/protocol-contracts": "1.0.0",
78
- "@aztec/stdlib": "1.0.0",
79
- "@aztec/telemetry-client": "1.0.0",
69
+ "@aztec/blob-lib": "1.1.0",
70
+ "@aztec/blob-sink": "1.1.0",
71
+ "@aztec/constants": "1.1.0",
72
+ "@aztec/ethereum": "1.1.0",
73
+ "@aztec/foundation": "1.1.0",
74
+ "@aztec/kv-store": "1.1.0",
75
+ "@aztec/l1-artifacts": "1.1.0",
76
+ "@aztec/noir-protocol-circuits-types": "1.1.0",
77
+ "@aztec/protocol-contracts": "1.1.0",
78
+ "@aztec/stdlib": "1.1.0",
79
+ "@aztec/telemetry-client": "1.1.0",
80
80
  "lodash.groupby": "^4.6.0",
81
81
  "lodash.omit": "^4.5.0",
82
82
  "tsc-watch": "^6.0.0",
@@ -60,6 +60,7 @@ import type { L2LogsSource } from '@aztec/stdlib/interfaces/server';
60
60
  import { ContractClassLog, type LogFilter, type PrivateLog, type PublicLog, TxScopedL2Log } from '@aztec/stdlib/logs';
61
61
  import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
62
62
  import { type BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
63
+ import type { UInt64 } from '@aztec/stdlib/types';
63
64
  import { Attributes, type TelemetryClient, type Traceable, type Tracer, trackSpan } from '@aztec/telemetry-client';
64
65
 
65
66
  import { EventEmitter } from 'events';
@@ -1115,9 +1116,18 @@ export class Archiver extends (EventEmitter as new () => ArchiverEmitter) implem
1115
1116
 
1116
1117
  public async getContract(
1117
1118
  address: AztecAddress,
1118
- blockNumber?: number,
1119
+ maybeTimestamp?: UInt64,
1119
1120
  ): Promise<ContractInstanceWithAddress | undefined> {
1120
- return this.store.getContractInstance(address, blockNumber ?? (await this.getBlockNumber()));
1121
+ let timestamp;
1122
+ if (maybeTimestamp === undefined) {
1123
+ const latestBlockHeader = await this.getBlockHeader('latest');
1124
+ // If we get undefined block header, it means that the archiver has not yet synced any block so we default to 0.
1125
+ timestamp = latestBlockHeader ? latestBlockHeader.globalVariables.timestamp : 0n;
1126
+ } else {
1127
+ timestamp = maybeTimestamp;
1128
+ }
1129
+
1130
+ return this.store.getContractInstance(address, timestamp);
1121
1131
  }
1122
1132
 
1123
1133
  /**
@@ -1321,8 +1331,10 @@ export class ArchiverStoreHelper
1321
1331
  /**
1322
1332
  * Extracts and stores contract instances out of ContractInstanceDeployed events emitted by the canonical deployer contract.
1323
1333
  * @param allLogs - All logs emitted in a bunch of blocks.
1334
+ * @param timestamp - Timestamp at which the updates were scheduled.
1335
+ * @param operation - The operation to perform on the contract instance updates (Store or Delete).
1324
1336
  */
1325
- async #updateUpdatedContractInstances(allLogs: PublicLog[], blockNum: number, operation: Operation) {
1337
+ async #updateUpdatedContractInstances(allLogs: PublicLog[], timestamp: UInt64, operation: Operation) {
1326
1338
  const contractUpdates = allLogs
1327
1339
  .filter(log => ContractInstanceUpdatedEvent.isContractInstanceUpdatedEvent(log))
1328
1340
  .map(log => ContractInstanceUpdatedEvent.fromLog(log))
@@ -1333,9 +1345,9 @@ export class ArchiverStoreHelper
1333
1345
  this.#log.verbose(`${Operation[operation]} contract instance update at ${c.address.toString()}`),
1334
1346
  );
1335
1347
  if (operation == Operation.Store) {
1336
- return await this.store.addContractInstanceUpdates(contractUpdates, blockNum);
1348
+ return await this.store.addContractInstanceUpdates(contractUpdates, timestamp);
1337
1349
  } else if (operation == Operation.Delete) {
1338
- return await this.store.deleteContractInstanceUpdates(contractUpdates, blockNum);
1350
+ return await this.store.deleteContractInstanceUpdates(contractUpdates, timestamp);
1339
1351
  }
1340
1352
  }
1341
1353
  return true;
@@ -1423,7 +1435,11 @@ export class ArchiverStoreHelper
1423
1435
  await Promise.all([
1424
1436
  this.#updateRegisteredContractClasses(contractClassLogs, block.block.number, Operation.Store),
1425
1437
  this.#updateDeployedContractInstances(privateLogs, block.block.number, Operation.Store),
1426
- this.#updateUpdatedContractInstances(publicLogs, block.block.number, Operation.Store),
1438
+ this.#updateUpdatedContractInstances(
1439
+ publicLogs,
1440
+ block.block.header.globalVariables.timestamp,
1441
+ Operation.Store,
1442
+ ),
1427
1443
  this.#storeBroadcastedIndividualFunctions(contractClassLogs, block.block.number),
1428
1444
  ])
1429
1445
  ).every(Boolean);
@@ -1458,7 +1474,11 @@ export class ArchiverStoreHelper
1458
1474
  await Promise.all([
1459
1475
  this.#updateRegisteredContractClasses(contractClassLogs, block.block.number, Operation.Delete),
1460
1476
  this.#updateDeployedContractInstances(privateLogs, block.block.number, Operation.Delete),
1461
- this.#updateUpdatedContractInstances(publicLogs, block.block.number, Operation.Delete),
1477
+ this.#updateUpdatedContractInstances(
1478
+ publicLogs,
1479
+ block.block.header.globalVariables.timestamp,
1480
+ Operation.Delete,
1481
+ ),
1462
1482
  ])
1463
1483
  ).every(Boolean);
1464
1484
  }),
@@ -1530,8 +1550,8 @@ export class ArchiverStoreHelper
1530
1550
  getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined> {
1531
1551
  return this.store.getBytecodeCommitment(contractClassId);
1532
1552
  }
1533
- getContractInstance(address: AztecAddress, blockNumber: number): Promise<ContractInstanceWithAddress | undefined> {
1534
- return this.store.getContractInstance(address, blockNumber);
1553
+ getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined> {
1554
+ return this.store.getContractInstance(address, timestamp);
1535
1555
  }
1536
1556
  getContractClassIds(): Promise<Fr[]> {
1537
1557
  return this.store.getContractClassIds();
@@ -14,6 +14,7 @@ import type {
14
14
  import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
15
15
  import type { LogFilter, PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
16
16
  import { BlockHeader, type IndexedTxEffect, type TxHash, type TxReceipt } from '@aztec/stdlib/tx';
17
+ import type { UInt64 } from '@aztec/stdlib/types';
17
18
 
18
19
  import type { InboxMessage } from './structs/inbox_message.js';
19
20
  import type { PublishedL2Block } from './structs/published.js';
@@ -220,11 +221,11 @@ export interface ArchiverDataStore {
220
221
  /**
221
222
  * Add new contract instance updates
222
223
  * @param data - List of contract updates to be added.
223
- * @param blockNumber - Number of the L2 block the updates were scheduled in.
224
+ * @param timestamp - Timestamp at which the updates were scheduled.
224
225
  * @returns True if the operation is successful.
225
226
  */
226
- addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], blockNumber: number): Promise<boolean>;
227
- deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], blockNumber: number): Promise<boolean>;
227
+ addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
228
+ deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
228
229
  /**
229
230
  * Adds private functions to a contract class.
230
231
  */
@@ -235,11 +236,12 @@ export interface ArchiverDataStore {
235
236
  ): Promise<boolean>;
236
237
 
237
238
  /**
238
- * Returns a contract instance given its address and the given block number, or undefined if not exists.
239
+ * Returns a contract instance given its address and the given timestamp, or undefined if not exists.
239
240
  * @param address - Address of the contract.
240
- * @param blockNumber - Block number to get the contract instance at. Contract updates might change the instance at a given block.
241
+ * @param timestamp - Timestamp to get the contract instance at. Contract updates might change the instance.
242
+ * @returns The contract instance or undefined if not found.
241
243
  */
242
- getContractInstance(address: AztecAddress, blockNumber: number): Promise<ContractInstanceWithAddress | undefined>;
244
+ getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
243
245
 
244
246
  /** Returns the list of all class ids known by the archiver. */
245
247
  getContractClassIds(): Promise<Fr[]>;
@@ -518,6 +518,7 @@ export function describeArchiverDataStore(
518
518
  describe('contractInstances', () => {
519
519
  let contractInstance: ContractInstanceWithAddress;
520
520
  const blockNum = 10;
521
+ const timestamp = 3600n;
521
522
 
522
523
  beforeEach(async () => {
523
524
  const classId = Fr.random();
@@ -530,18 +531,18 @@ export function describeArchiverDataStore(
530
531
  });
531
532
 
532
533
  it('returns previously stored contract instances', async () => {
533
- await expect(store.getContractInstance(contractInstance.address, blockNum)).resolves.toMatchObject(
534
+ await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toMatchObject(
534
535
  contractInstance,
535
536
  );
536
537
  });
537
538
 
538
539
  it('returns undefined if contract instance is not found', async () => {
539
- await expect(store.getContractInstance(await AztecAddress.random(), blockNum)).resolves.toBeUndefined();
540
+ await expect(store.getContractInstance(await AztecAddress.random(), timestamp)).resolves.toBeUndefined();
540
541
  });
541
542
 
542
543
  it('returns undefined if previously stored contract instances was deleted', async () => {
543
544
  await store.deleteContractInstances([contractInstance], blockNum);
544
- await expect(store.getContractInstance(contractInstance.address, blockNum)).resolves.toBeUndefined();
545
+ await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toBeUndefined();
545
546
  });
546
547
  });
547
548
 
@@ -549,7 +550,7 @@ export function describeArchiverDataStore(
549
550
  let contractInstance: ContractInstanceWithAddress;
550
551
  let classId: Fr;
551
552
  let nextClassId: Fr;
552
- const blockOfChange = 10;
553
+ const timestampOfChange = 3600n;
553
554
 
554
555
  beforeEach(async () => {
555
556
  classId = Fr.random();
@@ -565,28 +566,28 @@ export function describeArchiverDataStore(
565
566
  {
566
567
  prevContractClassId: classId,
567
568
  newContractClassId: nextClassId,
568
- blockOfChange,
569
+ timestampOfChange,
569
570
  address: contractInstance.address,
570
571
  },
571
572
  ],
572
- blockOfChange - 1,
573
+ timestampOfChange - 1n,
573
574
  );
574
575
  });
575
576
 
576
577
  it('gets the correct current class id for a contract not updated yet', async () => {
577
- const fetchedInstance = await store.getContractInstance(contractInstance.address, blockOfChange - 1);
578
+ const fetchedInstance = await store.getContractInstance(contractInstance.address, timestampOfChange - 1n);
578
579
  expect(fetchedInstance?.originalContractClassId).toEqual(classId);
579
580
  expect(fetchedInstance?.currentContractClassId).toEqual(classId);
580
581
  });
581
582
 
582
583
  it('gets the correct current class id for a contract that has just been updated', async () => {
583
- const fetchedInstance = await store.getContractInstance(contractInstance.address, blockOfChange);
584
+ const fetchedInstance = await store.getContractInstance(contractInstance.address, timestampOfChange);
584
585
  expect(fetchedInstance?.originalContractClassId).toEqual(classId);
585
586
  expect(fetchedInstance?.currentContractClassId).toEqual(nextClassId);
586
587
  });
587
588
 
588
589
  it('gets the correct current class id for a contract that was updated in the past', async () => {
589
- const fetchedInstance = await store.getContractInstance(contractInstance.address, blockOfChange + 1);
590
+ const fetchedInstance = await store.getContractInstance(contractInstance.address, timestampOfChange + 1n);
590
591
  expect(fetchedInstance?.originalContractClassId).toEqual(classId);
591
592
  expect(fetchedInstance?.currentContractClassId).toEqual(nextClassId);
592
593
  });
@@ -603,7 +604,7 @@ export function describeArchiverDataStore(
603
604
  };
604
605
  await store.addContractInstances([otherContractInstance], 1);
605
606
 
606
- const fetchedInstance = await store.getContractInstance(otherContractInstance.address, blockOfChange + 1);
607
+ const fetchedInstance = await store.getContractInstance(otherContractInstance.address, timestampOfChange + 1n);
607
608
  expect(fetchedInstance?.originalContractClassId).toEqual(otherClassId);
608
609
  expect(fetchedInstance?.currentContractClassId).toEqual(otherClassId);
609
610
  });
@@ -625,14 +626,14 @@ export function describeArchiverDataStore(
625
626
  {
626
627
  prevContractClassId: otherClassId,
627
628
  newContractClassId: otherNextClassId,
628
- blockOfChange,
629
+ timestampOfChange,
629
630
  address: otherContractInstance.address,
630
631
  },
631
632
  ],
632
- blockOfChange - 1,
633
+ timestampOfChange - 1n,
633
634
  );
634
635
 
635
- const fetchedInstance = await store.getContractInstance(contractInstance.address, blockOfChange + 1);
636
+ const fetchedInstance = await store.getContractInstance(contractInstance.address, timestampOfChange + 1n);
636
637
  expect(fetchedInstance?.originalContractClassId).toEqual(classId);
637
638
  expect(fetchedInstance?.currentContractClassId).toEqual(nextClassId);
638
639
  });
@@ -3,7 +3,7 @@ import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
3
3
  import type {
4
4
  EpochProofPublicInputArgs,
5
5
  ViemClient,
6
- ViemCommitteeAttestation,
6
+ ViemCommitteeAttestations,
7
7
  ViemHeader,
8
8
  ViemPublicClient,
9
9
  ViemStateReference,
@@ -112,7 +112,7 @@ export async function retrieveBlocksFromRollup(
112
112
  ): Promise<RetrievedL2Block[]> {
113
113
  const retrievedBlocks: RetrievedL2Block[] = [];
114
114
 
115
- let rollupConstants: { chainId: Fr; version: Fr } | undefined;
115
+ let rollupConstants: { chainId: Fr; version: Fr; targetCommitteeSize: number } | undefined;
116
116
 
117
117
  do {
118
118
  if (searchStartBlock > searchEndBlock) {
@@ -138,8 +138,16 @@ export async function retrieveBlocksFromRollup(
138
138
  );
139
139
 
140
140
  if (rollupConstants === undefined) {
141
- const [chainId, version] = await Promise.all([publicClient.getChainId(), rollup.read.getVersion()]);
142
- rollupConstants = { chainId: new Fr(chainId), version: new Fr(version) };
141
+ const [chainId, version, targetCommitteeSize] = await Promise.all([
142
+ publicClient.getChainId(),
143
+ rollup.read.getVersion(),
144
+ rollup.read.getTargetCommitteeSize(),
145
+ ]);
146
+ rollupConstants = {
147
+ chainId: new Fr(chainId),
148
+ version: new Fr(version),
149
+ targetCommitteeSize: Number(targetCommitteeSize),
150
+ };
143
151
  }
144
152
 
145
153
  const newBlocks = await processL2BlockProposedLogs(
@@ -170,7 +178,7 @@ async function processL2BlockProposedLogs(
170
178
  publicClient: ViemPublicClient,
171
179
  blobSinkClient: BlobSinkClientInterface,
172
180
  logs: GetContractEventsReturnType<typeof RollupAbi, 'L2BlockProposed'>,
173
- { chainId, version }: { chainId: Fr; version: Fr },
181
+ { chainId, version, targetCommitteeSize }: { chainId: Fr; version: Fr; targetCommitteeSize: number },
174
182
  logger: Logger,
175
183
  ): Promise<RetrievedL2Block[]> {
176
184
  const retrievedBlocks: RetrievedL2Block[] = [];
@@ -189,6 +197,7 @@ async function processL2BlockProposedLogs(
189
197
  blobHashes,
190
198
  l2BlockNumber,
191
199
  rollup.address,
200
+ targetCommitteeSize,
192
201
  logger,
193
202
  );
194
203
 
@@ -287,6 +296,7 @@ async function getBlockFromRollupTx(
287
296
  blobHashes: Buffer[], // TODO(md): buffer32?
288
297
  l2BlockNumber: number,
289
298
  rollupAddress: Hex,
299
+ targetCommitteeSize: number,
290
300
  logger: Logger,
291
301
  ): Promise<Omit<RetrievedL2Block, 'l1' | 'chainId' | 'version'>> {
292
302
  const { input: forwarderData, blockHash } = await publicClient.getTransaction({ hash: txHash });
@@ -311,7 +321,7 @@ async function getBlockFromRollupTx(
311
321
  header: ViemHeader;
312
322
  txHashes: readonly Hex[];
313
323
  },
314
- ViemCommitteeAttestation[],
324
+ ViemCommitteeAttestations,
315
325
  Hex,
316
326
  ];
317
327
 
@@ -348,7 +358,7 @@ async function getBlockFromRollupTx(
348
358
  stateReference,
349
359
  header,
350
360
  body,
351
- attestations: attestations.map(CommitteeAttestation.fromViem),
361
+ attestations: CommitteeAttestation.fromPacked(attestations, targetCommitteeSize),
352
362
  };
353
363
  }
354
364
 
@@ -7,8 +7,9 @@ import {
7
7
  SerializableContractInstance,
8
8
  SerializableContractInstanceUpdate,
9
9
  } from '@aztec/stdlib/contract';
10
+ import type { UInt64 } from '@aztec/stdlib/types';
10
11
 
11
- type ContractInstanceUpdateKey = [string, number] | [string, number, number];
12
+ type ContractInstanceUpdateKey = [string, string] | [string, string, number];
12
13
 
13
14
  /**
14
15
  * LMDB implementation of the ArchiverDataStore interface.
@@ -41,46 +42,40 @@ export class ContractInstanceStore {
41
42
  });
42
43
  }
43
44
 
44
- getUpdateKey(contractAddress: AztecAddress, blockNumber: number, logIndex?: number): ContractInstanceUpdateKey {
45
+ getUpdateKey(contractAddress: AztecAddress, timestamp: UInt64, logIndex?: number): ContractInstanceUpdateKey {
45
46
  if (logIndex === undefined) {
46
- return [contractAddress.toString(), blockNumber];
47
+ return [contractAddress.toString(), timestamp.toString()];
47
48
  } else {
48
- return [contractAddress.toString(), blockNumber, logIndex];
49
+ return [contractAddress.toString(), timestamp.toString(), logIndex];
49
50
  }
50
51
  }
51
52
 
52
53
  addContractInstanceUpdate(
53
54
  contractInstanceUpdate: ContractInstanceUpdateWithAddress,
54
- blockNumber: number,
55
+ timestamp: UInt64,
55
56
  logIndex: number,
56
57
  ): Promise<void> {
57
58
  return this.#contractInstanceUpdates.set(
58
- this.getUpdateKey(contractInstanceUpdate.address, blockNumber, logIndex),
59
+ this.getUpdateKey(contractInstanceUpdate.address, timestamp, logIndex),
59
60
  new SerializableContractInstanceUpdate(contractInstanceUpdate).toBuffer(),
60
61
  );
61
62
  }
62
63
 
63
64
  deleteContractInstanceUpdate(
64
65
  contractInstanceUpdate: ContractInstanceUpdateWithAddress,
65
- blockNumber: number,
66
+ timestamp: UInt64,
66
67
  logIndex: number,
67
68
  ): Promise<void> {
68
- return this.#contractInstanceUpdates.delete(
69
- this.getUpdateKey(contractInstanceUpdate.address, blockNumber, logIndex),
70
- );
69
+ return this.#contractInstanceUpdates.delete(this.getUpdateKey(contractInstanceUpdate.address, timestamp, logIndex));
71
70
  }
72
71
 
73
- async getCurrentContractInstanceClassId(
74
- address: AztecAddress,
75
- blockNumber: number,
76
- originalClassId: Fr,
77
- ): Promise<Fr> {
78
- // We need to find the last update before the given block number
72
+ async getCurrentContractInstanceClassId(address: AztecAddress, timestamp: UInt64, originalClassId: Fr): Promise<Fr> {
73
+ // We need to find the last update before the given timestamp
79
74
  const queryResult = await this.#contractInstanceUpdates
80
75
  .valuesAsync({
81
76
  reverse: true,
82
- start: this.getUpdateKey(address, 0), // Make sure we only look at updates for this contract
83
- end: this.getUpdateKey(address, blockNumber + 1), // No update can match this key since it doesn't have a log index. We want the highest key <= blockNumber
77
+ start: this.getUpdateKey(address, 0n), // Make sure we only look at updates for this contract
78
+ end: this.getUpdateKey(address, timestamp + 1n), // No update can match this key since it doesn't have a log index. We want the highest key <= timestamp
84
79
  limit: 1,
85
80
  })
86
81
  .next();
@@ -90,7 +85,7 @@ export class ContractInstanceStore {
90
85
 
91
86
  const serializedUpdate = queryResult.value;
92
87
  const update = SerializableContractInstanceUpdate.fromBuffer(serializedUpdate);
93
- if (blockNumber < update.blockOfChange) {
88
+ if (timestamp < update.timestampOfChange) {
94
89
  return update.prevContractClassId.isZero() ? originalClassId : update.prevContractClassId;
95
90
  }
96
91
  return update.newContractClassId;
@@ -98,7 +93,7 @@ export class ContractInstanceStore {
98
93
 
99
94
  async getContractInstance(
100
95
  address: AztecAddress,
101
- blockNumber: number,
96
+ timestamp: UInt64,
102
97
  ): Promise<ContractInstanceWithAddress | undefined> {
103
98
  const contractInstance = await this.#contractInstances.getAsync(address.toString());
104
99
  if (!contractInstance) {
@@ -108,7 +103,7 @@ export class ContractInstanceStore {
108
103
  const instance = SerializableContractInstance.fromBuffer(contractInstance).withAddress(address);
109
104
  instance.currentContractClassId = await this.getCurrentContractInstanceClassId(
110
105
  address,
111
- blockNumber,
106
+ timestamp,
112
107
  instance.originalContractClassId,
113
108
  );
114
109
  return instance;
@@ -17,6 +17,7 @@ import type {
17
17
  import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
18
18
  import { type LogFilter, PrivateLog, type TxScopedL2Log } from '@aztec/stdlib/logs';
19
19
  import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
20
+ import type { UInt64 } from '@aztec/stdlib/types';
20
21
 
21
22
  import { join } from 'path';
22
23
 
@@ -70,9 +71,11 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
70
71
 
71
72
  public async getContract(
72
73
  address: AztecAddress,
73
- blockNumber?: number,
74
+ maybeTimestamp?: UInt64,
74
75
  ): Promise<ContractInstanceWithAddress | undefined> {
75
- return this.getContractInstance(address, blockNumber ?? (await this.getBlockNumber()));
76
+ const [header] = await this.getBlockHeaders(await this.getBlockNumber(), 1);
77
+ const timestamp = maybeTimestamp ?? header!.globalVariables.timestamp;
78
+ return this.getContractInstance(address, timestamp);
76
79
  }
77
80
 
78
81
  public async backupTo(path: string, compress = true): Promise<string> {
@@ -110,8 +113,8 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
110
113
  return this.#contractClassStore.getContractClassIds();
111
114
  }
112
115
 
113
- getContractInstance(address: AztecAddress, blockNumber: number): Promise<ContractInstanceWithAddress | undefined> {
114
- return this.#contractInstanceStore.getContractInstance(address, blockNumber);
116
+ getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined> {
117
+ return this.#contractInstanceStore.getContractInstance(address, timestamp);
115
118
  }
116
119
 
117
120
  getContractInstanceDeploymentBlockNumber(address: AztecAddress): Promise<number | undefined> {
@@ -158,23 +161,20 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
158
161
  return (await Promise.all(data.map(c => this.#contractInstanceStore.deleteContractInstance(c)))).every(Boolean);
159
162
  }
160
163
 
161
- async addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], blockNumber: number): Promise<boolean> {
164
+ async addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean> {
162
165
  return (
163
166
  await Promise.all(
164
167
  data.map((update, logIndex) =>
165
- this.#contractInstanceStore.addContractInstanceUpdate(update, blockNumber, logIndex),
168
+ this.#contractInstanceStore.addContractInstanceUpdate(update, timestamp, logIndex),
166
169
  ),
167
170
  )
168
171
  ).every(Boolean);
169
172
  }
170
- async deleteContractInstanceUpdates(
171
- data: ContractInstanceUpdateWithAddress[],
172
- blockNumber: number,
173
- ): Promise<boolean> {
173
+ async deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean> {
174
174
  return (
175
175
  await Promise.all(
176
176
  data.map((update, logIndex) =>
177
- this.#contractInstanceStore.deleteContractInstanceUpdate(update, blockNumber, logIndex),
177
+ this.#contractInstanceStore.deleteContractInstanceUpdate(update, timestamp, logIndex),
178
178
  ),
179
179
  )
180
180
  ).every(Boolean);
@@ -9,6 +9,7 @@ import { L2Block, L2BlockHash, type L2BlockSource, type L2Tips } from '@aztec/st
9
9
  import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
10
10
  import { type L1RollupConstants, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
11
11
  import { type BlockHeader, TxHash, TxReceipt, TxStatus } from '@aztec/stdlib/tx';
12
+ import type { UInt64 } from '@aztec/stdlib/types';
12
13
 
13
14
  /**
14
15
  * A mocked implementation of L2BlockSource to be used in tests.
@@ -251,7 +252,7 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
251
252
  return Promise.resolve(undefined);
252
253
  }
253
254
 
254
- getContract(_address: AztecAddress, _blockNumber?: number): Promise<ContractInstanceWithAddress | undefined> {
255
+ getContract(_address: AztecAddress, _timestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined> {
255
256
  return Promise.resolve(undefined);
256
257
  }
257
258