@aztec/archiver 0.26.5 → 0.27.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.
- package/README.md +2 -3
- package/dest/archiver/archiver.d.ts +12 -16
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +38 -36
- package/dest/archiver/archiver_store.d.ts +18 -21
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +46 -90
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +2 -5
- package/dest/archiver/data_retrieval.d.ts +10 -12
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +23 -22
- package/dest/archiver/eth_log_handlers.d.ts +17 -20
- package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
- package/dest/archiver/eth_log_handlers.js +35 -52
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +1 -9
- package/dest/archiver/kv_archiver_store/contract_store.d.ts +1 -21
- package/dest/archiver/kv_archiver_store/contract_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_store.js +1 -36
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +14 -21
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +25 -28
- package/dest/archiver/kv_archiver_store/message_store.d.ts +11 -1
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +57 -5
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +18 -1
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +1 -1
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +48 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +18 -21
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +32 -45
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +15 -3
- package/package.json +9 -9
- package/src/archiver/archiver.ts +46 -46
- package/src/archiver/archiver_store.ts +21 -24
- package/src/archiver/archiver_store_test_suite.ts +54 -115
- package/src/archiver/config.ts +0 -4
- package/src/archiver/data_retrieval.ts +30 -35
- package/src/archiver/eth_log_handlers.ts +42 -74
- package/src/archiver/kv_archiver_store/block_store.ts +0 -10
- package/src/archiver/kv_archiver_store/contract_store.ts +1 -44
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +26 -31
- package/src/archiver/kv_archiver_store/message_store.ts +60 -3
- package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +48 -1
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +36 -48
- package/src/index.ts +15 -2
package/README.md
CHANGED
|
@@ -4,8 +4,7 @@ Archiver is a service which is used to fetch data on-chain data and present them
|
|
|
4
4
|
The on-chain data specifically are the following events:
|
|
5
5
|
|
|
6
6
|
1. `L2BlockProcessed` event emitted on Rollup contract,
|
|
7
|
-
2. `
|
|
8
|
-
3. `MessageAdded` event emitted on Inbox contract,
|
|
7
|
+
2. `MessageAdded` event emitted on Inbox contract,
|
|
9
8
|
|
|
10
9
|
The interfaces defining how the data can be consumed from the archiver are `L2BlockSource`, `L2LogsSource` and `ContractDataSource`.
|
|
11
10
|
|
|
@@ -14,4 +13,4 @@ The interfaces defining how the data can be consumed from the archiver are `L2Bl
|
|
|
14
13
|
To install dependencies and build the package run `yarn install` followed by `yarn build`.
|
|
15
14
|
To run test execute `yarn test`.
|
|
16
15
|
|
|
17
|
-
To start the service export `ETHEREUM_HOST` (defaults to `http://127.0.0.1:8545/`), `ARCHIVER_POLLING_INTERVAL` (defaults to `1000 ms`), `ROLLUP_CONTRACT_ADDRESS`, `INBOX_CONTRACT_ADDRESS
|
|
16
|
+
To start the service export `ETHEREUM_HOST` (defaults to `http://127.0.0.1:8545/`), `ARCHIVER_POLLING_INTERVAL` (defaults to `1000 ms`), `ROLLUP_CONTRACT_ADDRESS`, `INBOX_CONTRACT_ADDRESS` environmental variables and start the service with `yarn start`.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
1
2
|
import { ContractData, ContractDataSource, EncodedContractFunction, ExtendedContractData, GetUnencryptedLogsResponse, L1ToL2Message, L1ToL2MessageSource, L2Block, L2BlockL2Logs, L2BlockSource, L2LogsSource, LogFilter, LogType, TxEffect, TxHash, TxReceipt } from '@aztec/circuit-types';
|
|
2
3
|
import { FunctionSelector } from '@aztec/circuits.js';
|
|
3
4
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
@@ -22,8 +23,8 @@ export declare class Archiver implements ArchiveSource {
|
|
|
22
23
|
private readonly rollupAddress;
|
|
23
24
|
private readonly availabilityOracleAddress;
|
|
24
25
|
private readonly inboxAddress;
|
|
26
|
+
private readonly newInboxAddress;
|
|
25
27
|
private readonly registryAddress;
|
|
26
|
-
private readonly contractDeploymentEmitterAddress;
|
|
27
28
|
private readonly store;
|
|
28
29
|
private readonly pollingIntervalMs;
|
|
29
30
|
private readonly log;
|
|
@@ -40,13 +41,13 @@ export declare class Archiver implements ArchiveSource {
|
|
|
40
41
|
* @param publicClient - A client for interacting with the Ethereum node.
|
|
41
42
|
* @param rollupAddress - Ethereum address of the rollup contract.
|
|
42
43
|
* @param inboxAddress - Ethereum address of the inbox contract.
|
|
44
|
+
* @param newInboxAddress - Ethereum address of the new inbox contract.
|
|
43
45
|
* @param registryAddress - Ethereum address of the registry contract.
|
|
44
|
-
* @param contractDeploymentEmitterAddress - Ethereum address of the contractDeploymentEmitter contract.
|
|
45
46
|
* @param pollingIntervalMs - The interval for polling for L1 logs (in milliseconds).
|
|
46
47
|
* @param store - An archiver data store for storage & retrieval of blocks, encrypted logs & contract data.
|
|
47
48
|
* @param log - A logger.
|
|
48
49
|
*/
|
|
49
|
-
constructor(publicClient: PublicClient<HttpTransport, Chain>, rollupAddress: EthAddress, availabilityOracleAddress: EthAddress, inboxAddress: EthAddress,
|
|
50
|
+
constructor(publicClient: PublicClient<HttpTransport, Chain>, rollupAddress: EthAddress, availabilityOracleAddress: EthAddress, inboxAddress: EthAddress, newInboxAddress: EthAddress, registryAddress: EthAddress, store: ArchiverDataStore, pollingIntervalMs?: number, log?: DebugLogger);
|
|
50
51
|
/**
|
|
51
52
|
* Creates a new instance of the Archiver and blocks until it syncs from chain.
|
|
52
53
|
* @param config - The archiver's desired configuration.
|
|
@@ -80,6 +81,7 @@ export declare class Archiver implements ArchiveSource {
|
|
|
80
81
|
* Temporary solution until we source this data from the contract class registerer and instance deployer.
|
|
81
82
|
* @param contracts - The extended contract data to be stored.
|
|
82
83
|
* @param l2BlockNum - The L2 block number to which the contract data corresponds.
|
|
84
|
+
* TODO(palla/purge-old-contract-deploy): Delete this method
|
|
83
85
|
*/
|
|
84
86
|
storeContractDataAsClassesAndInstances(contracts: ExtendedContractData[], l2BlockNum: number): Promise<void>;
|
|
85
87
|
/**
|
|
@@ -113,14 +115,9 @@ export declare class Archiver implements ArchiveSource {
|
|
|
113
115
|
/**
|
|
114
116
|
* Temporary method for creating a fake extended contract data out of classes and instances registered in the node.
|
|
115
117
|
* Used as a fallback if the extended contract data is not found.
|
|
118
|
+
* TODO(palla/purge-old-contract-deploy): Use proper classes
|
|
116
119
|
*/
|
|
117
120
|
private makeExtendedContractDataFor;
|
|
118
|
-
/**
|
|
119
|
-
* Lookup all contract data in an L2 block.
|
|
120
|
-
* @param blockNum - The block number to get all contract data from.
|
|
121
|
-
* @returns All new contract data in the block (if found).
|
|
122
|
-
*/
|
|
123
|
-
getExtendedContractDataInBlock(blockNum: number): Promise<ExtendedContractData[]>;
|
|
124
121
|
/**
|
|
125
122
|
* Lookup the contract data for this contract.
|
|
126
123
|
* Contains contract address & the ethereum portal address.
|
|
@@ -133,13 +130,6 @@ export declare class Archiver implements ArchiveSource {
|
|
|
133
130
|
* Used as a fallback if the extended contract data is not found.
|
|
134
131
|
*/
|
|
135
132
|
private makeContractDataFor;
|
|
136
|
-
/**
|
|
137
|
-
* Lookup the L2 contract data inside a block.
|
|
138
|
-
* Contains contract address & the ethereum portal address.
|
|
139
|
-
* @param l2BlockNum - The L2 block number to get the contract data from.
|
|
140
|
-
* @returns ContractData with the portal address (if we didn't throw an error).
|
|
141
|
-
*/
|
|
142
|
-
getContractDataInBlock(l2BlockNum: number): Promise<ContractData[] | undefined>;
|
|
143
133
|
/**
|
|
144
134
|
* Gets the public function data for a contract.
|
|
145
135
|
* @param contractAddress - The contract address containing the function to fetch.
|
|
@@ -180,6 +170,12 @@ export declare class Archiver implements ArchiveSource {
|
|
|
180
170
|
* @returns The L1 to L2 message (throws if not found).
|
|
181
171
|
*/
|
|
182
172
|
getConfirmedL1ToL2Message(entryKey: Fr): Promise<L1ToL2Message>;
|
|
173
|
+
/**
|
|
174
|
+
* Gets new L1 to L2 message (to be) included in a given block.
|
|
175
|
+
* @param blockNumber - L2 block number to get messages for.
|
|
176
|
+
* @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
|
|
177
|
+
*/
|
|
178
|
+
getNewL1ToL2Messages(blockNumber: bigint): Promise<Buffer[]>;
|
|
183
179
|
getContractClassIds(): Promise<Fr[]>;
|
|
184
180
|
}
|
|
185
181
|
//# sourceMappingURL=archiver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,OAAO,EACP,aAAa,EACb,aAAa,EACb,YAAY,EACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAgC,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAqB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,15 @@ import { ContractData, ExtendedContractData, L2Block, UnencryptedL2Log, } from '
|
|
|
2
2
|
import { ContractClassRegisteredEvent } from '@aztec/circuits.js';
|
|
3
3
|
import { ContractInstanceDeployedEvent } from '@aztec/circuits.js/contract';
|
|
4
4
|
import { createEthereumChain } from '@aztec/ethereum';
|
|
5
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
6
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
7
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
7
8
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
9
|
+
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
8
10
|
import { ClassRegistererAddress } from '@aztec/protocol-contracts/class-registerer';
|
|
9
11
|
import { InstanceDeployerAddress } from '@aztec/protocol-contracts/instance-deployer';
|
|
10
|
-
import { createPublicClient, http } from 'viem';
|
|
11
|
-
import { retrieveBlockBodiesFromAvailabilityOracle, retrieveBlockMetadataFromRollup, retrieveNewCancelledL1ToL2Messages,
|
|
12
|
+
import { createPublicClient, getAddress, getContract, http } from 'viem';
|
|
13
|
+
import { retrieveBlockBodiesFromAvailabilityOracle, retrieveBlockMetadataFromRollup, retrieveNewCancelledL1ToL2Messages, retrieveNewL1ToL2Messages, retrieveNewPendingL1ToL2Messages, } from './data_retrieval.js';
|
|
12
14
|
/**
|
|
13
15
|
* Pulls L2 blocks in a non-blocking manner and provides interface for their retrieval.
|
|
14
16
|
* Responsible for handling robust L1 polling so that other components do not need to
|
|
@@ -20,19 +22,19 @@ export class Archiver {
|
|
|
20
22
|
* @param publicClient - A client for interacting with the Ethereum node.
|
|
21
23
|
* @param rollupAddress - Ethereum address of the rollup contract.
|
|
22
24
|
* @param inboxAddress - Ethereum address of the inbox contract.
|
|
25
|
+
* @param newInboxAddress - Ethereum address of the new inbox contract.
|
|
23
26
|
* @param registryAddress - Ethereum address of the registry contract.
|
|
24
|
-
* @param contractDeploymentEmitterAddress - Ethereum address of the contractDeploymentEmitter contract.
|
|
25
27
|
* @param pollingIntervalMs - The interval for polling for L1 logs (in milliseconds).
|
|
26
28
|
* @param store - An archiver data store for storage & retrieval of blocks, encrypted logs & contract data.
|
|
27
29
|
* @param log - A logger.
|
|
28
30
|
*/
|
|
29
|
-
constructor(publicClient, rollupAddress, availabilityOracleAddress, inboxAddress,
|
|
31
|
+
constructor(publicClient, rollupAddress, availabilityOracleAddress, inboxAddress, newInboxAddress, registryAddress, store, pollingIntervalMs = 10000, log = createDebugLogger('aztec:archiver')) {
|
|
30
32
|
this.publicClient = publicClient;
|
|
31
33
|
this.rollupAddress = rollupAddress;
|
|
32
34
|
this.availabilityOracleAddress = availabilityOracleAddress;
|
|
33
35
|
this.inboxAddress = inboxAddress;
|
|
36
|
+
this.newInboxAddress = newInboxAddress;
|
|
34
37
|
this.registryAddress = registryAddress;
|
|
35
|
-
this.contractDeploymentEmitterAddress = contractDeploymentEmitterAddress;
|
|
36
38
|
this.store = store;
|
|
37
39
|
this.pollingIntervalMs = pollingIntervalMs;
|
|
38
40
|
this.log = log;
|
|
@@ -55,7 +57,17 @@ export class Archiver {
|
|
|
55
57
|
transport: http(chain.rpcUrl),
|
|
56
58
|
pollingInterval: config.viemPollingIntervalMS,
|
|
57
59
|
});
|
|
58
|
-
|
|
60
|
+
// TODO(#4492): Nuke this once the old inbox is purged
|
|
61
|
+
let newInboxAddress;
|
|
62
|
+
{
|
|
63
|
+
const rollup = getContract({
|
|
64
|
+
address: getAddress(config.l1Contracts.rollupAddress.toString()),
|
|
65
|
+
abi: RollupAbi,
|
|
66
|
+
client: publicClient,
|
|
67
|
+
});
|
|
68
|
+
newInboxAddress = EthAddress.fromString(await rollup.read.NEW_INBOX());
|
|
69
|
+
}
|
|
70
|
+
const archiver = new Archiver(publicClient, config.l1Contracts.rollupAddress, config.l1Contracts.availabilityOracleAddress, config.l1Contracts.inboxAddress, newInboxAddress, config.l1Contracts.registryAddress, archiverStore, config.archiverPollingIntervalMS);
|
|
59
71
|
await archiver.start(blockUntilSynced);
|
|
60
72
|
return archiver;
|
|
61
73
|
}
|
|
@@ -94,6 +106,7 @@ export class Archiver {
|
|
|
94
106
|
const lastL1Blocks = await this.store.getL1BlockNumber();
|
|
95
107
|
const currentL1BlockNumber = await this.publicClient.getBlockNumber();
|
|
96
108
|
if (currentL1BlockNumber <= lastL1Blocks.addedBlock &&
|
|
109
|
+
currentL1BlockNumber <= lastL1Blocks.newMessages &&
|
|
97
110
|
currentL1BlockNumber <= lastL1Blocks.addedMessages &&
|
|
98
111
|
currentL1BlockNumber <= lastL1Blocks.cancelledMessages) {
|
|
99
112
|
// chain hasn't moved forward
|
|
@@ -118,6 +131,7 @@ export class Archiver {
|
|
|
118
131
|
* in future but for the time being it should give us the guarantees that we need
|
|
119
132
|
*/
|
|
120
133
|
// ********** Events that are processed per L1 block **********
|
|
134
|
+
// TODO(#4492): Nuke the following when purging the old inbox
|
|
121
135
|
// Process l1ToL2Messages, these are consumed as time passes, not each block
|
|
122
136
|
const retrievedPendingL1ToL2Messages = await retrieveNewPendingL1ToL2Messages(this.publicClient, this.inboxAddress, blockUntilSynced, lastL1Blocks.addedMessages + 1n, currentL1BlockNumber);
|
|
123
137
|
const retrievedCancelledL1ToL2Messages = await retrieveNewCancelledL1ToL2Messages(this.publicClient, this.inboxAddress, blockUntilSynced, lastL1Blocks.cancelledMessages + 1n, currentL1BlockNumber);
|
|
@@ -142,6 +156,11 @@ export class Archiver {
|
|
|
142
156
|
await this.store.cancelPendingL1ToL2EntryKeys(cancelledMessages, l1Block);
|
|
143
157
|
}
|
|
144
158
|
// ********** Events that are processed per L2 block **********
|
|
159
|
+
const retrievedNewL1ToL2Messages = await retrieveNewL1ToL2Messages(this.publicClient, this.newInboxAddress, blockUntilSynced, lastL1Blocks.newMessages + 1n, currentL1BlockNumber);
|
|
160
|
+
await this.store.addNewL1ToL2Messages(retrievedNewL1ToL2Messages.retrievedData,
|
|
161
|
+
// -1n because the function expects the last block in which the message was emitted and not the one after next
|
|
162
|
+
// TODO(#4492): Check whether this could be cleaned up - `nextEthBlockNumber` value doesn't seem to be used much
|
|
163
|
+
retrievedNewL1ToL2Messages.nextEthBlockNumber - 1n);
|
|
145
164
|
// Read all data from chain and then write to our stores at the end
|
|
146
165
|
const nextExpectedL2BlockNum = BigInt((await this.store.getBlockNumber()) + 1);
|
|
147
166
|
const retrievedBlockBodies = await retrieveBlockBodiesFromAvailabilityOracle(this.publicClient, this.availabilityOracleAddress, blockUntilSynced, lastL1Blocks.addedBlock + 1n, currentL1BlockNumber);
|
|
@@ -167,7 +186,6 @@ export class Archiver {
|
|
|
167
186
|
retrievedBlocks.retrievedData.forEach((block) => {
|
|
168
187
|
blockNumberToBodyHash[block.number] = block.header.contentCommitment.txsEffectsHash;
|
|
169
188
|
});
|
|
170
|
-
const retrievedContracts = await retrieveNewContractData(this.publicClient, this.contractDeploymentEmitterAddress, blockUntilSynced, lastL1Blocks.addedBlock + 1n, currentL1BlockNumber, blockNumberToBodyHash);
|
|
171
189
|
this.log(`Retrieved ${retrievedBlocks.retrievedData.length} block(s) from chain`);
|
|
172
190
|
await Promise.all(retrievedBlocks.retrievedData.map(block => {
|
|
173
191
|
const encryptedLogs = block.body.encryptedLogs;
|
|
@@ -183,15 +201,6 @@ export class Archiver {
|
|
|
183
201
|
await this.storeRegisteredContractClasses(blockLogs, block.number);
|
|
184
202
|
await this.storeDeployedContractInstances(blockLogs, block.number);
|
|
185
203
|
}));
|
|
186
|
-
// store contracts for which we have retrieved L2 blocks
|
|
187
|
-
const lastKnownL2BlockNum = retrievedBlocks.retrievedData[retrievedBlocks.retrievedData.length - 1].number;
|
|
188
|
-
await Promise.all(retrievedContracts.retrievedData.map(async ([contracts, l2BlockNum]) => {
|
|
189
|
-
this.log(`Retrieved extended contract data for l2 block number: ${l2BlockNum}`);
|
|
190
|
-
if (l2BlockNum <= lastKnownL2BlockNum) {
|
|
191
|
-
await this.store.addExtendedContractData(contracts, l2BlockNum);
|
|
192
|
-
await this.storeContractDataAsClassesAndInstances(contracts, l2BlockNum);
|
|
193
|
-
}
|
|
194
|
-
}));
|
|
195
204
|
// from retrieved L2Blocks, confirm L1 to L2 messages that have been published
|
|
196
205
|
// from each l2block fetch all entryKeys in a flattened array:
|
|
197
206
|
this.log(`Confirming l1 to l2 messages in store`);
|
|
@@ -227,6 +236,7 @@ export class Archiver {
|
|
|
227
236
|
* Temporary solution until we source this data from the contract class registerer and instance deployer.
|
|
228
237
|
* @param contracts - The extended contract data to be stored.
|
|
229
238
|
* @param l2BlockNum - The L2 block number to which the contract data corresponds.
|
|
239
|
+
* TODO(palla/purge-old-contract-deploy): Delete this method
|
|
230
240
|
*/
|
|
231
241
|
async storeContractDataAsClassesAndInstances(contracts, l2BlockNum) {
|
|
232
242
|
const classesAndInstances = contracts.map(extendedContractDataToContractClassAndInstance);
|
|
@@ -288,6 +298,7 @@ export class Archiver {
|
|
|
288
298
|
/**
|
|
289
299
|
* Temporary method for creating a fake extended contract data out of classes and instances registered in the node.
|
|
290
300
|
* Used as a fallback if the extended contract data is not found.
|
|
301
|
+
* TODO(palla/purge-old-contract-deploy): Use proper classes
|
|
291
302
|
*/
|
|
292
303
|
async makeExtendedContractDataFor(address) {
|
|
293
304
|
const instance = await this.store.getContractInstance(address);
|
|
@@ -301,22 +312,14 @@ export class Archiver {
|
|
|
301
312
|
}
|
|
302
313
|
return ExtendedContractData.fromClassAndInstance(contractClass, instance);
|
|
303
314
|
}
|
|
304
|
-
/**
|
|
305
|
-
* Lookup all contract data in an L2 block.
|
|
306
|
-
* @param blockNum - The block number to get all contract data from.
|
|
307
|
-
* @returns All new contract data in the block (if found).
|
|
308
|
-
*/
|
|
309
|
-
getExtendedContractDataInBlock(blockNum) {
|
|
310
|
-
return this.store.getExtendedContractDataInBlock(blockNum);
|
|
311
|
-
}
|
|
312
315
|
/**
|
|
313
316
|
* Lookup the contract data for this contract.
|
|
314
317
|
* Contains contract address & the ethereum portal address.
|
|
315
318
|
* @param contractAddress - The contract data address.
|
|
316
319
|
* @returns ContractData with the portal address (if we didn't throw an error).
|
|
317
320
|
*/
|
|
318
|
-
|
|
319
|
-
return
|
|
321
|
+
getContractData(contractAddress) {
|
|
322
|
+
return this.makeContractDataFor(contractAddress);
|
|
320
323
|
}
|
|
321
324
|
/**
|
|
322
325
|
* Temporary method for creating a fake contract data out of classes and instances registered in the node.
|
|
@@ -329,15 +332,6 @@ export class Archiver {
|
|
|
329
332
|
}
|
|
330
333
|
return new ContractData(address, instance.portalContractAddress);
|
|
331
334
|
}
|
|
332
|
-
/**
|
|
333
|
-
* Lookup the L2 contract data inside a block.
|
|
334
|
-
* Contains contract address & the ethereum portal address.
|
|
335
|
-
* @param l2BlockNum - The L2 block number to get the contract data from.
|
|
336
|
-
* @returns ContractData with the portal address (if we didn't throw an error).
|
|
337
|
-
*/
|
|
338
|
-
getContractDataInBlock(l2BlockNum) {
|
|
339
|
-
return this.store.getContractDataInBlock(l2BlockNum);
|
|
340
|
-
}
|
|
341
335
|
/**
|
|
342
336
|
* Gets the public function data for a contract.
|
|
343
337
|
* @param contractAddress - The contract address containing the function to fetch.
|
|
@@ -395,6 +389,14 @@ export class Archiver {
|
|
|
395
389
|
getConfirmedL1ToL2Message(entryKey) {
|
|
396
390
|
return this.store.getConfirmedL1ToL2Message(entryKey);
|
|
397
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Gets new L1 to L2 message (to be) included in a given block.
|
|
394
|
+
* @param blockNumber - L2 block number to get messages for.
|
|
395
|
+
* @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
|
|
396
|
+
*/
|
|
397
|
+
getNewL1ToL2Messages(blockNumber) {
|
|
398
|
+
return this.store.getNewL1ToL2Messages(blockNumber);
|
|
399
|
+
}
|
|
398
400
|
getContractClassIds() {
|
|
399
401
|
return this.store.getContractClassIds();
|
|
400
402
|
}
|
|
@@ -432,4 +434,4 @@ function extendedContractDataToContractClassAndInstance(data) {
|
|
|
432
434
|
{ ...contractInstance, address },
|
|
433
435
|
];
|
|
434
436
|
}
|
|
435
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvYXJjaGl2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFHWixvQkFBb0IsRUFJcEIsT0FBTyxFQVNQLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSw0QkFBNEIsRUFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBUXRGLE9BQU8sRUFBc0Msa0JBQWtCLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXBGLE9BQU8sRUFDTCx5Q0FBeUMsRUFDekMsK0JBQStCLEVBQy9CLGtDQUFrQyxFQUNsQyx1QkFBdUIsRUFDdkIsZ0NBQWdDLEdBQ2pDLE1BQU0scUJBQXFCLENBQUM7QUFPN0I7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxRQUFRO0lBV25COzs7Ozs7Ozs7O09BVUc7SUFDSCxZQUNtQixZQUFnRCxFQUNoRCxhQUF5QixFQUN6Qix5QkFBcUMsRUFDckMsWUFBd0IsRUFDeEIsZUFBMkIsRUFDM0IsZ0NBQTRDLEVBQzVDLEtBQXdCLEVBQ3hCLG9CQUFvQixLQUFNLEVBQzFCLE1BQW1CLGlCQUFpQixDQUFDLGdCQUFnQixD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
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvYXJjaGl2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFHWixvQkFBb0IsRUFJcEIsT0FBTyxFQVNQLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSw0QkFBNEIsRUFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBZSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFRdEYsT0FBTyxFQUFzQyxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUk3RyxPQUFPLEVBQ0wseUNBQXlDLEVBQ3pDLCtCQUErQixFQUMvQixrQ0FBa0MsRUFDbEMseUJBQXlCLEVBQ3pCLGdDQUFnQyxHQUNqQyxNQUFNLHFCQUFxQixDQUFDO0FBTzdCOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQVduQjs7Ozs7Ozs7OztPQVVHO0lBQ0gsWUFDbUIsWUFBZ0QsRUFDaEQsYUFBeUIsRUFDekIs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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { Body,
|
|
2
|
+
import { Body, ExtendedContractData, GetUnencryptedLogsResponse, L1ToL2Message, L2Block, L2BlockL2Logs, LogFilter, LogType, NewInboxLeaf, TxEffect, TxHash, TxReceipt } from '@aztec/circuit-types';
|
|
3
3
|
import { Fr } from '@aztec/circuits.js';
|
|
4
4
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
5
5
|
import { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
@@ -9,6 +9,8 @@ import { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/types/c
|
|
|
9
9
|
export type ArchiverL1SynchPoint = {
|
|
10
10
|
/** The last L1 block that added a new L2 block. */
|
|
11
11
|
addedBlock: bigint;
|
|
12
|
+
/** The last L1 block that added messages from the new inbox. */
|
|
13
|
+
newMessages: bigint;
|
|
12
14
|
/** The last L1 block that added pending messages */
|
|
13
15
|
addedMessages: bigint;
|
|
14
16
|
/** The last L1 block that cancelled messages */
|
|
@@ -65,11 +67,19 @@ export interface ArchiverDataStore {
|
|
|
65
67
|
* @returns True if the operation is successful.
|
|
66
68
|
*/
|
|
67
69
|
addLogs(encryptedLogs: L2BlockL2Logs | undefined, unencryptedLogs: L2BlockL2Logs | undefined, blockNumber: number): Promise<boolean>;
|
|
70
|
+
/**
|
|
71
|
+
* Append new L1 to L2 messages to the store.
|
|
72
|
+
* @param messages - The L1 to L2 messages to be added to the store.
|
|
73
|
+
* @param lastMessageL1BlockNumber - The L1 block number in which the last message was emitted.
|
|
74
|
+
* @returns True if the operation is successful.
|
|
75
|
+
*/
|
|
76
|
+
addNewL1ToL2Messages(messages: NewInboxLeaf[], lastMessageL1BlockNumber: bigint): Promise<boolean>;
|
|
68
77
|
/**
|
|
69
78
|
* Append new pending L1 to L2 messages to the store.
|
|
70
79
|
* @param messages - The L1 to L2 messages to be added to the store.
|
|
71
80
|
* @param l1BlockNumber - The block number of the L1 block that added the messages.
|
|
72
81
|
* @returns True if the operation is successful.
|
|
82
|
+
* TODO(#4492): Nuke the following when purging the old inbox
|
|
73
83
|
*/
|
|
74
84
|
addPendingL1ToL2Messages(messages: L1ToL2Message[], l1BlockNumber: bigint): Promise<boolean>;
|
|
75
85
|
/**
|
|
@@ -77,6 +87,7 @@ export interface ArchiverDataStore {
|
|
|
77
87
|
* @param entryKeys - The entry keys to be removed from the store.
|
|
78
88
|
* @param l1BlockNumber - The block number of the L1 block that cancelled the messages.
|
|
79
89
|
* @returns True if the operation is successful.
|
|
90
|
+
* TODO(#4492): Nuke the following when purging the old inbox
|
|
80
91
|
*/
|
|
81
92
|
cancelPendingL1ToL2EntryKeys(entryKeys: Fr[], l1BlockNumber: bigint): Promise<boolean>;
|
|
82
93
|
/**
|
|
@@ -98,6 +109,12 @@ export interface ArchiverDataStore {
|
|
|
98
109
|
* @returns The requested L1 to L2 message or throws if not found.
|
|
99
110
|
*/
|
|
100
111
|
getConfirmedL1ToL2Message(entryKey: Fr): Promise<L1ToL2Message>;
|
|
112
|
+
/**
|
|
113
|
+
* Gets new L1 to L2 message (to be) included in a given block.
|
|
114
|
+
* @param blockNumber - L2 block number to get messages for.
|
|
115
|
+
* @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
|
|
116
|
+
*/
|
|
117
|
+
getNewL1ToL2Messages(blockNumber: bigint): Promise<Buffer[]>;
|
|
101
118
|
/**
|
|
102
119
|
* Gets up to `limit` amount of logs starting from `from`.
|
|
103
120
|
* @param from - Number of the L2 block to which corresponds the first logs to be returned.
|
|
@@ -125,26 +142,6 @@ export interface ArchiverDataStore {
|
|
|
125
142
|
* @returns The extended contract data or undefined if not found.
|
|
126
143
|
*/
|
|
127
144
|
getExtendedContractData(contractAddress: AztecAddress): Promise<ExtendedContractData | undefined>;
|
|
128
|
-
/**
|
|
129
|
-
* Lookup all extended contract data in an L2 block.
|
|
130
|
-
* @param blockNum - The block number to get all contract data from.
|
|
131
|
-
* @returns All extended contract data in the block (if found).
|
|
132
|
-
*/
|
|
133
|
-
getExtendedContractDataInBlock(blockNum: number): Promise<ExtendedContractData[]>;
|
|
134
|
-
/**
|
|
135
|
-
* Get basic info for an L2 contract.
|
|
136
|
-
* Contains contract address & the ethereum portal address.
|
|
137
|
-
* @param contractAddress - The contract data address.
|
|
138
|
-
* @returns ContractData with the portal address (if we didn't throw an error).
|
|
139
|
-
*/
|
|
140
|
-
getContractData(contractAddress: AztecAddress): Promise<ContractData | undefined>;
|
|
141
|
-
/**
|
|
142
|
-
* Get basic info for an all L2 contracts deployed in a block.
|
|
143
|
-
* Contains contract address & the ethereum portal address.
|
|
144
|
-
* @param l2BlockNum - Number of the L2 block where contracts were deployed.
|
|
145
|
-
* @returns ContractData with the portal address (if we didn't throw an error).
|
|
146
|
-
*/
|
|
147
|
-
getContractDataInBlock(l2BlockNum: number): Promise<ContractData[] | undefined>;
|
|
148
145
|
/**
|
|
149
146
|
* Gets the number of the latest L2 block processed.
|
|
150
147
|
* @returns The number of the latest L2 block processed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,
|
|
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":"AAUA,OAAO,2BAA2B,CAAC;AAMnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AAUA,OAAO,2BAA2B,CAAC;AAMnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,QAglB5F"}
|