@aztec/archiver 0.0.0-test.1 → 0.0.1-commit.0b941701

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 (219) hide show
  1. package/README.md +164 -9
  2. package/dest/archiver.d.ts +135 -0
  3. package/dest/archiver.d.ts.map +1 -0
  4. package/dest/archiver.js +768 -0
  5. package/dest/config.d.ts +30 -0
  6. package/dest/config.d.ts.map +1 -0
  7. package/dest/config.js +71 -0
  8. package/dest/errors.d.ts +41 -0
  9. package/dest/errors.d.ts.map +1 -0
  10. package/dest/errors.js +62 -0
  11. package/dest/factory.d.ts +11 -16
  12. package/dest/factory.d.ts.map +1 -1
  13. package/dest/factory.js +102 -53
  14. package/dest/index.d.ts +10 -4
  15. package/dest/index.d.ts.map +1 -1
  16. package/dest/index.js +8 -3
  17. package/dest/interfaces.d.ts +9 -0
  18. package/dest/interfaces.d.ts.map +1 -0
  19. package/dest/interfaces.js +3 -0
  20. package/dest/l1/bin/retrieve-calldata.d.ts +3 -0
  21. package/dest/l1/bin/retrieve-calldata.d.ts.map +1 -0
  22. package/dest/l1/bin/retrieve-calldata.js +149 -0
  23. package/dest/l1/calldata_retriever.d.ts +112 -0
  24. package/dest/l1/calldata_retriever.d.ts.map +1 -0
  25. package/dest/l1/calldata_retriever.js +471 -0
  26. package/dest/l1/data_retrieval.d.ts +88 -0
  27. package/dest/l1/data_retrieval.d.ts.map +1 -0
  28. package/dest/l1/data_retrieval.js +312 -0
  29. package/dest/l1/debug_tx.d.ts +19 -0
  30. package/dest/l1/debug_tx.d.ts.map +1 -0
  31. package/dest/l1/debug_tx.js +73 -0
  32. package/dest/l1/spire_proposer.d.ts +70 -0
  33. package/dest/l1/spire_proposer.d.ts.map +1 -0
  34. package/dest/l1/spire_proposer.js +157 -0
  35. package/dest/l1/trace_tx.d.ts +97 -0
  36. package/dest/l1/trace_tx.d.ts.map +1 -0
  37. package/dest/l1/trace_tx.js +91 -0
  38. package/dest/l1/types.d.ts +12 -0
  39. package/dest/l1/types.d.ts.map +1 -0
  40. package/dest/l1/types.js +3 -0
  41. package/dest/l1/validate_trace.d.ts +29 -0
  42. package/dest/l1/validate_trace.d.ts.map +1 -0
  43. package/dest/l1/validate_trace.js +150 -0
  44. package/dest/modules/data_source_base.d.ts +84 -0
  45. package/dest/modules/data_source_base.d.ts.map +1 -0
  46. package/dest/modules/data_source_base.js +260 -0
  47. package/dest/modules/data_store_updater.d.ts +73 -0
  48. package/dest/modules/data_store_updater.d.ts.map +1 -0
  49. package/dest/modules/data_store_updater.js +302 -0
  50. package/dest/modules/instrumentation.d.ts +37 -0
  51. package/dest/modules/instrumentation.d.ts.map +1 -0
  52. package/dest/{archiver → modules}/instrumentation.js +45 -41
  53. package/dest/modules/l1_synchronizer.d.ts +75 -0
  54. package/dest/modules/l1_synchronizer.d.ts.map +1 -0
  55. package/dest/modules/l1_synchronizer.js +1113 -0
  56. package/dest/modules/validation.d.ts +17 -0
  57. package/dest/modules/validation.d.ts.map +1 -0
  58. package/dest/modules/validation.js +104 -0
  59. package/dest/store/block_store.d.ts +192 -0
  60. package/dest/store/block_store.d.ts.map +1 -0
  61. package/dest/store/block_store.js +721 -0
  62. package/dest/store/contract_class_store.d.ts +18 -0
  63. package/dest/store/contract_class_store.d.ts.map +1 -0
  64. package/dest/{archiver/kv_archiver_store → store}/contract_class_store.js +14 -20
  65. package/dest/store/contract_instance_store.d.ts +24 -0
  66. package/dest/store/contract_instance_store.d.ts.map +1 -0
  67. package/dest/store/contract_instance_store.js +77 -0
  68. package/dest/store/kv_archiver_store.d.ts +340 -0
  69. package/dest/store/kv_archiver_store.d.ts.map +1 -0
  70. package/dest/store/kv_archiver_store.js +447 -0
  71. package/dest/store/log_store.d.ts +54 -0
  72. package/dest/store/log_store.d.ts.map +1 -0
  73. package/dest/store/log_store.js +436 -0
  74. package/dest/store/message_store.d.ts +40 -0
  75. package/dest/store/message_store.d.ts.map +1 -0
  76. package/dest/store/message_store.js +188 -0
  77. package/dest/structs/data_retrieval.d.ts +27 -0
  78. package/dest/structs/data_retrieval.d.ts.map +1 -0
  79. package/dest/structs/inbox_message.d.ts +15 -0
  80. package/dest/structs/inbox_message.d.ts.map +1 -0
  81. package/dest/structs/inbox_message.js +39 -0
  82. package/dest/structs/published.d.ts +2 -0
  83. package/dest/structs/published.d.ts.map +1 -0
  84. package/dest/structs/published.js +1 -0
  85. package/dest/test/fake_l1_state.d.ts +190 -0
  86. package/dest/test/fake_l1_state.d.ts.map +1 -0
  87. package/dest/test/fake_l1_state.js +383 -0
  88. package/dest/test/index.d.ts +2 -1
  89. package/dest/test/index.d.ts.map +1 -1
  90. package/dest/test/index.js +1 -0
  91. package/dest/test/mock_archiver.d.ts +16 -8
  92. package/dest/test/mock_archiver.d.ts.map +1 -1
  93. package/dest/test/mock_archiver.js +18 -14
  94. package/dest/test/mock_l1_to_l2_message_source.d.ts +9 -6
  95. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
  96. package/dest/test/mock_l1_to_l2_message_source.js +30 -7
  97. package/dest/test/mock_l2_block_source.d.ts +62 -16
  98. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  99. package/dest/test/mock_l2_block_source.js +263 -32
  100. package/dest/test/mock_structs.d.ts +84 -0
  101. package/dest/test/mock_structs.d.ts.map +1 -0
  102. package/dest/test/mock_structs.js +169 -0
  103. package/package.json +30 -33
  104. package/src/archiver.ts +523 -0
  105. package/src/config.ts +95 -0
  106. package/src/errors.ts +102 -0
  107. package/src/factory.ts +142 -69
  108. package/src/index.ts +10 -3
  109. package/src/interfaces.ts +9 -0
  110. package/src/l1/README.md +98 -0
  111. package/src/l1/bin/retrieve-calldata.ts +187 -0
  112. package/src/l1/calldata_retriever.ts +641 -0
  113. package/src/l1/data_retrieval.ts +495 -0
  114. package/src/l1/debug_tx.ts +99 -0
  115. package/src/l1/spire_proposer.ts +160 -0
  116. package/src/l1/trace_tx.ts +128 -0
  117. package/src/l1/types.ts +13 -0
  118. package/src/l1/validate_trace.ts +211 -0
  119. package/src/modules/data_source_base.ts +367 -0
  120. package/src/modules/data_store_updater.ts +423 -0
  121. package/src/{archiver → modules}/instrumentation.ts +63 -43
  122. package/src/modules/l1_synchronizer.ts +931 -0
  123. package/src/modules/validation.ts +129 -0
  124. package/src/store/block_store.ts +966 -0
  125. package/src/{archiver/kv_archiver_store → store}/contract_class_store.ts +15 -25
  126. package/src/{archiver/kv_archiver_store → store}/contract_instance_store.ts +37 -29
  127. package/src/store/kv_archiver_store.ts +639 -0
  128. package/src/store/log_store.ts +575 -0
  129. package/src/store/message_store.ts +261 -0
  130. package/src/structs/inbox_message.ts +41 -0
  131. package/src/structs/published.ts +1 -0
  132. package/src/test/fake_l1_state.ts +599 -0
  133. package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
  134. package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
  135. package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
  136. package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
  137. package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
  138. package/src/test/fixtures/trace_transaction-proxied.json +128 -0
  139. package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
  140. package/src/test/index.ts +1 -0
  141. package/src/test/mock_archiver.ts +22 -16
  142. package/src/test/mock_l1_to_l2_message_source.ts +26 -8
  143. package/src/test/mock_l2_block_source.ts +312 -41
  144. package/src/test/mock_structs.ts +295 -0
  145. package/dest/archiver/archiver.d.ts +0 -197
  146. package/dest/archiver/archiver.d.ts.map +0 -1
  147. package/dest/archiver/archiver.js +0 -900
  148. package/dest/archiver/archiver_store.d.ts +0 -220
  149. package/dest/archiver/archiver_store.d.ts.map +0 -1
  150. package/dest/archiver/archiver_store.js +0 -4
  151. package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
  152. package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
  153. package/dest/archiver/archiver_store_test_suite.js +0 -794
  154. package/dest/archiver/config.d.ts +0 -37
  155. package/dest/archiver/config.d.ts.map +0 -1
  156. package/dest/archiver/config.js +0 -46
  157. package/dest/archiver/data_retrieval.d.ts +0 -74
  158. package/dest/archiver/data_retrieval.d.ts.map +0 -1
  159. package/dest/archiver/data_retrieval.js +0 -283
  160. package/dest/archiver/errors.d.ts +0 -4
  161. package/dest/archiver/errors.d.ts.map +0 -1
  162. package/dest/archiver/errors.js +0 -5
  163. package/dest/archiver/index.d.ts +0 -8
  164. package/dest/archiver/index.d.ts.map +0 -1
  165. package/dest/archiver/index.js +0 -5
  166. package/dest/archiver/instrumentation.d.ts +0 -29
  167. package/dest/archiver/instrumentation.d.ts.map +0 -1
  168. package/dest/archiver/kv_archiver_store/block_store.d.ts +0 -87
  169. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +0 -1
  170. package/dest/archiver/kv_archiver_store/block_store.js +0 -217
  171. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +0 -18
  172. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +0 -1
  173. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +0 -21
  174. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +0 -1
  175. package/dest/archiver/kv_archiver_store/contract_instance_store.js +0 -63
  176. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +0 -153
  177. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +0 -1
  178. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +0 -254
  179. package/dest/archiver/kv_archiver_store/log_store.d.ts +0 -49
  180. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +0 -1
  181. package/dest/archiver/kv_archiver_store/log_store.js +0 -364
  182. package/dest/archiver/kv_archiver_store/message_store.d.ts +0 -33
  183. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +0 -1
  184. package/dest/archiver/kv_archiver_store/message_store.js +0 -85
  185. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts +0 -12
  186. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts.map +0 -1
  187. package/dest/archiver/kv_archiver_store/nullifier_store.js +0 -73
  188. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +0 -23
  189. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +0 -1
  190. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +0 -49
  191. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +0 -175
  192. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +0 -1
  193. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +0 -636
  194. package/dest/archiver/structs/data_retrieval.d.ts +0 -27
  195. package/dest/archiver/structs/data_retrieval.d.ts.map +0 -1
  196. package/dest/archiver/structs/published.d.ts +0 -11
  197. package/dest/archiver/structs/published.d.ts.map +0 -1
  198. package/dest/archiver/structs/published.js +0 -1
  199. package/dest/rpc/index.d.ts +0 -10
  200. package/dest/rpc/index.d.ts.map +0 -1
  201. package/dest/rpc/index.js +0 -18
  202. package/src/archiver/archiver.ts +0 -1181
  203. package/src/archiver/archiver_store.ts +0 -263
  204. package/src/archiver/archiver_store_test_suite.ts +0 -810
  205. package/src/archiver/config.ts +0 -92
  206. package/src/archiver/data_retrieval.ts +0 -422
  207. package/src/archiver/errors.ts +0 -5
  208. package/src/archiver/index.ts +0 -7
  209. package/src/archiver/kv_archiver_store/block_store.ts +0 -283
  210. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +0 -358
  211. package/src/archiver/kv_archiver_store/log_store.ts +0 -444
  212. package/src/archiver/kv_archiver_store/message_store.ts +0 -102
  213. package/src/archiver/kv_archiver_store/nullifier_store.ts +0 -97
  214. package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +0 -61
  215. package/src/archiver/memory_archiver_store/memory_archiver_store.ts +0 -801
  216. package/src/archiver/structs/published.ts +0 -11
  217. package/src/rpc/index.ts +0 -20
  218. /package/dest/{archiver/structs → structs}/data_retrieval.js +0 -0
  219. /package/src/{archiver/structs → structs}/data_retrieval.ts +0 -0
