@aztec/archiver 0.0.1-commit.4d79d1f2d → 0.0.1-commit.4d9804df

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 (132) hide show
  1. package/README.md +19 -11
  2. package/dest/archiver.d.ts +76 -18
  3. package/dest/archiver.d.ts.map +1 -1
  4. package/dest/archiver.js +330 -162
  5. package/dest/config.d.ts +7 -3
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +38 -14
  8. package/dest/errors.d.ts +55 -9
  9. package/dest/errors.d.ts.map +1 -1
  10. package/dest/errors.js +81 -14
  11. package/dest/factory.d.ts +13 -9
  12. package/dest/factory.d.ts.map +1 -1
  13. package/dest/factory.js +56 -39
  14. package/dest/index.d.ts +12 -3
  15. package/dest/index.d.ts.map +1 -1
  16. package/dest/index.js +11 -2
  17. package/dest/l1/bin/retrieve-calldata.js +32 -28
  18. package/dest/l1/calldata_retriever.d.ts +81 -50
  19. package/dest/l1/calldata_retriever.d.ts.map +1 -1
  20. package/dest/l1/calldata_retriever.js +202 -260
  21. package/dest/l1/data_retrieval.d.ts +32 -18
  22. package/dest/l1/data_retrieval.d.ts.map +1 -1
  23. package/dest/l1/data_retrieval.js +42 -47
  24. package/dest/l1/spire_proposer.d.ts +5 -5
  25. package/dest/l1/spire_proposer.d.ts.map +1 -1
  26. package/dest/l1/spire_proposer.js +9 -17
  27. package/dest/l1/trace_tx.d.ts +12 -66
  28. package/dest/l1/trace_tx.d.ts.map +1 -1
  29. package/dest/l1/validate_historical_logs.d.ts +23 -0
  30. package/dest/l1/validate_historical_logs.d.ts.map +1 -0
  31. package/dest/l1/validate_historical_logs.js +108 -0
  32. package/dest/modules/contract_data_source_adapter.d.ts +25 -0
  33. package/dest/modules/contract_data_source_adapter.d.ts.map +1 -0
  34. package/dest/modules/contract_data_source_adapter.js +32 -0
  35. package/dest/modules/data_source_base.d.ts +74 -46
  36. package/dest/modules/data_source_base.d.ts.map +1 -1
  37. package/dest/modules/data_source_base.js +252 -190
  38. package/dest/modules/data_store_updater.d.ts +49 -17
  39. package/dest/modules/data_store_updater.d.ts.map +1 -1
  40. package/dest/modules/data_store_updater.js +213 -122
  41. package/dest/modules/instrumentation.d.ts +29 -3
  42. package/dest/modules/instrumentation.d.ts.map +1 -1
  43. package/dest/modules/instrumentation.js +67 -11
  44. package/dest/modules/l1_synchronizer.d.ts +16 -14
  45. package/dest/modules/l1_synchronizer.d.ts.map +1 -1
  46. package/dest/modules/l1_synchronizer.js +488 -219
  47. package/dest/modules/outbox_trees_resolver.d.ts +62 -0
  48. package/dest/modules/outbox_trees_resolver.d.ts.map +1 -0
  49. package/dest/modules/outbox_trees_resolver.js +162 -0
  50. package/dest/modules/validation.d.ts +30 -7
  51. package/dest/modules/validation.d.ts.map +1 -1
  52. package/dest/modules/validation.js +35 -17
  53. package/dest/store/block_store.d.ts +185 -74
  54. package/dest/store/block_store.d.ts.map +1 -1
  55. package/dest/store/block_store.js +760 -275
  56. package/dest/store/contract_class_store.d.ts +17 -4
  57. package/dest/store/contract_class_store.d.ts.map +1 -1
  58. package/dest/store/contract_class_store.js +42 -68
  59. package/dest/store/contract_instance_store.d.ts +28 -1
  60. package/dest/store/contract_instance_store.d.ts.map +1 -1
  61. package/dest/store/contract_instance_store.js +54 -2
  62. package/dest/store/data_stores.d.ts +68 -0
  63. package/dest/store/data_stores.d.ts.map +1 -0
  64. package/dest/store/data_stores.js +54 -0
  65. package/dest/store/function_names_cache.d.ts +17 -0
  66. package/dest/store/function_names_cache.d.ts.map +1 -0
  67. package/dest/store/function_names_cache.js +30 -0
  68. package/dest/store/l2_tips_cache.d.ts +25 -0
  69. package/dest/store/l2_tips_cache.d.ts.map +1 -0
  70. package/dest/store/l2_tips_cache.js +26 -0
  71. package/dest/store/log_store.d.ts +42 -37
  72. package/dest/store/log_store.d.ts.map +1 -1
  73. package/dest/store/log_store.js +262 -408
  74. package/dest/store/log_store_codec.d.ts +78 -0
  75. package/dest/store/log_store_codec.d.ts.map +1 -0
  76. package/dest/store/log_store_codec.js +110 -0
  77. package/dest/store/message_store.d.ts +11 -1
  78. package/dest/store/message_store.d.ts.map +1 -1
  79. package/dest/store/message_store.js +51 -9
  80. package/dest/test/fake_l1_state.d.ts +25 -1
  81. package/dest/test/fake_l1_state.d.ts.map +1 -1
  82. package/dest/test/fake_l1_state.js +166 -32
  83. package/dest/test/mock_archiver.d.ts +1 -1
  84. package/dest/test/mock_archiver.d.ts.map +1 -1
  85. package/dest/test/mock_archiver.js +3 -2
  86. package/dest/test/mock_l2_block_source.d.ts +61 -47
  87. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  88. package/dest/test/mock_l2_block_source.js +306 -211
  89. package/dest/test/mock_structs.d.ts +4 -1
  90. package/dest/test/mock_structs.d.ts.map +1 -1
  91. package/dest/test/mock_structs.js +15 -3
  92. package/dest/test/noop_l1_archiver.d.ts +17 -6
  93. package/dest/test/noop_l1_archiver.d.ts.map +1 -1
  94. package/dest/test/noop_l1_archiver.js +31 -11
  95. package/package.json +14 -14
  96. package/src/archiver.ts +427 -185
  97. package/src/config.ts +43 -13
  98. package/src/errors.ts +122 -21
  99. package/src/factory.ts +70 -29
  100. package/src/index.ts +19 -2
  101. package/src/l1/README.md +25 -68
  102. package/src/l1/bin/retrieve-calldata.ts +40 -27
  103. package/src/l1/calldata_retriever.ts +267 -379
  104. package/src/l1/data_retrieval.ts +66 -70
  105. package/src/l1/spire_proposer.ts +7 -15
  106. package/src/l1/validate_historical_logs.ts +140 -0
  107. package/src/modules/contract_data_source_adapter.ts +46 -0
  108. package/src/modules/data_source_base.ts +337 -238
  109. package/src/modules/data_store_updater.ts +250 -154
  110. package/src/modules/instrumentation.ts +71 -11
  111. package/src/modules/l1_synchronizer.ts +659 -269
  112. package/src/modules/outbox_trees_resolver.ts +199 -0
  113. package/src/modules/validation.ts +80 -23
  114. package/src/store/block_store.ts +932 -347
  115. package/src/store/contract_class_store.ts +49 -103
  116. package/src/store/contract_instance_store.ts +68 -5
  117. package/src/store/data_stores.ts +104 -0
  118. package/src/store/function_names_cache.ts +37 -0
  119. package/src/store/l2_tips_cache.ts +35 -0
  120. package/src/store/log_store.ts +302 -559
  121. package/src/store/log_store_codec.ts +143 -0
  122. package/src/store/message_store.ts +60 -10
  123. package/src/structs/inbox_message.ts +1 -1
  124. package/src/test/fake_l1_state.ts +213 -42
  125. package/src/test/mock_archiver.ts +3 -2
  126. package/src/test/mock_l2_block_source.ts +378 -233
  127. package/src/test/mock_structs.ts +25 -8
  128. package/src/test/noop_l1_archiver.ts +61 -12
  129. package/dest/store/kv_archiver_store.d.ts +0 -340
  130. package/dest/store/kv_archiver_store.d.ts.map +0 -1
  131. package/dest/store/kv_archiver_store.js +0 -446
  132. package/src/store/kv_archiver_store.ts +0 -639
