@aztec/p2p 0.60.0 → 0.62.0

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 (35) hide show
  1. package/dest/client/index.js +2 -39
  2. package/dest/client/p2p_client.d.ts +33 -9
  3. package/dest/client/p2p_client.d.ts.map +1 -1
  4. package/dest/client/p2p_client.js +121 -30
  5. package/dest/config.d.ts +5 -1
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +7 -2
  8. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +3 -2
  9. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  10. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +30 -5
  11. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +3 -2
  12. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
  13. package/dest/mem_pools/tx_pool/memory_tx_pool.js +26 -5
  14. package/dest/mem_pools/tx_pool/tx_pool.d.ts +8 -2
  15. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  16. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  17. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -3
  18. package/dest/mocks/index.d.ts +18 -2
  19. package/dest/mocks/index.d.ts.map +1 -1
  20. package/dest/mocks/index.js +79 -5
  21. package/dest/service/peer_scoring.js +5 -5
  22. package/dest/util.d.ts +3 -0
  23. package/dest/util.d.ts.map +1 -1
  24. package/dest/util.js +38 -1
  25. package/package.json +12 -7
  26. package/src/client/index.ts +1 -48
  27. package/src/client/p2p_client.ts +156 -40
  28. package/src/config.ts +11 -1
  29. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +35 -6
  30. package/src/mem_pools/tx_pool/memory_tx_pool.ts +32 -6
  31. package/src/mem_pools/tx_pool/tx_pool.ts +9 -2
  32. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +34 -2
  33. package/src/mocks/index.ts +123 -5
  34. package/src/service/peer_scoring.ts +4 -4
  35. package/src/util.ts +53 -0
@@ -8,7 +8,7 @@ import { AztecKVTxPool } from '../mem_pools/tx_pool/index.js';
8
8
  import { DiscV5Service } from '../service/discV5_service.js';
9
9
  import { DummyP2PService } from '../service/dummy_service.js';
10
10
  import { LibP2PService, createLibP2PPeerId } from '../service/index.js';
11
- import { getPublicIp, resolveAddressIfNecessary, splitAddressPort } from '../util.js';
11
+ import { configureP2PClientAddresses } from '../util.js';
12
12
  export * from './p2p_client.js';
13
13
  export const createP2PClient = async (_config, l2BlockSource, proofVerifier, worldStateSynchronizer, telemetry = new NoopTelemetryClient(), deps = {}) => {
14
14
  let config = { ..._config };
@@ -31,41 +31,4 @@ export const createP2PClient = async (_config, l2BlockSource, proofVerifier, wor
31
31
  }
32
32
  return new P2PClient(store, l2BlockSource, mempools, p2pService, config.keepProvenTxsInPoolFor, telemetry);
33
33
  };
34
- async function configureP2PClientAddresses(_config) {
35
- const config = { ..._config };
36
- const { tcpAnnounceAddress: configTcpAnnounceAddress, udpAnnounceAddress: configUdpAnnounceAddress, queryForIp, } = config;
37
- config.tcpAnnounceAddress = configTcpAnnounceAddress
38
- ? await resolveAddressIfNecessary(configTcpAnnounceAddress)
39
- : undefined;
40
- config.udpAnnounceAddress = configUdpAnnounceAddress
41
- ? await resolveAddressIfNecessary(configUdpAnnounceAddress)
42
- : undefined;
43
- // create variable for re-use if needed
44
- let publicIp;
45
- // check if no announce IP was provided
46
- const splitTcpAnnounceAddress = splitAddressPort(configTcpAnnounceAddress || '', true);
47
- if (splitTcpAnnounceAddress.length == 2 && splitTcpAnnounceAddress[0] === '') {
48
- if (queryForIp) {
49
- publicIp = await getPublicIp();
50
- const tcpAnnounceAddress = `${publicIp}:${splitTcpAnnounceAddress[1]}`;
51
- config.tcpAnnounceAddress = tcpAnnounceAddress;
52
- }
53
- else {
54
- throw new Error(`Invalid announceTcpAddress provided: ${configTcpAnnounceAddress}. Expected format: <addr>:<port>`);
55
- }
56
- }
57
- const splitUdpAnnounceAddress = splitAddressPort(configUdpAnnounceAddress || '', true);
58
- if (splitUdpAnnounceAddress.length == 2 && splitUdpAnnounceAddress[0] === '') {
59
- // If announceUdpAddress is not provided, use announceTcpAddress
60
- if (!queryForIp && config.tcpAnnounceAddress) {
61
- config.udpAnnounceAddress = config.tcpAnnounceAddress;
62
- }
63
- else if (queryForIp) {
64
- const udpPublicIp = publicIp || (await getPublicIp());
65
- const udpAnnounceAddress = `${udpPublicIp}:${splitUdpAnnounceAddress[1]}`;
66
- config.udpAnnounceAddress = udpAnnounceAddress;
67
- }
68
- }
69
- return config;
70
- }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3BELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRGLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFDbEMsT0FBb0MsRUFDcEMsYUFBNEIsRUFDNUIsYUFBNEMsRUFDNUMsc0JBQThDLEVBQzlDLFlBQTZCLElBQUksbUJBQW1CLEVBQUUsRUFDdEQsT0FLSSxFQUFFLEVBQ04sRUFBRTtJQUNGLElBQUksTUFBTSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxXQUFXLENBQUMsS0FBSyxF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
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3BELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekQsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUNsQyxPQUFvQyxFQUNwQyxhQUE0QixFQUM1QixhQUE0QyxFQUM1QyxzQkFBOEMsRUFDOUMsWUFBNkIsSUFBSSxtQkFBbUIsRUFBRSxFQUN0RCxPQUtJLEVBQUUsRUFDTixFQUFFO0lBQ0YsSUFBSSxNQUFNLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBHLE1BQU0sUUFBUSxHQUFhO1FBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7UUFDMUQsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7UUFDL0UsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUkseUJBQXlCLENBQUMsU0FBUyxDQUFDO0tBQzFGLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQztJQUVmLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxNQUFNLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBELGdDQUFnQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNELFVBQVUsR0FBRyxNQUFNLGFBQWEsQ0FBQyxHQUFHLENBQ2xDLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFFBQVEsRUFDUixhQUFhLEVBQ2IsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDN0csQ0FBQyxDQUFDIn0=
@@ -1,4 +1,4 @@
1
- import { type BlockAttestation, type BlockProposal, type EpochProofQuote, type L2BlockId, type L2BlockSource, type Tx, type TxHash } from '@aztec/circuit-types';
1
+ import { type BlockAttestation, type BlockProposal, type EpochProofQuote, type L2BlockId, type L2BlockSource, type L2BlockStreamEvent, type L2Tips, type Tx, type TxHash } from '@aztec/circuit-types';
2
2
  import { type AztecKVStore } from '@aztec/kv-store';
