@aztec/txe 0.0.0-test.1 → 0.0.1-commit.1142ef1

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 (100) hide show
  1. package/dest/bin/index.d.ts +1 -1
  2. package/dest/bin/index.js +3 -2
  3. package/dest/constants.d.ts +4 -0
  4. package/dest/constants.d.ts.map +1 -0
  5. package/dest/constants.js +3 -0
  6. package/dest/index.d.ts +1 -1
  7. package/dest/index.d.ts.map +1 -1
  8. package/dest/index.js +81 -51
  9. package/dest/oracle/interfaces.d.ts +57 -0
  10. package/dest/oracle/interfaces.d.ts.map +1 -0
  11. package/dest/oracle/interfaces.js +3 -0
  12. package/dest/oracle/txe_oracle_public_context.d.ts +34 -0
  13. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -0
  14. package/dest/oracle/txe_oracle_public_context.js +122 -0
  15. package/dest/oracle/txe_oracle_top_level_context.d.ts +65 -0
  16. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -0
  17. package/dest/oracle/txe_oracle_top_level_context.js +463 -0
  18. package/dest/rpc_translator.d.ts +246 -0
  19. package/dest/rpc_translator.d.ts.map +1 -0
  20. package/dest/rpc_translator.js +666 -0
  21. package/dest/state_machine/archiver.d.ts +80 -0
  22. package/dest/state_machine/archiver.d.ts.map +1 -0
  23. package/dest/state_machine/archiver.js +229 -0
  24. package/dest/state_machine/dummy_p2p_client.d.ts +55 -0
  25. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -0
  26. package/dest/state_machine/dummy_p2p_client.js +141 -0
  27. package/dest/state_machine/global_variable_builder.d.ts +11 -0
  28. package/dest/state_machine/global_variable_builder.d.ts.map +1 -0
  29. package/dest/state_machine/global_variable_builder.js +22 -0
  30. package/dest/state_machine/index.d.ts +16 -0
  31. package/dest/state_machine/index.d.ts.map +1 -0
  32. package/dest/state_machine/index.js +45 -0
  33. package/dest/state_machine/mock_epoch_cache.d.ts +27 -0
  34. package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -0
  35. package/dest/state_machine/mock_epoch_cache.js +54 -0
  36. package/dest/state_machine/synchronizer.d.ts +33 -0
  37. package/dest/state_machine/synchronizer.d.ts.map +1 -0
  38. package/dest/state_machine/synchronizer.js +59 -0
  39. package/dest/txe_session.d.ts +73 -0
  40. package/dest/txe_session.d.ts.map +1 -0
  41. package/dest/txe_session.js +286 -0
  42. package/dest/util/encoding.d.ts +647 -30
  43. package/dest/util/encoding.d.ts.map +1 -1
  44. package/dest/util/encoding.js +66 -11
  45. package/dest/util/expected_failure_error.d.ts +1 -1
  46. package/dest/util/expected_failure_error.d.ts.map +1 -1
  47. package/dest/util/txe_account_store.d.ts +10 -0
  48. package/dest/util/txe_account_store.d.ts.map +1 -0
  49. package/dest/util/{txe_account_data_provider.js → txe_account_store.js} +1 -1
  50. package/dest/util/txe_contract_store.d.ts +12 -0
  51. package/dest/util/txe_contract_store.d.ts.map +1 -0
  52. package/dest/util/txe_contract_store.js +22 -0
  53. package/dest/util/txe_public_contract_data_source.d.ts +12 -11
  54. package/dest/util/txe_public_contract_data_source.d.ts.map +1 -1
  55. package/dest/util/txe_public_contract_data_source.js +37 -58
  56. package/dest/utils/block_creation.d.ts +28 -0
  57. package/dest/utils/block_creation.d.ts.map +1 -0
  58. package/dest/utils/block_creation.js +44 -0
  59. package/dest/utils/tx_effect_creation.d.ts +6 -0
  60. package/dest/utils/tx_effect_creation.d.ts.map +1 -0
  61. package/dest/utils/tx_effect_creation.js +16 -0
  62. package/package.json +30 -24
  63. package/src/bin/index.ts +3 -2
  64. package/src/constants.ts +4 -0
  65. package/src/index.ts +105 -74
  66. package/src/oracle/interfaces.ts +86 -0
  67. package/src/oracle/txe_oracle_public_context.ts +160 -0
  68. package/src/oracle/txe_oracle_top_level_context.ts +718 -0
  69. package/src/rpc_translator.ts +1083 -0
  70. package/src/state_machine/archiver.ts +294 -0
  71. package/src/state_machine/dummy_p2p_client.ts +209 -0
  72. package/src/state_machine/global_variable_builder.ts +38 -0
  73. package/src/state_machine/index.ts +78 -0
  74. package/src/state_machine/mock_epoch_cache.ts +72 -0
  75. package/src/state_machine/synchronizer.ts +88 -0
  76. package/src/txe_session.ts +525 -0
  77. package/src/util/encoding.ts +85 -11
  78. package/src/util/{txe_account_data_provider.ts → txe_account_store.ts} +1 -1
  79. package/src/util/txe_contract_store.ts +36 -0
  80. package/src/util/txe_public_contract_data_source.ts +43 -58
  81. package/src/utils/block_creation.ts +94 -0
  82. package/src/utils/tx_effect_creation.ts +38 -0
  83. package/dest/node/txe_node.d.ts +0 -358
  84. package/dest/node/txe_node.d.ts.map +0 -1
  85. package/dest/node/txe_node.js +0 -504
  86. package/dest/oracle/txe_oracle.d.ts +0 -152
  87. package/dest/oracle/txe_oracle.d.ts.map +0 -1
  88. package/dest/oracle/txe_oracle.js +0 -833
  89. package/dest/txe_service/txe_service.d.ts +0 -212
  90. package/dest/txe_service/txe_service.d.ts.map +0 -1
  91. package/dest/txe_service/txe_service.js +0 -572
  92. package/dest/util/txe_account_data_provider.d.ts +0 -10
  93. package/dest/util/txe_account_data_provider.d.ts.map +0 -1
  94. package/dest/util/txe_world_state_db.d.ts +0 -14
  95. package/dest/util/txe_world_state_db.d.ts.map +0 -1
  96. package/dest/util/txe_world_state_db.js +0 -27
  97. package/src/node/txe_node.ts +0 -725
  98. package/src/oracle/txe_oracle.ts +0 -1241
  99. package/src/txe_service/txe_service.ts +0 -749
  100. package/src/util/txe_world_state_db.ts +0 -38