package/dest/index.d.ts CHANGED
@@ -4,8 +4,17 @@ export * from './archiver.js';
4
4
  export * from './modules/data_source_base.js';
5
5
  export * from './modules/data_store_updater.js';
6
6
  export * from './config.js';
7
+ export * from './errors.js';
7
8
  export { type L1PublishedData } from './structs/published.js';
8
- export { KVArchiverDataStore, ARCHIVER_DB_VERSION } from './store/kv_archiver_store.js';
9
+ export { ARCHIVER_DB_VERSION, type ArchiverDataStores, type ArchiverL1SynchPoint, backupArchiverDataStores, createArchiverDataStores, createContractDataSource, getArchiverSynchPoint, } from './store/data_stores.js';
10
+ export { FunctionNamesCache } from './store/function_names_cache.js';
11
+ export { ArchiverContractDataSourceAdapter } from './modules/contract_data_source_adapter.js';
12
+ export { BlockStore } from './store/block_store.js';
13
+ export { LogStore } from './store/log_store.js';
14
+ export { MessageStore } from './store/message_store.js';
15
+ export { ContractClassStore } from './store/contract_class_store.js';
9
16
  export { ContractInstanceStore } from './store/contract_instance_store.js';
10
- export { retrieveCheckpointsFromRollup, retrieveL2ProofVerifiedEvents } from './l1/data_retrieval.js';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGFBQWEsQ0FBQztBQUU1QixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyJ9
17
+ export { L2TipsCache } from './store/l2_tips_cache.js';
18
+ export { retrieveL2ProofVerifiedEvents } from './l1/data_retrieval.js';
19
+ export { CalldataRetriever } from './l1/calldata_retriever.js';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUU1QixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssb0JBQW9CLEVBQ3pCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC"}
package/dest/index.js CHANGED
@@ -4,6 +4,15 @@ export * from './archiver.js';
4
4
  export * from './modules/data_source_base.js';
