@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.
Files changed (110) hide show
  1. package/README.md +27 -6
  2. package/dest/archiver/archiver.d.ts +147 -57
  3. package/dest/archiver/archiver.d.ts.map +1 -1
  4. package/dest/archiver/archiver.js +841 -333
  5. package/dest/archiver/archiver_store.d.ts +85 -50
  6. package/dest/archiver/archiver_store.d.ts.map +1 -1
  7. package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
  8. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  9. package/dest/archiver/archiver_store_test_suite.js +708 -213
  10. package/dest/archiver/config.d.ts +5 -21
  11. package/dest/archiver/config.d.ts.map +1 -1
  12. package/dest/archiver/config.js +21 -12
  13. package/dest/archiver/data_retrieval.d.ts +32 -27
  14. package/dest/archiver/data_retrieval.d.ts.map +1 -1
  15. package/dest/archiver/data_retrieval.js +197 -94
  16. package/dest/archiver/errors.d.ts +9 -1
  17. package/dest/archiver/errors.d.ts.map +1 -1
  18. package/dest/archiver/errors.js +12 -0
  19. package/dest/archiver/index.d.ts +3 -4
  20. package/dest/archiver/index.d.ts.map +1 -1
  21. package/dest/archiver/index.js +1 -2
  22. package/dest/archiver/instrumentation.d.ts +12 -6
  23. package/dest/archiver/instrumentation.d.ts.map +1 -1
  24. package/dest/archiver/instrumentation.js +58 -17
  25. package/dest/archiver/kv_archiver_store/block_store.d.ts +48 -11
  26. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  27. package/dest/archiver/kv_archiver_store/block_store.js +216 -63
  28. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +3 -3
  29. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
  30. package/dest/archiver/kv_archiver_store/contract_class_store.js +12 -18
  31. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +11 -8
  32. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
  33. package/dest/archiver/kv_archiver_store/contract_instance_store.js +30 -16
  34. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +50 -35
  35. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  36. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +88 -46
  37. package/dest/archiver/kv_archiver_store/log_store.d.ts +2 -2
  38. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  39. package/dest/archiver/kv_archiver_store/log_store.js +18 -46
  40. package/dest/archiver/kv_archiver_store/message_store.d.ts +23 -17
  41. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  42. package/dest/archiver/kv_archiver_store/message_store.js +150 -48
  43. package/dest/archiver/structs/data_retrieval.d.ts +1 -1
  44. package/dest/archiver/structs/inbox_message.d.ts +15 -0
  45. package/dest/archiver/structs/inbox_message.d.ts.map +1 -0
  46. package/dest/archiver/structs/inbox_message.js +38 -0
  47. package/dest/archiver/structs/published.d.ts +3 -11
  48. package/dest/archiver/structs/published.d.ts.map +1 -1
  49. package/dest/archiver/structs/published.js +1 -1
  50. package/dest/archiver/validation.d.ts +17 -0
  51. package/dest/archiver/validation.d.ts.map +1 -0
  52. package/dest/archiver/validation.js +98 -0
  53. package/dest/factory.d.ts +8 -13
  54. package/dest/factory.d.ts.map +1 -1
  55. package/dest/factory.js +18 -49
  56. package/dest/index.d.ts +2 -2
  57. package/dest/index.d.ts.map +1 -1
  58. package/dest/index.js +1 -1
  59. package/dest/rpc/index.d.ts +2 -3
  60. package/dest/rpc/index.d.ts.map +1 -1
  61. package/dest/rpc/index.js +1 -4
  62. package/dest/test/index.d.ts +1 -1
  63. package/dest/test/mock_archiver.d.ts +2 -2
  64. package/dest/test/mock_archiver.d.ts.map +1 -1
  65. package/dest/test/mock_l1_to_l2_message_source.d.ts +5 -3
  66. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
  67. package/dest/test/mock_l1_to_l2_message_source.js +14 -1
  68. package/dest/test/mock_l2_block_source.d.ts +38 -10
  69. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  70. package/dest/test/mock_l2_block_source.js +119 -8
  71. package/dest/test/mock_structs.d.ts +9 -0
  72. package/dest/test/mock_structs.d.ts.map +1 -0
  73. package/dest/test/mock_structs.js +37 -0
  74. package/package.json +28 -30
  75. package/src/archiver/archiver.ts +1087 -410
  76. package/src/archiver/archiver_store.ts +97 -55
  77. package/src/archiver/archiver_store_test_suite.ts +664 -210
  78. package/src/archiver/config.ts +28 -41
  79. package/src/archiver/data_retrieval.ts +279 -125
  80. package/src/archiver/errors.ts +21 -0
  81. package/src/archiver/index.ts +2 -3
  82. package/src/archiver/instrumentation.ts +77 -22
  83. package/src/archiver/kv_archiver_store/block_store.ts +270 -72
  84. package/src/archiver/kv_archiver_store/contract_class_store.ts +13 -23
  85. package/src/archiver/kv_archiver_store/contract_instance_store.ts +35 -27
  86. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +127 -63
  87. package/src/archiver/kv_archiver_store/log_store.ts +24 -62
  88. package/src/archiver/kv_archiver_store/message_store.ts +209 -53
  89. package/src/archiver/structs/inbox_message.ts +41 -0
  90. package/src/archiver/structs/published.ts +2 -11
  91. package/src/archiver/validation.ts +124 -0
  92. package/src/factory.ts +24 -66
  93. package/src/index.ts +1 -1
  94. package/src/rpc/index.ts +1 -5
  95. package/src/test/mock_archiver.ts +1 -1
  96. package/src/test/mock_l1_to_l2_message_source.ts +14 -3
  97. package/src/test/mock_l2_block_source.ts +158 -13
  98. package/src/test/mock_structs.ts +49 -0
  99. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts +0 -12
  100. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts.map +0 -1
  101. package/dest/archiver/kv_archiver_store/nullifier_store.js +0 -73
  102. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +0 -23
  103. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +0 -1
  104. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +0 -49
  105. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +0 -175
  106. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +0 -1
  107. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +0 -636
  108. package/src/archiver/kv_archiver_store/nullifier_store.ts +0 -97
  109. package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +0 -61
  110. package/src/archiver/memory_archiver_store/memory_archiver_store.ts +0 -801
