@aztec/archiver 0.28.1 → 0.30.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/dest/archiver/archiver.d.ts +13 -53
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +60 -199
- package/dest/archiver/archiver_store.d.ts +21 -67
- 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 +60 -199
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +6 -2
- package/dest/archiver/data_retrieval.d.ts +10 -32
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +13 -67
- package/dest/archiver/eth_log_handlers.d.ts +7 -38
- package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
- package/dest/archiver/eth_log_handlers.js +9 -77
- package/dest/archiver/kv_archiver_store/block_store.d.ts +5 -4
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +12 -15
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +15 -56
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +23 -87
- package/dest/archiver/kv_archiver_store/message_store.d.ts +12 -43
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +32 -141
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +8 -41
- 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 +22 -79
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +20 -81
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +30 -143
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -15
- package/dest/rpc/archiver_client.d.ts.map +1 -1
- package/dest/rpc/archiver_client.js +2 -6
- package/dest/rpc/archiver_server.d.ts.map +1 -1
- package/dest/rpc/archiver_server.js +2 -6
- package/package.json +9 -9
- package/src/archiver/archiver.ts +80 -267
- package/src/archiver/archiver_store.ts +22 -76
- package/src/archiver/archiver_store_test_suite.ts +78 -243
- package/src/archiver/config.ts +6 -0
- package/src/archiver/data_retrieval.ts +19 -101
- package/src/archiver/eth_log_handlers.ts +14 -108
- package/src/archiver/kv_archiver_store/block_store.ts +13 -14
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +23 -93
- package/src/archiver/kv_archiver_store/message_store.ts +38 -169
- package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +21 -90
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +33 -161
- package/src/index.ts +1 -15
- package/src/rpc/archiver_client.ts +0 -8
- package/src/rpc/archiver_server.ts +0 -8
- package/dest/archiver/kv_archiver_store/contract_store.d.ts +0 -26
- package/dest/archiver/kv_archiver_store/contract_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/contract_store.js +0 -49
- package/src/archiver/kv_archiver_store/contract_store.ts +0 -55
package/src/index.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
1
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
2
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
4
|
-
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
5
3
|
|
|
6
|
-
import { createPublicClient,
|
|
4
|
+
import { createPublicClient, http } from 'viem';
|
|
7
5
|
import { localhost } from 'viem/chains';
|
|
8
6
|
|
|
9
7
|
import { Archiver, getConfigEnvVars } from './archiver/index.js';
|
|
@@ -29,23 +27,11 @@ async function main() {
|
|
|
29
27
|
|
|
30
28
|
const archiverStore = new MemoryArchiverStore(1000);
|
|
31
29
|
|
|
32
|
-
// TODO(#4492): Nuke this once the old inbox is purged
|
|
33
|
-
let newInboxAddress!: EthAddress;
|
|
34
|
-
{
|
|
35
|
-
const rollup = getContract({
|
|
36
|
-
address: getAddress(l1Contracts.rollupAddress.toString()),
|
|
37
|
-
abi: RollupAbi,
|
|
38
|
-
client: publicClient,
|
|
39
|
-
});
|
|
40
|
-
newInboxAddress = EthAddress.fromString(await rollup.read.NEW_INBOX());
|
|
41
|
-
}
|
|
42
|
-
|
|
43
30
|
const archiver = new Archiver(
|
|
44
31
|
publicClient,
|
|
45
32
|
l1Contracts.rollupAddress,
|
|
46
33
|
l1Contracts.availabilityOracleAddress,
|
|
47
34
|
l1Contracts.inboxAddress,
|
|
48
|
-
newInboxAddress,
|
|
49
35
|
l1Contracts.registryAddress,
|
|
50
36
|
archiverStore,
|
|
51
37
|
);
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
ContractData,
|
|
3
|
-
EncodedContractFunction,
|
|
4
|
-
ExtendedContractData,
|
|
5
2
|
ExtendedUnencryptedL2Log,
|
|
6
|
-
L1ToL2Message,
|
|
7
3
|
L2Block,
|
|
8
4
|
L2BlockL2Logs,
|
|
9
5
|
NullifierMembershipWitness,
|
|
@@ -18,13 +14,9 @@ export const createArchiverClient = (url: string, fetch = makeFetch([1, 2, 3], t
|
|
|
18
14
|
createJsonRpcClient<ArchiveSource>(
|
|
19
15
|
url,
|
|
20
16
|
{
|
|
21
|
-
ContractData,
|
|
22
|
-
EncodedContractFunction,
|
|
23
17
|
EthAddress,
|
|
24
|
-
ExtendedContractData,
|
|
25
18
|
ExtendedUnencryptedL2Log,
|
|
26
19
|
Fr,
|
|
27
|
-
L1ToL2Message,
|
|
28
20
|
L2Block,
|
|
29
21
|
L2BlockL2Logs,
|
|
30
22
|
},
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
ContractData,
|
|
3
|
-
EncodedContractFunction,
|
|
4
|
-
ExtendedContractData,
|
|
5
2
|
ExtendedUnencryptedL2Log,
|
|
6
|
-
L1ToL2Message,
|
|
7
3
|
L2Block,
|
|
8
4
|
L2BlockL2Logs,
|
|
9
5
|
NullifierMembershipWitness,
|
|
@@ -24,13 +20,9 @@ export function createArchiverRpcServer(archiverService: Archiver): JsonRpcServe
|
|
|
24
20
|
return new JsonRpcServer(
|
|
25
21
|
archiverService,
|
|
26
22
|
{
|
|
27
|
-
ContractData,
|
|
28
|
-
EncodedContractFunction,
|
|
29
23
|
EthAddress,
|
|
30
|
-
ExtendedContractData,
|
|
31
24
|
ExtendedUnencryptedL2Log,
|
|
32
25
|
Fr,
|
|
33
|
-
L1ToL2Message,
|
|
34
26
|
L2Block,
|
|
35
27
|
L2BlockL2Logs,
|
|
36
28
|
TxEffect,
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ExtendedContractData } from '@aztec/circuit-types';
|
|
2
|
-
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
3
|
-
import { AztecKVStore } from '@aztec/kv-store';
|
|
4
|
-
import { BlockStore } from './block_store.js';
|
|
5
|
-
/**
|
|
6
|
-
* LMDB implementation of the ArchiverDataStore interface.
|
|
7
|
-
*/
|
|
8
|
-
export declare class ContractStore {
|
|
9
|
-
#private;
|
|
10
|
-
private db;
|
|
11
|
-
constructor(db: AztecKVStore, blockStore: BlockStore);
|
|
12
|
-
/**
|
|
13
|
-
* Add new extended contract data from an L2 block to the store's list.
|
|
14
|
-
* @param data - List of contracts' data to be added.
|
|
15
|
-
* @param blockNum - Number of the L2 block the contract data was deployed in.
|
|
16
|
-
* @returns True if the operation is successful.
|
|
17
|
-
*/
|
|
18
|
-
addExtendedContractData(data: ExtendedContractData[], blockNum: number): Promise<boolean>;
|
|
19
|
-
/**
|
|
20
|
-
* Get the extended contract data for this contract.
|
|
21
|
-
* @param contractAddress - The contract data address.
|
|
22
|
-
* @returns The extended contract data or undefined if not found.
|
|
23
|
-
*/
|
|
24
|
-
getExtendedContractData(contractAddress: AztecAddress): ExtendedContractData | undefined;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=contract_store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/contract_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAa;;IAKZ,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;IAK5D;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzF;;;;OAIG;IACH,uBAAuB,CAAC,eAAe,EAAE,YAAY,GAAG,oBAAoB,GAAG,SAAS;CAgBzF"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
var _ContractStore_blockStore, _ContractStore_extendedContractData, _ContractStore_log;
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { ExtendedContractData } from '@aztec/circuit-types';
|
|
4
|
-
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
|
-
/**
|
|
6
|
-
* LMDB implementation of the ArchiverDataStore interface.
|
|
7
|
-
*/
|
|
8
|
-
export class ContractStore {
|
|
9
|
-
constructor(db, blockStore) {
|
|
10
|
-
this.db = db;
|
|
11
|
-
_ContractStore_blockStore.set(this, void 0);
|
|
12
|
-
_ContractStore_extendedContractData.set(this, void 0);
|
|
13
|
-
_ContractStore_log.set(this, createDebugLogger('aztec:archiver:contract_store'));
|
|
14
|
-
__classPrivateFieldSet(this, _ContractStore_extendedContractData, db.openMap('archiver_extended_contract_data'), "f");
|
|
15
|
-
__classPrivateFieldSet(this, _ContractStore_blockStore, blockStore, "f");
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Add new extended contract data from an L2 block to the store's list.
|
|
19
|
-
* @param data - List of contracts' data to be added.
|
|
20
|
-
* @param blockNum - Number of the L2 block the contract data was deployed in.
|
|
21
|
-
* @returns True if the operation is successful.
|
|
22
|
-
*/
|
|
23
|
-
addExtendedContractData(data, blockNum) {
|
|
24
|
-
return __classPrivateFieldGet(this, _ContractStore_extendedContractData, "f").swap(blockNum, (existingData = []) => {
|
|
25
|
-
existingData.push(...data.map(d => d.toBuffer()));
|
|
26
|
-
return existingData;
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get the extended contract data for this contract.
|
|
31
|
-
* @param contractAddress - The contract data address.
|
|
32
|
-
* @returns The extended contract data or undefined if not found.
|
|
33
|
-
*/
|
|
34
|
-
getExtendedContractData(contractAddress) {
|
|
35
|
-
const [blockNumber, _] = __classPrivateFieldGet(this, _ContractStore_blockStore, "f").getContractLocation(contractAddress) ?? [];
|
|
36
|
-
if (typeof blockNumber !== 'number') {
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
for (const contract of __classPrivateFieldGet(this, _ContractStore_extendedContractData, "f").get(blockNumber) ?? []) {
|
|
40
|
-
const extendedContractData = ExtendedContractData.fromBuffer(contract);
|
|
41
|
-
if (extendedContractData.contractData.contractAddress.equals(contractAddress)) {
|
|
42
|
-
return extendedContractData;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return undefined;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
_ContractStore_blockStore = new WeakMap(), _ContractStore_extendedContractData = new WeakMap(), _ContractStore_log = new WeakMap();
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3Rfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvY29udHJhY3Rfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUsxRDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQW9CLEVBQWdCLEVBQUUsVUFBc0I7UUFBeEMsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUpwQyw0Q0FBd0I7UUFDeEIsc0RBQWtEO1FBQ2xELDZCQUFPLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLEVBQUM7UUFHeEQsdUJBQUEsSUFBSSx1Q0FBeUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFBLENBQUM7UUFDM0UsdUJBQUEsSUFBSSw2QkFBZSxVQUFVLE1BQUEsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx1QkFBdUIsQ0FBQyxJQUE0QixFQUFFLFFBQWdCO1FBQ3BFLE9BQU8sdUJBQUEsSUFBSSwyQ0FBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxHQUFHLEVBQUUsRUFBRSxFQUFFO1lBQ3JFLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsdUJBQXVCLENBQUMsZUFBNkI7UUFDbkQsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyx1QkFBQSxJQUFJLGlDQUFZLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXJGLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELEtBQUssTUFBTSxRQUFRLElBQUksdUJBQUEsSUFBSSwyQ0FBc0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDekUsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkUsSUFBSSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUM5RSxPQUFPLG9CQUFvQixDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIn0=
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { ExtendedContractData } from '@aztec/circuit-types';
|
|
2
|
-
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
3
|
-
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
|
-
import { AztecKVStore, AztecMap } from '@aztec/kv-store';
|
|
5
|
-
|
|
6
|
-
import { BlockStore } from './block_store.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* LMDB implementation of the ArchiverDataStore interface.
|
|
10
|
-
*/
|
|
11
|
-
export class ContractStore {
|
|
12
|
-
#blockStore: BlockStore;
|
|
13
|
-
#extendedContractData: AztecMap<number, Buffer[]>;
|
|
14
|
-
#log = createDebugLogger('aztec:archiver:contract_store');
|
|
15
|
-
|
|
16
|
-
constructor(private db: AztecKVStore, blockStore: BlockStore) {
|
|
17
|
-
this.#extendedContractData = db.openMap('archiver_extended_contract_data');
|
|
18
|
-
this.#blockStore = blockStore;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Add new extended contract data from an L2 block to the store's list.
|
|
23
|
-
* @param data - List of contracts' data to be added.
|
|
24
|
-
* @param blockNum - Number of the L2 block the contract data was deployed in.
|
|
25
|
-
* @returns True if the operation is successful.
|
|
26
|
-
*/
|
|
27
|
-
addExtendedContractData(data: ExtendedContractData[], blockNum: number): Promise<boolean> {
|
|
28
|
-
return this.#extendedContractData.swap(blockNum, (existingData = []) => {
|
|
29
|
-
existingData.push(...data.map(d => d.toBuffer()));
|
|
30
|
-
return existingData;
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Get the extended contract data for this contract.
|
|
36
|
-
* @param contractAddress - The contract data address.
|
|
37
|
-
* @returns The extended contract data or undefined if not found.
|
|
38
|
-
*/
|
|
39
|
-
getExtendedContractData(contractAddress: AztecAddress): ExtendedContractData | undefined {
|
|
40
|
-
const [blockNumber, _] = this.#blockStore.getContractLocation(contractAddress) ?? [];
|
|
41
|
-
|
|
42
|
-
if (typeof blockNumber !== 'number') {
|
|
43
|
-
return undefined;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
for (const contract of this.#extendedContractData.get(blockNumber) ?? []) {
|
|
47
|
-
const extendedContractData = ExtendedContractData.fromBuffer(contract);
|
|
48
|
-
if (extendedContractData.contractData.contractAddress.equals(contractAddress)) {
|
|
49
|
-
return extendedContractData;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return undefined;
|
|
54
|
-
}
|
|
55
|
-
}
|