@aztec/archiver 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107

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 (133) hide show
  1. package/README.md +27 -6
  2. package/dest/archiver/archiver.d.ts +127 -84
  3. package/dest/archiver/archiver.d.ts.map +1 -1
  4. package/dest/archiver/archiver.js +1128 -380
  5. package/dest/archiver/archiver_store.d.ts +122 -45
  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 +2013 -343
  10. package/dest/archiver/config.d.ts +7 -20
  11. package/dest/archiver/config.d.ts.map +1 -1
  12. package/dest/archiver/config.js +21 -5
  13. package/dest/archiver/errors.d.ts +25 -1
  14. package/dest/archiver/errors.d.ts.map +1 -1
  15. package/dest/archiver/errors.js +37 -0
  16. package/dest/archiver/index.d.ts +2 -2
  17. package/dest/archiver/index.d.ts.map +1 -1
  18. package/dest/archiver/instrumentation.d.ts +5 -3
  19. package/dest/archiver/instrumentation.d.ts.map +1 -1
  20. package/dest/archiver/instrumentation.js +14 -0
  21. package/dest/archiver/kv_archiver_store/block_store.d.ts +83 -15
  22. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  23. package/dest/archiver/kv_archiver_store/block_store.js +396 -73
  24. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +2 -2
  25. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
  26. package/dest/archiver/kv_archiver_store/contract_class_store.js +1 -1
  27. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +2 -2
  28. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
  29. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +51 -55
  30. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  31. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +82 -46
  32. package/dest/archiver/kv_archiver_store/log_store.d.ts +12 -16
  33. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  34. package/dest/archiver/kv_archiver_store/log_store.js +149 -84
  35. package/dest/archiver/kv_archiver_store/message_store.d.ts +6 -5
  36. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  37. package/dest/archiver/kv_archiver_store/message_store.js +15 -14
  38. package/dest/archiver/l1/bin/retrieve-calldata.d.ts +3 -0
  39. package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +1 -0
  40. package/dest/archiver/l1/bin/retrieve-calldata.js +149 -0
  41. package/dest/archiver/l1/calldata_retriever.d.ts +112 -0
  42. package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -0
  43. package/dest/archiver/l1/calldata_retriever.js +471 -0
  44. package/dest/archiver/l1/data_retrieval.d.ts +90 -0
  45. package/dest/archiver/l1/data_retrieval.d.ts.map +1 -0
  46. package/dest/archiver/l1/data_retrieval.js +331 -0
  47. package/dest/archiver/l1/debug_tx.d.ts +19 -0
  48. package/dest/archiver/l1/debug_tx.d.ts.map +1 -0
  49. package/dest/archiver/l1/debug_tx.js +73 -0
  50. package/dest/archiver/l1/spire_proposer.d.ts +70 -0
  51. package/dest/archiver/l1/spire_proposer.d.ts.map +1 -0
  52. package/dest/archiver/l1/spire_proposer.js +157 -0
  53. package/dest/archiver/l1/trace_tx.d.ts +97 -0
  54. package/dest/archiver/l1/trace_tx.d.ts.map +1 -0
  55. package/dest/archiver/l1/trace_tx.js +91 -0
  56. package/dest/archiver/l1/types.d.ts +12 -0
  57. package/dest/archiver/l1/types.d.ts.map +1 -0
  58. package/dest/archiver/l1/types.js +3 -0
  59. package/dest/archiver/l1/validate_trace.d.ts +29 -0
  60. package/dest/archiver/l1/validate_trace.d.ts.map +1 -0
  61. package/dest/archiver/l1/validate_trace.js +150 -0
  62. package/dest/archiver/structs/data_retrieval.d.ts +1 -1
  63. package/dest/archiver/structs/inbox_message.d.ts +4 -4
  64. package/dest/archiver/structs/inbox_message.d.ts.map +1 -1
  65. package/dest/archiver/structs/inbox_message.js +6 -5
  66. package/dest/archiver/structs/published.d.ts +2 -2
  67. package/dest/archiver/structs/published.d.ts.map +1 -1
  68. package/dest/archiver/validation.d.ts +10 -4
  69. package/dest/archiver/validation.d.ts.map +1 -1
  70. package/dest/archiver/validation.js +66 -44
  71. package/dest/factory.d.ts +4 -6
  72. package/dest/factory.d.ts.map +1 -1
  73. package/dest/factory.js +5 -4
  74. package/dest/index.d.ts +2 -2
  75. package/dest/index.d.ts.map +1 -1
  76. package/dest/index.js +1 -1
  77. package/dest/rpc/index.d.ts +2 -2
  78. package/dest/test/index.d.ts +1 -1
  79. package/dest/test/mock_archiver.d.ts +16 -8
  80. package/dest/test/mock_archiver.d.ts.map +1 -1
  81. package/dest/test/mock_archiver.js +19 -14
  82. package/dest/test/mock_l1_to_l2_message_source.d.ts +7 -6
  83. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
  84. package/dest/test/mock_l1_to_l2_message_source.js +10 -9
  85. package/dest/test/mock_l2_block_source.d.ts +31 -20
  86. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  87. package/dest/test/mock_l2_block_source.js +85 -18
  88. package/dest/test/mock_structs.d.ts +3 -2
  89. package/dest/test/mock_structs.d.ts.map +1 -1
  90. package/dest/test/mock_structs.js +9 -8
  91. package/package.json +18 -17
  92. package/src/archiver/archiver.ts +971 -475
  93. package/src/archiver/archiver_store.ts +141 -44
  94. package/src/archiver/archiver_store_test_suite.ts +2114 -331
  95. package/src/archiver/config.ts +30 -35
  96. package/src/archiver/errors.ts +64 -0
  97. package/src/archiver/index.ts +1 -1
  98. package/src/archiver/instrumentation.ts +19 -2
  99. package/src/archiver/kv_archiver_store/block_store.ts +541 -83
  100. package/src/archiver/kv_archiver_store/contract_class_store.ts +1 -1
  101. package/src/archiver/kv_archiver_store/contract_instance_store.ts +1 -1
  102. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +107 -67
  103. package/src/archiver/kv_archiver_store/log_store.ts +209 -99
  104. package/src/archiver/kv_archiver_store/message_store.ts +21 -18
  105. package/src/archiver/l1/README.md +98 -0
  106. package/src/archiver/l1/bin/retrieve-calldata.ts +182 -0
  107. package/src/archiver/l1/calldata_retriever.ts +641 -0
  108. package/src/archiver/l1/data_retrieval.ts +512 -0
  109. package/src/archiver/l1/debug_tx.ts +99 -0
  110. package/src/archiver/l1/spire_proposer.ts +160 -0
  111. package/src/archiver/l1/trace_tx.ts +128 -0
  112. package/src/archiver/l1/types.ts +13 -0
  113. package/src/archiver/l1/validate_trace.ts +211 -0
  114. package/src/archiver/structs/inbox_message.ts +8 -8
  115. package/src/archiver/structs/published.ts +1 -1
  116. package/src/archiver/validation.ts +86 -32
  117. package/src/factory.ts +6 -7
  118. package/src/index.ts +1 -1
  119. package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
  120. package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
  121. package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
  122. package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
  123. package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
  124. package/src/test/fixtures/trace_transaction-proxied.json +128 -0
  125. package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
  126. package/src/test/mock_archiver.ts +22 -16
  127. package/src/test/mock_l1_to_l2_message_source.ts +10 -9
  128. package/src/test/mock_l2_block_source.ts +114 -27
  129. package/src/test/mock_structs.ts +10 -9
  130. package/dest/archiver/data_retrieval.d.ts +0 -78
  131. package/dest/archiver/data_retrieval.d.ts.map +0 -1
  132. package/dest/archiver/data_retrieval.js +0 -354
  133. package/src/archiver/data_retrieval.ts +0 -535
