@aztec/txe 0.0.1-commit.c7c42ec → 0.0.1-commit.cf93bcc56

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 (56) hide show
  1. package/dest/constants.d.ts +3 -0
  2. package/dest/constants.d.ts.map +1 -0
  3. package/dest/constants.js +2 -0
  4. package/dest/oracle/interfaces.d.ts +3 -3
  5. package/dest/oracle/interfaces.d.ts.map +1 -1
  6. package/dest/oracle/txe_oracle_public_context.d.ts +3 -3
  7. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
  8. package/dest/oracle/txe_oracle_public_context.js +6 -6
  9. package/dest/oracle/txe_oracle_top_level_context.d.ts +5 -3
  10. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
  11. package/dest/oracle/txe_oracle_top_level_context.js +108 -33
  12. package/dest/rpc_translator.d.ts +20 -14
  13. package/dest/rpc_translator.d.ts.map +1 -1
  14. package/dest/rpc_translator.js +76 -51
  15. package/dest/state_machine/archiver.d.ts +20 -67
  16. package/dest/state_machine/archiver.d.ts.map +1 -1
  17. package/dest/state_machine/archiver.js +59 -178
  18. package/dest/state_machine/dummy_p2p_client.d.ts +18 -14
  19. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
  20. package/dest/state_machine/dummy_p2p_client.js +35 -23
  21. package/dest/state_machine/global_variable_builder.d.ts +2 -2
  22. package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
  23. package/dest/state_machine/global_variable_builder.js +1 -1
  24. package/dest/state_machine/index.d.ts +5 -5
  25. package/dest/state_machine/index.d.ts.map +1 -1
  26. package/dest/state_machine/index.js +35 -12
  27. package/dest/state_machine/mock_epoch_cache.d.ts +9 -6
  28. package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
  29. package/dest/state_machine/mock_epoch_cache.js +14 -7
  30. package/dest/state_machine/synchronizer.d.ts +3 -3
  31. package/dest/state_machine/synchronizer.d.ts.map +1 -1
  32. package/dest/txe_session.d.ts +6 -4
  33. package/dest/txe_session.d.ts.map +1 -1
  34. package/dest/txe_session.js +116 -22
  35. package/dest/util/encoding.d.ts +17 -17
  36. package/dest/utils/block_creation.d.ts +4 -4
  37. package/dest/utils/block_creation.d.ts.map +1 -1
  38. package/dest/utils/block_creation.js +18 -5
  39. package/dest/utils/tx_effect_creation.d.ts +2 -3
  40. package/dest/utils/tx_effect_creation.d.ts.map +1 -1
  41. package/dest/utils/tx_effect_creation.js +3 -6
  42. package/package.json +16 -16
  43. package/src/constants.ts +3 -0
  44. package/src/oracle/interfaces.ts +2 -2
  45. package/src/oracle/txe_oracle_public_context.ts +6 -8
  46. package/src/oracle/txe_oracle_top_level_context.ts +136 -72
  47. package/src/rpc_translator.ts +79 -53
  48. package/src/state_machine/archiver.ts +54 -220
  49. package/src/state_machine/dummy_p2p_client.ts +50 -31
  50. package/src/state_machine/global_variable_builder.ts +1 -1
  51. package/src/state_machine/index.ts +49 -11
  52. package/src/state_machine/mock_epoch_cache.ts +15 -11
  53. package/src/state_machine/synchronizer.ts +2 -2
  54. package/src/txe_session.ts +137 -61
  55. package/src/utils/block_creation.ts +19 -16
  56. package/src/utils/tx_effect_creation.ts +3 -11
@@ -1,146 +1,38 @@
1
- import { ArchiverStoreHelper, KVArchiverDataStore } from '@aztec/archiver';
1
+ import { ArchiverDataSourceBase, ArchiverDataStoreUpdater, KVArchiverDataStore } from '@aztec/archiver';
2
2
  import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