@@ -0,0 +1,169 @@
1
+ import { MAX_NOTE_HASHES_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
+ import { makeTuple } from '@aztec/foundation/array';
3
+ import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
4
+ import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
5
+ import { times, timesParallel } from '@aztec/foundation/collection';
6
+ import { randomBigInt, randomInt } from '@aztec/foundation/crypto/random';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
9
+ import { CommitteeAttestation, L2Block } from '@aztec/stdlib/block';
10
+ import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
11
+ import { PrivateLog, PublicLog, SiloedTag, Tag } from '@aztec/stdlib/logs';
12
+ import { InboxLeaf } from '@aztec/stdlib/messaging';
13
+ import { orderAttestations } from '@aztec/stdlib/p2p';
14
+ import { CheckpointHeader } from '@aztec/stdlib/rollup';
15
+ import { makeCheckpointAttestationFromCheckpoint } from '@aztec/stdlib/testing';
16
+ import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
17
+ import { PartialStateReference, StateReference, TxEffect } from '@aztec/stdlib/tx';
18
+ import { updateRollingHash } from '../structs/inbox_message.js';
19
+ export function makeInboxMessage(previousRollingHash = Buffer16.ZERO, overrides = {}) {
20
+ const { checkpointNumber = CheckpointNumber(randomInt(100) + 1) } = overrides;
21
+ const { l1BlockNumber = randomBigInt(100n) + 1n } = overrides;
22
+ const { l1BlockHash = Buffer32.random() } = overrides;
23
+ const { leaf = Fr.random() } = overrides;
24
+ const { rollingHash = updateRollingHash(previousRollingHash, leaf) } = overrides;
25
+ const { index = InboxLeaf.smallestIndexForCheckpoint(checkpointNumber) } = overrides;
26
+ return {
27
+ index,
28
+ leaf,
29
+ checkpointNumber,
30
+ l1BlockNumber,
31
+ l1BlockHash,
32
+ rollingHash
33
+ };
34
+ }
35
+ export function makeInboxMessages(count, opts = {}) {
36
+ const { initialHash = Buffer16.ZERO, overrideFn = (msg)=>msg, initialCheckpointNumber = 1 } = opts;
37
+ const messages = [];
38
+ let rollingHash = initialHash;
39
+ for(let i = 0; i < count; i++){
40
+ const leaf = Fr.random();
41
+ const checkpointNumber = CheckpointNumber(i + initialCheckpointNumber);
42
+ const message = overrideFn(makeInboxMessage(rollingHash, {
43
+ leaf,
44
+ checkpointNumber
45
+ }), i);
46
+ rollingHash = message.rollingHash;
47
+ messages.push(message);
48
+ }
49
+ return messages;
50
+ }
51
+ /** Creates inbox messages distributed across multiple blocks with proper checkpoint numbering. */ export function makeInboxMessagesWithFullBlocks(blockCount, opts = {}) {
52
+ const { initialCheckpointNumber = CheckpointNumber(13) } = opts;
53
+ return makeInboxMessages(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * blockCount, {
54
+ overrideFn: (msg, i)=>{
55
+ const checkpointNumber = CheckpointNumber(initialCheckpointNumber + Math.floor(i / NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
56
+ const index = InboxLeaf.smallestIndexForCheckpoint(checkpointNumber) + BigInt(i % NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
57
+ return {
58
+ ...msg,
59
+ checkpointNumber,
60
+ index
61
+ };
62
+ }
63
+ });
64
+ }
65
+ /** Creates a deterministic block hash from a block number. */ export function makeBlockHash(blockNumber) {
66
+ return `0x${blockNumber.toString(16).padStart(64, '0')}`;
67
+ }
68
+ /**
69
+ * Creates a StateReference with properly calculated noteHashTree.nextAvailableLeafIndex.
70
+ * This ensures LogStore's dataStartIndexForBlock calculation doesn't produce negative values.
71
+ */ export function makeStateForBlock(blockNumber, txsPerBlock) {
72
+ const noteHashIndex = blockNumber * txsPerBlock * MAX_NOTE_HASHES_PER_TX;
73
+ return new StateReference(AppendOnlyTreeSnapshot.random(), new PartialStateReference(new AppendOnlyTreeSnapshot(Fr.random(), noteHashIndex), AppendOnlyTreeSnapshot.random(), AppendOnlyTreeSnapshot.random()));
74
+ }
75
+ /** Creates L1PublishedData with deterministic values based on l1BlockNumber. */ export function makeL1PublishedData(l1BlockNumber) {
76
+ return new L1PublishedData(BigInt(l1BlockNumber), BigInt(l1BlockNumber * 1000), makeBlockHash(l1BlockNumber));
77
+ }
78
+ /** Wraps a Checkpoint with L1 published data and random attestations. */ export function makePublishedCheckpoint(checkpoint, l1BlockNumber, attestationCount = 3) {
79
+ return new PublishedCheckpoint(checkpoint, makeL1PublishedData(l1BlockNumber), times(attestationCount, CommitteeAttestation.random));
80
+ }
81
+ /**
82
+ * Creates multiple checkpoints with properly chained archives.
83
+ * Each checkpoint's blocks have their lastArchive set to the previous block's archive,
84
+ * ensuring archive chain continuity for testing.
85
+ */ export async function makeChainedCheckpoints(count, options = {}) {
86
+ const { blocksPerCheckpoint = 1, txsPerBlock = 4, startCheckpointNumber = CheckpointNumber(1), startBlockNumber = 1, startL1BlockNumber = 10, makeCheckpointOptions } = options;
87
+ let previousArchive = options.previousArchive;
88
+ const checkpoints = [];
89
+ for(let i = 0; i < count; i++){
90
+ const cpNumber = CheckpointNumber(startCheckpointNumber + i);
91
+ const blockStart = startBlockNumber + i * blocksPerCheckpoint;
92
+ const customOptions = makeCheckpointOptions?.(cpNumber) ?? {};
93
+ const checkpoint = await Checkpoint.random(cpNumber, {
94
+ numBlocks: blocksPerCheckpoint,
95
+ startBlockNumber: blockStart,
96
+ previousArchive,
97
+ txsPerBlock,
98
+ state: makeStateForBlock(blockStart, txsPerBlock),
99
+ txOptions: {
100
+ numPublicCallsPerTx: 2,
101
+ numPublicLogsPerCall: 2
102
+ },
103
+ ...customOptions
104
+ });
105
+ previousArchive = checkpoint.blocks.at(-1).archive;
106
+ checkpoints.push(makePublishedCheckpoint(checkpoint, startL1BlockNumber + i * 10));
107
+ }
108
+ return checkpoints;
109
+ }
110
+ /**
111
+ * Creates a PublishedCheckpoint with attestations signed by the provided signers.
112
+ * Useful for testing attestation validation.
113
+ */ export function makeSignedPublishedCheckpoint(checkpoint, signers, committee, l1BlockNumber = 1) {
114
+ const attestations = signers.map((signer)=>makeCheckpointAttestationFromCheckpoint(checkpoint, signer));
115
+ const committeeAttestations = orderAttestations(attestations, committee);
116
+ return new PublishedCheckpoint(checkpoint, makeL1PublishedData(l1BlockNumber), committeeAttestations);
117
+ }
118
+ /** Creates a deterministic SiloedTag for private log testing. */ export function makePrivateLogTag(blockNumber, txIndex, logIndex) {
119
+ return new SiloedTag(blockNumber === 1 && txIndex === 0 && logIndex === 0 ? Fr.ZERO : new Fr(blockNumber * 100 + txIndex * 10 + logIndex));
120
+ }
121
+ /** Creates a PrivateLog with fields derived from the tag. */ export function makePrivateLog(tag) {
122
+ return PrivateLog.from({
123
+ fields: makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, (i)=>!i ? tag.value : new Fr(tag.value.toBigInt() + BigInt(i))),
124
+ emittedLength: PRIVATE_LOG_SIZE_IN_FIELDS
125
+ });
126
+ }
127
+ /** Creates multiple private logs for a transaction. */ export function mockPrivateLogs(blockNumber, txIndex, numLogsPerTx) {
128
+ return times(numLogsPerTx, (logIndex)=>{
129
+ const tag = makePrivateLogTag(blockNumber, txIndex, logIndex);
130
+ return makePrivateLog(tag);
131
+ });
132
+ }
133
+ /** Creates a deterministic Tag for public log testing. */ export function makePublicLogTag(blockNumber, txIndex, logIndex) {
134
+ return new Tag(blockNumber === 1 && txIndex === 0 && logIndex === 0 ? Fr.ZERO : new Fr((blockNumber * 100 + txIndex * 10 + logIndex) * 123));
135
+ }
136
+ /** Creates a PublicLog with fields derived from the tag. */ export function makePublicLog(tag, contractAddress = AztecAddress.fromNumber(543254)) {
137
+ return PublicLog.from({
138
+ contractAddress,
139
+ fields: new Array(10).fill(null).map((_, i)=>!i ? tag.value : new Fr(tag.value.toBigInt() + BigInt(i)))
140
+ });
141
+ }
142
+ /** Creates multiple public logs for a transaction. */ export function makePublicLogs(blockNumber, txIndex, numLogsPerTx, contractAddress = AztecAddress.fromNumber(543254)) {
143
+ return times(numLogsPerTx, (logIndex)=>{
144
+ const tag = makePublicLogTag(blockNumber, txIndex, logIndex);
145
+ return makePublicLog(tag, contractAddress);
146
+ });
147
+ }
148
+ /** Creates a checkpoint with specified logs on each tx effect. */ export async function makeCheckpointWithLogs(blockNumber, options = {}) {
149
+ const { previousArchive, numTxsPerBlock = 4, privateLogs, publicLogs } = options;
150
+ const block = await L2Block.random(BlockNumber(blockNumber), {
151
+ checkpointNumber: CheckpointNumber.fromBlockNumber(BlockNumber(blockNumber)),
152
+ indexWithinCheckpoint: IndexWithinCheckpoint(0),
153
+ state: makeStateForBlock(blockNumber, numTxsPerBlock),
154
+ ...previousArchive ? {
155
+ lastArchive: previousArchive
156
+ } : {}
157
+ });
158
+ block.header.globalVariables.blockNumber = BlockNumber(blockNumber);
159
+ block.body.txEffects = await timesParallel(numTxsPerBlock, async (txIndex)=>{
160
+ const txEffect = await TxEffect.random();
161
+ txEffect.privateLogs = privateLogs ? mockPrivateLogs(blockNumber, txIndex, privateLogs.numLogsPerTx) : [];
162
+ txEffect.publicLogs = publicLogs ? makePublicLogs(blockNumber, txIndex, publicLogs.numLogsPerTx, publicLogs.contractAddress) : [];
163
+ return txEffect;
164
+ });
165
+ const checkpoint = new Checkpoint(AppendOnlyTreeSnapshot.random(), CheckpointHeader.random(), [
166
+ block
167
+ ], CheckpointNumber.fromBlockNumber(BlockNumber(blockNumber)));
168
+ return makePublishedCheckpoint(checkpoint, blockNumber);
169
+ }
package/package.json CHANGED
@@ -1,13 +1,11 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "0.0.0-test.1",
3
+ "version": "0.0.1-commit.0b941701",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
7
- "./data-retrieval": "./dest/archiver/data_retrieval.js",
8
- "./epoch": "./dest/archiver/epoch_helpers.js",
9
7
  "./test": "./dest/test/index.js",
10
- "./config": "./dest/archiver/config.js"
8
+ "./config": "./dest/config.js"
11
9
  },
12
10
  "typedocOptions": {
13
11
  "entryPoints": [
@@ -17,11 +15,9 @@
17
15
  "tsconfig": "./tsconfig.json"
18
16
  },
19
17
  "scripts": {
20
- "build": "yarn clean && tsc -b",
21
- "build:dev": "tsc -b --watch",
18
+ "build": "yarn clean && ../scripts/tsc.sh",
19
+ "build:dev": "../scripts/tsc.sh --watch",
22
20
  "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
21
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
26
22
  "test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
27
23
  "test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
@@ -61,42 +57,43 @@
61
57
  "testTimeout": 120000,
62
58
  "setupFiles": [
63
59
  "../../foundation/src/jest/setup.mjs"
60
+ ],
61
+ "testEnvironment": "../../foundation/src/jest/env.mjs",
62
+ "setupFilesAfterEnv": [
63
+ "../../foundation/src/jest/setupAfterEnv.mjs"
64
64
  ]
65
65
  },
66
66
  "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",
67
+ "@aztec/blob-client": "0.0.1-commit.0b941701",
68
+ "@aztec/blob-lib": "0.0.1-commit.0b941701",
69
+ "@aztec/constants": "0.0.1-commit.0b941701",
70
+ "@aztec/epoch-cache": "0.0.1-commit.0b941701",
71
+ "@aztec/ethereum": "0.0.1-commit.0b941701",
72
+ "@aztec/foundation": "0.0.1-commit.0b941701",
73
+ "@aztec/kv-store": "0.0.1-commit.0b941701",
74
+ "@aztec/l1-artifacts": "0.0.1-commit.0b941701",
75
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.0b941701",
76
+ "@aztec/protocol-contracts": "0.0.1-commit.0b941701",
77
+ "@aztec/stdlib": "0.0.1-commit.0b941701",
78
+ "@aztec/telemetry-client": "0.0.1-commit.0b941701",
80
79
  "lodash.groupby": "^4.6.0",
81
80
  "lodash.omit": "^4.5.0",
82
- "tsc-watch": "^6.0.0",
83
81
  "tslib": "^2.5.0",
84
- "viem": "2.22.8",
85
- "ws": "^8.13.0"
82
+ "viem": "npm:@aztec/viem@2.38.2",
83
+ "zod": "^3.23.8"
86
84
  },
87
85
  "devDependencies": {
88
- "@jest/globals": "^29.5.0",
89
- "@types/debug": "^4.1.7",
90
- "@types/jest": "^29.5.0",
86
+ "@jest/globals": "^30.0.0",
87
+ "@types/jest": "^30.0.0",
91
88
  "@types/lodash.groupby": "^4.6.9",
92
89
  "@types/lodash.omit": "^4.5.7",
93
- "@types/node": "^18.15.11",
94
- "@types/ws": "^8.5.4",
90
+ "@types/node": "^22.15.17",
91
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
95
92
  "concurrently": "^8.0.1",
96
- "jest": "^29.5.0",
97
- "jest-mock-extended": "^3.0.4",
93
+ "jest": "^30.0.0",
94
+ "jest-mock-extended": "^4.0.0",
98
95
  "ts-node": "^10.9.1",
99
- "typescript": "^5.0.4"
96
+ "typescript": "^5.3.3"
100
97
  },
101
98
  "files": [
102
99
  "dest",
@@ -105,6 +102,6 @@
105
102
  ],
106
103
  "types": "./dest/index.d.ts",
107
104
  "engines": {
108
- "node": ">=18"
105
+ "node": ">=20.10"
109
106
  }
110
107
  }