5
5
  export * from './modules/data_store_updater.js';
6
6
  export * from './config.js';
7
- export { KVArchiverDataStore, ARCHIVER_DB_VERSION } from './store/kv_archiver_store.js';
7
+ export * from './errors.js';
8
+ export { ARCHIVER_DB_VERSION, backupArchiverDataStores, createArchiverDataStores, createContractDataSource, getArchiverSynchPoint } from './store/data_stores.js';
9
+ export { FunctionNamesCache } from './store/function_names_cache.js';
10
+ export { ArchiverContractDataSourceAdapter } from './modules/contract_data_source_adapter.js';
11
+ export { BlockStore } from './store/block_store.js';
12
+ export { LogStore } from './store/log_store.js';
13
+ export { MessageStore } from './store/message_store.js';
14
+ export { ContractClassStore } from './store/contract_class_store.js';
8
15
  export { ContractInstanceStore } from './store/contract_instance_store.js';
9
- export { retrieveCheckpointsFromRollup, retrieveL2ProofVerifiedEvents } from './l1/data_retrieval.js';
16
+ export { L2TipsCache } from './store/l2_tips_cache.js';
17
+ export { retrieveL2ProofVerifiedEvents } from './l1/data_retrieval.js';
18
+ export { CalldataRetriever } from './l1/calldata_retriever.js';
@@ -3,7 +3,7 @@ import { CheckpointNumber } from '@aztec/foundation/branded-types';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
6
- import { createPublicClient, getAbiItem, http, toEventSelector } from 'viem';
6
+ import { createPublicClient, decodeEventLog, getAbiItem, http, toEventSelector } from 'viem';
7
7
  import { mainnet } from 'viem/chains';
8
8
  import { CalldataRetriever } from '../calldata_retriever.js';
9
9
  const logger = createLogger('archiver:calldata-test');
@@ -74,47 +74,51 @@ async function main() {
74
74
  throw new Error(`Transaction ${txHash} not found`);
75
75
  }
76
76
  logger.info(`Transaction found in block ${tx.blockNumber}`);
77
- // For simplicity, use zero addresses for optional contract addresses
78
- // In production, these would be fetched from the rollup contract or configuration
79
- const slashingProposerAddress = EthAddress.ZERO;
80
- const governanceProposerAddress = EthAddress.ZERO;
81
- const slashFactoryAddress = undefined;
82
- logger.info('Using zero addresses for governance/slashing (can be configured if needed)');
83
77
  // Create CalldataRetriever