3
- import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
+ import { CheckpointNumber } from '@aztec/foundation/branded-types';
4
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 {
5
+ /**
6
+ * TXE Archiver implementation.
7
+ * Provides most of the endpoints needed by the node for reading from and writing to state,
8
+ * without needing any of the extra overhead that the Archiver itself requires (i.e. an L1 client).
9
+ */ export class TXEArchiver extends ArchiverDataSourceBase {
10
+ updater = new ArchiverDataStoreUpdater(this.store);
12
11
  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 retrievePublishedBlocks(from, limit, proven) {
68
- const checkpoints = await this.store.getRangeOfCheckpoints(CheckpointNumber(from), limit);
69
- const provenCheckpointNumber = await this.store.getProvenCheckpointNumber();
70
- const blocks = (await Promise.all(checkpoints.map((ch)=>this.store.getBlocksForCheckpoint(ch.checkpointNumber)))).filter(isDefined);
71
- const olbBlocks = [];
72
- for(let i = 0; i < checkpoints.length; i++){
73
- const blockForCheckpoint = blocks[i][0];
74
- const checkpoint = checkpoints[i];
75
- if (proven === true && checkpoint.checkpointNumber > provenCheckpointNumber) {
76
- continue;
77
- }
78
- const oldCheckpoint = new Checkpoint(blockForCheckpoint.archive, checkpoint.header, [
79
- blockForCheckpoint
80
- ], checkpoint.checkpointNumber);
81
- const oldBlock = L2Block.fromCheckpoint(oldCheckpoint);
82
- const publishedBlock = new PublishedL2Block(oldBlock, checkpoint.l1, checkpoint.attestations.map((x)=>CommitteeAttestation.fromBuffer(x)));
83
- olbBlocks.push(publishedBlock);
84
- }
85
- return olbBlocks;
86
- }
87
- /**
88
- * Gets an l2 block. If a negative number is passed, the block returned is the most recent.
89
- * @param number - The block number to return (inclusive).
90
- * @returns The requested L2 block.
91
- */ getL2Block(number) {
92
- return this.getPublishedBlock(number != 'latest' ? number : -1).then((b)=>b?.block);
93
- }
94
- /**
95
- * Gets an L2 block (new format).
96
- * @param number - The block number to return.
97
- * @returns The requested L2 block.
98
- */ getL2BlockNew(number) {
99
- if (number === 0) {
100
- return Promise.resolve(undefined);
101
- }
102
- return this.store.getBlock(number);
103
- }
104
- /**
105
- * Gets an l2 block header.
106
- * @param number - The block number to return or 'latest' for the most recent one.
107
- * @returns The requested L2 block header.
108
- */ async getBlockHeader(number) {
109
- if (number === 'latest') {
110
- number = await this.store.getLatestBlockNumber();
111
- }
112
- if (number === 0) {
113
- return undefined;
114
- }
115
- const headers = await this.store.getBlockHeaders(BlockNumber(number), 1);
116
- return headers.length === 0 ? undefined : headers[0];
117
- }
118
- getBlockRange(from, limit, _proven) {
119
- return this.getPublishedBlocks(BlockNumber(from), limit).then((blocks)=>blocks.map((b)=>b.block));
120
- }
121
- getPublishedCheckpoints(_from, _limit) {
122
- throw new Error('TXE Archiver does not implement "getPublishedCheckpoints"');
12
+ const store = new KVArchiverDataStore(db, 9999, {
13
+ epochDuration: 32
14
+ });
15
+ super(store);
123
16
  }
124
- getCheckpointByArchive(_archive) {
125
- throw new Error('TXE Archiver does not implement "getCheckpointByArchive"');
17
+ async addCheckpoints(checkpoints, result) {
18
+ await this.updater.addCheckpoints(checkpoints, result);
126
19
  }
127
- getL2SlotNumber() {
128
- throw new Error('TXE Archiver does not implement "getL2SlotNumber"');
129
- }
130
- getL2EpochNumber() {
131
- throw new Error('TXE Archiver does not implement "getL2EpochNumber"');
20
+ getRollupAddress() {
21
+ throw new Error('TXE Archiver does not implement "getRollupAddress"');
132
22
  }
133
- getCheckpointsForEpoch(_epochNumber) {
134
- throw new Error('TXE Archiver does not implement "getCheckpointsForEpoch"');
23
+ getRegistryAddress() {
24
+ throw new Error('TXE Archiver does not implement "getRegistryAddress"');
135
25
  }
136
- getBlocksForEpoch(_epochNumber) {
137
- throw new Error('TXE Archiver does not implement "getBlocksForEpoch"');
26
+ getL1Constants() {
27
+ throw new Error('TXE Archiver does not implement "getL1Constants"');
138
28
  }
139
- getBlockHeadersForEpoch(_epochNumber) {
140
- throw new Error('TXE Archiver does not implement "getBlockHeadersForEpoch"');
29
+ getGenesisValues() {
30
+ return Promise.resolve({
31
+ genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT)
32
+ });
141
33
  }
142
- isEpochComplete(_epochNumber) {
143
- throw new Error('TXE Archiver does not implement "isEpochComplete"');
34
+ getL1Timestamp() {
35
+ throw new Error('TXE Archiver does not implement "getL1Timestamp"');
144
36
  }
145
37
  async getL2Tips() {
146
38
  // In TXE there is no possibility of reorgs and no blocks are ever getting proven so we just set 'latest', 'proven'
@@ -151,56 +43,45 @@ export class TXEArchiver extends ArchiverStoreHelper {
151
43
  }
152
44
  const number = blockHeader.globalVariables.blockNumber;
153
45
  const hash = (await blockHeader.hash()).toString();
46
+ const checkpointedBlock = await this.getCheckpointedBlock(number);
47
+ if (!checkpointedBlock) {
48
+ throw new Error(`L2Tips requested from TXE Archiver but no checkpointed block found for block number ${number}`);
49
+ }
50
+ // TXE uses 1-block-per-checkpoint for testing simplicity, so we can use block number as checkpoint number.
51
+ // This uses the deprecated fromBlockNumber method intentionally for the TXE testing environment.
52
+ const checkpoint = await this.store.getRangeOfCheckpoints(CheckpointNumber.fromBlockNumber(number), 1);
53
+ if (checkpoint.length === 0) {
54
+ throw new Error(`L2Tips requested from TXE Archiver but no checkpoint found for block number ${number}`);
55
+ }
56
+ const blockId = {
57
+ number,
58
+ hash
59
+ };
60
+ const checkpointId = {
61
+ number: checkpoint[0].checkpointNumber,
62
+ hash: checkpoint[0].header.hash().toString()
63
+ };
64
+ const tipId = {
65
+ block: blockId,
66
+ checkpoint: checkpointId
67
+ };
154
68
  return {
155
- latest: {
156
- number,
157
- hash
158
- },
159
- proven: {
160
- number,
161
- hash
162
- },
163
- finalized: {
164
- number,
165
- hash
166
- }
69
+ proposed: blockId,
70
+ proven: tipId,
71
+ finalized: tipId,
72
+ checkpointed: tipId
167
73
  };
168
74
  }
169
- getL1Constants() {
170
- throw new Error('TXE Archiver does not implement "getL2Constants"');
75
+ getL2SlotNumber() {
76
+ throw new Error('TXE Archiver does not implement "getL2SlotNumber"');
171
77
  }
172
- getGenesisValues() {
173
- return Promise.resolve({
174
- genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT)
175
- });
78
+ getL2EpochNumber() {
79
+ throw new Error('TXE Archiver does not implement "getL2EpochNumber"');
80
+ }
81
+ isEpochComplete(_epochNumber) {
82
+ throw new Error('TXE Archiver does not implement "isEpochComplete"');
176
83
  }
177
84
  syncImmediate() {
178
85
  throw new Error('TXE Archiver does not implement "syncImmediate"');
179
86
  }
180
- getContract(_address, _timestamp) {
181
- throw new Error('TXE Archiver does not implement "getContract"');
182
- }
183
- getRollupAddress() {
184
- throw new Error('TXE Archiver does not implement "getRollupAddress"');
185
- }
186
- getRegistryAddress() {
187
- throw new Error('TXE Archiver does not implement "getRegistryAddress"');
188
- }
189
- getL1Timestamp() {
190
- throw new Error('TXE Archiver does not implement "getL1Timestamp"');
191
- }
192
- isPendingChainInvalid() {
193
- return Promise.resolve(false);
194
- }
195
- getPendingChainValidationStatus() {
196
- return Promise.resolve({
197
- valid: true
198
- });
199
- }
200
- getPublishedBlockByHash(_blockHash) {
201
- throw new Error('Method not implemented.');
202
- }
203
- getPublishedBlockByArchive(_archive) {
204
- throw new Error('Method not implemented.');
205
- }
206
87
  }
@@ -1,27 +1,30 @@
1
1
  import type { SlotNumber } from '@aztec/foundation/branded-types';
2
- import type { AuthRequest, ENR, P2P, P2PBlockReceivedCallback, P2PConfig, P2PSyncState, PeerId, ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators, StatusMessage } from '@aztec/p2p';
2
+ import type { AuthRequest, ENR, P2P, P2PBlockReceivedCallback, P2PCheckpointReceivedCallback, P2PConfig, P2PDuplicateAttestationCallback, P2PDuplicateProposalCallback, P2PSyncState, PeerId, ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators, StatusMessage } from '@aztec/p2p';
3
3
  import type { EthAddress, L2BlockStreamEvent, L2Tips } from '@aztec/stdlib/block';
4
- import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
5
- import type { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
6
- import type { Tx, TxHash } from '@aztec/stdlib/tx';
4
+ import type { ITxProvider, PeerInfo } from '@aztec/stdlib/interfaces/server';
5
+ import type { BlockProposal, CheckpointAttestation, CheckpointProposal } from '@aztec/stdlib/p2p';
6
+ import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
7
7
  export declare class DummyP2P implements P2P {
8
- broadcastAttestations(_attestations: BlockAttestation[]): Promise<void>;
9
8
  validate(_txs: Tx[]): Promise<void>;
10
9
  clear(): Promise<void>;
11
10
  getPendingTxs(): Promise<Tx[]>;
12
11
  getEncodedEnr(): Promise<string | undefined>;
13
12
  getPeers(_includePending?: boolean): Promise<PeerInfo[]>;
14
13
  broadcastProposal(_proposal: BlockProposal): Promise<void>;
14
+ broadcastCheckpointProposal(_proposal: CheckpointProposal): Promise<void>;
15
+ broadcastCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
15
16
  registerBlockProposalHandler(_handler: P2PBlockReceivedCallback): void;
17
+ registerCheckpointProposalHandler(_handler: P2PCheckpointReceivedCallback): void;
16
18
  requestTxs(_txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
17
19
  requestTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
18
20
  sendTx(_tx: Tx): Promise<void>;
19
- deleteTxs(_txHashes: TxHash[]): Promise<void>;
21
+ handleFailedExecution(_txHashes: TxHash[]): Promise<void>;
20
22
  getTxByHashFromPool(_txHash: TxHash): Promise<Tx | undefined>;
21
23
  getTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
22
24
  getArchivedTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
23
25
  getTxStatus(_txHash: TxHash): Promise<'pending' | 'mined' | undefined>;
24
26
  iteratePendingTxs(): AsyncIterableIterator<Tx>;
27
+ iterateEligiblePendingTxs(): AsyncIterableIterator<Tx>;
25
28
  getPendingTxCount(): Promise<number>;
26
29
  start(): Promise<void>;
27
30
  stop(): Promise<void>;
@@ -29,26 +32,27 @@ export declare class DummyP2P implements P2P {
29
32
  getStatus(): Promise<P2PSyncState>;
30
33
  getEnr(): ENR | undefined;
31
34
  isP2PClient(): true;
35
+ getTxProvider(): ITxProvider;
32
36
  getTxsByHash(_txHashes: TxHash[]): Promise<Tx[]>;
33
- getAttestationsForSlot(_slot: SlotNumber, _proposalId?: string): Promise<BlockAttestation[]>;
34
- deleteAttestation(_attestation: BlockAttestation): Promise<void>;
35
- addAttestations(_attestations: BlockAttestation[]): Promise<void>;
37
+ getCheckpointAttestationsForSlot(_slot: SlotNumber, _proposalId?: string): Promise<CheckpointAttestation[]>;
38
+ addOwnCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
36
39
  getL2BlockHash(_number: number): Promise<string | undefined>;
37
40
  updateP2PConfig(_config: Partial<P2PConfig>): Promise<void>;
38
41
  getL2Tips(): Promise<L2Tips>;
39
42
  handleBlockStreamEvent(_event: L2BlockStreamEvent): Promise<void>;
40
43
  sync(): void;
41
- requestTxsByHash(_txHashes: TxHash[]): Promise<Tx[]>;
42
- getTxs(_filter: 'all' | 'pending' | 'mined'): Promise<Tx[]>;
43
44
  getTxsByHashFromPool(_txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
44
45
  hasTxsInPool(_txHashes: TxHash[]): Promise<boolean[]>;
45
- addTxsToPool(_txs: Tx[]): Promise<number>;
46
46
  getSyncedLatestBlockNum(): Promise<number>;
47
47
  getSyncedProvenBlockNum(): Promise<number>;
48
48
  getSyncedLatestSlot(): Promise<bigint>;
49
- markTxsAsNonEvictable(_: TxHash[]): Promise<void>;
49
+ protectTxs(_txHashes: TxHash[], _blockHeader: BlockHeader): Promise<TxHash[]>;
50
+ prepareForSlot(_slotNumber: SlotNumber): Promise<void>;
50
51
  addReqRespSubProtocol(_subProtocol: ReqRespSubProtocol, _handler: ReqRespSubProtocolHandler, _validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
51
52
  handleAuthRequestFromPeer(_authRequest: AuthRequest, _peerId: PeerId): Promise<StatusMessage>;
52
53
  registerThisValidatorAddresses(_address: EthAddress[]): void;
54
+ registerDuplicateProposalCallback(_callback: P2PDuplicateProposalCallback): void;
55
+ registerDuplicateAttestationCallback(_callback: P2PDuplicateAttestationCallback): void;
56
+ hasBlockProposalsForSlot(_slot: SlotNumber): Promise<boolean>;
53
57
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfcDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlX21hY2hpbmUvZHVtbXlfcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFDVixXQUFXLEVBQ1gsR0FBRyxFQUNILEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNkLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQscUJBQWEsUUFBUyxZQUFXLEdBQUc7SUFDM0IscUJBQXFCLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU3RTtJQUVNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUV6QztJQUVNLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRU0sYUFBYSxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUVwQztJQUVNLGFBQWEsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVsRDtJQUVNLFFBQVEsQ0FBQyxl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
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfcDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlX21hY2hpbmUvZHVtbXlfcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFDVixXQUFXLEVBQ1gsR0FBRyxFQUNILEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsNkJBQTZCLEVBQzdCLFNBQVMsRUFDVCwrQkFBK0IsRUFDL0IsNEJBQTRCLEVBQzVCLFlBQVksRUFDWixNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNkLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEcsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxxQkFBYSxRQUFTLFlBQVcsR0FBRztJQUMzQixRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFekM7SUFFTSxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1QjtJQUVNLGFBQWEsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FFcEM7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FFbEQ7SUFFTSxRQUFRLENBQUMs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
@@ -1 +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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"}
1
+ {"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
1
  export class DummyP2P {
2
- broadcastAttestations(_attestations) {
3
- return Promise.resolve();
4
- }
5
2
  validate(_txs) {
6
3
  return Promise.resolve();
7
4
  }
@@ -20,9 +17,18 @@ export class DummyP2P {
20
17
  broadcastProposal(_proposal) {
21
18
  throw new Error('DummyP2P does not implement "broadcastProposal"');
22
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
+ }
23
26
  registerBlockProposalHandler(_handler) {
24
27
  throw new Error('DummyP2P does not implement "registerBlockProposalHandler"');
25
28
  }
29
+ registerCheckpointProposalHandler(_handler) {
30
+ throw new Error('DummyP2P does not implement "registerCheckpointProposalHandler"');
31
+ }
26
32
  requestTxs(_txHashes) {
27
33
  throw new Error('DummyP2P does not implement "requestTxs"');
28
34
  }
@@ -32,8 +38,8 @@ export class DummyP2P {
32
38
  sendTx(_tx) {
33
39
  throw new Error('DummyP2P does not implement "sendTx"');
34
40
  }
35
- deleteTxs(_txHashes) {
36
- throw new Error('DummyP2P does not implement "deleteTxs"');
41
+ handleFailedExecution(_txHashes) {
42
+ throw new Error('DummyP2P does not implement "handleFailedExecution"');
37
43
  }
38
44
  getTxByHashFromPool(_txHash) {
39
45
  throw new Error('DummyP2P does not implement "getTxByHashFromPool"');
@@ -52,6 +58,9 @@ export class DummyP2P {
52
58
  iteratePendingTxs() {
53
59
  throw new Error('DummyP2P does not implement "iteratePendingTxs"');
54
60
  }
61
+ iterateEligiblePendingTxs() {
62
+ throw new Error('DummyP2P does not implement "iterateEligiblePendingTxs"');
63
+ }
55
64
  getPendingTxCount() {
56
65
  throw new Error('DummyP2P does not implement "getPendingTxCount"');
57
66
  }
@@ -73,17 +82,17 @@ export class DummyP2P {
73
82
  isP2PClient() {
74
83
  throw new Error('DummyP2P does not implement "isP2PClient"');
75
84
  }
85
+ getTxProvider() {
86
+ throw new Error('DummyP2P does not implement "getTxProvider"');
87
+ }
76
88
  getTxsByHash(_txHashes) {
77
89
  throw new Error('DummyP2P does not implement "getTxsByHash"');
78
90
  }
79
- getAttestationsForSlot(_slot, _proposalId) {
80
- throw new Error('DummyP2P does not implement "getAttestationForSlot"');
81
- }
82
- deleteAttestation(_attestation) {
83
- return Promise.resolve();
91
+ getCheckpointAttestationsForSlot(_slot, _proposalId) {
92
+ throw new Error('DummyP2P does not implement "getCheckpointAttestationsForSlot"');
84
93
  }
85
- addAttestations(_attestations) {
86
- throw new Error('DummyP2P does not implement "addAttestations"');
94
+ addOwnCheckpointAttestations(_attestations) {
95
+ throw new Error('DummyP2P does not implement "addOwnCheckpointAttestations"');
87
96
  }
88
97
  getL2BlockHash(_number) {
89
98
  throw new Error('DummyP2P does not implement "getL2BlockHash"');
@@ -100,21 +109,12 @@ export class DummyP2P {
100
109
  sync() {
101
110
  throw new Error('DummyP2P does not implement "sync"');
102
111
  }
103
- requestTxsByHash(_txHashes) {
104
- throw new Error('DummyP2P does not implement "requestTxsByHash"');
105
- }
106
- getTxs(_filter) {
107
- throw new Error('DummyP2P does not implement "getTxs"');
108
- }
109
112
  getTxsByHashFromPool(_txHashes) {
110
113
  throw new Error('DummyP2P does not implement "getTxsByHashFromPool"');
111
114
  }
112
115
  hasTxsInPool(_txHashes) {
113
116
  throw new Error('DummyP2P does not implement "hasTxsInPool"');
114
117
  }
115
- addTxsToPool(_txs) {
116
- throw new Error('DummyP2P does not implement "addTxs"');
117
- }
118
118
  getSyncedLatestBlockNum() {
119
119
  throw new Error('DummyP2P does not implement "getSyncedLatestBlockNum"');
120
120
  }
@@ -124,8 +124,11 @@ export class DummyP2P {
124
124
  getSyncedLatestSlot() {
125
125
  throw new Error('DummyP2P does not implement "getSyncedLatestSlot"');
126
126
  }
127
- markTxsAsNonEvictable(_) {
128
- throw new Error('DummyP2P does not implement "markTxsAsNonEvictable".');
127
+ protectTxs(_txHashes, _blockHeader) {
128
+ throw new Error('DummyP2P does not implement "protectTxs".');
129
+ }
130
+ prepareForSlot(_slotNumber) {
131
+ return Promise.resolve();
129
132
  }
130
133
  addReqRespSubProtocol(_subProtocol, _handler, _validator) {
131
134
  throw new Error('DummyP2P does not implement "addReqRespSubProtocol".');
@@ -135,4 +138,13 @@ export class DummyP2P {
135
138
  }
136
139
  //This is no-op
137
140
  registerThisValidatorAddresses(_address) {}
141
+ registerDuplicateProposalCallback(_callback) {
142
+ throw new Error('DummyP2P does not implement "registerDuplicateProposalCallback"');
143
+ }
144
+ registerDuplicateAttestationCallback(_callback) {
145
+ throw new Error('DummyP2P does not implement "registerDuplicateAttestationCallback"');
146
+ }
147
+ hasBlockProposalsForSlot(_slot) {
148
+ throw new Error('DummyP2P does not implement "hasBlockProposalsForSlot"');
149
+ }
138
150
  }
@@ -4,8 +4,8 @@ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { GasFees } from '@aztec/stdlib/gas';
5
5
  import { type CheckpointGlobalVariables, type GlobalVariableBuilder, GlobalVariables } from '@aztec/stdlib/tx';
6
6
  export declare class TXEGlobalVariablesBuilder implements GlobalVariableBuilder {
7
- getCurrentBaseFees(): Promise<GasFees>;
7
+ getCurrentMinFees(): Promise<GasFees>;
8
8
  buildGlobalVariables(_blockNumber: BlockNumber, _coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber?: SlotNumber): Promise<GlobalVariables>;
9
9
  buildCheckpointGlobalVariables(_coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber: SlotNumber): Promise<CheckpointGlobalVariables>;
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2dsb2JhbF92YXJpYWJsZV9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRyxxQkFBYSx5QkFBMEIsWUFBVyxxQkFBcUI7SUFDOUQsa0JBQWtCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUU1QztJQUVNLG9CQUFvQixDQUN6QixZQUFZLEVBQUUsV0FBVyxFQUN6QixTQUFTLEVBQUUsVUFBVSxFQUNyQixhQUFhLEVBQUUsWUFBWSxFQUMzQixXQUFXLENBQUMsRUFBRSxVQUFVLEdBQ3ZCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFMUI7SUFFTSw4QkFBOEIsQ0FDbkMsU0FBUyxFQUFFLFVBQVUsRUFDckIsYUFBYSxFQUFFLFlBQVksRUFDM0IsV0FBVyxFQUFFLFVBQVUsR0FDdEIsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBV3BDO0NBQ0YifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2dsb2JhbF92YXJpYWJsZV9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRyxxQkFBYSx5QkFBMEIsWUFBVyxxQkFBcUI7SUFDOUQsaUJBQWlCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUUzQztJQUVNLG9CQUFvQixDQUN6QixZQUFZLEVBQUUsV0FBVyxFQUN6QixTQUFTLEVBQUUsVUFBVSxFQUNyQixhQUFhLEVBQUUsWUFBWSxFQUMzQixXQUFXLENBQUMsRUFBRSxVQUFVLEdBQ3ZCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFMUI7SUFFTSw4QkFBOEIsQ0FDbkMsU0FBUyxFQUFFLFVBQVUsRUFDckIsYUFBYSxFQUFFLFlBQVksRUFDM0IsV0FBVyxFQUFFLFVBQVUsR0FDdEIsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBV3BDO0NBQ0YifQ==
@@ -1 +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,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5C;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"}
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"}
@@ -1,7 +1,7 @@
1
1
  import { GasFees } from '@aztec/stdlib/gas';
2
2
  import { makeGlobalVariables } from '@aztec/stdlib/testing';
3
3
  export class TXEGlobalVariablesBuilder {
4
- getCurrentBaseFees() {
4
+ getCurrentMinFees() {
5
5
  return Promise.resolve(new GasFees(0, 0));
6
6
  }
7
7
  buildGlobalVariables(_blockNumber, _coinbase, _feeRecipient, _slotNumber) {
@@ -1,5 +1,4 @@
1
- import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
- import { AnchorBlockStore } from '@aztec/pxe/server';
1
+ import { type AnchorBlockStore, type ContractStore, ContractSyncService, type NoteStore } from '@aztec/pxe/server';
3
2
  import { L2Block } from '@aztec/stdlib/block';
4
3
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
5
4
  import { TXEArchiver } from './archiver.js';
@@ -9,8 +8,9 @@ export declare class TXEStateMachine {
9
8
  synchronizer: TXESynchronizer;
10
9
  archiver: TXEArchiver;
11
10
  anchorBlockStore: AnchorBlockStore;
12
- constructor(node: AztecNode, synchronizer: TXESynchronizer, archiver: TXEArchiver, anchorBlockStore: AnchorBlockStore);
13
- static create(db: AztecAsyncKVStore): Promise<TXEStateMachine>;
11
+ contractSyncService: ContractSyncService;
12
+ constructor(node: AztecNode, synchronizer: TXESynchronizer, archiver: TXEArchiver, anchorBlockStore: AnchorBlockStore, contractSyncService: ContractSyncService);
13
+ static create(archiver: TXEArchiver, anchorBlockStore: AnchorBlockStore, contractStore: ContractStore, noteStore: NoteStore): Promise<TXEStateMachine>;
14
14
  handleL2Block(block: L2Block): Promise<void>;
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBS3BELHFCQUFhLGVBQWU7SUFFakIsSUFBSSxFQUFFLFNBQVM7SUFDZixZQUFZLEVBQUUsZUFBZTtJQUM3QixRQUFRLEVBQUUsV0FBVztJQUNyQixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFKM0MsWUFDUyxJQUFJLEVBQUUsU0FBUyxFQUNmLFlBQVksRUFBRSxlQUFlLEVBQzdCLFFBQVEsRUFBRSxXQUFXLEVBQ3JCLGdCQUFnQixFQUFFLGdCQUFnQixFQUN2QztJQUVKLE9BQW9CLE1BQU0sQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLDRCQStCL0M7SUFFWSxhQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8saUJBZ0J4QztDQUNGIn0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFFLEtBQUssYUFBYSxFQUFFLG1CQUFtQixFQUFFLEtBQUssU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSWpFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBS3BELHFCQUFhLGVBQWU7SUFFakIsSUFBSSxFQUFFLFNBQVM7SUFDZixZQUFZLEVBQUUsZUFBZTtJQUM3QixRQUFRLEVBQUUsV0FBVztJQUNyQixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsbUJBQW1CLEVBQUUsbUJBQW1CO0lBTGpELFlBQ1MsSUFBSSxFQUFFLFNBQVMsRUFDZixZQUFZLEVBQUUsZUFBZSxFQUM3QixRQUFRLEVBQUUsV0FBVyxFQUNyQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQzdDO0lBRUosT0FBb0IsTUFBTSxDQUN4QixRQUFRLEVBQUUsV0FBVyxFQUNyQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsYUFBYSxFQUFFLGFBQWEsRUFDNUIsU0FBUyxFQUFFLFNBQVMsNEJBcUNyQjtJQUVZLGFBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxpQkF5Q3hDO0NBQ0YifQ==
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state_machine/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAIjE,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;IAClC,mBAAmB,EAAE,mBAAmB;IALjD,YACS,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,eAAe,EAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EAC7C;IAEJ,OAAoB,MAAM,CACxB,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,4BAqCrB;IAEY,aAAa,CAAC,KAAK,EAAE,OAAO,iBAyCxC;CACF"}
@@ -1,10 +1,12 @@
1
1
  import { AztecNodeService } from '@aztec/aztec-node';
2
2
  import { TestCircuitVerifier } from '@aztec/bb-prover/test';
3
+ import { CheckpointNumber } from '@aztec/foundation/branded-types';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
5
  import { createLogger } from '@aztec/foundation/log';
4
- import { AnchorBlockStore } from '@aztec/pxe/server';
5
- import { L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
6
+ import { ContractSyncService } from '@aztec/pxe/server';
7
+ import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
8
+ import { CheckpointHeader } from '@aztec/stdlib/rollup';
6
9
  import { getPackageVersion } from '@aztec/stdlib/update-checker';
7
- import { TXEArchiver } from './archiver.js';
8
10
  import { DummyP2P } from './dummy_p2p_client.js';
9
11
  import { TXEGlobalVariablesBuilder } from './global_variable_builder.js';
10
12
  import { MockEpochCache } from './mock_epoch_cache.js';
@@ -16,30 +18,51 @@ export class TXEStateMachine {
16
18
  synchronizer;
17
19
  archiver;
18
20
  anchorBlockStore;
19
- constructor(node, synchronizer, archiver, anchorBlockStore){
21
+ contractSyncService;
22
+ constructor(node, synchronizer, archiver, anchorBlockStore, contractSyncService){
20
23
  this.node = node;
21
24
  this.synchronizer = synchronizer;
22
25
  this.archiver = archiver;
23
26
  this.anchorBlockStore = anchorBlockStore;
27
+ this.contractSyncService = contractSyncService;
24
28
  }
25
- static async create(db) {
26
- const archiver = new TXEArchiver(db);
29
+ static async create(archiver, anchorBlockStore, contractStore, noteStore) {
27
30
  const synchronizer = await TXESynchronizer.create();
28
- const anchorBlockStore = new AnchorBlockStore(db);
29
31
  const aztecNodeConfig = {};
30
32
  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
+ const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, undefined, undefined, undefined, VERSION, CHAIN_ID, new TXEGlobalVariablesBuilder(), new MockEpochCache(), getPackageVersion() ?? '', new TestCircuitVerifier(), undefined, log);
34
+ const contractSyncService = new ContractSyncService(node, contractStore, noteStore, createLogger('txe:contract_sync'));
35
+ return new this(node, synchronizer, archiver, anchorBlockStore, contractSyncService);
33
36
  }
34
37
  async handleL2Block(block) {
35
- const checkpoint = block.toCheckpoint();
38
+ // Create a checkpoint from the block manually.
39
+ // TXE uses 1-block-per-checkpoint for testing simplicity, so we can use block number as checkpoint number.
40
+ // This uses the deprecated fromBlockNumber method intentionally for the TXE testing environment.
41
+ const checkpointNumber = CheckpointNumber.fromBlockNumber(block.number);
42
+ const checkpoint = new Checkpoint(block.archive, CheckpointHeader.from({
43
+ lastArchiveRoot: block.header.lastArchive.root,
44
+ inHash: Fr.ZERO,
45
+ blobsHash: Fr.ZERO,
46
+ blockHeadersHash: Fr.ZERO,
47
+ epochOutHash: Fr.ZERO,
48
+ slotNumber: block.header.globalVariables.slotNumber,
49
+ timestamp: block.header.globalVariables.timestamp,
50
+ coinbase: block.header.globalVariables.coinbase,
51
+ feeRecipient: block.header.globalVariables.feeRecipient,
52
+ gasFees: block.header.globalVariables.gasFees,
53
+ totalManaUsed: block.header.totalManaUsed
54
+ }), [
55
+ block
56
+ ], checkpointNumber);
36
57
  const publishedCheckpoint = new PublishedCheckpoint(checkpoint, new L1PublishedData(BigInt(block.header.globalVariables.blockNumber), block.header.globalVariables.timestamp, block.header.globalVariables.blockNumber.toString()), []);
58
+ // Wipe contract sync cache when anchor block changes (mirrors BlockSynchronizer behavior)
59
+ this.contractSyncService.wipe();
37
60
  await Promise.all([
38
- this.synchronizer.handleL2Block(block.toL2Block()),
61
+ this.synchronizer.handleL2Block(block),
39
62
  this.archiver.addCheckpoints([
40
63
  publishedCheckpoint
41
64
  ], undefined),
42
- this.anchorBlockStore.setHeader(block.getBlockHeader())
65
+ this.anchorBlockStore.setHeader(block.header)
43
66
  ]);
44
67
  }
45
68
  }