@@ -0,0 +1,80 @@
1
+ import { ArchiverStoreHelper } from '@aztec/archiver';
2
+ import { BlockNumber, CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import type { EthAddress } from '@aztec/foundation/eth-address';
5
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
6
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
7
+ import { L2Block, type L2BlockNew, type L2BlockSource, type L2Tips, PublishedL2Block, type ValidateCheckpointResult } from '@aztec/stdlib/block';
8
+ import { Checkpoint, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
9
+ import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
10
+ import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
11
+ import type { BlockHeader } from '@aztec/stdlib/tx';
12
+ import type { UInt64 } from '@aztec/stdlib/types';
13
+ export declare class TXEArchiver extends ArchiverStoreHelper implements L2BlockSource {
14
+ constructor(db: AztecAsyncKVStore);
15
+ getBlock(number: BlockNumber): Promise<L2Block | undefined>;
16
+ getBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<L2Block[]>;
17
+ addCheckpoints(checkpoints: PublishedCheckpoint[], _result?: ValidateCheckpointResult): Promise<boolean>;
18
+ /**
19
+ * Gets the number of the latest L2 block processed by the block source implementation.
20
+ * @returns The number of the latest L2 block processed by the block source implementation.
21
+ */
22
+ getBlockNumber(): Promise<BlockNumber>;
23
+ /**
24
+ * Gets the number of the latest L2 block proven seen by the block source implementation.
25
+ * @returns The number of the latest L2 block proven seen by the block source implementation.
26
+ */
27
+ getProvenBlockNumber(): Promise<BlockNumber>;
28
+ /**
29
+ * Gets a published l2 block. If a negative number is passed, the block returned is the most recent.
30
+ * @param number - The block number to return (inclusive).
31
+ * @returns The requested L2 block.
32
+ */
33
+ getPublishedBlock(number: number): Promise<PublishedL2Block | undefined>;
34
+ getPublishedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<PublishedL2Block[]>;
35
+ getL2BlocksNew(from: BlockNumber, limit: number, proven?: boolean): Promise<L2BlockNew[]>;
36
+ private retrievePublishedBlocks;
37
+ /**
38
+ * Gets an l2 block. If a negative number is passed, the block returned is the most recent.
39
+ * @param number - The block number to return (inclusive).
40
+ * @returns The requested L2 block.
41
+ */
42
+ getL2Block(number: BlockNumber | 'latest'): Promise<L2Block | undefined>;
43
+ /**
44
+ * Gets an L2 block (new format).
45
+ * @param number - The block number to return.
46
+ * @returns The requested L2 block.
47
+ */
48
+ getL2BlockNew(number: BlockNumber): Promise<L2BlockNew | undefined>;
49
+ /**
50
+ * Gets an l2 block header.
51
+ * @param number - The block number to return or 'latest' for the most recent one.
52
+ * @returns The requested L2 block header.
53
+ */
54
+ getBlockHeader(number: number | 'latest'): Promise<BlockHeader | undefined>;
55
+ getBlockRange(from: number, limit: number, _proven?: boolean): Promise<L2Block[]>;
56
+ getPublishedCheckpoints(_from: CheckpointNumber, _limit: number): Promise<PublishedCheckpoint[]>;
57
+ getCheckpointByArchive(_archive: Fr): Promise<Checkpoint | undefined>;
58
+ getL2SlotNumber(): Promise<SlotNumber | undefined>;
59
+ getL2EpochNumber(): Promise<EpochNumber>;
60
+ getCheckpointsForEpoch(_epochNumber: EpochNumber): Promise<Checkpoint[]>;
61
+ getBlocksForEpoch(_epochNumber: EpochNumber): Promise<L2Block[]>;
62
+ getBlockHeadersForEpoch(_epochNumber: EpochNumber): Promise<BlockHeader[]>;
63
+ isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
64
+ getL2Tips(): Promise<L2Tips>;
65
+ getL1Constants(): Promise<L1RollupConstants>;
66
+ getGenesisValues(): Promise<{
67
+ genesisArchiveRoot: Fr;
68
+ }>;
69
+ syncImmediate(): Promise<void>;
70
+ getContract(_address: AztecAddress, _timestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
71
+ getRollupAddress(): Promise<EthAddress>;
72
+ getRegistryAddress(): Promise<EthAddress>;
73
+ getL1Timestamp(): Promise<bigint>;
74
+ isPendingChainInvalid(): Promise<boolean>;
75
+ getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
76
+ getPublishedBlockByHash(_blockHash: Fr): Promise<PublishedL2Block | undefined>;
77
+ getPublishedBlockByArchive(_archive: Fr): Promise<PublishedL2Block | undefined>;
78
+ getCheckpointedBlocks(_from: BlockNumber, _limit: number, _proven?: boolean): Promise<never[]>;
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2FyY2hpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBR0wsT0FBTyxFQUVQLEtBQUssVUFBVSxFQUNmLEtBQUssYUFBYSxFQUVsQixLQUFLLE1BQU0sRUFDWCxnQkFBZ0IsRUFDaEIsS0FBSyx3QkFBd0IsRUFDOUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0UsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS2xELHFCQUFhLFdBQVksU0FBUSxtQkFBb0IsWUFBVyxhQUFhO0lBQzNFLFlBQVksRUFBRSxFQUFFLGlCQUFpQixFQUVoQztJQUVZLFFBQVEsQ0FBQyxNQUFNLEVB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ import { ArchiverStoreHelper, KVArchiverDataStore } from '@aztec/archiver';
2
+ import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
3
+ import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
5
+ import { isDefined } from '@aztec/foundation/types';
6
+ import { CommitteeAttestation, L2Block, PublishedL2Block } from '@aztec/stdlib/block';
7
+ import { Checkpoint } from '@aztec/stdlib/checkpoint';
8
+ // We are extending the ArchiverDataStoreHelper here because it provides most of the endpoints needed by the
9
+ // node for reading from and writing to state, without needing any of the extra overhead that the Archiver itself
10
+ // requires (i.e. an L1 client)
11
+ export class TXEArchiver extends ArchiverStoreHelper {
12
+ constructor(db){
13
+ super(new KVArchiverDataStore(db, 9999));
14
+ }
15
+ async getBlock(number) {
16
+ if (number === 0) {
17
+ return undefined;
18
+ }
19
+ const publishedBlocks = await this.getPublishedBlocks(number, 1);
20
+ if (publishedBlocks.length === 0) {
21
+ return undefined;
22
+ }
23
+ return publishedBlocks[0].block;
24
+ }
25
+ async getBlocks(from, limit, proven) {
26
+ const publishedBlocks = await this.getPublishedBlocks(from, limit, proven);
27
+ return publishedBlocks.map((x)=>x.block);
28
+ }
29
+ async addCheckpoints(checkpoints, _result) {
30
+ const allBlocks = checkpoints.flatMap((ch)=>ch.checkpoint.blocks);
31
+ const opResults = await Promise.all([
32
+ this.store.addLogs(allBlocks),
33
+ this.store.addCheckpoints(checkpoints)
34
+ ]);
35
+ return opResults.every(Boolean);
36
+ }
37
+ /**
38
+ * Gets the number of the latest L2 block processed by the block source implementation.
39
+ * @returns The number of the latest L2 block processed by the block source implementation.
40
+ */ getBlockNumber() {
41
+ return this.store.getLatestBlockNumber();
42
+ }
43
+ /**
44
+ * Gets the number of the latest L2 block proven seen by the block source implementation.
45
+ * @returns The number of the latest L2 block proven seen by the block source implementation.
46
+ */ getProvenBlockNumber() {
47
+ return this.store.getProvenBlockNumber();
48
+ }
49
+ /**
50
+ * Gets a published l2 block. If a negative number is passed, the block returned is the most recent.
51
+ * @param number - The block number to return (inclusive).
52
+ * @returns The requested L2 block.
53
+ */ async getPublishedBlock(number) {
54
+ // If the number provided is -ve, then return the latest block.
55
+ if (number < 0) {
56
+ number = await this.store.getLatestBlockNumber();
57
+ }
58
+ if (number == 0) {
59
+ return undefined;
60
+ }
61
+ const publishedBlocks = await this.retrievePublishedBlocks(BlockNumber(number), 1);
62
+ return publishedBlocks.length === 0 ? undefined : publishedBlocks[0];
63
+ }
64
+ getPublishedBlocks(from, limit, proven) {
65
+ return this.retrievePublishedBlocks(from, limit, proven);
66
+ }
67
+ async getL2BlocksNew(from, limit, proven) {
68
+ const blocks = await this.store.getBlocks(from, limit);
69
+ if (proven === true) {
70
+ const provenBlockNumber = await this.store.getProvenBlockNumber();
71
+ return blocks.filter((b)=>b.number <= provenBlockNumber);
72
+ }
73
+ return blocks;
74
+ }
75
+ async retrievePublishedBlocks(from, limit, proven) {
76
+ const checkpoints = await this.store.getRangeOfCheckpoints(CheckpointNumber(from), limit);
77
+ const provenCheckpointNumber = await this.store.getProvenCheckpointNumber();
78
+ const blocks = (await Promise.all(checkpoints.map((ch)=>this.store.getBlocksForCheckpoint(ch.checkpointNumber)))).filter(isDefined);
79
+ const olbBlocks = [];
80
+ for(let i = 0; i < checkpoints.length; i++){
81
+ const blockForCheckpoint = blocks[i][0];
82
+ const checkpoint = checkpoints[i];
83
+ if (proven === true && checkpoint.checkpointNumber > provenCheckpointNumber) {
84
+ continue;
85
+ }
86
+ const oldCheckpoint = new Checkpoint(blockForCheckpoint.archive, checkpoint.header, [
87
+ blockForCheckpoint
88
+ ], checkpoint.checkpointNumber);
89
+ const oldBlock = L2Block.fromCheckpoint(oldCheckpoint);
90
+ const publishedBlock = new PublishedL2Block(oldBlock, checkpoint.l1, checkpoint.attestations.map((x)=>CommitteeAttestation.fromBuffer(x)));
91
+ olbBlocks.push(publishedBlock);
92
+ }
93
+ return olbBlocks;
94
+ }
95
+ /**
96
+ * Gets an l2 block. If a negative number is passed, the block returned is the most recent.
97
+ * @param number - The block number to return (inclusive).
98
+ * @returns The requested L2 block.
99
+ */ getL2Block(number) {
100
+ return this.getPublishedBlock(number != 'latest' ? number : -1).then((b)=>b?.block);
101
+ }
102
+ /**
103
+ * Gets an L2 block (new format).
104
+ * @param number - The block number to return.
105
+ * @returns The requested L2 block.
106
+ */ getL2BlockNew(number) {
107
+ if (number === 0) {
108
+ return Promise.resolve(undefined);
109
+ }
110
+ return this.store.getBlock(number);
111
+ }
112
+ /**
113
+ * Gets an l2 block header.
114
+ * @param number - The block number to return or 'latest' for the most recent one.
115
+ * @returns The requested L2 block header.
116
+ */ async getBlockHeader(number) {
117
+ if (number === 'latest') {
118
+ number = await this.store.getLatestBlockNumber();
119
+ }
120
+ if (number === 0) {
121
+ return undefined;
122
+ }
123
+ const headers = await this.store.getBlockHeaders(BlockNumber(number), 1);
124
+ return headers.length === 0 ? undefined : headers[0];
125
+ }
126
+ getBlockRange(from, limit, _proven) {
127
+ return this.getPublishedBlocks(BlockNumber(from), limit).then((blocks)=>blocks.map((b)=>b.block));
128
+ }
129
+ getPublishedCheckpoints(_from, _limit) {
130
+ throw new Error('TXE Archiver does not implement "getPublishedCheckpoints"');
131
+ }
132
+ getCheckpointByArchive(_archive) {
133
+ throw new Error('TXE Archiver does not implement "getCheckpointByArchive"');
134
+ }
135
+ getL2SlotNumber() {
136
+ throw new Error('TXE Archiver does not implement "getL2SlotNumber"');
137
+ }
138
+ getL2EpochNumber() {
139
+ throw new Error('TXE Archiver does not implement "getL2EpochNumber"');
140
+ }
141
+ getCheckpointsForEpoch(_epochNumber) {
142
+ throw new Error('TXE Archiver does not implement "getCheckpointsForEpoch"');
143
+ }
144
+ getBlocksForEpoch(_epochNumber) {
145
+ throw new Error('TXE Archiver does not implement "getBlocksForEpoch"');
146
+ }
147
+ getBlockHeadersForEpoch(_epochNumber) {
148
+ throw new Error('TXE Archiver does not implement "getBlockHeadersForEpoch"');
149
+ }
150
+ isEpochComplete(_epochNumber) {
151
+ throw new Error('TXE Archiver does not implement "isEpochComplete"');
152
+ }
153
+ async getL2Tips() {
154
+ // In TXE there is no possibility of reorgs and no blocks are ever getting proven so we just set 'latest', 'proven'
155
+ // and 'finalized' to the latest block.
156
+ const blockHeader = await this.getBlockHeader('latest');
157
+ if (!blockHeader) {
158
+ throw new Error('L2Tips requested from TXE Archiver but no block header found');
159
+ }
160
+ const number = blockHeader.globalVariables.blockNumber;
161
+ const hash = (await blockHeader.hash()).toString();
162
+ const checkpointedBlock = await this.getCheckpointedBlock(number);
163
+ if (!checkpointedBlock) {
164
+ throw new Error(`L2Tips requested from TXE Archiver but no checkpointed block found for block number ${number}`);
165
+ }
166
+ const checkpoint = await this.store.getRangeOfCheckpoints(CheckpointNumber(number), 1);
167
+ if (checkpoint.length === 0) {
168
+ throw new Error(`L2Tips requested from TXE Archiver but no checkpoint found for block number ${number}`);
169
+ }
170
+ const blockId = {
171
+ number,
172
+ hash
173
+ };
174
+ const checkpointId = {
175
+ number: checkpoint[0].checkpointNumber,
176
+ hash: checkpoint[0].header.hash().toString()
177
+ };
178
+ const tipId = {
179
+ block: blockId,
180
+ checkpoint: checkpointId
181
+ };
182
+ return {
183
+ proposed: blockId,
184
+ proven: tipId,
185
+ finalized: tipId,
186
+ checkpointed: tipId
187
+ };
188
+ }
189
+ getL1Constants() {
190
+ throw new Error('TXE Archiver does not implement "getL2Constants"');
191
+ }
192
+ getGenesisValues() {
193
+ return Promise.resolve({
194
+ genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT)
195
+ });
196
+ }
197
+ syncImmediate() {
198
+ throw new Error('TXE Archiver does not implement "syncImmediate"');
199
+ }
200
+ getContract(_address, _timestamp) {
201
+ throw new Error('TXE Archiver does not implement "getContract"');
202
+ }
203
+ getRollupAddress() {
204
+ throw new Error('TXE Archiver does not implement "getRollupAddress"');
205
+ }
206
+ getRegistryAddress() {
207
+ throw new Error('TXE Archiver does not implement "getRegistryAddress"');
208
+ }
209
+ getL1Timestamp() {
210
+ throw new Error('TXE Archiver does not implement "getL1Timestamp"');
211
+ }
212
+ isPendingChainInvalid() {
213
+ return Promise.resolve(false);
214
+ }
215
+ getPendingChainValidationStatus() {
216
+ return Promise.resolve({
217
+ valid: true
218
+ });
219
+ }
220
+ getPublishedBlockByHash(_blockHash) {
221
+ throw new Error('Method not implemented.');
222
+ }
223
+ getPublishedBlockByArchive(_archive) {
224
+ throw new Error('Method not implemented.');
225
+ }
226
+ getCheckpointedBlocks(_from, _limit, _proven) {
227
+ throw new Error('TXE Archiver does not implement "getCheckpointedBlocks"');
228
+ }
229
+ }
@@ -0,0 +1,55 @@
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import type { AuthRequest, ENR, P2P, P2PBlockReceivedCallback, P2PCheckpointReceivedCallback, P2PConfig, P2PSyncState, PeerId, ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators, StatusMessage } from '@aztec/p2p';
3
+ import type { EthAddress, L2BlockStreamEvent, L2Tips } from '@aztec/stdlib/block';
4
+ import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
5
+ import type { BlockProposal, CheckpointAttestation, CheckpointProposal } from '@aztec/stdlib/p2p';
6
+ import type { Tx, TxHash } from '@aztec/stdlib/tx';
7
+ export declare class DummyP2P implements P2P {
8
+ validate(_txs: Tx[]): Promise<void>;
9
+ clear(): Promise<void>;
10
+ getPendingTxs(): Promise<Tx[]>;
11
+ getEncodedEnr(): Promise<string | undefined>;
12
+ getPeers(_includePending?: boolean): Promise<PeerInfo[]>;
13
+ broadcastProposal(_proposal: BlockProposal): Promise<void>;
14
+ broadcastCheckpointProposal(_proposal: CheckpointProposal): Promise<void>;
15
+ broadcastCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
16
+ registerBlockProposalHandler(_handler: P2PBlockReceivedCallback): void;
17
+ registerCheckpointProposalHandler(_handler: P2PCheckpointReceivedCallback): void;
18
+ requestTxs(_txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
19
+ requestTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
20
+ sendTx(_tx: Tx): Promise<void>;
21
+ deleteTxs(_txHashes: TxHash[]): Promise<void>;
22
+ getTxByHashFromPool(_txHash: TxHash): Promise<Tx | undefined>;
23
+ getTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
24
+ getArchivedTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
25
+ getTxStatus(_txHash: TxHash): Promise<'pending' | 'mined' | undefined>;
26
+ iteratePendingTxs(): AsyncIterableIterator<Tx>;
27
+ getPendingTxCount(): Promise<number>;
28
+ start(): Promise<void>;
29
+ stop(): Promise<void>;
30
+ isReady(): boolean;
31
+ getStatus(): Promise<P2PSyncState>;
32
+ getEnr(): ENR | undefined;
33
+ isP2PClient(): true;
34
+ getTxsByHash(_txHashes: TxHash[]): Promise<Tx[]>;
35
+ getCheckpointAttestationsForSlot(_slot: SlotNumber, _proposalId?: string): Promise<CheckpointAttestation[]>;
36
+ addCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
37
+ getL2BlockHash(_number: number): Promise<string | undefined>;
38
+ updateP2PConfig(_config: Partial<P2PConfig>): Promise<void>;
39
+ getL2Tips(): Promise<L2Tips>;
40
+ handleBlockStreamEvent(_event: L2BlockStreamEvent): Promise<void>;
41
+ sync(): void;
42
+ requestTxsByHash(_txHashes: TxHash[]): Promise<Tx[]>;
43
+ getTxs(_filter: 'all' | 'pending' | 'mined'): Promise<Tx[]>;
44
+ getTxsByHashFromPool(_txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
45
+ hasTxsInPool(_txHashes: TxHash[]): Promise<boolean[]>;
46
+ addTxsToPool(_txs: Tx[]): Promise<number>;
47
+ getSyncedLatestBlockNum(): Promise<number>;
48
+ getSyncedProvenBlockNum(): Promise<number>;
49
+ getSyncedLatestSlot(): Promise<bigint>;
50
+ markTxsAsNonEvictable(_: TxHash[]): Promise<void>;
51
+ addReqRespSubProtocol(_subProtocol: ReqRespSubProtocol, _handler: ReqRespSubProtocolHandler, _validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
52
+ handleAuthRequestFromPeer(_authRequest: AuthRequest, _peerId: PeerId): Promise<StatusMessage>;
53
+ registerThisValidatorAddresses(_address: EthAddress[]): void;
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfcDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlX21hY2hpbmUvZHVtbXlfcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFDVixXQUFXLEVBQ1gsR0FBRyxFQUNILEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsNkJBQTZCLEVBQzdCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGFBQWEsRUFDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEcsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELHFCQUFhLFFBQVMsWUFBVyxHQUFHO0lBQzNCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUV6QztJQUVNLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRU0sYUFBYSxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUVwQztJQUVNLGFBQWEsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVsRDtJQUVNLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxD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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ export class DummyP2P {
2
+ validate(_txs) {
3
+ return Promise.resolve();
4
+ }
5
+ clear() {
6
+ throw new Error('DummyP2P does not implement "clear".');
7
+ }
8
+ getPendingTxs() {
9
+ throw new Error('DummyP2P does not implement "getPendingTxs"');
10
+ }
11
+ getEncodedEnr() {
12
+ throw new Error('DummyP2P does not implement "getEncodedEnr"');
13
+ }
14
+ getPeers(_includePending) {
15
+ throw new Error('DummyP2P does not implement "getPeers"');
16
+ }
17
+ broadcastProposal(_proposal) {
18
+ throw new Error('DummyP2P does not implement "broadcastProposal"');
19
+ }
20
+ broadcastCheckpointProposal(_proposal) {
21
+ throw new Error('DummyP2P does not implement "broadcastCheckpointProposal"');
22
+ }
23
+ broadcastCheckpointAttestations(_attestations) {
24
+ throw new Error('DummyP2P does not implement "broadcastCheckpointAttestations"');
25
+ }
26
+ registerBlockProposalHandler(_handler) {
27
+ throw new Error('DummyP2P does not implement "registerBlockProposalHandler"');
28
+ }
29
+ registerCheckpointProposalHandler(_handler) {
30
+ throw new Error('DummyP2P does not implement "registerCheckpointProposalHandler"');
31
+ }
32
+ requestTxs(_txHashes) {
33
+ throw new Error('DummyP2P does not implement "requestTxs"');
34
+ }
35
+ requestTxByHash(_txHash) {
36
+ throw new Error('DummyP2P does not implement "requestTxByHash"');
37
+ }
38
+ sendTx(_tx) {
39
+ throw new Error('DummyP2P does not implement "sendTx"');
40
+ }
41
+ deleteTxs(_txHashes) {
42
+ throw new Error('DummyP2P does not implement "deleteTxs"');
43
+ }
44
+ getTxByHashFromPool(_txHash) {
45
+ throw new Error('DummyP2P does not implement "getTxByHashFromPool"');
46
+ }
47
+ getTxByHash(_txHash) {
48
+ throw new Error('DummyP2P does not implement "getTxByHash"');
49
+ }
50
+ getArchivedTxByHash(_txHash) {
51
+ throw new Error('DummyP2P does not implement "getArchivedTxByHash"');
52
+ }
53
+ getTxStatus(_txHash) {
54
+ // In TXE there is no concept of transactions but we need to implement this because of tagging. We return 'mined'
55
+ // tx status for any tx hash.
56
+ return Promise.resolve('mined');
57
+ }
58
+ iteratePendingTxs() {
59
+ throw new Error('DummyP2P does not implement "iteratePendingTxs"');
60
+ }
61
+ getPendingTxCount() {
62
+ throw new Error('DummyP2P does not implement "getPendingTxCount"');
63
+ }
64
+ start() {
65
+ throw new Error('DummyP2P does not implement "start"');
66
+ }
67
+ stop() {
68
+ throw new Error('DummyP2P does not implement "stop"');
69
+ }
70
+ isReady() {
71
+ throw new Error('DummyP2P does not implement "isReady"');
72
+ }
73
+ getStatus() {
74
+ throw new Error('DummyP2P does not implement "getStatus"');
75
+ }
76
+ getEnr() {
77
+ throw new Error('DummyP2P does not implement "getEnr"');
78
+ }
79
+ isP2PClient() {
80
+ throw new Error('DummyP2P does not implement "isP2PClient"');
81
+ }
82
+ getTxsByHash(_txHashes) {
83
+ throw new Error('DummyP2P does not implement "getTxsByHash"');
84
+ }
85
+ getCheckpointAttestationsForSlot(_slot, _proposalId) {
86
+ throw new Error('DummyP2P does not implement "getCheckpointAttestationsForSlot"');
87
+ }
88
+ addCheckpointAttestations(_attestations) {
89
+ throw new Error('DummyP2P does not implement "addCheckpointAttestations"');
90
+ }
91
+ getL2BlockHash(_number) {
92
+ throw new Error('DummyP2P does not implement "getL2BlockHash"');
93
+ }
94
+ updateP2PConfig(_config) {
95
+ throw new Error('DummyP2P does not implement "updateP2PConfig"');
96
+ }
97
+ getL2Tips() {
98
+ throw new Error('DummyP2P does not implement "getL2Tips"');
99
+ }
100
+ handleBlockStreamEvent(_event) {
101
+ throw new Error('DummyP2P does not implement "handleBlockStreamEvent"');
102
+ }
103
+ sync() {
104
+ throw new Error('DummyP2P does not implement "sync"');
105
+ }
106
+ requestTxsByHash(_txHashes) {
107
+ throw new Error('DummyP2P does not implement "requestTxsByHash"');
108
+ }
109
+ getTxs(_filter) {
110
+ throw new Error('DummyP2P does not implement "getTxs"');
111
+ }
112
+ getTxsByHashFromPool(_txHashes) {
113
+ throw new Error('DummyP2P does not implement "getTxsByHashFromPool"');
114
+ }
115
+ hasTxsInPool(_txHashes) {
116
+ throw new Error('DummyP2P does not implement "hasTxsInPool"');
117
+ }
118
+ addTxsToPool(_txs) {
119
+ throw new Error('DummyP2P does not implement "addTxs"');
120
+ }
121
+ getSyncedLatestBlockNum() {
122
+ throw new Error('DummyP2P does not implement "getSyncedLatestBlockNum"');
123
+ }
124
+ getSyncedProvenBlockNum() {
125
+ throw new Error('DummyP2P does not implement "getSyncedProvenBlockNum"');
126
+ }
127
+ getSyncedLatestSlot() {
128
+ throw new Error('DummyP2P does not implement "getSyncedLatestSlot"');
129
+ }
130
+ markTxsAsNonEvictable(_) {
131
+ throw new Error('DummyP2P does not implement "markTxsAsNonEvictable".');
132
+ }
133
+ addReqRespSubProtocol(_subProtocol, _handler, _validator) {
134
+ throw new Error('DummyP2P does not implement "addReqRespSubProtocol".');
135
+ }
136
+ handleAuthRequestFromPeer(_authRequest, _peerId) {
137
+ throw new Error('DummyP2P does not implement "handleAuthRequestFromPeer".');
138
+ }
139
+ //This is no-op
140
+ registerThisValidatorAddresses(_address) {}
141
+ }
@@ -0,0 +1,11 @@
1
+ import { BlockNumber, type SlotNumber } from '@aztec/foundation/branded-types';
2
+ import type { EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import { GasFees } from '@aztec/stdlib/gas';
5
+ import { type CheckpointGlobalVariables, type GlobalVariableBuilder, GlobalVariables } from '@aztec/stdlib/tx';
6
+ export declare class TXEGlobalVariablesBuilder implements GlobalVariableBuilder {
7
+ getCurrentMinFees(): Promise<GasFees>;
8
+ buildGlobalVariables(_blockNumber: BlockNumber, _coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber?: SlotNumber): Promise<GlobalVariables>;
9
+ buildCheckpointGlobalVariables(_coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber: SlotNumber): Promise<CheckpointGlobalVariables>;
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2dsb2JhbF92YXJpYWJsZV9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRyxxQkFBYSx5QkFBMEIsWUFBVyxxQkFBcUI7SUFDOUQsaUJBQWlCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUUzQztJQUVNLG9CQUFvQixDQUN6QixZQUFZLEVBQUUsV0FBVyxFQUN6QixTQUFTLEVBQUUsVUFBVSxFQUNyQixhQUFhLEVBQUUsWUFBWSxFQUMzQixXQUFXLENBQUMsRUFBRSxVQUFVLEdBQ3ZCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFMUI7SUFFTSw4QkFBOEIsQ0FDbkMsU0FBUyxFQUFFLFVBQVUsRUFDckIsYUFBYSxFQUFFLFlBQVksRUFDM0IsV0FBVyxFQUFFLFVBQVUsR0FDdEIsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBV3BDO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global_variable_builder.d.ts","sourceRoot":"","sources":["../../src/state_machine/global_variable_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/G,qBAAa,yBAA0B,YAAW,qBAAqB;IAC9D,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE3C;IAEM,oBAAoB,CACzB,YAAY,EAAE,WAAW,EACzB,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,UAAU,GACvB,OAAO,CAAC,eAAe,CAAC,CAE1B;IAEM,8BAA8B,CACnC,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,YAAY,EAC3B,WAAW,EAAE,UAAU,GACtB,OAAO,CAAC,yBAAyB,CAAC,CAWpC;CACF"}
@@ -0,0 +1,22 @@
1
+ import { GasFees } from '@aztec/stdlib/gas';
2
+ import { makeGlobalVariables } from '@aztec/stdlib/testing';
3
+ export class TXEGlobalVariablesBuilder {
4
+ getCurrentMinFees() {
5
+ return Promise.resolve(new GasFees(0, 0));
6
+ }
7
+ buildGlobalVariables(_blockNumber, _coinbase, _feeRecipient, _slotNumber) {
8
+ return Promise.resolve(makeGlobalVariables());
9
+ }
10
+ buildCheckpointGlobalVariables(_coinbase, _feeRecipient, _slotNumber) {
11
+ const vars = makeGlobalVariables();
12
+ return Promise.resolve({
13
+ chainId: vars.chainId,
14
+ version: vars.version,
15
+ slotNumber: vars.slotNumber,
16
+ timestamp: vars.timestamp,
17
+ coinbase: vars.coinbase,
18
+ feeRecipient: vars.feeRecipient,
19
+ gasFees: vars.gasFees
20
+ });
21
+ }
22
+ }
@@ -0,0 +1,16 @@
1
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
+ import { AnchorBlockStore } from '@aztec/pxe/server';
3
+ import { L2Block } from '@aztec/stdlib/block';
4
+ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
5
+ import { TXEArchiver } from './archiver.js';
6
+ import { TXESynchronizer } from './synchronizer.js';
7
+ export declare class TXEStateMachine {
8
+ node: AztecNode;
9
+ synchronizer: TXESynchronizer;
10
+ archiver: TXEArchiver;
11
+ anchorBlockStore: AnchorBlockStore;
12
+ constructor(node: AztecNode, synchronizer: TXESynchronizer, archiver: TXEArchiver, anchorBlockStore: AnchorBlockStore);
13
+ static create(db: AztecAsyncKVStore): Promise<TXEStateMachine>;
14
+ handleL2Block(block: L2Block): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBS3BELHFCQUFhLGVBQWU7SUFFakIsSUFBSSxFQUFFLFNBQVM7SUFDZixZQUFZLEVBQUUsZUFBZTtJQUM3QixRQUFRLEVBQUUsV0FBVztJQUNyQixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFKM0MsWUFDUyxJQUFJLEVBQUUsU0FBUyxFQUNmLFlBQVksRUFBRSxlQUFlLEVBQzdCLFFBQVEsRUFBRSxXQUFXLEVBQ3JCLGdCQUFnQixFQUFFLGdCQUFnQixFQUN2QztJQUVKLE9BQW9CLE1BQU0sQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLDRCQStCL0M7SUFFWSxhQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8saUJBZ0J4QztDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state_machine/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,qBAAa,eAAe;IAEjB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,gBAAgB,EAAE,gBAAgB;IAJ3C,YACS,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,eAAe,EAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EACvC;IAEJ,OAAoB,MAAM,CAAC,EAAE,EAAE,iBAAiB,4BA+B/C;IAEY,aAAa,CAAC,KAAK,EAAE,OAAO,iBAgBxC;CACF"}
@@ -0,0 +1,45 @@
1
+ import { AztecNodeService } from '@aztec/aztec-node';
2
+ import { TestCircuitVerifier } from '@aztec/bb-prover/test';
3
+ import { createLogger } from '@aztec/foundation/log';
4
+ import { AnchorBlockStore } from '@aztec/pxe/server';
5
+ import { L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
6
+ import { getPackageVersion } from '@aztec/stdlib/update-checker';
7
+ import { TXEArchiver } from './archiver.js';
8
+ import { DummyP2P } from './dummy_p2p_client.js';
9
+ import { TXEGlobalVariablesBuilder } from './global_variable_builder.js';
10
+ import { MockEpochCache } from './mock_epoch_cache.js';
11
+ import { TXESynchronizer } from './synchronizer.js';
12
+ const VERSION = 1;
13
+ const CHAIN_ID = 1;
14
+ export class TXEStateMachine {
15
+ node;
16
+ synchronizer;
17
+ archiver;
18
+ anchorBlockStore;
19
+ constructor(node, synchronizer, archiver, anchorBlockStore){
20
+ this.node = node;
21
+ this.synchronizer = synchronizer;
22
+ this.archiver = archiver;
23
+ this.anchorBlockStore = anchorBlockStore;
24
+ }
25
+ static async create(db) {
26
+ const archiver = new TXEArchiver(db);
27
+ const synchronizer = await TXESynchronizer.create();
28
+ const anchorBlockStore = new AnchorBlockStore(db);
29
+ const aztecNodeConfig = {};
30
+ const log = createLogger('txe_node');
31
+ const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, undefined, undefined, VERSION, CHAIN_ID, new TXEGlobalVariablesBuilder(), new MockEpochCache(), getPackageVersion() ?? '', new TestCircuitVerifier(), undefined, log);
32
+ return new this(node, synchronizer, archiver, anchorBlockStore);
33
+ }
34
+ async handleL2Block(block) {
35
+ const checkpoint = block.toCheckpoint();
36
+ const publishedCheckpoint = new PublishedCheckpoint(checkpoint, new L1PublishedData(BigInt(block.header.globalVariables.blockNumber), block.header.globalVariables.timestamp, block.header.globalVariables.blockNumber.toString()), []);
37
+ await Promise.all([
38
+ this.synchronizer.handleL2Block(block.toL2Block()),
39
+ this.archiver.addCheckpoints([
40
+ publishedCheckpoint
41
+ ], undefined),
42
+ this.anchorBlockStore.setHeader(block.getBlockHeader())
43
+ ]);
44
+ }
45
+ }