84
- const retriever = new CalldataRetriever(publicClient, publicClient, targetCommitteeSize, undefined, logger, {
85
- rollupAddress,
86
- governanceProposerAddress,
87
- slashingProposerAddress,
88
- slashFactoryAddress
89
- });
90
- // Extract checkpoint number from transaction logs
91
- logger.info('Decoding transaction to extract checkpoint number...');
78
+ const retriever = new CalldataRetriever(publicClient, publicClient, targetCommitteeSize, undefined, logger, rollupAddress);
79
+ // Extract checkpoint number and hashes from transaction logs
80
+ logger.info('Decoding transaction to extract checkpoint number and hashes...');
92
81
  const receipt = await publicClient.getTransactionReceipt({
93
82
  hash: txHash
94
83
  });
95
- // Look for CheckpointProposed event (emitted when a checkpoint is proposed to the rollup)
96
- // Event signature: CheckpointProposed(uint256 indexed checkpointNumber, bytes32 indexed archive, bytes32[], bytes32, bytes32)
97
- // Hash: keccak256("CheckpointProposed(uint256,bytes32,bytes32[],bytes32,bytes32)")
98
- const checkpointProposedEvent = receipt.logs.find((log)=>{
84
+ // Look for CheckpointProposed event
85
+ const checkpointProposedEventAbi = getAbiItem({
86
+ abi: RollupAbi,
87
+ name: 'CheckpointProposed'
88
+ });
89
+ const checkpointProposedLog = receipt.logs.find((log)=>{
99
90
  try {
100
- return log.address.toLowerCase() === rollupAddress.toString().toLowerCase() && log.topics[0] === toEventSelector(getAbiItem({
101
- abi: RollupAbi,
102
- name: 'CheckpointProposed'
103
- }));
91
+ return log.address.toLowerCase() === rollupAddress.toString().toLowerCase() && log.topics[0] === toEventSelector(checkpointProposedEventAbi);
104
92
  } catch {
105
93
  return false;
106
94
  }
107
95
  });
108
- if (!checkpointProposedEvent || checkpointProposedEvent.topics[1] === undefined) {
96
+ if (!checkpointProposedLog || checkpointProposedLog.topics[1] === undefined) {
109
97
  throw new Error(`Checkpoint proposed event not found`);
110
98
  }
111
- const checkpointNumber = CheckpointNumber.fromBigInt(BigInt(checkpointProposedEvent.topics[1]));
99
+ const checkpointNumber = CheckpointNumber.fromBigInt(BigInt(checkpointProposedLog.topics[1]));
100
+ // Decode the full event to extract attestationsHash and payloadDigest
101
+ const decodedEvent = decodeEventLog({
102
+ abi: RollupAbi,
103
+ data: checkpointProposedLog.data,
104
+ topics: checkpointProposedLog.topics
105
+ });
106
+ const eventArgs = decodedEvent.args;
107
+ if (!eventArgs.attestationsHash || !eventArgs.payloadDigest) {
108
+ throw new Error(`CheckpointProposed event missing attestationsHash or payloadDigest`);
109
+ }
110
+ const expectedHashes = {
111
+ attestationsHash: eventArgs.attestationsHash,
112
+ payloadDigest: eventArgs.payloadDigest
113
+ };
114
+ logger.info(`Checkpoint Number: ${checkpointNumber}`);
115
+ logger.info(`Attestations Hash: ${expectedHashes.attestationsHash}`);
116
+ logger.info(`Payload Digest: ${expectedHashes.payloadDigest}`);
112
117
  logger.info('');
113
118
  logger.info('Retrieving checkpoint from rollup transaction...');
114
119
  logger.info('');
115
- // For this script, we don't have blob hashes or expected hashes, so pass empty arrays/objects
116
- const result = await retriever.getCheckpointFromRollupTx(txHash, [], checkpointNumber, {});
117
- logger.info(' Successfully retrieved block header!');
120
+ const result = await retriever.getCheckpointFromRollupTx(txHash, [], checkpointNumber, expectedHashes);
121
+ logger.info(' Successfully retrieved block header!');
118
122
  logger.info('');
119
123
  logger.info('Block Header Details:');
120
124
  logger.info('====================');
@@ -1,3 +1,4 @@
1
+ import { type ViemCommitteeAttestations } from '@aztec/ethereum/contracts';
1
2
  import type { ViemPublicClient, ViemPublicDebugClient } from '@aztec/ethereum/types';
2
3
  import { CheckpointNumber } from '@aztec/foundation/branded-types';
3
4
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -7,9 +8,25 @@ import { CommitteeAttestation } from '@aztec/stdlib/block';
7
8
  import { CheckpointHeader } from '@aztec/stdlib/rollup';
8
9
  import { type Hex, type Transaction } from 'viem';
9
10
  import type { ArchiverInstrumentation } from '../modules/instrumentation.js';
11
+ /** Decoded checkpoint data from a propose calldata. */
12
+ type CheckpointData = {
13
+ checkpointNumber: CheckpointNumber;
14
+ archiveRoot: Fr;
15
+ header: CheckpointHeader;
16
+ attestations: CommitteeAttestation[];
17
+ /**
18
+ * The exact packed `CommitteeAttestations` tuple as it appears in the propose calldata, preserved
19
+ * verbatim (never re-derived from {@link attestations}) so invalidation evidence stays byte-faithful to
20
+ * the on-chain `attestationsHash`.
21
+ */
22
+ verbatimAttestations: ViemCommitteeAttestations;
23
+ blockHash: string;
24
+ feeAssetPriceModifier: bigint;
25
+ };
10
26
  /**
11
27
  * Extracts calldata to the `propose` method of the rollup contract from an L1 transaction
12
- * in order to reconstruct an L2 block header.
28
+ * in order to reconstruct an L2 block header. Uses hash matching against expected hashes
29
+ * from the CheckpointProposed event to verify the correct propose calldata.
13
30
  */
14
31
  export declare class CalldataRetriever {
15
32
  private readonly publicClient;
@@ -17,65 +34,80 @@ export declare class CalldataRetriever {
17
34
  private readonly targetCommitteeSize;
18
35
  private readonly instrumentation;
19
36
  private readonly logger;
20
- /** Pre-computed valid contract calls for validation */
21
- private readonly validContractCalls;
22
37
  private readonly rollupAddress;
23
- constructor(publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, targetCommitteeSize: number, instrumentation: ArchiverInstrumentation | undefined, logger: Logger, contractAddresses: {
24
- rollupAddress: EthAddress;
25
- governanceProposerAddress: EthAddress;
26
- slashingProposerAddress: EthAddress;
27
- slashFactoryAddress?: EthAddress;
28
- });
38
+ /** Tx hashes we've already logged for trace+debug failure (log once per tx per process). */
39
+ private static readonly traceFailureWarnedTxHashes;
40
+ /** Clears the trace-failure warned set. For testing only. */
41
+ static resetTraceFailureWarnedForTesting(): void;
42
+ constructor(publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, targetCommitteeSize: number, instrumentation: ArchiverInstrumentation | undefined, logger: Logger, rollupAddress: EthAddress);
43
+ private getSignatureContext;
29
44
  /**
30
45
  * Gets checkpoint header and metadata from the calldata of an L1 transaction.
31
46
  * Tries multicall3 decoding, falls back to trace-based extraction.
32
47
  * @param txHash - Hash of the tx that published it.
33
48
  * @param blobHashes - Blob hashes for the checkpoint.
34
49
  * @param checkpointNumber - Checkpoint number.
35
- * @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
50
+ * @param expectedHashes - Expected hashes from the CheckpointProposed event for validation
36
51
  * @returns Checkpoint header and metadata from the calldata, deserialized
37
52
  */
38
53
  getCheckpointFromRollupTx(txHash: `0x${string}`, _blobHashes: Buffer[], checkpointNumber: CheckpointNumber, expectedHashes: {
39
- attestationsHash?: Hex;
40
- payloadDigest?: Hex;
41
- }): Promise<{
42
- checkpointNumber: CheckpointNumber;
43
- archiveRoot: Fr;
44
- header: CheckpointHeader;
45
- attestations: CommitteeAttestation[];
46
- blockHash: string;
47
- }>;
48
- /** Gets rollup propose calldata from a transaction */
49
- protected getProposeCallData(tx: Transaction, checkpointNumber: CheckpointNumber): Promise<Hex>;
54
+ attestationsHash: Hex;
55
+ payloadDigest: Hex;
56
+ }): Promise<CheckpointData>;
57
+ /** Gets checkpoint data from a transaction by trying decode strategies then falling back to trace. */
58
+ protected getCheckpointFromTx(tx: Transaction, checkpointNumber: CheckpointNumber, expectedHashes: {
59
+ attestationsHash: Hex;
60
+ payloadDigest: Hex;
61
+ }): Promise<CheckpointData>;
50
62
  /**
51
63
  * Attempts to decode a transaction as a Spire Proposer multicall wrapper.
52
- * If successful, extracts the wrapped call and validates it as either multicall3 or direct propose.
64
+ * If successful, iterates all wrapped calls and validates each as either multicall3
65
+ * or direct propose, verifying against expected hashes.
53
66
  * @param tx - The transaction to decode
54
- * @returns The propose calldata if successfully decoded and validated, undefined otherwise
67
+ * @param expectedHashes - Expected hashes for hash-verified matching
68
+ * @param checkpointNumber - The checkpoint number
69
+ * @param blockHash - The L1 block hash
70
+ * @returns The checkpoint data if successfully decoded and validated, undefined otherwise
55
71
  */
56
- protected tryDecodeSpireProposer(tx: Transaction): Promise<Hex | undefined>;
72
+ protected tryDecodeSpireProposer(tx: Transaction, expectedHashes: {
73
+ attestationsHash: Hex;
74
+ payloadDigest: Hex;
75
+ }, checkpointNumber: CheckpointNumber, blockHash: Hex): Promise<CheckpointData | undefined>;
57
76
  /**
58
77
  * Attempts to decode transaction input as multicall3 and extract propose calldata.
59
- * Returns undefined if validation fails.
78
+ * Finds all calls matching the rollup address and propose selector, then decodes
79
+ * and verifies each candidate against expected hashes from the CheckpointProposed event.
60
80
  * @param tx - The transaction-like object with to, input, and hash
61
- * @returns The propose calldata if successfully validated, undefined otherwise
81
+ * @param expectedHashes - Expected hashes from CheckpointProposed event
82
+ * @param checkpointNumber - The checkpoint number
83
+ * @param blockHash - The L1 block hash
84
+ * @returns The checkpoint data if successfully validated, undefined otherwise
62
85
  */
63
86
  protected tryDecodeMulticall3(tx: {
64
87
  to: Hex | null | undefined;
65
88
  input: Hex;
66
89
  hash: Hex;
67
- }): Hex | undefined;
90
+ }, expectedHashes: {
91
+ attestationsHash: Hex;
92
+ payloadDigest: Hex;
93
+ }, checkpointNumber: CheckpointNumber, blockHash: Hex): CheckpointData | undefined;
68
94
  /**
69
95
  * Attempts to decode transaction as a direct propose call to the rollup contract.
70
- * Returns undefined if validation fails.
96
+ * Decodes, verifies hashes, and builds checkpoint data in a single pass.
71
97
  * @param tx - The transaction-like object with to, input, and hash
72
- * @returns The propose calldata if successfully validated, undefined otherwise
98
+ * @param expectedHashes - Expected hashes from CheckpointProposed event
99
+ * @param checkpointNumber - The checkpoint number
100
+ * @param blockHash - The L1 block hash
101
+ * @returns The checkpoint data if successfully validated, undefined otherwise
73
102
  */
74
103
  protected tryDecodeDirectPropose(tx: {
75
104
  to: Hex | null | undefined;
76
105
  input: Hex;
77
106
  hash: Hex;
78
- }): Hex | undefined;
107
+ }, expectedHashes: {
108
+ attestationsHash: Hex;
109
+ payloadDigest: Hex;
110
+ }, checkpointNumber: CheckpointNumber, blockHash: Hex): CheckpointData | undefined;
79
111
  /**
80
112
  * Uses debug/trace RPC to extract the actual calldata from the successful propose call.
81
113
  * This is the definitive fallback that works for any transaction pattern.
@@ -84,29 +116,28 @@ export declare class CalldataRetriever {
84
116
  * @returns The propose calldata from the successful call
85
117
  */
