@aztec/archiver 0.52.0 → 0.53.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/data_retrieval.d.ts +10 -2
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +17 -2
- package/dest/archiver/eth_log_handlers.d.ts +19 -1
- package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
- package/dest/archiver/eth_log_handlers.js +38 -2
- package/dest/factory.d.ts +2 -4
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +5 -3
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -3
- package/package.json +14 -11
- package/src/archiver/data_retrieval.ts +26 -3
- package/src/archiver/eth_log_handlers.ts +55 -1
- package/src/factory.ts +4 -4
- package/src/index.ts +3 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Body, type InboxLeaf } from '@aztec/circuit-types';
|
|
2
|
-
import { type AppendOnlyTreeSnapshot, Fr, type Header } from '@aztec/circuits.js';
|
|
2
|
+
import { type AppendOnlyTreeSnapshot, Fr, type Header, type Proof } from '@aztec/circuits.js';
|
|
3
3
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
5
|
-
import { type PublicClient } from 'viem';
|
|
5
|
+
import { type Hex, type PublicClient } from 'viem';
|
|
6
6
|
import { type DataRetrieval } from './structs/data_retrieval.js';
|
|
7
7
|
import { type L1PublishedData } from './structs/published.js';
|
|
8
8
|
/**
|
|
@@ -41,5 +41,13 @@ export declare function retrieveL2ProofVerifiedEvents(publicClient: PublicClient
|
|
|
41
41
|
l1BlockNumber: bigint;
|
|
42
42
|
l2BlockNumber: bigint;
|
|
43
43
|
proverId: Fr;
|
|
44
|
+
txHash: Hex;
|
|
44
45
|
}[]>;
|
|
46
|
+
/** Retrieve submitted proofs from the rollup contract */
|
|
47
|
+
export declare function retrieveL2ProofsFromRollup(publicClient: PublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<DataRetrieval<{
|
|
48
|
+
proof: Proof;
|
|
49
|
+
proverId: Fr;
|
|
50
|
+
l2BlockNumber: bigint;
|
|
51
|
+
txHash: `0x${string}`;
|
|
52
|
+
}>>;
|
|
45
53
|
//# sourceMappingURL=data_retrieval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,KAAK,sBAAsB,EAAE,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,KAAK,sBAAsB,EAAE,EAAE,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAc,MAAM,MAAM,CAAC;AAW/D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;;;GASG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,MAAM,EAC9B,MAAM,GAAE,WAAiD,GACxD,OAAO,CAAC,CAAC,MAAM,EAAE,sBAAsB,EAAE,eAAe,CAAC,EAAE,CAAC,CA+B9D;AAED;;;;;;;;GAQG;AACH,wBAAsB,yCAAyC,CAC7D,YAAY,EAAE,YAAY,EAC1B,yBAAyB,EAAE,UAAU,EACrC,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAuB9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAgBnC;AAED,iEAAiE;AACjE,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,YAAY,EAC1B,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,YAAY,EAC1B,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"}
|
|
@@ -2,7 +2,7 @@ import { Fr } from '@aztec/circuits.js';
|
|
|
2
2
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
4
4
|
import { getAbiItem } from 'viem';
|
|
5
|
-
import { getL2BlockProposedLogs, getMessageSentLogs, getTxsPublishedLogs, processL2BlockProposedLogs, processMessageSentLogs, processTxsPublishedLogs, } from './eth_log_handlers.js';
|
|
5
|
+
import { getBlockProofFromSubmitProofTx, getL2BlockProposedLogs, getMessageSentLogs, getTxsPublishedLogs, processL2BlockProposedLogs, processMessageSentLogs, processTxsPublishedLogs, } from './eth_log_handlers.js';
|
|
6
6
|
/**
|
|
7
7
|
* Fetches new L2 block metadata (header, archive snapshot).
|
|
8
8
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
@@ -96,6 +96,21 @@ export async function retrieveL2ProofVerifiedEvents(publicClient, rollupAddress,
|
|
|
96
96
|
l1BlockNumber: log.blockNumber,
|
|
97
97
|
l2BlockNumber: log.args.blockNumber,
|
|
98
98
|
proverId: Fr.fromString(log.args.proverId),
|
|
99
|
+
txHash: log.transactionHash,
|
|
99
100
|
}));
|
|
100
101
|
}
|
|
101
|
-
|
|
102
|
+
/** Retrieve submitted proofs from the rollup contract */
|
|
103
|
+
export async function retrieveL2ProofsFromRollup(publicClient, rollupAddress, searchStartBlock, searchEndBlock) {
|
|
104
|
+
const logs = await retrieveL2ProofVerifiedEvents(publicClient, rollupAddress, searchStartBlock, searchEndBlock);
|
|
105
|
+
const retrievedData = [];
|
|
106
|
+
const lastProcessedL1BlockNumber = logs.length > 0 ? logs.at(-1).l1BlockNumber : searchStartBlock - 1n;
|
|
107
|
+
for (const { txHash, proverId, l2BlockNumber } of logs) {
|
|
108
|
+
const proofData = await getBlockProofFromSubmitProofTx(publicClient, txHash, l2BlockNumber, proverId);
|
|
109
|
+
retrievedData.push({ proof: proofData.proof, proverId: proofData.proverId, l2BlockNumber, txHash });
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
retrievedData,
|
|
113
|
+
lastProcessedL1BlockNumber,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvZGF0YV9yZXRyaWV2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUErQixFQUFFLEVBQTJCLE1BQU0sb0JBQW9CLENBQUM7QUFFOUYsT0FBTyxFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxPQUFPLEVBQStCLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvRCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsdUJBQXVCLEdBQ3hCLE1BQU0sdUJBQXVCLENBQUM7QUFJL0I7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSwrQkFBK0IsQ0FDbkQsWUFBMEIsRUFDMUIsYUFBeUIsRUFDekIsZ0JBQXlCLEVBQ3pCLGdCQUF3QixFQUN4QixjQUFzQixFQUN0QixzQkFBOEIsRUFDOUIsU0FBc0IsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7SUFFekQsTUFBTSxzQkFBc0IsR0FBd0QsRUFBRSxDQUFDO0lBQ3ZGLEdBQUcsQ0FBQztRQUNGLElBQUksZ0JBQWdCLEdBQUcsY0FBYyxFQUFFLENBQUM7WUFDdEMsTUFBTTtRQUNSLENBQUM7UUFDRCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sc0JBQXNCLENBQ3RELFlBQVksRUFDWixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FDZixDQUFDO1FBQ0YsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTTtRQUNSLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxN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
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import { Body, InboxLeaf } from '@aztec/circuit-types';
|
|
3
|
-
import { AppendOnlyTreeSnapshot, Header } from '@aztec/circuits.js';
|
|
3
|
+
import { AppendOnlyTreeSnapshot, Header, Proof } from '@aztec/circuits.js';
|
|
4
4
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
6
|
import { AvailabilityOracleAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
6
7
|
import { type Log, type PublicClient } from 'viem';
|
|
7
8
|
import { type L1PublishedData } from './structs/published.js';
|
|
@@ -48,4 +49,21 @@ export declare function getTxsPublishedLogs(publicClient: PublicClient, dataAvai
|
|
|
48
49
|
* @returns An array of `MessageSent` logs.
|
|
49
50
|
*/
|
|
50
51
|
export declare function getMessageSentLogs(publicClient: PublicClient, inboxAddress: EthAddress, fromBlock: bigint, toBlock: bigint): Promise<Log<bigint, number, false, undefined, true, typeof InboxAbi, 'MessageSent'>[]>;
|
|
52
|
+
export type SubmitBlockProof = {
|
|
53
|
+
header: Header;
|
|
54
|
+
archiveRoot: Fr;
|
|
55
|
+
proverId: Fr;
|
|
56
|
+
aggregationObject: Buffer;
|
|
57
|
+
proof: Proof;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Gets block metadata (header and archive snapshot) from the calldata of an L1 transaction.
|
|
61
|
+
* Assumes that the block was published from an EOA.
|
|
62
|
+
* TODO: Add retries and error management.
|
|
63
|
+
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
64
|
+
* @param txHash - Hash of the tx that published it.
|
|
65
|
+
* @param l2BlockNum - L2 block number.
|
|
66
|
+
* @returns L2 block metadata (header and archive) from the calldata, deserialized
|
|
67
|
+
*/
|
|
68
|
+
export declare function getBlockProofFromSubmitProofTx(publicClient: PublicClient, txHash: `0x${string}`, l2BlockNum: bigint, expectedProverId: Fr): Promise<SubmitBlockProof>;
|
|
51
69
|
//# sourceMappingURL=eth_log_handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Body, InboxLeaf } from '@aztec/circuit-types';
|
|
2
|
-
import { AppendOnlyTreeSnapshot, Header } from '@aztec/circuits.js';
|
|
2
|
+
import { AppendOnlyTreeSnapshot, Header, Proof } from '@aztec/circuits.js';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { numToUInt32BE } from '@aztec/foundation/serialize';
|
|
5
5
|
import { AvailabilityOracleAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
@@ -185,4 +185,40 @@ export function getMessageSentLogs(publicClient, inboxAddress, fromBlock, toBloc
|
|
|
185
185
|
toBlock: toBlock + 1n, // the toBlock argument in getLogs is exclusive
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
|
-
|
|
188
|
+
/**
|
|
189
|
+
* Gets block metadata (header and archive snapshot) from the calldata of an L1 transaction.
|
|
190
|
+
* Assumes that the block was published from an EOA.
|
|
191
|
+
* TODO: Add retries and error management.
|
|
192
|
+
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
193
|
+
* @param txHash - Hash of the tx that published it.
|
|
194
|
+
* @param l2BlockNum - L2 block number.
|
|
195
|
+
* @returns L2 block metadata (header and archive) from the calldata, deserialized
|
|
196
|
+
*/
|
|
197
|
+
export async function getBlockProofFromSubmitProofTx(publicClient, txHash, l2BlockNum, expectedProverId) {
|
|
198
|
+
const { input: data } = await publicClient.getTransaction({ hash: txHash });
|
|
199
|
+
const { functionName, args } = decodeFunctionData({
|
|
200
|
+
abi: RollupAbi,
|
|
201
|
+
data,
|
|
202
|
+
});
|
|
203
|
+
if (!(functionName === 'submitBlockRootProof')) {
|
|
204
|
+
throw new Error(`Unexpected method called ${functionName}`);
|
|
205
|
+
}
|
|
206
|
+
const [headerHex, archiveHex, proverIdHex, aggregationObjectHex, proofHex] = args;
|
|
207
|
+
const header = Header.fromBuffer(Buffer.from(hexToBytes(headerHex)));
|
|
208
|
+
const proverId = Fr.fromString(proverIdHex);
|
|
209
|
+
const blockNumberFromHeader = header.globalVariables.blockNumber.toBigInt();
|
|
210
|
+
if (blockNumberFromHeader !== l2BlockNum) {
|
|
211
|
+
throw new Error(`Block number mismatch: expected ${l2BlockNum} but got ${blockNumberFromHeader}`);
|
|
212
|
+
}
|
|
213
|
+
if (!proverId.equals(expectedProverId)) {
|
|
214
|
+
throw new Error(`Prover ID mismatch: expected ${expectedProverId} but got ${proverId}`);
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
header,
|
|
218
|
+
proverId,
|
|
219
|
+
aggregationObject: Buffer.from(hexToBytes(aggregationObjectHex)),
|
|
220
|
+
archiveRoot: Fr.fromString(archiveHex),
|
|
221
|
+
proof: Proof.fromBuffer(Buffer.from(hexToBytes(proofHex))),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2xvZ19oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9ldGhfbG9nX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakYsT0FBTyxFQUlMLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEdBQ04sTUFBTSxNQUFNLENBQUM7QUFJZDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxJQUFtRjtJQUVuRixNQUFNLE1BQU0sR0FBZ0IsRUFBRSxDQUFDO0lBQy9CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUM5QyxZQUEwQixFQUMxQixxQkFBNkIsRUFD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
|
package/dest/factory.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { type AztecKVStore } from '@aztec/kv-store';
|
|
2
1
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
-
import { Archiver } from './archiver/archiver.js';
|
|
4
2
|
import { type ArchiverConfig } from './archiver/config.js';
|
|
5
|
-
export declare function createArchiver(config: ArchiverConfig,
|
|
3
|
+
export declare function createArchiver(config: ArchiverConfig, telemetry?: TelemetryClient, opts?: {
|
|
6
4
|
blockUntilSync: boolean;
|
|
7
|
-
}): import("./archiver/archiver.js").ArchiveSource
|
|
5
|
+
}): Promise<import("./archiver/archiver.js").ArchiveSource>;
|
|
8
6
|
//# sourceMappingURL=factory.d.ts.map
|
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,SAAS,GAAE,eAA2C,EACtD,IAAI,GAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAA6B,2DAS7D"}
|
package/dest/factory.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { createStore } from '@aztec/kv-store/utils';
|
|
1
3
|
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
2
4
|
import { Archiver } from './archiver/archiver.js';
|
|
3
5
|
import { KVArchiverDataStore } from './archiver/index.js';
|
|
4
6
|
import { createArchiverClient } from './rpc/archiver_client.js';
|
|
5
|
-
export function createArchiver(config,
|
|
7
|
+
export async function createArchiver(config, telemetry = new NoopTelemetryClient(), opts = { blockUntilSync: true }) {
|
|
6
8
|
if (!config.archiverUrl) {
|
|
7
|
-
|
|
9
|
+
const store = await createStore('archiver', config, createDebugLogger('aztec:archiver:lmdb'));
|
|
8
10
|
const archiverStore = new KVArchiverDataStore(store, config.maxLogs);
|
|
9
11
|
return Archiver.createAndSync(config, archiverStore, telemetry, opts.blockUntilSync);
|
|
10
12
|
}
|
|
@@ -12,4 +14,4 @@ export function createArchiver(config, store, telemetry = new NoopTelemetryClien
|
|
|
12
14
|
return createArchiverClient(config.archiverUrl);
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE1BQXNCLEVBQ3RCLFlBQTZCLElBQUksbUJBQW1CLEVBQUUsRUFDdEQsT0FBb0MsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFO0lBRTVELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDOUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkYsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0FBQ0gsQ0FBQyJ9
|
package/dest/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './archiver/index.js';
|
|
2
2
|
export * from './rpc/index.js';
|
|
3
3
|
export * from './factory.js';
|
|
4
|
-
export { retrieveL2ProofVerifiedEvents } from './archiver/data_retrieval.js';
|
|
4
|
+
export { retrieveL2ProofVerifiedEvents, retrieveBlockMetadataFromRollup } from './archiver/data_retrieval.js';
|
|
5
|
+
export { getL2BlockProposedLogs } from './archiver/eth_log_handlers.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAE9G,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -9,8 +9,8 @@ import { MemoryArchiverStore } from './archiver/memory_archiver_store/memory_arc
|
|
|
9
9
|
export * from './archiver/index.js';
|
|
10
10
|
export * from './rpc/index.js';
|
|
11
11
|
export * from './factory.js';
|
|
12
|
-
|
|
13
|
-
export {
|
|
12
|
+
export { retrieveL2ProofVerifiedEvents, retrieveBlockMetadataFromRollup } from './archiver/data_retrieval.js';
|
|
13
|
+
export { getL2BlockProposedLogs } from './archiver/eth_log_handlers.js';
|
|
14
14
|
const log = createDebugLogger('aztec:archiver');
|
|
15
15
|
/**
|
|
16
16
|
* A function which instantiates and starts Archiver.
|
|
@@ -40,4 +40,4 @@ if (process.argv[1] === fileURLToPath(import.meta.url).replace(/\/index\.js$/, '
|
|
|
40
40
|
process.exit(1);
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFFaEcsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTlHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhFLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztJQUMxQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFakQsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUM7UUFDdEMsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FDM0IsWUFBWSxFQUNaLFdBQVcsQ0FBQyxhQUFhLEVBQ3pCLFdBQVcsQ0FBQyx5QkFBeUIsRUFDckMsV0FBVyxDQUFDLFlBQVksRUFDeEIsV0FBVyxDQUFDLGVBQWUsRUFDM0IsYUFBYSxFQUNiLElBQUksRUFDSixJQUFJLHVCQUF1QixDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxDQUN2RCxDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDMUIsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDbkYsbUVBQW1FO0lBQ25FLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.53.0",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"exports":
|
|
5
|
+
"exports": {
|
|
6
|
+
".": "./dest/index.js",
|
|
7
|
+
"./data-retrieval": "./dest/archiver/data_retrieval.js"
|
|
8
|
+
},
|
|
6
9
|
"typedocOptions": {
|
|
7
10
|
"entryPoints": [
|
|
8
11
|
"./src/index.ts"
|
|
@@ -58,15 +61,15 @@
|
|
|
58
61
|
]
|
|
59
62
|
},
|
|
60
63
|
"dependencies": {
|
|
61
|
-
"@aztec/circuit-types": "0.
|
|
62
|
-
"@aztec/circuits.js": "0.
|
|
63
|
-
"@aztec/ethereum": "0.
|
|
64
|
-
"@aztec/foundation": "0.
|
|
65
|
-
"@aztec/kv-store": "0.
|
|
66
|
-
"@aztec/l1-artifacts": "0.
|
|
67
|
-
"@aztec/protocol-contracts": "0.
|
|
68
|
-
"@aztec/telemetry-client": "0.
|
|
69
|
-
"@aztec/types": "0.
|
|
64
|
+
"@aztec/circuit-types": "0.53.0",
|
|
65
|
+
"@aztec/circuits.js": "0.53.0",
|
|
66
|
+
"@aztec/ethereum": "0.53.0",
|
|
67
|
+
"@aztec/foundation": "0.53.0",
|
|
68
|
+
"@aztec/kv-store": "0.53.0",
|
|
69
|
+
"@aztec/l1-artifacts": "0.53.0",
|
|
70
|
+
"@aztec/protocol-contracts": "0.53.0",
|
|
71
|
+
"@aztec/telemetry-client": "0.53.0",
|
|
72
|
+
"@aztec/types": "0.53.0",
|
|
70
73
|
"debug": "^4.3.4",
|
|
71
74
|
"lodash.groupby": "^4.6.0",
|
|
72
75
|
"lodash.omit": "^4.5.0",
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { type Body, type InboxLeaf } from '@aztec/circuit-types';
|
|
2
|
-
import { type AppendOnlyTreeSnapshot, Fr, type Header } from '@aztec/circuits.js';
|
|
2
|
+
import { type AppendOnlyTreeSnapshot, Fr, type Header, type Proof } from '@aztec/circuits.js';
|
|
3
3
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { type DebugLogger, createDebugLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
6
6
|
|
|
7
|
-
import { type PublicClient, getAbiItem } from 'viem';
|
|
7
|
+
import { type Hex, type PublicClient, getAbiItem } from 'viem';
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
+
getBlockProofFromSubmitProofTx,
|
|
10
11
|
getL2BlockProposedLogs,
|
|
11
12
|
getMessageSentLogs,
|
|
12
13
|
getTxsPublishedLogs,
|
|
@@ -147,7 +148,7 @@ export async function retrieveL2ProofVerifiedEvents(
|
|
|
147
148
|
rollupAddress: EthAddress,
|
|
148
149
|
searchStartBlock: bigint,
|
|
149
150
|
searchEndBlock?: bigint,
|
|
150
|
-
): Promise<{ l1BlockNumber: bigint; l2BlockNumber: bigint; proverId: Fr }[]> {
|
|
151
|
+
): Promise<{ l1BlockNumber: bigint; l2BlockNumber: bigint; proverId: Fr; txHash: Hex }[]> {
|
|
151
152
|
const logs = await publicClient.getLogs({
|
|
152
153
|
address: rollupAddress.toString(),
|
|
153
154
|
fromBlock: searchStartBlock,
|
|
@@ -160,5 +161,27 @@ export async function retrieveL2ProofVerifiedEvents(
|
|
|
160
161
|
l1BlockNumber: log.blockNumber,
|
|
161
162
|
l2BlockNumber: log.args.blockNumber,
|
|
162
163
|
proverId: Fr.fromString(log.args.proverId),
|
|
164
|
+
txHash: log.transactionHash,
|
|
163
165
|
}));
|
|
164
166
|
}
|
|
167
|
+
|
|
168
|
+
/** Retrieve submitted proofs from the rollup contract */
|
|
169
|
+
export async function retrieveL2ProofsFromRollup(
|
|
170
|
+
publicClient: PublicClient,
|
|
171
|
+
rollupAddress: EthAddress,
|
|
172
|
+
searchStartBlock: bigint,
|
|
173
|
+
searchEndBlock?: bigint,
|
|
174
|
+
): Promise<DataRetrieval<{ proof: Proof; proverId: Fr; l2BlockNumber: bigint; txHash: `0x${string}` }>> {
|
|
175
|
+
const logs = await retrieveL2ProofVerifiedEvents(publicClient, rollupAddress, searchStartBlock, searchEndBlock);
|
|
176
|
+
const retrievedData: { proof: Proof; proverId: Fr; l2BlockNumber: bigint; txHash: `0x${string}` }[] = [];
|
|
177
|
+
const lastProcessedL1BlockNumber = logs.length > 0 ? logs.at(-1)!.l1BlockNumber : searchStartBlock - 1n;
|
|
178
|
+
|
|
179
|
+
for (const { txHash, proverId, l2BlockNumber } of logs) {
|
|
180
|
+
const proofData = await getBlockProofFromSubmitProofTx(publicClient, txHash, l2BlockNumber, proverId);
|
|
181
|
+
retrievedData.push({ proof: proofData.proof, proverId: proofData.proverId, l2BlockNumber, txHash });
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
retrievedData,
|
|
185
|
+
lastProcessedL1BlockNumber,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Body, InboxLeaf } from '@aztec/circuit-types';
|
|
2
|
-
import { AppendOnlyTreeSnapshot, Header } from '@aztec/circuits.js';
|
|
2
|
+
import { AppendOnlyTreeSnapshot, Header, Proof } from '@aztec/circuits.js';
|
|
3
3
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { numToUInt32BE } from '@aztec/foundation/serialize';
|
|
@@ -257,3 +257,57 @@ export function getMessageSentLogs(
|
|
|
257
257
|
toBlock: toBlock + 1n, // the toBlock argument in getLogs is exclusive
|
|
258
258
|
});
|
|
259
259
|
}
|
|
260
|
+
|
|
261
|
+
export type SubmitBlockProof = {
|
|
262
|
+
header: Header;
|
|
263
|
+
archiveRoot: Fr;
|
|
264
|
+
proverId: Fr;
|
|
265
|
+
aggregationObject: Buffer;
|
|
266
|
+
proof: Proof;
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Gets block metadata (header and archive snapshot) from the calldata of an L1 transaction.
|
|
271
|
+
* Assumes that the block was published from an EOA.
|
|
272
|
+
* TODO: Add retries and error management.
|
|
273
|
+
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
274
|
+
* @param txHash - Hash of the tx that published it.
|
|
275
|
+
* @param l2BlockNum - L2 block number.
|
|
276
|
+
* @returns L2 block metadata (header and archive) from the calldata, deserialized
|
|
277
|
+
*/
|
|
278
|
+
export async function getBlockProofFromSubmitProofTx(
|
|
279
|
+
publicClient: PublicClient,
|
|
280
|
+
txHash: `0x${string}`,
|
|
281
|
+
l2BlockNum: bigint,
|
|
282
|
+
expectedProverId: Fr,
|
|
283
|
+
): Promise<SubmitBlockProof> {
|
|
284
|
+
const { input: data } = await publicClient.getTransaction({ hash: txHash });
|
|
285
|
+
const { functionName, args } = decodeFunctionData({
|
|
286
|
+
abi: RollupAbi,
|
|
287
|
+
data,
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
if (!(functionName === 'submitBlockRootProof')) {
|
|
291
|
+
throw new Error(`Unexpected method called ${functionName}`);
|
|
292
|
+
}
|
|
293
|
+
const [headerHex, archiveHex, proverIdHex, aggregationObjectHex, proofHex] = args!;
|
|
294
|
+
|
|
295
|
+
const header = Header.fromBuffer(Buffer.from(hexToBytes(headerHex)));
|
|
296
|
+
const proverId = Fr.fromString(proverIdHex);
|
|
297
|
+
|
|
298
|
+
const blockNumberFromHeader = header.globalVariables.blockNumber.toBigInt();
|
|
299
|
+
if (blockNumberFromHeader !== l2BlockNum) {
|
|
300
|
+
throw new Error(`Block number mismatch: expected ${l2BlockNum} but got ${blockNumberFromHeader}`);
|
|
301
|
+
}
|
|
302
|
+
if (!proverId.equals(expectedProverId)) {
|
|
303
|
+
throw new Error(`Prover ID mismatch: expected ${expectedProverId} but got ${proverId}`);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
return {
|
|
307
|
+
header,
|
|
308
|
+
proverId,
|
|
309
|
+
aggregationObject: Buffer.from(hexToBytes(aggregationObjectHex)),
|
|
310
|
+
archiveRoot: Fr.fromString(archiveHex),
|
|
311
|
+
proof: Proof.fromBuffer(Buffer.from(hexToBytes(proofHex))),
|
|
312
|
+
};
|
|
313
|
+
}
|
package/src/factory.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { createStore } from '@aztec/kv-store/utils';
|
|
2
3
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
4
|
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
4
5
|
|
|
@@ -7,14 +8,13 @@ import { type ArchiverConfig } from './archiver/config.js';
|
|
|
7
8
|
import { KVArchiverDataStore } from './archiver/index.js';
|
|
8
9
|
import { createArchiverClient } from './rpc/archiver_client.js';
|
|
9
10
|
|
|
10
|
-
export function createArchiver(
|
|
11
|
+
export async function createArchiver(
|
|
11
12
|
config: ArchiverConfig,
|
|
12
|
-
store: AztecKVStore,
|
|
13
13
|
telemetry: TelemetryClient = new NoopTelemetryClient(),
|
|
14
14
|
opts: { blockUntilSync: boolean } = { blockUntilSync: true },
|
|
15
15
|
) {
|
|
16
16
|
if (!config.archiverUrl) {
|
|
17
|
-
|
|
17
|
+
const store = await createStore('archiver', config, createDebugLogger('aztec:archiver:lmdb'));
|
|
18
18
|
const archiverStore = new KVArchiverDataStore(store, config.maxLogs);
|
|
19
19
|
return Archiver.createAndSync(config, archiverStore, telemetry, opts.blockUntilSync);
|
|
20
20
|
} else {
|
package/src/index.ts
CHANGED
|
@@ -13,8 +13,9 @@ export * from './archiver/index.js';
|
|
|
13
13
|
export * from './rpc/index.js';
|
|
14
14
|
export * from './factory.js';
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
export { retrieveL2ProofVerifiedEvents, retrieveBlockMetadataFromRollup } from './archiver/data_retrieval.js';
|
|
17
|
+
|
|
18
|
+
export { getL2BlockProposedLogs } from './archiver/eth_log_handlers.js';
|
|
18
19
|
|
|
19
20
|
const log = createDebugLogger('aztec:archiver');
|
|
20
21
|
|