@aztec/archiver 0.0.0-test.1 → 0.0.1-commit.5476d83
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 +27 -6
- package/dest/archiver/archiver.d.ts +147 -57
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +841 -333
- package/dest/archiver/archiver_store.d.ts +85 -50
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +708 -213
- package/dest/archiver/config.d.ts +5 -21
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +21 -12
- package/dest/archiver/data_retrieval.d.ts +32 -27
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +197 -94
- package/dest/archiver/errors.d.ts +9 -1
- package/dest/archiver/errors.d.ts.map +1 -1
- package/dest/archiver/errors.js +12 -0
- package/dest/archiver/index.d.ts +3 -4
- package/dest/archiver/index.d.ts.map +1 -1
- package/dest/archiver/index.js +1 -2
- package/dest/archiver/instrumentation.d.ts +12 -6
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +58 -17
- package/dest/archiver/kv_archiver_store/block_store.d.ts +48 -11
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +216 -63
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +3 -3
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_class_store.js +12 -18
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +11 -8
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.js +30 -16
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +50 -35
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +88 -46
- package/dest/archiver/kv_archiver_store/log_store.d.ts +2 -2
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +18 -46
- package/dest/archiver/kv_archiver_store/message_store.d.ts +23 -17
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +150 -48
- package/dest/archiver/structs/data_retrieval.d.ts +1 -1
- package/dest/archiver/structs/inbox_message.d.ts +15 -0
- package/dest/archiver/structs/inbox_message.d.ts.map +1 -0
- package/dest/archiver/structs/inbox_message.js +38 -0
- package/dest/archiver/structs/published.d.ts +3 -11
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/archiver/structs/published.js +1 -1
- package/dest/archiver/validation.d.ts +17 -0
- package/dest/archiver/validation.d.ts.map +1 -0
- package/dest/archiver/validation.js +98 -0
- package/dest/factory.d.ts +8 -13
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +18 -49
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/rpc/index.d.ts +2 -3
- package/dest/rpc/index.d.ts.map +1 -1
- package/dest/rpc/index.js +1 -4
- package/dest/test/index.d.ts +1 -1
- package/dest/test/mock_archiver.d.ts +2 -2
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.d.ts +5 -3
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +14 -1
- package/dest/test/mock_l2_block_source.d.ts +38 -10
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +119 -8
- package/dest/test/mock_structs.d.ts +9 -0
- package/dest/test/mock_structs.d.ts.map +1 -0
- package/dest/test/mock_structs.js +37 -0
- package/package.json +28 -30
- package/src/archiver/archiver.ts +1087 -410
- package/src/archiver/archiver_store.ts +97 -55
- package/src/archiver/archiver_store_test_suite.ts +664 -210
- package/src/archiver/config.ts +28 -41
- package/src/archiver/data_retrieval.ts +279 -125
- package/src/archiver/errors.ts +21 -0
- package/src/archiver/index.ts +2 -3
- package/src/archiver/instrumentation.ts +77 -22
- package/src/archiver/kv_archiver_store/block_store.ts +270 -72
- package/src/archiver/kv_archiver_store/contract_class_store.ts +13 -23
- package/src/archiver/kv_archiver_store/contract_instance_store.ts +35 -27
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +127 -63
- package/src/archiver/kv_archiver_store/log_store.ts +24 -62
- package/src/archiver/kv_archiver_store/message_store.ts +209 -53
- package/src/archiver/structs/inbox_message.ts +41 -0
- package/src/archiver/structs/published.ts +2 -11
- package/src/archiver/validation.ts +124 -0
- package/src/factory.ts +24 -66
- package/src/index.ts +1 -1
- package/src/rpc/index.ts +1 -5
- package/src/test/mock_archiver.ts +1 -1
- package/src/test/mock_l1_to_l2_message_source.ts +14 -3
- package/src/test/mock_l2_block_source.ts +158 -13
- package/src/test/mock_structs.ts +49 -0
- package/dest/archiver/kv_archiver_store/nullifier_store.d.ts +0 -12
- package/dest/archiver/kv_archiver_store/nullifier_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/nullifier_store.js +0 -73
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +0 -23
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +0 -1
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +0 -49
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +0 -175
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +0 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +0 -636
- package/src/archiver/kv_archiver_store/nullifier_store.ts +0 -97
- package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +0 -61
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +0 -801
package/dest/rpc/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,0BAA0B,CAAC;AAGjG,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAmC,GACvC,WAAW,CAMb
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,0BAA0B,CAAC;AAGjG,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAmC,GACvC,WAAW,CAMb"}
|
package/dest/rpc/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createSafeJsonRpcClient } from '@aztec/foundation/json-rpc/client';
|
|
2
2
|
import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
3
3
|
import { getVersioningResponseHandler } from '@aztec/stdlib/versioning';
|
|
4
|
-
import {
|
|
4
|
+
import { makeTracedFetch } from '@aztec/telemetry-client';
|
|
5
5
|
export function createArchiverClient(url, versions, fetch = makeTracedFetch([
|
|
6
6
|
1,
|
|
7
7
|
2,
|
|
@@ -13,6 +13,3 @@ export function createArchiverClient(url, versions, fetch = makeTracedFetch([
|
|
|
13
13
|
onResponse: getVersioningResponseHandler(versions)
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
export function createArchiverRpcServer(handler) {
|
|
17
|
-
return createTracedJsonRpcServer(handler, ArchiverApiSchema);
|
|
18
|
-
}
|
package/dest/test/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './mock_l2_block_source.js';
|
|
2
2
|
export * from './mock_l1_to_l2_message_source.js';
|
|
3
3
|
export * from './mock_archiver.js';
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9CQUFvQixDQUFDIn0=
|
|
@@ -8,7 +8,7 @@ import { MockL2BlockSource } from './mock_l2_block_source.js';
|
|
|
8
8
|
export declare class MockArchiver extends MockL2BlockSource implements L2BlockSource, L1ToL2MessageSource {
|
|
9
9
|
private messageSource;
|
|
10
10
|
setL1ToL2Messages(blockNumber: number, msgs: Fr[]): void;
|
|
11
|
-
getL1ToL2Messages(blockNumber:
|
|
11
|
+
getL1ToL2Messages(blockNumber: number): Promise<Fr[]>;
|
|
12
12
|
getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined>;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
@@ -20,4 +20,4 @@ export declare class MockPrefilledArchiver extends MockArchiver {
|
|
|
20
20
|
setPrefilledBlocks(blocks: L2Block[], messages: Fr[][]): void;
|
|
21
21
|
createBlocks(numBlocks: number): Promise<void>;
|
|
22
22
|
}
|
|
23
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19hcmNoaXZlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvbW9ja19hcmNoaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUduRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RDs7R0FFRztBQUNILHFCQUFhLFlBQWEsU0FBUSxpQkFBa0IsWUFBVyxhQUFhLEVBQUUsbUJBQW1CO0lBQy9GLE9BQU8sQ0FBQyxhQUFhLENBQWtDO0lBRWhELGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUV2RDtJQUVELGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBRXBEO0lBRUQscUJBQXFCLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVyRTtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxxQkFBc0IsU0FBUSxZQUFZO0lBQ3JELE9BQU8sQ0FBQyxXQUFXLENBQVk7SUFFL0IsWUFBWSxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBSW5EO0lBRU0sa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUs1RDtJQUVlLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxpQkFVN0M7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_archiver.d.ts","sourceRoot":"","sources":["../../src/test/mock_archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAAkB,YAAW,aAAa,EAAE,mBAAmB;IAC/F,OAAO,CAAC,aAAa,CAAkC;IAEhD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"mock_archiver.d.ts","sourceRoot":"","sources":["../../src/test/mock_archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAAkB,YAAW,aAAa,EAAE,mBAAmB;IAC/F,OAAO,CAAC,aAAa,CAAkC;IAEhD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,QAEvD;IAED,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAEpD;IAED,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAErE;CACF;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,WAAW,CAAY;IAE/B,YAAY,WAAW,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAInD;IAEM,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAK5D;IAEe,YAAY,CAAC,SAAS,EAAE,MAAM,iBAU7C;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import type { L2Tips } from '@aztec/stdlib/block';
|
|
2
3
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
3
4
|
/**
|
|
4
5
|
* A mocked implementation of L1ToL2MessageSource to be used in tests.
|
|
@@ -9,8 +10,9 @@ export declare class MockL1ToL2MessageSource implements L1ToL2MessageSource {
|
|
|
9
10
|
constructor(blockNumber: number);
|
|
10
11
|
setL1ToL2Messages(blockNumber: number, msgs: Fr[]): void;
|
|
11
12
|
setBlockNumber(blockNumber: number): void;
|
|
12
|
-
getL1ToL2Messages(blockNumber:
|
|
13
|
+
getL1ToL2Messages(blockNumber: number): Promise<Fr[]>;
|
|
13
14
|
getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined>;
|
|
14
15
|
getBlockNumber(): Promise<number>;
|
|
16
|
+
getL2Tips(): Promise<L2Tips>;
|
|
15
17
|
}
|
|
16
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19sMV90b19sMl9tZXNzYWdlX3NvdXJjZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvbW9ja19sMV90b19sMl9tZXNzYWdlX3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRTs7R0FFRztBQUNILHFCQUFhLHVCQUF3QixZQUFXLG1CQUFtQjtJQUdyRCxPQUFPLENBQUMsV0FBVztJQUYvQixPQUFPLENBQUMsZ0JBQWdCLENBQTJCO0lBRW5ELFlBQW9CLFdBQVcsRUFBRSxNQUFNLEVBQUk7SUFFcEMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBRXZEO0lBRU0sY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLFFBRXhDO0lBRUQsaUJBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FFcEQ7SUFFRCxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRXJFO0lBRUQsY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFaEM7SUFFRCxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQVEzQjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_l1_to_l2_message_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l1_to_l2_message_source.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mock_l1_to_l2_message_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l1_to_l2_message_source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAGrD,OAAO,CAAC,WAAW;IAF/B,OAAO,CAAC,gBAAgB,CAA2B;IAEnD,YAAoB,WAAW,EAAE,MAAM,EAAI;IAEpC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,QAEvD;IAEM,cAAc,CAAC,WAAW,EAAE,MAAM,QAExC;IAED,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAEpD;IAED,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAErE;IAED,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhC;IAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ3B;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
1
2
|
/**
|
|
2
3
|
* A mocked implementation of L1ToL2MessageSource to be used in tests.
|
|
3
4
|
*/ export class MockL1ToL2MessageSource {
|
|
@@ -14,7 +15,7 @@
|
|
|
14
15
|
this.blockNumber = blockNumber;
|
|
15
16
|
}
|
|
16
17
|
getL1ToL2Messages(blockNumber) {
|
|
17
|
-
return Promise.resolve(this.messagesPerBlock.get(
|
|
18
|
+
return Promise.resolve(this.messagesPerBlock.get(blockNumber) ?? []);
|
|
18
19
|
}
|
|
19
20
|
getL1ToL2MessageIndex(_l1ToL2Message) {
|
|
20
21
|
throw new Error('Method not implemented.');
|
|
@@ -22,4 +23,16 @@
|
|
|
22
23
|
getBlockNumber() {
|
|
23
24
|
return Promise.resolve(this.blockNumber);
|
|
24
25
|
}
|
|
26
|
+
getL2Tips() {
|
|
27
|
+
const number = this.blockNumber;
|
|
28
|
+
const tip = {
|
|
29
|
+
number,
|
|
30
|
+
hash: new Fr(number).toString()
|
|
31
|
+
};
|
|
32
|
+
return Promise.resolve({
|
|
33
|
+
latest: tip,
|
|
34
|
+
proven: tip,
|
|
35
|
+
finalized: tip
|
|
36
|
+
});
|
|
37
|
+
}
|
|
25
38
|
}
|
|
@@ -1,18 +1,26 @@
|
|
|
1
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import {
|
|
3
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
+
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
5
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
+
import { L2Block, L2BlockHash, type L2BlockSource, type L2Tips, PublishedL2Block, type ValidateBlockResult } from '@aztec/stdlib/block';
|
|
7
|
+
import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
3
8
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
4
9
|
import { type BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
10
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
5
11
|
/**
|
|
6
12
|
* A mocked implementation of L2BlockSource to be used in tests.
|
|
7
13
|
*/
|
|
8
|
-
export declare class MockL2BlockSource implements L2BlockSource {
|
|
14
|
+
export declare class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
9
15
|
protected l2Blocks: L2Block[];
|
|
10
16
|
private provenBlockNumber;
|
|
17
|
+
private finalizedBlockNumber;
|
|
11
18
|
private log;
|
|
12
19
|
createBlocks(numBlocks: number): Promise<void>;
|
|
13
20
|
addBlocks(blocks: L2Block[]): void;
|
|
14
21
|
removeBlocks(numBlocks: number): void;
|
|
15
22
|
setProvenBlockNumber(provenBlockNumber: number): void;
|
|
23
|
+
setFinalizedBlockNumber(finalizedBlockNumber: number): void;
|
|
16
24
|
/**
|
|
17
25
|
* Method to fetch the rollup contract address at the base-layer.
|
|
18
26
|
* @returns The rollup address.
|
|
@@ -42,17 +50,24 @@ export declare class MockL2BlockSource implements L2BlockSource {
|
|
|
42
50
|
* @returns The requested mocked L2 blocks.
|
|
43
51
|
*/
|
|
44
52
|
getBlocks(from: number, limit: number, proven?: boolean): Promise<L2Block[]>;
|
|
53
|
+
getPublishedBlocks(from: number, limit: number, proven?: boolean): Promise<PublishedL2Block[]>;
|
|
54
|
+
getPublishedBlockByHash(blockHash: Fr): Promise<PublishedL2Block | undefined>;
|
|
55
|
+
getPublishedBlockByArchive(archive: Fr): Promise<PublishedL2Block | undefined>;
|
|
56
|
+
getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
|
|
57
|
+
getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
|
|
45
58
|
getBlockHeader(number: number | 'latest'): Promise<BlockHeader | undefined>;
|
|
46
|
-
getBlocksForEpoch(epochNumber:
|
|
59
|
+
getBlocksForEpoch(epochNumber: EpochNumber): Promise<L2Block[]>;
|
|
60
|
+
getBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
|
|
47
61
|
/**
|
|
48
62
|
* Gets a tx effect.
|
|
49
|
-
* @param txHash - The hash of
|
|
50
|
-
* @returns The requested tx effect.
|
|
63
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
64
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
51
65
|
*/
|
|
52
66
|
getTxEffect(txHash: TxHash): Promise<{
|
|
53
67
|
data: import("@aztec/stdlib/tx").TxEffect;
|
|
54
68
|
l2BlockNumber: number;
|
|
55
|
-
l2BlockHash:
|
|
69
|
+
l2BlockHash: L2BlockHash;
|
|
70
|
+
txIndexInBlock: number;
|
|
56
71
|
} | undefined>;
|
|
57
72
|
/**
|
|
58
73
|
* Gets a receipt of a settled tx.
|
|
@@ -61,10 +76,14 @@ export declare class MockL2BlockSource implements L2BlockSource {
|
|
|
61
76
|
*/
|
|
62
77
|
getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
|
|
63
78
|
getL2Tips(): Promise<L2Tips>;
|
|
64
|
-
getL2EpochNumber(): Promise<
|
|
65
|
-
getL2SlotNumber(): Promise<
|
|
66
|
-
isEpochComplete(_epochNumber:
|
|
79
|
+
getL2EpochNumber(): Promise<EpochNumber>;
|
|
80
|
+
getL2SlotNumber(): Promise<SlotNumber>;
|
|
81
|
+
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
|
|
67
82
|
getL1Constants(): Promise<L1RollupConstants>;
|
|
83
|
+
getGenesisValues(): Promise<{
|
|
84
|
+
genesisArchiveRoot: Fr;
|
|
85
|
+
}>;
|
|
86
|
+
getL1Timestamp(): Promise<bigint>;
|
|
68
87
|
/**
|
|
69
88
|
* Starts the block source. In this mock implementation, this is a noop.
|
|
70
89
|
* @returns A promise that signals the initialization of the l2 block source on completion.
|
|
@@ -75,5 +94,14 @@ export declare class MockL2BlockSource implements L2BlockSource {
|
|
|
75
94
|
* @returns A promise that signals the l2 block source is now stopped.
|
|
76
95
|
*/
|
|
77
96
|
stop(): Promise<void>;
|
|
97
|
+
getContractClass(_id: Fr): Promise<ContractClassPublic | undefined>;
|
|
98
|
+
getBytecodeCommitment(_id: Fr): Promise<Fr | undefined>;
|
|
99
|
+
getContract(_address: AztecAddress, _timestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
|
|
100
|
+
getContractClassIds(): Promise<Fr[]>;
|
|
101
|
+
getDebugFunctionName(_address: AztecAddress, _selector: FunctionSelector): Promise<string | undefined>;
|
|
102
|
+
registerContractFunctionSignatures(_signatures: string[]): Promise<void>;
|
|
103
|
+
syncImmediate(): Promise<void>;
|
|
104
|
+
isPendingChainInvalid(): Promise<boolean>;
|
|
105
|
+
getPendingChainValidationStatus(): Promise<ValidateBlockResult>;
|
|
78
106
|
}
|
|
79
|
-
//# sourceMappingURL=
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19sMl9ibG9ja19zb3VyY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfbDJfYmxvY2tfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxPQUFPLEVBQ1AsV0FBVyxFQUNYLEtBQUssYUFBYSxFQUNsQixLQUFLLE1BQU0sRUFDWCxnQkFBZ0IsRUFDaEIsS0FBSyxtQkFBbUIsRUFDekIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ILE9BQU8sRUFBMEIsS0FBSyxpQkFBaUIsRUFBd0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNuSCxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gscUJBQWEsaUJBQWtCLFlBQVcsYUFBYSxFQUFFLGtCQUFrQjtJQUN6RSxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFNO0lBRW5DLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBYTtJQUN0QyxPQUFPLENBQUMsb0JBQW9CLENBQWE7SUFFekMsT0FBTyxDQUFDLEdB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"
|
|
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,14 +1,18 @@
|
|
|
1
|
+
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
1
2
|
import { DefaultL1ContractsConfig } from '@aztec/ethereum';
|
|
3
|
+
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
6
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
-
import { L2Block, L2BlockHash } from '@aztec/stdlib/block';
|
|
5
|
-
import { getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
7
|
+
import { L2Block, L2BlockHash, PublishedL2Block } from '@aztec/stdlib/block';
|
|
8
|
+
import { EmptyL1RollupConstants, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
6
9
|
import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
7
10
|
/**
|
|
8
11
|
* A mocked implementation of L2BlockSource to be used in tests.
|
|
9
12
|
*/ export class MockL2BlockSource {
|
|
10
13
|
l2Blocks = [];
|
|
11
14
|
provenBlockNumber = 0;
|
|
15
|
+
finalizedBlockNumber = 0;
|
|
12
16
|
log = createLogger('archiver:mock_l2_block_source');
|
|
13
17
|
async createBlocks(numBlocks) {
|
|
14
18
|
for(let i = 0; i < numBlocks; i++){
|
|
@@ -29,6 +33,12 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
29
33
|
setProvenBlockNumber(provenBlockNumber) {
|
|
30
34
|
this.provenBlockNumber = provenBlockNumber;
|
|
31
35
|
}
|
|
36
|
+
setFinalizedBlockNumber(finalizedBlockNumber) {
|
|
37
|
+
if (finalizedBlockNumber > this.provenBlockNumber) {
|
|
38
|
+
this.provenBlockNumber = finalizedBlockNumber;
|
|
39
|
+
}
|
|
40
|
+
this.finalizedBlockNumber = finalizedBlockNumber;
|
|
41
|
+
}
|
|
32
42
|
/**
|
|
33
43
|
* Method to fetch the rollup contract address at the base-layer.
|
|
34
44
|
* @returns The rollup address.
|
|
@@ -65,8 +75,65 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
65
75
|
*/ getBlocks(from, limit, proven) {
|
|
66
76
|
return Promise.resolve(this.l2Blocks.slice(from - 1, from - 1 + limit).filter((b)=>!proven || this.provenBlockNumber === undefined || b.number <= this.provenBlockNumber));
|
|
67
77
|
}
|
|
78
|
+
async getPublishedBlocks(from, limit, proven) {
|
|
79
|
+
const blocks = await this.getBlocks(from, limit, proven);
|
|
80
|
+
return blocks.map((block)=>PublishedL2Block.fromFields({
|
|
81
|
+
block,
|
|
82
|
+
l1: {
|
|
83
|
+
blockNumber: BigInt(block.number),
|
|
84
|
+
blockHash: Buffer32.random().toString(),
|
|
85
|
+
timestamp: BigInt(block.number)
|
|
86
|
+
},
|
|
87
|
+
attestations: []
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
async getPublishedBlockByHash(blockHash) {
|
|
91
|
+
for (const block of this.l2Blocks){
|
|
92
|
+
const hash = await block.hash();
|
|
93
|
+
if (hash.equals(blockHash)) {
|
|
94
|
+
return PublishedL2Block.fromFields({
|
|
95
|
+
block,
|
|
96
|
+
l1: {
|
|
97
|
+
blockNumber: BigInt(block.number),
|
|
98
|
+
blockHash: Buffer32.random().toString(),
|
|
99
|
+
timestamp: BigInt(block.number)
|
|
100
|
+
},
|
|
101
|
+
attestations: []
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
getPublishedBlockByArchive(archive) {
|
|
108
|
+
const block = this.l2Blocks.find((b)=>b.archive.root.equals(archive));
|
|
109
|
+
if (!block) {
|
|
110
|
+
return Promise.resolve(undefined);
|
|
111
|
+
}
|
|
112
|
+
return Promise.resolve(PublishedL2Block.fromFields({
|
|
113
|
+
block,
|
|
114
|
+
l1: {
|
|
115
|
+
blockNumber: BigInt(block.number),
|
|
116
|
+
blockHash: Buffer32.random().toString(),
|
|
117
|
+
timestamp: BigInt(block.number)
|
|
118
|
+
},
|
|
119
|
+
attestations: []
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
async getBlockHeaderByHash(blockHash) {
|
|
123
|
+
for (const block of this.l2Blocks){
|
|
124
|
+
const hash = await block.hash();
|
|
125
|
+
if (hash.equals(blockHash)) {
|
|
126
|
+
return block.getBlockHeader();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
getBlockHeaderByArchive(archive) {
|
|
132
|
+
const block = this.l2Blocks.find((b)=>b.archive.root.equals(archive));
|
|
133
|
+
return Promise.resolve(block?.getBlockHeader());
|
|
134
|
+
}
|
|
68
135
|
getBlockHeader(number) {
|
|
69
|
-
return Promise.resolve(this.l2Blocks.at(typeof number === 'number' ? number - 1 : -1)?.
|
|
136
|
+
return Promise.resolve(this.l2Blocks.at(typeof number === 'number' ? number - 1 : -1)?.getBlockHeader());
|
|
70
137
|
}
|
|
71
138
|
getBlocksForEpoch(epochNumber) {
|
|
72
139
|
const epochDuration = DefaultL1ContractsConfig.aztecEpochDuration;
|
|
@@ -74,15 +141,19 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
74
141
|
epochDuration
|
|
75
142
|
});
|
|
76
143
|
const blocks = this.l2Blocks.filter((b)=>{
|
|
77
|
-
const slot = b.header.globalVariables.slotNumber
|
|
144
|
+
const slot = b.header.globalVariables.slotNumber;
|
|
78
145
|
return slot >= start && slot <= end;
|
|
79
146
|
});
|
|
80
147
|
return Promise.resolve(blocks);
|
|
81
148
|
}
|
|
149
|
+
async getBlockHeadersForEpoch(epochNumber) {
|
|
150
|
+
const blocks = await this.getBlocksForEpoch(epochNumber);
|
|
151
|
+
return blocks.map((b)=>b.getBlockHeader());
|
|
152
|
+
}
|
|
82
153
|
/**
|
|
83
154
|
* Gets a tx effect.
|
|
84
|
-
* @param txHash - The hash of
|
|
85
|
-
* @returns The requested tx effect.
|
|
155
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
156
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
86
157
|
*/ async getTxEffect(txHash) {
|
|
87
158
|
const match = this.l2Blocks.flatMap((b)=>b.body.txEffects.map((tx)=>[
|
|
88
159
|
tx,
|
|
@@ -95,7 +166,8 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
95
166
|
return {
|
|
96
167
|
data: txEffect,
|
|
97
168
|
l2BlockNumber: block.number,
|
|
98
|
-
l2BlockHash: (await block.hash())
|
|
169
|
+
l2BlockHash: L2BlockHash.fromField(await block.hash()),
|
|
170
|
+
txIndexInBlock: block.body.txEffects.indexOf(txEffect)
|
|
99
171
|
};
|
|
100
172
|
}
|
|
101
173
|
/**
|
|
@@ -116,7 +188,7 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
116
188
|
const [latest, proven, finalized] = [
|
|
117
189
|
await this.getBlockNumber(),
|
|
118
190
|
await this.getProvenBlockNumber(),
|
|
119
|
-
|
|
191
|
+
this.finalizedBlockNumber
|
|
120
192
|
];
|
|
121
193
|
const latestBlock = this.l2Blocks[latest - 1];
|
|
122
194
|
const provenBlock = this.l2Blocks[proven - 1];
|
|
@@ -146,18 +218,57 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
146
218
|
throw new Error('Method not implemented.');
|
|
147
219
|
}
|
|
148
220
|
getL1Constants() {
|
|
221
|
+
return Promise.resolve(EmptyL1RollupConstants);
|
|
222
|
+
}
|
|
223
|
+
getGenesisValues() {
|
|
224
|
+
return Promise.resolve({
|
|
225
|
+
genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT)
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
getL1Timestamp() {
|
|
149
229
|
throw new Error('Method not implemented.');
|
|
150
230
|
}
|
|
151
231
|
/**
|
|
152
232
|
* Starts the block source. In this mock implementation, this is a noop.
|
|
153
233
|
* @returns A promise that signals the initialization of the l2 block source on completion.
|
|
154
234
|
*/ start() {
|
|
235
|
+
this.log.verbose('Starting mock L2 block source');
|
|
155
236
|
return Promise.resolve();
|
|
156
237
|
}
|
|
157
238
|
/**
|
|
158
239
|
* Stops the block source. In this mock implementation, this is a noop.
|
|
159
240
|
* @returns A promise that signals the l2 block source is now stopped.
|
|
160
241
|
*/ stop() {
|
|
242
|
+
this.log.verbose('Stopping mock L2 block source');
|
|
161
243
|
return Promise.resolve();
|
|
162
244
|
}
|
|
245
|
+
getContractClass(_id) {
|
|
246
|
+
return Promise.resolve(undefined);
|
|
247
|
+
}
|
|
248
|
+
getBytecodeCommitment(_id) {
|
|
249
|
+
return Promise.resolve(undefined);
|
|
250
|
+
}
|
|
251
|
+
getContract(_address, _timestamp) {
|
|
252
|
+
return Promise.resolve(undefined);
|
|
253
|
+
}
|
|
254
|
+
getContractClassIds() {
|
|
255
|
+
return Promise.resolve([]);
|
|
256
|
+
}
|
|
257
|
+
getDebugFunctionName(_address, _selector) {
|
|
258
|
+
return Promise.resolve(undefined);
|
|
259
|
+
}
|
|
260
|
+
registerContractFunctionSignatures(_signatures) {
|
|
261
|
+
return Promise.resolve();
|
|
262
|
+
}
|
|
263
|
+
syncImmediate() {
|
|
264
|
+
return Promise.resolve();
|
|
265
|
+
}
|
|
266
|
+
isPendingChainInvalid() {
|
|
267
|
+
return Promise.resolve(false);
|
|
268
|
+
}
|
|
269
|
+
getPendingChainValidationStatus() {
|
|
270
|
+
return Promise.resolve({
|
|
271
|
+
valid: true
|
|
272
|
+
});
|
|
273
|
+
}
|
|
163
274
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Buffer16 } from '@aztec/foundation/buffer';
|
|
2
|
+
import { type InboxMessage } from '../archiver/structs/inbox_message.js';
|
|
3
|
+
export declare function makeInboxMessage(previousRollingHash?: Buffer16, overrides?: Partial<InboxMessage>): InboxMessage;
|
|
4
|
+
export declare function makeInboxMessages(count: number, opts?: {
|
|
5
|
+
initialHash?: Buffer16;
|
|
6
|
+
initialL2BlockNumber?: number;
|
|
7
|
+
overrideFn?: (msg: InboxMessage, index: number) => InboxMessage;
|
|
8
|
+
}): InboxMessage[];
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19zdHJ1Y3RzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9tb2NrX3N0cnVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBSzlELE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUU1Rix3QkFBZ0IsZ0JBQWdCLENBQzlCLG1CQUFtQixXQUFnQixFQUNuQyxTQUFTLEdBQUUsT0FBTyxDQUFDLFlBQVksQ0FBTSxHQUNwQyxZQUFZLENBZ0JkO0FBRUQsd0JBQWdCLGlCQUFpQixDQUMvQixLQUFLLEVBQUUsTUFBTSxFQUNiLElBQUksR0FBRTtJQUNKLFdBQVcsQ0FBQyxFQUFFLFFBQVEsQ0FBQztJQUN2QixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM5QixVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxZQUFZLENBQUM7Q0FDNUQsR0FDTCxZQUFZLEVBQUUsQ0FhaEIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock_structs.d.ts","sourceRoot":"","sources":["../../src/test/mock_structs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAK9D,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,sCAAsC,CAAC;AAE5F,wBAAgB,gBAAgB,CAC9B,mBAAmB,WAAgB,EACnC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GACpC,YAAY,CAgBd;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IACJ,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,YAAY,CAAC;CAC5D,GACL,YAAY,EAAE,CAahB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
+
import { randomBigInt, randomInt } from '@aztec/foundation/crypto';
|
|
3
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
+
import { InboxLeaf } from '@aztec/stdlib/messaging';
|
|
5
|
+
import { updateRollingHash } from '../archiver/structs/inbox_message.js';
|
|
6
|
+
export function makeInboxMessage(previousRollingHash = Buffer16.ZERO, overrides = {}) {
|
|
7
|
+
const { l2BlockNumber = randomInt(100) + 1 } = overrides;
|
|
8
|
+
const { l1BlockNumber = randomBigInt(100n) + 1n } = overrides;
|
|
9
|
+
const { l1BlockHash = Buffer32.random() } = overrides;
|
|
10
|
+
const { leaf = Fr.random() } = overrides;
|
|
11
|
+
const { rollingHash = updateRollingHash(previousRollingHash, leaf) } = overrides;
|
|
12
|
+
const { index = InboxLeaf.smallestIndexFromL2Block(l2BlockNumber) } = overrides;
|
|
13
|
+
return {
|
|
14
|
+
index,
|
|
15
|
+
leaf,
|
|
16
|
+
l2BlockNumber,
|
|
17
|
+
l1BlockNumber,
|
|
18
|
+
l1BlockHash,
|
|
19
|
+
rollingHash
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function makeInboxMessages(count, opts = {}) {
|
|
23
|
+
const { initialHash = Buffer16.ZERO, overrideFn = (msg)=>msg, initialL2BlockNumber = 1 } = opts;
|
|
24
|
+
const messages = [];
|
|
25
|
+
let rollingHash = initialHash;
|
|
26
|
+
for(let i = 0; i < count; i++){
|
|
27
|
+
const leaf = Fr.random();
|
|
28
|
+
const l2BlockNumber = i + initialL2BlockNumber;
|
|
29
|
+
const message = overrideFn(makeInboxMessage(rollingHash, {
|
|
30
|
+
leaf,
|
|
31
|
+
l2BlockNumber
|
|
32
|
+
}), i);
|
|
33
|
+
rollingHash = message.rollingHash;
|
|
34
|
+
messages.push(message);
|
|
35
|
+
}
|
|
36
|
+
return messages;
|
|
37
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1-commit.5476d83",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -17,11 +17,9 @@
|
|
|
17
17
|
"tsconfig": "./tsconfig.json"
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
|
-
"build": "yarn clean &&
|
|
21
|
-
"build:dev": "
|
|
20
|
+
"build": "yarn clean && tsgo -b",
|
|
21
|
+
"build:dev": "tsgo -b --watch",
|
|
22
22
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
23
|
-
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
24
|
-
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
25
23
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
|
|
26
24
|
"test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
|
|
27
25
|
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
|
|
@@ -61,42 +59,42 @@
|
|
|
61
59
|
"testTimeout": 120000,
|
|
62
60
|
"setupFiles": [
|
|
63
61
|
"../../foundation/src/jest/setup.mjs"
|
|
62
|
+
],
|
|
63
|
+
"testEnvironment": "../../foundation/src/jest/env.mjs",
|
|
64
|
+
"setupFilesAfterEnv": [
|
|
65
|
+
"../../foundation/src/jest/setupAfterEnv.mjs"
|
|
64
66
|
]
|
|
65
67
|
},
|
|
66
68
|
"dependencies": {
|
|
67
|
-
"@aztec/blob-lib": "0.0.
|
|
68
|
-
"@aztec/blob-sink": "0.0.
|
|
69
|
-
"@aztec/constants": "0.0.
|
|
70
|
-
"@aztec/
|
|
71
|
-
"@aztec/
|
|
72
|
-
"@aztec/
|
|
73
|
-
"@aztec/
|
|
74
|
-
"@aztec/
|
|
75
|
-
"@aztec/noir-protocol-circuits-types": "0.0.
|
|
76
|
-
"@aztec/protocol-contracts": "0.0.
|
|
77
|
-
"@aztec/stdlib": "0.0.
|
|
78
|
-
"@aztec/telemetry-client": "0.0.
|
|
79
|
-
"debug": "^4.3.4",
|
|
69
|
+
"@aztec/blob-lib": "0.0.1-commit.5476d83",
|
|
70
|
+
"@aztec/blob-sink": "0.0.1-commit.5476d83",
|
|
71
|
+
"@aztec/constants": "0.0.1-commit.5476d83",
|
|
72
|
+
"@aztec/epoch-cache": "0.0.1-commit.5476d83",
|
|
73
|
+
"@aztec/ethereum": "0.0.1-commit.5476d83",
|
|
74
|
+
"@aztec/foundation": "0.0.1-commit.5476d83",
|
|
75
|
+
"@aztec/kv-store": "0.0.1-commit.5476d83",
|
|
76
|
+
"@aztec/l1-artifacts": "0.0.1-commit.5476d83",
|
|
77
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.5476d83",
|
|
78
|
+
"@aztec/protocol-contracts": "0.0.1-commit.5476d83",
|
|
79
|
+
"@aztec/stdlib": "0.0.1-commit.5476d83",
|
|
80
|
+
"@aztec/telemetry-client": "0.0.1-commit.5476d83",
|
|
80
81
|
"lodash.groupby": "^4.6.0",
|
|
81
82
|
"lodash.omit": "^4.5.0",
|
|
82
|
-
"tsc-watch": "^6.0.0",
|
|
83
83
|
"tslib": "^2.5.0",
|
|
84
|
-
"viem": "2.
|
|
85
|
-
"ws": "^8.13.0"
|
|
84
|
+
"viem": "npm:@aztec/viem@2.38.2"
|
|
86
85
|
},
|
|
87
86
|
"devDependencies": {
|
|
88
|
-
"@jest/globals": "^
|
|
89
|
-
"@types/
|
|
90
|
-
"@types/jest": "^29.5.0",
|
|
87
|
+
"@jest/globals": "^30.0.0",
|
|
88
|
+
"@types/jest": "^30.0.0",
|
|
91
89
|
"@types/lodash.groupby": "^4.6.9",
|
|
92
90
|
"@types/lodash.omit": "^4.5.7",
|
|
93
|
-
"@types/node": "^
|
|
94
|
-
"@
|
|
91
|
+
"@types/node": "^22.15.17",
|
|
92
|
+
"@typescript/native-preview": "7.0.0-dev.20251126.1",
|
|
95
93
|
"concurrently": "^8.0.1",
|
|
96
|
-
"jest": "^
|
|
97
|
-
"jest-mock-extended": "^
|
|
94
|
+
"jest": "^30.0.0",
|
|
95
|
+
"jest-mock-extended": "^4.0.0",
|
|
98
96
|
"ts-node": "^10.9.1",
|
|
99
|
-
"typescript": "^5.
|
|
97
|
+
"typescript": "^5.3.3"
|
|
100
98
|
},
|
|
101
99
|
"files": [
|
|
102
100
|
"dest",
|
|
@@ -105,6 +103,6 @@
|
|
|
105
103
|
],
|
|
106
104
|
"types": "./dest/index.d.ts",
|
|
107
105
|
"engines": {
|
|
108
|
-
"node": ">=
|
|
106
|
+
"node": ">=20.10"
|
|
109
107
|
}
|
|
110
108
|
}
|