86
118
  protected extractCalldataViaTrace(txHash: Hex): Promise<Hex>;
119
+ /**
120
+ * Decodes propose calldata, verifies against expected hashes, and builds checkpoint data.
121
+ * Returns undefined on decode errors or hash mismatches (soft failure for try-based callers).
122
+ * @param proposeCalldata - The propose function calldata
123
+ * @param expectedHashes - Expected hashes from the CheckpointProposed event
124
+ * @param checkpointNumber - The checkpoint number
125
+ * @param blockHash - The L1 block hash
126
+ * @returns The decoded checkpoint data, or undefined on failure
127
+ */
128
+ protected tryDecodeAndVerifyPropose(proposeCalldata: Hex, expectedHashes: {
129
+ attestationsHash: Hex;
130
+ payloadDigest: Hex;
131
+ }, checkpointNumber: CheckpointNumber, blockHash: Hex): CheckpointData | undefined;
132
+ /** Computes the keccak256 hash of ABI-encoded CommitteeAttestations. */
133
+ private computeAttestationsHash;
134
+ /** Computes the keccak256 payload digest from the checkpoint header, archive root, and fee asset price modifier. */
135
+ private computePayloadDigest;
87
136
  /**
88
137
  * Extracts the CommitteeAttestations struct definition from RollupAbi.
89
138
  * Finds the _attestations parameter by name in the propose function.
90
- * Lazy-loaded to avoid issues during module initialization.
91
139
  */