@@ -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;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,iEAE3D"}
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 { createTracedJsonRpcServer, makeTracedFetch } from '@aztec/telemetry-client';
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
- }
@@ -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=index.d.ts.map
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: bigint): Promise<Fr[]>;
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=mock_archiver.d.ts.map
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;IAIxD,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAIrD,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAGvE;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,WAAW,CAAY;gBAEnB,WAAW,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;IAM7C,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;IAO7C,YAAY,CAAC,SAAS,EAAE,MAAM;CAW/C"}
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 type { Fr } from '@aztec/foundation/fields';
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: bigint): Promise<Fr[]>;
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=mock_l1_to_l2_message_source.d.ts.map
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,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,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;gBAE/B,WAAW,EAAE,MAAM;IAEhC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;IAIjD,cAAc,CAAC,WAAW,EAAE,MAAM;IAIzC,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAIrD,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAItE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAGlC"}
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(Number(blockNumber)) ?? []);
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 { L2Block, type L2BlockSource, type L2Tips } from '@aztec/stdlib/block';
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: bigint): Promise<L2Block[]>;
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 a transaction which resulted in the returned tx effect.
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: `0x${string}`;
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<bigint>;
65
- getL2SlotNumber(): Promise<bigint>;
66
- isEpochComplete(_epochNumber: bigint): Promise<boolean>;
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=mock_l2_block_source.d.ts.map
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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAe,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,kBAAkB,CAAC;AAEjF;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEnC,OAAO,CAAC,iBAAiB,CAAa;IAEtC,OAAO,CAAC,GAAG,CAAiD;IAE/C,YAAY,CAAC,SAAS,EAAE,MAAM;IAUpC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE;IAK3B,YAAY,CAAC,SAAS,EAAE,MAAM;IAK9B,oBAAoB,CAAC,iBAAiB,EAAE,MAAM;IAIrD;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIvC;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIzC;;;OAGG;IACI,cAAc;IAId,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9C;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM;IAI9B;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IAQ9D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAI3E,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAU1D;;;;OAIG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM;;;;;IAWvC;;;;OAIG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAkB1E,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IA2BlC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAI5C;;;OAGG;IACI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;;OAGG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,OAAO,EACP,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,gBAAgB,EAChB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACnH,OAAO,EAA0B,KAAK,iBAAiB,EAAwB,MAAM,6BAA6B,CAAC;AACnH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa,EAAE,kBAAkB;IACzE,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEnC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,oBAAoB,CAAa;IAEzC,OAAO,CAAC,GAAG,CAAiD;IAE/C,YAAY,CAAC,SAAS,EAAE,MAAM,iBAQ1C;IAEM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,QAGjC;IAEM,YAAY,CAAC,SAAS,EAAE,MAAM,QAGpC;IAEM,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,QAEpD;IAEM,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,QAK1D;IAED;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAEtC;IAED;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAExC;IAED;;;OAGG;IACI,cAAc,oBAEpB;IAEM,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE7C;IAED;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM,oBAE7B;IAED;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,sBAM7D;IAEY,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,+BAa5E;IAEY,uBAAuB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAgBzF;IAEM,0BAA0B,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAgBpF;IAEY,oBAAoB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAQjF;IAEM,uBAAuB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAG5E;IAED,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAE1E;IAED,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAQ9D;IAEK,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAG9E;IAED;;;;OAIG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM;;;;;mBActC;IAED;;;;OAIG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAgB/E;IAEK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAyBjC;IAED,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAEvC;IAED,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CAErC;IAED,eAAe,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3D;IAED,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAE3C;IAED,gBAAgB,IAAI,OAAO,CAAC;QAAE,kBAAkB,EAAE,EAAE,CAAA;KAAE,CAAC,CAEtD;IAED,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhC;IAED;;;OAGG;IACI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5B;IAED;;;OAGG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED,gBAAgB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAElE;IAED,qBAAqB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAEtD;IAED,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAEzG;IAED,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAEnC;IAED,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAErG;IAED,kCAAkC,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;IAED,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAExC;IAED,+BAA+B,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAE9D;CACF"}
@@ -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)?.header);
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.toBigInt();
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 a transaction which resulted in the returned tx effect.
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()).toString()
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
- await this.getProvenBlockNumber()
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.0-test.1",
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 && tsc -b",
21
- "build:dev": "tsc -b --watch",
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.0-test.1",
68
- "@aztec/blob-sink": "0.0.0-test.1",
69
- "@aztec/constants": "0.0.0-test.1",
70
- "@aztec/ethereum": "0.0.0-test.1",
71
- "@aztec/foundation": "0.0.0-test.1",
72
- "@aztec/kv-store": "0.0.0-test.1",
73
- "@aztec/l1-artifacts": "0.0.0-test.1",
74
- "@aztec/noir-contracts.js": "0.0.0-test.1",
75
- "@aztec/noir-protocol-circuits-types": "0.0.0-test.1",
76
- "@aztec/protocol-contracts": "0.0.0-test.1",
77
- "@aztec/stdlib": "0.0.0-test.1",
78
- "@aztec/telemetry-client": "0.0.0-test.1",
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.22.8",
85
- "ws": "^8.13.0"
84
+ "viem": "npm:@aztec/viem@2.38.2"
86
85
  },
87
86
  "devDependencies": {
88
- "@jest/globals": "^29.5.0",
89
- "@types/debug": "^4.1.7",
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": "^18.15.11",
94
- "@types/ws": "^8.5.4",
91
+ "@types/node": "^22.15.17",
92
+ "@typescript/native-preview": "7.0.0-dev.20251126.1",
95
93
  "concurrently": "^8.0.1",
96
- "jest": "^29.5.0",
97
- "jest-mock-extended": "^3.0.4",
94
+ "jest": "^30.0.0",
95
+ "jest-mock-extended": "^4.0.0",
98
96
  "ts-node": "^10.9.1",
99
- "typescript": "^5.0.4"
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": ">=18"
106
+ "node": ">=20.10"
109
107
  }
110
108
  }