@@ -1,8 +1,12 @@
1
- import { DefaultL1ContractsConfig } from '@aztec/ethereum';
1
+ import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
2
+ import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
3
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
4
  import { Buffer32 } from '@aztec/foundation/buffer';
5
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
6
  import { EthAddress } from '@aztec/foundation/eth-address';
4
7
  import { createLogger } from '@aztec/foundation/log';
5
- import { L2Block, L2BlockHash } from '@aztec/stdlib/block';
8
+ import { L2Block, L2BlockHash, PublishedL2Block } from '@aztec/stdlib/block';
9
+ import { L1PublishedData } from '@aztec/stdlib/checkpoint';
6
10
  import { EmptyL1RollupConstants, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
7
11
  import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
8
12
  /**
@@ -15,7 +19,7 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
15
19
  async createBlocks(numBlocks) {
16
20
  for(let i = 0; i < numBlocks; i++){
17
21
  const blockNum = this.l2Blocks.length + 1;
18
- const block = await L2Block.random(blockNum);
22
+ const block = await L2Block.random(BlockNumber(blockNum));
19
23
  this.l2Blocks.push(block);
20
24
  }
21
25
  this.log.verbose(`Created ${numBlocks} blocks in the mock L2 block source`);
@@ -53,10 +57,14 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
53
57
  * Gets the number of the latest L2 block processed by the block source implementation.
54
58
  * @returns In this mock instance, returns the number of L2 blocks that we've mocked.
55
59
  */ getBlockNumber() {
56
- return Promise.resolve(this.l2Blocks.length);
60
+ return Promise.resolve(BlockNumber(this.l2Blocks.length));
57
61
  }
58
62
  getProvenBlockNumber() {
59
- return Promise.resolve(this.provenBlockNumber);
63
+ return Promise.resolve(BlockNumber(this.provenBlockNumber));
64
+ }
65
+ getCheckpointedBlock(_number) {
66
+ // In this mock, we don't track checkpointed blocks separately
67
+ return Promise.resolve(undefined);
60
68
  }
61
69
  /**
62
70
  * Gets an l2 block.
@@ -66,6 +74,14 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
66
74
  return Promise.resolve(this.l2Blocks[number - 1]);
67
75
  }
68
76
  /**
77
+ * Gets an L2 block (new format).
78
+ * @param number - The block number to return.
79
+ * @returns The requested L2 block.
80
+ */ getL2BlockNew(number) {
81
+ const block = this.l2Blocks[number - 1];
82
+ return Promise.resolve(block?.toL2Block());
83
+ }
84
+ /**
69
85
  * Gets up to `limit` amount of L2 blocks starting from `from`.
70
86
  * @param from - Number of the first block to return (inclusive).
71
87
  * @param limit - The maximum number of blocks to return.
@@ -73,20 +89,65 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
73
89
  */ getBlocks(from, limit, proven) {
74
90
  return Promise.resolve(this.l2Blocks.slice(from - 1, from - 1 + limit).filter((b)=>!proven || this.provenBlockNumber === undefined || b.number <= this.provenBlockNumber));
75
91
  }
92
+ async getPublishedCheckpoints(from, limit) {
93
+ // TODO: Implement this properly. This only works when we have one block per checkpoint.
94
+ return (await this.getPublishedBlocks(from, limit)).map((block)=>block.toPublishedCheckpoint());
95
+ }
96
+ async getCheckpointByArchive(archive) {
97
+ // TODO: Implement this properly. This only works when we have one block per checkpoint.
98
+ return (await this.getPublishedBlockByArchive(archive))?.block.toCheckpoint();
99
+ }
76
100
  async getPublishedBlocks(from, limit, proven) {
77
101
  const blocks = await this.getBlocks(from, limit, proven);
78
- return blocks.map((block)=>({
102
+ return blocks.map((block)=>PublishedL2Block.fromFields({
79
103
  block,
80
- l1: {
81
- blockNumber: BigInt(block.number),
82
- blockHash: Buffer32.random().toString(),
83
- timestamp: BigInt(block.number)
84
- },
104
+ l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
85
105
  attestations: []
86
106
  }));
87
107
  }
108
+ async getPublishedBlockByHash(blockHash) {
109
+ for (const block of this.l2Blocks){
110
+ const hash = await block.hash();
111
+ if (hash.equals(blockHash)) {
112
+ return PublishedL2Block.fromFields({
113
+ block,
114
+ l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
115
+ attestations: []
116
+ });
117
+ }
118
+ }
119
+ return undefined;
120
+ }
121
+ getPublishedBlockByArchive(archive) {
122
+ const block = this.l2Blocks.find((b)=>b.archive.root.equals(archive));
123
+ if (!block) {
124
+ return Promise.resolve(undefined);
125
+ }
126
+ return Promise.resolve(PublishedL2Block.fromFields({
127
+ block,
128
+ l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
129
+ attestations: []
130
+ }));
131
+ }
132
+ async getBlockHeaderByHash(blockHash) {
133
+ for (const block of this.l2Blocks){
134
+ const hash = await block.hash();
135
+ if (hash.equals(blockHash)) {
136
+ return block.getBlockHeader();
137
+ }
138
+ }
139
+ return undefined;
140
+ }
141
+ getBlockHeaderByArchive(archive) {
142
+ const block = this.l2Blocks.find((b)=>b.archive.root.equals(archive));
143
+ return Promise.resolve(block?.getBlockHeader());
144
+ }
88
145
  getBlockHeader(number) {
89
- return Promise.resolve(this.l2Blocks.at(typeof number === 'number' ? number - 1 : -1)?.header);
146
+ return Promise.resolve(this.l2Blocks.at(typeof number === 'number' ? number - 1 : -1)?.getBlockHeader());
147
+ }
148
+ getCheckpointsForEpoch(epochNumber) {
149
+ // TODO: Implement this properly. This only works when we have one block per checkpoint.
150
+ return this.getBlocksForEpoch(epochNumber).then((blocks)=>blocks.map((b)=>b.toCheckpoint()));
90
151
  }
91
152
  getBlocksForEpoch(epochNumber) {
92
153
  const epochDuration = DefaultL1ContractsConfig.aztecEpochDuration;
@@ -94,13 +155,14 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
94
155
  epochDuration
95
156
  });
96
157
  const blocks = this.l2Blocks.filter((b)=>{
97
- const slot = b.header.globalVariables.slotNumber.toBigInt();
158
+ const slot = b.header.globalVariables.slotNumber;
98
159
  return slot >= start && slot <= end;
99
160
  });
100
161
  return Promise.resolve(blocks);
101
162
  }
102
- getBlockHeadersForEpoch(epochNumber) {
103
- return this.getBlocksForEpoch(epochNumber).then((blocks)=>blocks.map((b)=>b.header));
163
+ async getBlockHeadersForEpoch(epochNumber) {
164
+ const blocks = await this.getBlocksForEpoch(epochNumber);
165
+ return blocks.map((b)=>b.getBlockHeader());
104
166
  }
105
167
  /**
106
168
  * Gets a tx effect.
@@ -147,15 +209,15 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
147
209
  const finalizedBlock = this.l2Blocks[finalized - 1];
148
210
  return {
149
211
  latest: {
150
- number: latest,
212
+ number: BlockNumber(latest),
151
213
  hash: (await latestBlock?.hash())?.toString()
152
214
  },
153
215
  proven: {
154
- number: proven,
216
+ number: BlockNumber(proven),
155
217
  hash: (await provenBlock?.hash())?.toString()
156
218
  },
157
219
  finalized: {
158
- number: finalized,
220
+ number: BlockNumber(finalized),
159
221
  hash: (await finalizedBlock?.hash())?.toString()
160
222
  }
161
223
  };
@@ -172,6 +234,11 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
172
234
  getL1Constants() {
173
235
  return Promise.resolve(EmptyL1RollupConstants);
174
236
  }
237
+ getGenesisValues() {
238
+ return Promise.resolve({
239
+ genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT)
240
+ });
241
+ }
175
242
  getL1Timestamp() {
176
243
  throw new Error('Method not implemented.');
177
244
  }
@@ -1,9 +1,10 @@
1
+ import { CheckpointNumber } from '@aztec/foundation/branded-types';
1
2
  import { Buffer16 } from '@aztec/foundation/buffer';
2
3
  import { type InboxMessage } from '../archiver/structs/inbox_message.js';
3
4
  export declare function makeInboxMessage(previousRollingHash?: Buffer16, overrides?: Partial<InboxMessage>): InboxMessage;
4
5
  export declare function makeInboxMessages(count: number, opts?: {
5
6
  initialHash?: Buffer16;
6
- initialL2BlockNumber?: number;
7
+ initialCheckpointNumber?: CheckpointNumber;
7
8
  overrideFn?: (msg: InboxMessage, index: number) => InboxMessage;
8
9
  }): InboxMessage[];
9
- //# sourceMappingURL=mock_structs.d.ts.map
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19zdHJ1Y3RzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9tb2NrX3N0cnVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBSzlELE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUU1Rix3QkFBZ0IsZ0JBQWdCLENBQzlCLG1CQUFtQixXQUFnQixFQUNuQyxTQUFTLEdBQUUsT0FBTyxDQUFDLFlBQVksQ0FBTSxHQUNwQyxZQUFZLENBZ0JkO0FBRUQsd0JBQWdCLGlCQUFpQixDQUMvQixLQUFLLEVBQUUsTUFBTSxFQUNiLElBQUksR0FBRTtJQUNKLFdBQVcsQ0FBQyxFQUFFLFFBQVEsQ0FBQztJQUN2Qix1QkFBdUIsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQzNDLFVBQVUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLFlBQVksQ0FBQztDQUM1RCxHQUNMLFlBQVksRUFBRSxDQWFoQiJ9
@@ -1 +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"}
1
+ {"version":3,"file":"mock_structs.d.ts","sourceRoot":"","sources":["../../src/test/mock_structs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,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,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,YAAY,CAAC;CAC5D,GACL,YAAY,EAAE,CAahB"}
@@ -1,34 +1,35 @@
1
+ import { CheckpointNumber } from '@aztec/foundation/branded-types';
1
2
  import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
2
- import { randomBigInt, randomInt } from '@aztec/foundation/crypto';
3
- import { Fr } from '@aztec/foundation/fields';
3
+ import { randomBigInt, randomInt } from '@aztec/foundation/crypto/random';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
5
  import { InboxLeaf } from '@aztec/stdlib/messaging';
5
6
  import { updateRollingHash } from '../archiver/structs/inbox_message.js';
6
7
  export function makeInboxMessage(previousRollingHash = Buffer16.ZERO, overrides = {}) {
7
- const { l2BlockNumber = randomInt(100) + 1 } = overrides;
8
+ const { checkpointNumber = CheckpointNumber(randomInt(100) + 1) } = overrides;
8
9
  const { l1BlockNumber = randomBigInt(100n) + 1n } = overrides;
9
10
  const { l1BlockHash = Buffer32.random() } = overrides;
10
11
  const { leaf = Fr.random() } = overrides;
11
12
  const { rollingHash = updateRollingHash(previousRollingHash, leaf) } = overrides;
12
- const { index = InboxLeaf.smallestIndexFromL2Block(l2BlockNumber) } = overrides;
13
+ const { index = InboxLeaf.smallestIndexForCheckpoint(checkpointNumber) } = overrides;
13
14
  return {
14
15
  index,
15
16
  leaf,
16
- l2BlockNumber,
17
+ checkpointNumber,
17
18
  l1BlockNumber,
18
19
  l1BlockHash,
19
20
  rollingHash
20
21
  };
21
22
  }
22
23
  export function makeInboxMessages(count, opts = {}) {
23
- const { initialHash = Buffer16.ZERO, overrideFn = (msg)=>msg, initialL2BlockNumber = 1 } = opts;
24
+ const { initialHash = Buffer16.ZERO, overrideFn = (msg)=>msg, initialCheckpointNumber = 1 } = opts;
24
25
  const messages = [];
25
26
  let rollingHash = initialHash;
26
27
  for(let i = 0; i < count; i++){
27
28
  const leaf = Fr.random();
28
- const l2BlockNumber = i + initialL2BlockNumber;
29
+ const checkpointNumber = CheckpointNumber(i + initialCheckpointNumber);
29
30
  const message = overrideFn(makeInboxMessage(rollingHash, {
30
31
  leaf,
31
- l2BlockNumber
32
+ checkpointNumber
32
33
  }), i);
33
34
  rollingHash = message.rollingHash;
34
35
  messages.push(message);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "4.0.0-nightly.20250907",
3
+ "version": "4.0.0-nightly.20260107",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -17,8 +17,8 @@
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 && ../scripts/tsc.sh",
21
+ "build:dev": "../scripts/tsc.sh --watch",
22
22
  "clean": "rm -rf ./dest .tsbuildinfo",
23
23
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
24
24
  "test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
@@ -66,23 +66,23 @@
66
66
  ]
67
67
  },
68
68
  "dependencies": {
69
- "@aztec/blob-lib": "4.0.0-nightly.20250907",
70
- "@aztec/blob-sink": "4.0.0-nightly.20250907",
71
- "@aztec/constants": "4.0.0-nightly.20250907",
72
- "@aztec/epoch-cache": "4.0.0-nightly.20250907",
73
- "@aztec/ethereum": "4.0.0-nightly.20250907",
74
- "@aztec/foundation": "4.0.0-nightly.20250907",
75
- "@aztec/kv-store": "4.0.0-nightly.20250907",
76
- "@aztec/l1-artifacts": "4.0.0-nightly.20250907",
77
- "@aztec/noir-protocol-circuits-types": "4.0.0-nightly.20250907",
78
- "@aztec/protocol-contracts": "4.0.0-nightly.20250907",
79
- "@aztec/stdlib": "4.0.0-nightly.20250907",
80
- "@aztec/telemetry-client": "4.0.0-nightly.20250907",
69
+ "@aztec/blob-client": "4.0.0-nightly.20260107",
70
+ "@aztec/blob-lib": "4.0.0-nightly.20260107",
71
+ "@aztec/constants": "4.0.0-nightly.20260107",
72
+ "@aztec/epoch-cache": "4.0.0-nightly.20260107",
73
+ "@aztec/ethereum": "4.0.0-nightly.20260107",
74
+ "@aztec/foundation": "4.0.0-nightly.20260107",
75
+ "@aztec/kv-store": "4.0.0-nightly.20260107",
76
+ "@aztec/l1-artifacts": "4.0.0-nightly.20260107",
77
+ "@aztec/noir-protocol-circuits-types": "4.0.0-nightly.20260107",
78
+ "@aztec/protocol-contracts": "4.0.0-nightly.20260107",
79
+ "@aztec/stdlib": "4.0.0-nightly.20260107",
80
+ "@aztec/telemetry-client": "4.0.0-nightly.20260107",
81
81
  "lodash.groupby": "^4.6.0",
82
82
  "lodash.omit": "^4.5.0",
83
- "tsc-watch": "^6.0.0",
84
83
  "tslib": "^2.5.0",
85
- "viem": "2.23.7"
84
+ "viem": "npm:@aztec/viem@2.38.2",
85
+ "zod": "^3.23.8"
86
86
  },
87
87
  "devDependencies": {
88
88
  "@jest/globals": "^30.0.0",
@@ -90,6 +90,7 @@
90
90
  "@types/lodash.groupby": "^4.6.9",
91
91
  "@types/lodash.omit": "^4.5.7",
92
92
  "@types/node": "^22.15.17",
93
+ "@typescript/native-preview": "7.0.0-dev.20251126.1",
93
94
  "concurrently": "^8.0.1",
94
95
  "jest": "^30.0.0",
95
96
  "jest-mock-extended": "^4.0.0",