92
140
  private getCommitteeAttestationsStructDef;
93
- /**
94
- * Decodes propose calldata and builds the checkpoint header structure.
95
- * @param proposeCalldata - The propose function calldata
96
- * @param blockHash - The L1 block hash containing this transaction
97
- * @param checkpointNumber - The checkpoint number
98
- * @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
99
- * @returns The decoded checkpoint header and metadata
100
- */
101
- protected decodeAndBuildCheckpoint(proposeCalldata: Hex, blockHash: Hex, checkpointNumber: CheckpointNumber, expectedHashes: {
102
- attestationsHash?: Hex;
103
- payloadDigest?: Hex;
104
- }): {
105
- checkpointNumber: CheckpointNumber;
106
- archiveRoot: Fr;
107
- header: CheckpointHeader;
108
- attestations: CommitteeAttestation[];
109
- blockHash: string;
110
- };
111
141
  }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGFfcmV0cmlldmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbDEvY2FsbGRhdGFfcmV0cmlldmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBRUwsS0FBSyxHQUFHLEVBQ1IsS0FBSyxXQUFXLEVBT2pCLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU03RTs7O0dBR0c7QUFDSCxxQkFBYSxpQkFBaUI7SUFPMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBVnpCLHVEQUF1RDtJQUN2RCxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFzQjtJQUV6RCxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBYTtJQUUzQyxZQUNtQixZQUFZLEVBQUUsZ0JBQWdCLEVBQzlCLFdBQVcsRUFBRSxxQkFB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
142
+ export {};
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGFfcmV0cmlldmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbDEvY2FsbGRhdGFfcmV0cmlldmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0IsS0FBSyx5QkFBeUIsRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNsSCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUVMLEtBQUssR0FBRyxFQUNSLEtBQUssV0FBVyxFQU9qQixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFNN0UsdURBQXVEO0FBQ3ZELEtBQUssY0FBYyxHQUFHO0lBQ3BCLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDaEIsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0lBQ3pCLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDOzs7O09BSUc7SUFDSCxvQkFBb0IsRUFBRSx5QkFBeUIsQ0FBQztJQUNoRCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztDQUMvQixDQUFDO0FBRUY7Ozs7R0FJRztB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
@@ -1 +1 @@
1
- {"version":3,"file":"calldata_retriever.d.ts","sourceRoot":"","sources":["../../src/l1/calldata_retriever.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calldata_retriever.d.ts","sourceRoot":"","sources":["../../src/l1/calldata_retriever.ts"],"names":[],"mappings":"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"}