3
3
  import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
4
4
  import { type ENR } from '@chainsafe/enr';
@@ -52,11 +52,11 @@ export interface P2P {
52
52
  */
53
53
  getEpochProofQuotes(epoch: bigint): Promise<EpochProofQuote[]>;
54
54
  /**
55
- * Broadcasts an EpochProofQuote to other peers.
55
+ * Adds an EpochProofQuote to the pool and broadcasts an EpochProofQuote to other peers.
56
56
  *
57
57
  * @param quote - the quote to broadcast
58
58
  */
59
- broadcastEpochProofQuote(quote: EpochProofQuote): void;
59
+ addEpochProofQuote(quote: EpochProofQuote): Promise<void>;
60
60
  /**
61
61
  * Registers a callback from the validator client that determines how to behave when
62
62
  * foreign block proposals are received
@@ -96,7 +96,13 @@ export interface P2P {
96
96
  * @param txHash - Hash of tx to return.
97
97
  * @returns A single tx or undefined.
98
98
  */
99
- getTxByHash(txHash: TxHash): Tx | undefined;
99
+ getTxByHashFromPool(txHash: TxHash): Tx | undefined;
100
+ /**
101
+ * Returns a transaction in the transaction pool by its hash, requesting it from the network if it is not found.
102
+ * @param txHash - Hash of tx to return.
103
+ * @returns A single tx or undefined.
104
+ */
105
+ getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
100
106
  /**
101
107
  * Returns whether the given tx hash is flagged as pending or mined.
102
108
  * @param txHash - Hash of the tx to query.
@@ -136,10 +142,6 @@ export declare class P2PClient extends WithTracer implements P2P {
136
142
  private p2pService;
137
143
  private keepProvenTxsFor;
138
144
  private log;
139
- /** L2 block download to stay in sync with latest blocks. */
140
- private latestBlockDownloader;
141
- /** L2 block download to stay in sync with proven blocks. */
142
- private provenBlockDownloader;
143
145
  /** Property that indicates whether the client is running. */
144
146
  private stopping;
145
147
  /** The JS promise that will be running to keep the client's data in sync. Can be interrupted if the client is stopped. */
@@ -149,11 +151,13 @@ export declare class P2PClient extends WithTracer implements P2P {
149
151
  private syncResolve?;
150
152
  private latestBlockNumberAtStart;
151
153
  private provenBlockNumberAtStart;
154
+ private synchedBlockHashes;
152
155
  private synchedLatestBlockNumber;
153
156
  private synchedProvenBlockNumber;
154
157
  private txPool;
155
158
  private attestationPool;
156
159
  private epochProofQuotePool;
160
+ private blockStream;
157
161
  /**
158
162
  * In-memory P2P client constructor.
159
163
  * @param store - The client's instance of the KV store.
@@ -164,6 +168,14 @@ export declare class P2PClient extends WithTracer implements P2P {
164
168
  * @param log - A logger.
165
169
  */
166
170
  constructor(store: AztecKVStore, l2BlockSource: L2BlockSource, mempools: MemPools, p2pService: P2PService, keepProvenTxsFor: number, telemetryClient: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
171
+ getL2BlockHash(number: number): Promise<string | undefined>;
172
+ getL2Tips(): Promise<L2Tips>;
173
+ handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
174
+ /**
175
+ * Adds an EpochProofQuote to the pool and broadcasts an EpochProofQuote to other peers.
176
+ * @param quote - the quote to broadcast
177
+ */
178
+ addEpochProofQuote(quote: EpochProofQuote): Promise<void>;
167
179
  getEpochProofQuotes(epoch: bigint): Promise<EpochProofQuote[]>;
168
180
  broadcastEpochProofQuote(quote: EpochProofQuote): void;
169
181
  /**
@@ -209,7 +221,14 @@ export declare class P2PClient extends WithTracer implements P2P {
209
221
  * @param txHash - Hash of the transaction to look for in the pool.
210
222
  * @returns A single tx or undefined.
211
223
  */
212
- getTxByHash(txHash: TxHash): Tx | undefined;
224
+ getTxByHashFromPool(txHash: TxHash): Tx | undefined;
225
+ /**
226
+ * Returns a transaction in the transaction pool by its hash.
227
+ * If the transaction is not in the pool, it will be requested from the network.
228
+ * @param txHash - Hash of the transaction to look for in the pool.
229
+ * @returns A single tx or undefined.
230
+ */
231
+ getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
213
232
  /**
214
233
  * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
215
234
  * @param tx - The tx to verify.
@@ -274,6 +293,11 @@ export declare class P2PClient extends WithTracer implements P2P {
274
293
  * @returns Empty promise.
275
294
  */
276
295
  private handleProvenL2Blocks;
296
+ /**
297
+ * Updates the tx pool after a chain prune.
298
+ * @param latestBlock - The block number the chain was pruned to.
299
+ */
300
+ private handlePruneL2Blocks;
277
301
  private startServiceIfSynched;
278
302
  /**
279
303
  * Method to set the value of the current state.
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { __classPrivateFieldGet, __esDecorate, __runInitializers } from "tslib";
2
- import { L2BlockDownloader, } from '@aztec/circuit-types';
2
+ import { L2BlockStream, } from '@aztec/circuit-types';
3
3
  import { INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js/constants';
4
4
  import { createDebugLogger } from '@aztec/foundation/log';
5
5
  import { Attributes, WithTracer, trackSpan } from '@aztec/telemetry-client';
6
- import { getP2PConfigEnvVars } from '../config.js';
6
+ import { getP2PConfigFromEnv } from '../config.js';
7
7
  import { TX_REQ_PROTOCOL } from '../service/reqresp/interface.js';
8
8
  /**
9
9
  * Enum defining the possible states of the p2p client.
@@ -47,25 +47,85 @@ let P2PClient = (() => {
47
47
  this.syncResolve = undefined;
48
48
  this.latestBlockNumberAtStart = -1;
49
49
  this.provenBlockNumberAtStart = -1;
50
- const { blockCheckIntervalMS: checkInterval, l2QueueSize: p2pL2QueueSize } = getP2PConfigEnvVars();
51
- const l2DownloaderOpts = { maxQueueSize: p2pL2QueueSize, pollIntervalMS: checkInterval };
52
- // TODO(palla/prover-node): This effectively downloads blocks twice from the archiver, which is an issue
53
- // if the archiver is remote. We should refactor this so the downloader keeps a single queue and handles
54
- // latest/proven metadata, as well as block reorgs.
55
- this.latestBlockDownloader = new L2BlockDownloader(l2BlockSource, l2DownloaderOpts);
56
- this.provenBlockDownloader = new L2BlockDownloader(l2BlockSource, { ...l2DownloaderOpts, proven: true });
50
+ const { blockCheckIntervalMS, blockRequestBatchSize } = getP2PConfigFromEnv();
51
+ this.blockStream = new L2BlockStream(l2BlockSource, this, this, {
52
+ batchSize: blockRequestBatchSize,
53
+ pollIntervalMS: blockCheckIntervalMS,
54
+ });
55
+ this.synchedBlockHashes = store.openMap('p2p_pool_block_hashes');
57
56
  this.synchedLatestBlockNumber = store.openSingleton('p2p_pool_last_l2_block');
58
57
  this.synchedProvenBlockNumber = store.openSingleton('p2p_pool_last_proven_l2_block');
59
58
  this.txPool = mempools.txPool;
60
59
  this.attestationPool = mempools.attestationPool;
61
60
  this.epochProofQuotePool = mempools.epochProofQuotePool;
62
61
  }
62
+ getL2BlockHash(number) {
63
+ return Promise.resolve(this.synchedBlockHashes.get(number));
64
+ }
65
+ getL2Tips() {
66
+ const latestBlockNumber = this.getSyncedLatestBlockNum();
67
+ let latestBlockHash;
68
+ const provenBlockNumber = this.getSyncedProvenBlockNum();
69
+ let provenBlockHash;
70
+ if (latestBlockNumber > 0) {
71
+ latestBlockHash = this.synchedBlockHashes.get(latestBlockNumber);
72
+ if (typeof latestBlockHash === 'undefined') {
73
+ this.log.warn(`Block hash for latest block ${latestBlockNumber} not found`);
74
+ throw new Error();
75
+ }
76
+ }
77
+ if (provenBlockNumber > 0) {
78
+ provenBlockHash = this.synchedBlockHashes.get(provenBlockNumber);
79
+ if (typeof provenBlockHash === 'undefined') {
80
+ this.log.warn(`Block hash for proven block ${provenBlockNumber} not found`);
81
+ throw new Error();
82
+ }
83
+ }
84
+ return Promise.resolve({
85
+ latest: { hash: latestBlockHash, number: latestBlockNumber },
86
+ proven: { hash: provenBlockHash, number: provenBlockNumber },
87
+ finalized: { hash: provenBlockHash, number: provenBlockNumber },
88
+ });
89
+ }
90
+ async handleBlockStreamEvent(event) {
91
+ this.log.debug(`Handling block stream event ${event.type}`);
92
+ switch (event.type) {
93
+ case 'blocks-added':
94
+ await this.handleLatestL2Blocks(event.blocks);
95
+ break;
96
+ case 'chain-finalized':
97
+ // TODO (alexg): I think we can prune the block hashes map here
98
+ break;
99
+ case 'chain-proven': {
100
+ const from = this.getSyncedProvenBlockNum() + 1;
101
+ const limit = event.blockNumber - from + 1;
102
+ await this.handleProvenL2Blocks(await this.l2BlockSource.getBlocks(from, limit));
103
+ break;
104
+ }
105
+ case 'chain-pruned':
106
+ await this.handlePruneL2Blocks(event.blockNumber);
107
+ break;
108
+ default: {
109
+ const _ = event;
110
+ break;
111
+ }
112
+ }
113
+ }
114
+ /**
115
+ * Adds an EpochProofQuote to the pool and broadcasts an EpochProofQuote to other peers.
116
+ * @param quote - the quote to broadcast
117
+ */
118
+ addEpochProofQuote(quote) {
119
+ this.epochProofQuotePool.addQuote(quote);
120
+ this.broadcastEpochProofQuote(quote);
121
+ return Promise.resolve();
122
+ }
63
123
  getEpochProofQuotes(epoch) {
64
124
  return Promise.resolve(this.epochProofQuotePool.getQuotes(epoch));
65
125
  }
66
126
  broadcastEpochProofQuote(quote) {
67
127
  __classPrivateFieldGet(this, _P2PClient_instances, "m", _P2PClient_assertIsReady).call(this);
68
- this.epochProofQuotePool.addQuote(quote);
128
+ this.log.info('Broadcasting epoch proof quote', quote.toViemArgs());
69
129
  return this.p2pService.propagate(quote);
70
130
  }
71
131
  /**
@@ -101,20 +161,7 @@ let P2PClient = (() => {
101
161
  }
102
162
  // publish any txs in TxPool after its doing initial sync
103
163
  this.syncPromise = this.syncPromise.then(() => this.publishStoredTxs());
104
- // start looking for further blocks
105
- const processLatest = async () => {
106
- while (!this.stopping) {
107
- await this.latestBlockDownloader.getBlocks(1).then(this.handleLatestL2Blocks.bind(this));
108
- }
109
- };
110
- const processProven = async () => {
111
- while (!this.stopping) {
112
- await this.provenBlockDownloader.getBlocks(1).then(this.handleProvenL2Blocks.bind(this));
113
- }
114
- };
115
- this.runningPromise = Promise.all([processLatest(), processProven()]).then(() => { });
116
- this.latestBlockDownloader.start(syncedLatestBlock);
117
- this.provenBlockDownloader.start(syncedLatestBlock);
164
+ this.blockStream.start();
118
165
  this.log.verbose(`Started block downloader from block ${syncedLatestBlock}`);
119
166
  return this.syncPromise;
120
167
  }
@@ -127,8 +174,7 @@ let P2PClient = (() => {
127
174
  this.stopping = true;
128
175
  await this.p2pService.stop();
129
176
  this.log.debug('Stopped p2p service');
130
- await this.latestBlockDownloader.stop();
131
- await this.provenBlockDownloader.stop();
177
+ await this.blockStream.stop();
132
178
  this.log.debug('Stopped block downloader');
133
179
  await this.runningPromise;
134
180
  this.setCurrentState(P2PClientState.STOPPED);
@@ -187,7 +233,7 @@ let P2PClient = (() => {
187
233
  else if (filter === 'mined') {
188
234
  return this.txPool
189
235
  .getMinedTxHashes()
190
- .map(txHash => this.txPool.getTxByHash(txHash))
236
+ .map(([txHash]) => this.txPool.getTxByHash(txHash))
191
237
  .filter((tx) => !!tx);
192
238
  }
193
239
  else if (filter === 'pending') {
@@ -206,9 +252,22 @@ let P2PClient = (() => {
206
252
  * @param txHash - Hash of the transaction to look for in the pool.
207
253
  * @returns A single tx or undefined.
208
254
  */
209
- getTxByHash(txHash) {
255
+ getTxByHashFromPool(txHash) {
210
256
  return this.txPool.getTxByHash(txHash);
211
257
  }
258
+ /**
259
+ * Returns a transaction in the transaction pool by its hash.
260
+ * If the transaction is not in the pool, it will be requested from the network.
261
+ * @param txHash - Hash of the transaction to look for in the pool.
262
+ * @returns A single tx or undefined.
263
+ */
264
+ getTxByHash(txHash) {
265
+ const tx = this.txPool.getTxByHash(txHash);
266
+ if (tx) {
267
+ return Promise.resolve(tx);
268
+ }
269
+ return this.requestTxByHash(txHash);
270
+ }
212
271
  /**
213
272
  * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
214
273
  * @param tx - The tx to verify.
@@ -283,7 +342,7 @@ let P2PClient = (() => {
283
342
  async markTxsAsMinedFromBlocks(blocks) {
284
343
  for (const block of blocks) {
285
344
  const txHashes = block.body.txEffects.map(txEffect => txEffect.txHash);
286
- await this.txPool.markAsMined(txHashes);
345
+ await this.txPool.markAsMined(txHashes, block.number);
287
346
  }
288
347
  }
289
348
  /**
@@ -309,6 +368,7 @@ let P2PClient = (() => {
309
368
  }
310
369
  await this.markTxsAsMinedFromBlocks(blocks);
311
370
  const lastBlockNum = blocks[blocks.length - 1].number;
371
+ await Promise.all(blocks.map(block => this.synchedBlockHashes.set(block.number, block.hash().toString())));
312
372
  await this.synchedLatestBlockNumber.set(lastBlockNum);
313
373
  this.log.debug(`Synched to latest block ${lastBlockNum}`);
314
374
  await this.startServiceIfSynched();
@@ -342,6 +402,36 @@ let P2PClient = (() => {
342
402
  }
343
403
  await this.startServiceIfSynched();
344
404
  }
405
+ /**
406
+ * Updates the tx pool after a chain prune.
407
+ * @param latestBlock - The block number the chain was pruned to.
408
+ */
409
+ async handlePruneL2Blocks(latestBlock) {
410
+ const txsToDelete = [];
411
+ for (const tx of this.txPool.getAllTxs()) {
412
+ // every tx that's been generated against a block that has now been pruned is no longer valid
413
+ if (tx.data.constants.historicalHeader.globalVariables.blockNumber.toNumber() > latestBlock) {
414
+ txsToDelete.push(tx.getTxHash());
415
+ }
416
+ }
417
+ this.log.info(`Detected chain prune. Removing invalid txs count=${txsToDelete.length} newLatestBlock=${latestBlock} previousLatestBlock=${this.getSyncedLatestBlockNum()}`);
418
+ // delete invalid txs (both pending and mined)
419
+ await this.txPool.deleteTxs(txsToDelete);
420
+ // everything left in the mined set was built against a block on the proven chain so its still valid
421
+ // move back to pending the txs that were reorged out of the chain
422
+ // NOTE: we can't move _all_ txs back to pending because the tx pool could keep hold of mined txs for longer
423
+ // (see this.keepProvenTxsFor)
424
+ const txsToMoveToPending = [];
425
+ for (const [txHash, blockNumber] of this.txPool.getMinedTxHashes()) {
426
+ if (blockNumber > latestBlock) {
427
+ txsToMoveToPending.push(txHash);
428
+ }
429
+ }
430
+ this.log.info(`Moving ${txsToMoveToPending.length} mined txs back to pending`);
431
+ await this.txPool.markMinedAsPending(txsToMoveToPending);
432
+ await this.synchedLatestBlockNumber.set(latestBlock);
433
+ // no need to update block hashes, as they will be updated as new blocks are added
434
+ }
345
435
  async startServiceIfSynched() {
346
436
  if (this.currentState === P2PClientState.SYNCHING &&
347
437
  this.getSyncedLatestBlockNum() >= this.latestBlockNumberAtStart &&
@@ -375,6 +465,7 @@ let P2PClient = (() => {
375
465
  },
376
466
  _P2PClient_instances = new WeakSet(),
377
467
  _P2PClient_assertIsReady = function _P2PClient_assertIsReady() {
468
+ // this.log.info('Checking if p2p client is ready, current state: ', this.currentState);
378
469
  if (!this.isReady()) {
379
470
  throw new Error('P2P client not ready');
380
471
  }
@@ -393,4 +484,4 @@ let P2PClient = (() => {
393
484
  _a;
394
485
  })();
395
486
  export { P2PClient };
396
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUtMLGlCQUFpQixHQUtsQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxVQUFVLEVBQXdCLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4QixtREFBSSxDQUFBO0lBQ0osMkRBQVEsQ0FBQTtJQUNSLHlEQUFPLENBQUE7SUFDUCx5REFBTyxDQUFBO0FBQ1QsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCO0FBd0lEOztHQUVHO0lBQ1UsU0FBUzs7c0JBQVMsVUFBVTs7O3NCQUE1QixTQUFVLFNBQVEsV0FBVTtZQTBCdkM7Ozs7Ozs7O2VBUUc7WUFDSCxZQUNFLEtBQW1CLEVBQ1gsYUFBNEIsRUFDcEMsUUFBa0IsRUFDVixVQUFzQixFQUN0QixnQkFBd0IsRUFDaEMsZUFBZ0MsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7Z0JBRTVDLEtBQUssQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7O2dCQVA1QixrQkFBYSxJQXJDWixtREFBUyxFQXFDVixhQUFhLEVBQWU7Z0JBRTVCLGVBQVUsR0FBVixVQUFVLENBQVk7Z0JBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtnQkFFeEIsUUFBRyxH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
487
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQU9MLGFBQWEsR0FLZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxVQUFVLEVBQXdCLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4QixtREFBSSxDQUFBO0lBQ0osMkRBQVEsQ0FBQTtJQUNSLHlEQUFPLENBQUE7SUFDUCx5REFBTyxDQUFBO0FBQ1QsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCO0FBK0lEOztHQUVHO0lBQ1UsU0FBUzs7c0JBQVMsVUFBVTs7O3NCQUE1QixTQUFVLFNBQVEsV0FBVTtZQXVCdkM7Ozs7Ozs7O2VBUUc7WUFDSCxZQUNFLEtBQW1CLEVBQ1gsYUFBNEIsRUFDcEMsUUFBa0IsRUFDVixVQUFzQixFQUN0QixnQkFBd0IsRUFDaEMsZUFBZ0MsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7Z0JBRTVDLEtBQUssQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7O2dCQVA1QixrQkFBYSxJQWxDWixtREFBUyxFQWtDVixhQUFhLEVBQWU7Z0JBRTVCLGVBQVUsR0FBVixVQUFVLENBQVk7Z0JBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtnQkFFeEIsUUFBRyxHQUFILEdBQUcsQ0FBaUM7Z0JBdEM5Qyw2REFBNkQ7Z0JBQ3JELGFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBS2pCLGlCQUFZLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDbkMsZ0JBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hDLGdCQUFXLEdBQWdCLFNBQVMsQ0FBQztnQkFDckMsNkJBQXdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLDZCQUF3QixHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQWdDcEMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztnQkFFOUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtvQkFDOUQsU0FBUyxFQUFFLHFCQUFxQjtvQkFDaEMsY0FBYyxFQUFFLG9CQUFvQjtpQkFDckMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7Z0JBQzlFLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLCtCQUErQixDQUFDLENBQUM7Z0JBRXJGLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDO1lBQzFELENBQUM7WUFFTSxjQUFjLENBQUMsTUFBYztnQkFDbEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBRU0sU0FBUztnQkFDZCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUN6RCxJQUFJLGVBQW1DLENBQUM7Z0JBQ3hDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQ3pELElBQUksZUFBbUMsQ0FBQztnQkFFeEMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDMUIsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDakUsSUFBSSxPQUFPLGVBQWUsS0FBSyxXQUFXLEVBQUUsQ0FBQzt3QkFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsK0JBQStCLGlCQUFpQixZQUFZLENBQUMsQ0FBQzt3QkFDNUUsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNwQixDQUFDO2dCQUNILENBQUM7Z0JBRUQsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDMUIsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDakUsSUFBSSxPQUFPLGVBQWUsS0FBSyxXQUFXLEVBQUUsQ0FBQzt3QkFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsK0JBQStCLGlCQUFpQixZQUFZLENBQUMsQ0FBQzt3QkFDNUUsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNwQixDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO29CQUNyQixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsZUFBZ0IsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUU7b0JBQzdELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxlQUFnQixFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtvQkFDN0QsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWdCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFO2lCQUNqRSxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLEtBQXlCO2dCQUMzRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzVELFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNuQixLQUFLLGNBQWM7d0JBQ2pCLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDOUMsTUFBTTtvQkFDUixLQUFLLGlCQUFpQjt3QkFDcEIsK0RBQStEO3dCQUMvRCxNQUFNO29CQUNSLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQzt3QkFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUNoRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7d0JBQzNDLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ2pGLE1BQU07b0JBQ1IsQ0FBQztvQkFDRCxLQUFLLGNBQWM7d0JBQ2pCLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDbEQsTUFBTTtvQkFDUixPQUFPLENBQUMsQ0FBQyxDQUFDO3dCQUNSLE1BQU0sQ0FBQyxHQUFVLEtBQUssQ0FBQzt3QkFDdkIsTUFBTTtvQkFDUixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBU0Q7OztlQUdHO1lBQ0gsa0JBQWtCLENBQUMsS0FBc0I7Z0JBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckMsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUVELG1CQUFtQixDQUFDLEtBQWE7Z0JBQy9CLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDcEUsQ0FBQztZQUVELHdCQUF3QixDQUFDLEtBQXNCO2dCQUM3Qyx1QkFBQSxJQUFJLHNEQUFlLE1BQW5CLElBQUksQ0FBaUIsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQztZQUVEOzs7ZUFHRztZQUNJLEtBQUssQ0FBQyxLQUFLO2dCQUNoQixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDOUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUMxQixDQUFDO2dCQUVELHVDQUF1QztnQkFDdkMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDMUUsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUVoRixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBRTdELDhEQUE4RDtnQkFDOUQsSUFBSSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsd0JBQXdCLElBQUksaUJBQWlCLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7b0JBQzdHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztvQkFDN0IsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLGlCQUFpQixpQkFBaUIsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sdURBQXVEO29CQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ3JDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxpQkFBaUIsWUFBWSxpQkFBaUIsZ0NBQWdDLENBQUMsQ0FBQztnQkFDNUcsQ0FBQztnQkFFRCx5REFBeUQ7Z0JBQ3pELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztnQkFFeEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztnQkFFN0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzFCLENBQUM7WUFFRDs7O2VBR0c7WUFDSSxLQUFLLENBQUMsSUFBSTtnQkFDZixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUN0QyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBQzNDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDdkMsQ0FBQztZQVFNLGlCQUFpQixDQUFDLFFBQXVCO2dCQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsUUFBUSxDQUFDLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUN0RixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFFTSxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsVUFBa0I7Z0JBQzVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7WUFFRCxzRUFBc0U7WUFDdEUseUNBQXlDO1lBQ2xDLDRCQUE0QixDQUFDLE9BQXdFO2dCQUMxRyxJQUFJLENBQUMsVUFBVSxDQUFDLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFFRDs7Ozs7Ozs7ZUFRRztZQUNJLFVBQVUsQ0FBQyxRQUFrQjtnQkFDbEMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDN0UsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7WUFFRDs7Ozs7Ozs7ZUFRRztZQUNJLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBYztnQkFDekMsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRXRFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsTUFBTSxDQUFDLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQy9FLElBQUksRUFBRSxFQUFFLENBQUM7b0JBQ1AsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLENBQUM7Z0JBRUQsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQ7OztlQUdHO1lBQ0ksTUFBTSxDQUFDLE1BQW1DO2dCQUMvQyxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQyxDQUFDO3FCQUFNLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNO3lCQUNmLGdCQUFnQixFQUFFO3lCQUNsQixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDbEQsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7cUJBQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU07eUJBQ2Ysa0JBQWtCLEVBQUU7eUJBQ3BCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUM5QyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sQ0FBQyxHQUFVLE1BQU0sQ0FBQztvQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztZQUNILENBQUM7WUFFRDs7OztlQUlHO1lBQ0gsbUJBQW1CLENBQUMsTUFBYztnQkFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBRUQ7Ozs7O2VBS0c7WUFDSCxXQUFXLENBQUMsTUFBYztnQkFDeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNDLElBQUksRUFBRSxFQUFFLENBQUM7b0JBQ1AsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QixDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBRUQ7Ozs7Z0JBSUk7WUFDRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQU07Z0JBQ3hCLHVCQUFBLElBQUksc0RBQWUsTUFBbkIsSUFBSSxDQUFpQixDQUFDO2dCQUN0QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVEOzs7O2VBSUc7WUFDSSxXQUFXLENBQUMsTUFBYztnQkFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBRU0sTUFBTTtnQkFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEMsQ0FBQztZQUVEOzs7OztnQkFLSTtZQUNHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBa0I7Z0JBQ3ZDLHVCQUFBLElBQUksc0RBQWUsTUFBbkIsSUFBSSxDQUFpQixDQUFDO2dCQUN0QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFFRDs7O2VBR0c7WUFDSSxPQUFPO2dCQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxjQUFjLENBQUMsT0FBTyxDQUFDO1lBQ3RELENBQUM7WUFFRDs7O2VBR0c7WUFDSSx1QkFBdUI7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxJQUFJLG9CQUFvQixHQUFHLENBQUMsQ0FBQztZQUN6RSxDQUFDO1lBRUQ7OztlQUdHO1lBQ0ksdUJBQXVCO2dCQUM1QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7WUFDekUsQ0FBQztZQUVEOzs7ZUFHRztZQUNJLEtBQUssQ0FBQyxTQUFTO2dCQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxTQUFTLEdBQ2IsV0FBVyxJQUFJLENBQUM7b0JBQ2QsQ0FBQyxDQUFDLEVBQUU7b0JBQ0osQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3JHLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztvQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO29CQUN4QixlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7aUJBQzFDLENBQUMsQ0FBQztZQUNyQixDQUFDO1lBRUQ7Ozs7ZUFJRztZQUNLLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFpQjtnQkFDdEQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2RSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELENBQUM7WUFDSCxDQUFDO1lBRUQ7Ozs7ZUFJRztZQUNLLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxNQUFpQjtnQkFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDdEcsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2RSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQztZQUVEOzs7O2VBSUc7WUFDSyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBaUI7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25CLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMzQixDQUFDO2dCQUVELE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3RELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0csTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsWUFBWSxFQUFFLENBQUMsQ0FBQztnQkFDMUQsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1lBRUQ7Ozs7ZUFJRztZQUNLLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFpQjtnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbkIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzNCLENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUV0RCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDaEMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7cUJBQU0sSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLG9CQUFvQixFQUFFLENBQUM7b0JBQ3hFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUN4RixNQUFNLE9BQU8sR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO29CQUNyRCxNQUFNLEtBQUssR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQztvQkFDdEMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3pGLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBQ3hELENBQUM7Z0JBRUQsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsWUFBWSxFQUFFLENBQUMsQ0FBQztnQkFDMUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDNUUsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQzFFLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1lBRUQ7OztlQUdHO1lBQ0ssS0FBSyxDQUFDLG1CQUFtQixDQUFDLFdBQW1CO2dCQUNuRCxNQUFNLFdBQVcsR0FBYSxFQUFFLENBQUM7Z0JBQ2pDLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO29CQUN6Qyw2RkFBNkY7b0JBQzdGLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQzt3QkFDNUYsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztvQkFDbkMsQ0FBQztnQkFDSCxDQUFDO2dCQUVELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNYLG9EQUNFLFdBQVcsQ0FBQyxNQUNkLG1CQUFtQixXQUFXLHdCQUF3QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUN2RixDQUFDO2dCQUVGLDhDQUE4QztnQkFDOUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFekMsb0dBQW9HO2dCQUNwRyxrRUFBa0U7Z0JBQ2xFLDRHQUE0RztnQkFDNUcsOEJBQThCO2dCQUM5QixNQUFNLGtCQUFrQixHQUFhLEVBQUUsQ0FBQztnQkFDeEMsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDO29CQUNuRSxJQUFJLFdBQVcsR0FBRyxXQUFXLEVBQUUsQ0FBQzt3QkFDOUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNsQyxDQUFDO2dCQUNILENBQUM7Z0JBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxrQkFBa0IsQ0FBQyxNQUFNLDRCQUE0QixDQUFDLENBQUM7Z0JBQy9FLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUV6RCxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3JELGtGQUFrRjtZQUNwRixDQUFDO1lBRU8sS0FBSyxDQUFDLHFCQUFxQjtnQkFDakMsSUFDRSxJQUFJLENBQUMsWUFBWSxLQUFLLGNBQWMsQ0FBQyxRQUFRO29CQUM3QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxJQUFJLENBQUMsd0JBQXdCO29CQUMvRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQy9ELENBQUM7b0JBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzdDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDbkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUNuQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2hDLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRDs7O2VBR0c7WUFDSyxlQUFlLENBQUMsUUFBd0I7Z0JBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO2dCQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUVPLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztvQkFDcEIsT0FBTztnQkFDVCxDQUFDO2dCQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLENBQUMsTUFBTSx3QkFBd0IsQ0FBQyxDQUFDO29CQUNqRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEUsQ0FBQztZQUNILENBQUM7Ozs7WUExWkMsd0ZBQXdGO1lBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDOzs7NkNBaUZBLFNBQVMsQ0FBQyw2QkFBNkIsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3JELENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO29CQUN6RixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDdkYsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7b0JBQ3ZELENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsRUFBRTtpQkFDaEUsQ0FBQyxDQUFDO1lBQ0gsb01BQU8saUJBQWlCLDZEQUd2Qjs7Ozs7U0FwTlUsU0FBUyJ9
package/dest/config.d.ts CHANGED
@@ -12,6 +12,10 @@ export interface P2PConfig extends P2PReqRespConfig {
12
12
  * The frequency in which to check for new L2 blocks.
13
13
  */
14
14
  blockCheckIntervalMS: number;
15
+ /**
16
+ * The number of blocks to fetch in a single batch.
17
+ */
18
+ blockRequestBatchSize: number;
15
19
  /**
16
20
  * The frequency in which to check for new peers.
17
21
  */
@@ -120,7 +124,7 @@ export declare const p2pConfigMappings: ConfigMappingsType<P2PConfig>;
120
124
  * Gets the config values for p2p client from environment variables.
121
125
  * @returns The config values for p2p client.
122
126
  */
123
- export declare function getP2PConfigEnvVars(): P2PConfig;
127
+ export declare function getP2PConfigFromEnv(): P2PConfig;
124
128
  export declare function getP2PDefaultConfig(): P2PConfig;
125
129
  /**
126
130
  * Required P2P config values for a bootstrap node.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,6BAA6B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,+HAA+H;IAC/H,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,yCAAyC,EAAE,MAAM,CAAC;IAElD;;OAEG;IACH,wCAAwC,EAAE,MAAM,CAAC;IAEjD;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAgJ3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,SAAS,EACT,oBAAoB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAC5E,GACC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAUhD,eAAO,MAAM,sBAAsB,uIAA4D,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,6BAA6B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,+HAA+H;IAC/H,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,yCAAyC,EAAE,MAAM,CAAC;IAElD;;OAEG;IACH,wCAAwC,EAAE,MAAM,CAAC;IAEjD;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAqJ3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,SAAS,EACT,oBAAoB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAC5E,GACC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAUhD,eAAO,MAAM,sBAAsB,uIAA4D,CAAC"}
package/dest/config.js CHANGED
@@ -138,13 +138,18 @@ export const p2pConfigMappings = {
138
138
  description: 'The chain id of the L1 chain.',
139
139
  ...numberConfigHelper(31337),
140
140
  },
141
+ blockRequestBatchSize: {
142
+ env: 'P2P_BLOCK_REQUEST_BATCH_SIZE',
143
+ description: 'The number of blocks to fetch in a single batch.',
144
+ ...numberConfigHelper(20),
145
+ },
141
146
  ...p2pReqRespConfigMappings,
142
147
  };
143
148
  /**
144
149
  * Gets the config values for p2p client from environment variables.
145
150
  * @returns The config values for p2p client.
146
151
  */
147
- export function getP2PConfigEnvVars() {
152
+ export function getP2PConfigFromEnv() {
148
153
  return getConfigFromMappings(p2pConfigMappings);
149
154
  }
150
155
  export function getP2PDefaultConfig() {
@@ -158,4 +163,4 @@ const bootnodeConfigKeys = [
158
163
  'udpListenAddress',
159
164
  ];
160
165
  export const bootnodeConfigMappings = pickConfigMappings(p2pConfigMappings, bootnodeConfigKeys);
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBeUIsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWlKOUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWtDO0lBQzlELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxhQUFhO1FBQ2xCLFdBQVcsRUFBRSwrREFBK0Q7UUFDNUUsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsV0FB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
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBeUIsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQXNKOUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWtDO0lBQzlELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxhQUFhO1FBQ2xCLFdBQVcsRUFBRSwrREFBK0Q7UUFDNUUsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsV0FB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
@@ -14,9 +14,10 @@ export declare class AztecKVTxPool implements TxPool {
14
14
  * @param log - A logger.
15
15
  */
16
16
  constructor(store: AztecKVStore, telemetry: TelemetryClient, log?: Logger);
17
- markAsMined(txHashes: TxHash[]): Promise<void>;
17
+ markAsMined(txHashes: TxHash[], blockNumber: number): Promise<void>;
18
+ markMinedAsPending(txHashes: TxHash[]): Promise<void>;
18
19
  getPendingTxHashes(): TxHash[];
19
- getMinedTxHashes(): TxHash[];
20
+ getMinedTxHashes(): [TxHash, number][];
20
21
  getTxStatus(txHash: TxHash): 'pending' | 'mined' | undefined;
21
22
  /**
22
23
  * Checks if a transaction exists in the pool and returns it.
@@ -1 +1 @@
1
- {"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAgC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAe1C;;;;OAIG;gBACS,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAqC;IAU9F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C,kBAAkB,IAAI,MAAM,EAAE;IAI9B,gBAAgB,IAAI,MAAM,EAAE;IAI5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAWnE;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;CAGlC"}
1
+ {"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAgC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAe1C;;;;OAIG;gBACS,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAqC;IAU9F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BrD,kBAAkB,IAAI,MAAM,EAAE;IAI9B,gBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAOtC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAWnE;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;CAGlC"}