@aztec/p2p 0.16.9 → 0.17.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.
- package/dest/client/index.d.ts +2 -1
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +3 -3
- package/dest/client/p2p_client.d.ts +5 -5
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +27 -17
- package/dest/tx_pool/aztec_kv_tx_pool.d.ts +50 -0
- package/dest/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -0
- package/dest/tx_pool/aztec_kv_tx_pool.js +88 -0
- package/dest/tx_pool/index.d.ts +1 -0
- package/dest/tx_pool/index.d.ts.map +1 -1
- package/dest/tx_pool/index.js +2 -1
- package/dest/tx_pool/memory_tx_pool.d.ts +1 -1
- package/dest/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/tx_pool/memory_tx_pool.js +5 -5
- package/dest/tx_pool/tx_pool.d.ts +1 -1
- package/dest/tx_pool/tx_pool.d.ts.map +1 -1
- package/dest/tx_pool/tx_pool_test_suite.d.ts +7 -0
- package/dest/tx_pool/tx_pool_test_suite.d.ts.map +1 -0
- package/dest/tx_pool/tx_pool_test_suite.js +43 -0
- package/package.json +5 -4
package/dest/client/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { AztecKVStore } from '@aztec/kv-store';
|
|
1
2
|
import { L2BlockSource } from '@aztec/types';
|
|
2
3
|
import { P2PClient } from '../client/p2p_client.js';
|
|
3
4
|
import { P2PConfig } from '../config.js';
|
|
4
5
|
import { TxPool } from '../tx_pool/index.js';
|
|
5
6
|
export * from './p2p_client.js';
|
|
6
|
-
export declare const createP2PClient: (config: P2PConfig, txPool: TxPool, l2BlockSource: L2BlockSource) => Promise<P2PClient>;
|
|
7
|
+
export declare const createP2PClient: (store: AztecKVStore, config: P2PConfig, txPool: TxPool, l2BlockSource: L2BlockSource) => Promise<P2PClient>;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,cAAc,iBAAiB,CAAC;AAEhC,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,cAAc,iBAAiB,CAAC;AAEhC,eAAO,MAAM,eAAe,UACnB,YAAY,UACX,SAAS,UACT,MAAM,iBACC,aAAa,uBAI7B,CAAC"}
|
package/dest/client/index.js
CHANGED
|
@@ -2,8 +2,8 @@ import { P2PClient } from '../client/p2p_client.js';
|
|
|
2
2
|
import { DummyP2PService } from '../service/dummy_service.js';
|
|
3
3
|
import { LibP2PService } from '../service/index.js';
|
|
4
4
|
export * from './p2p_client.js';
|
|
5
|
-
export const createP2PClient = async (config, txPool, l2BlockSource) => {
|
|
5
|
+
export const createP2PClient = async (store, config, txPool, l2BlockSource) => {
|
|
6
6
|
const p2pService = config.p2pEnabled ? await LibP2PService.new(config, txPool) : new DummyP2PService();
|
|
7
|
-
return new P2PClient(l2BlockSource, txPool, p2pService);
|
|
7
|
+
return new P2PClient(store, l2BlockSource, txPool, p2pService);
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3BELGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFDbEMsS0FBbUIsRUFDbkIsTUFBaUIsRUFDakIsTUFBYyxFQUNkLGFBQTRCLEVBQzVCLEVBQUU7SUFDRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3ZHLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDIn0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AztecKVStore } from '@aztec/kv-store';
|
|
1
2
|
import { L2BlockSource, Tx, TxHash } from '@aztec/types';
|
|
2
3
|
import { P2PService } from '../service/service.js';
|
|
3
4
|
import { TxPool } from '../tx_pool/index.js';
|
|
@@ -89,22 +90,20 @@ export declare class P2PClient implements P2P {
|
|
|
89
90
|
* The JS promise that will be running to keep the client's data in sync. Can be interrupted if the client is stopped.
|
|
90
91
|
*/
|
|
91
92
|
private runningPromise;
|
|
92
|
-
/**
|
|
93
|
-
* Store the ID of the latest block the client has synced to.
|
|
94
|
-
*/
|
|
95
|
-
private currentL2BlockNum;
|
|
96
93
|
private currentState;
|
|
97
94
|
private syncPromise;
|
|
98
95
|
private latestBlockNumberAtStart;
|
|
99
96
|
private syncResolve?;
|
|
97
|
+
private synchedBlockNumber;
|
|
100
98
|
/**
|
|
101
99
|
* In-memory P2P client constructor.
|
|
100
|
+
* @param store - The client's instance of the KV store.
|
|
102
101
|
* @param l2BlockSource - P2P client's source for fetching existing blocks.
|
|
103
102
|
* @param txPool - The client's instance of a transaction pool. Defaults to in-memory implementation.
|
|
104
103
|
* @param p2pService - The concrete instance of p2p networking to use.
|
|
105
104
|
* @param log - A logger.
|
|
106
105
|
*/
|
|
107
|
-
constructor(l2BlockSource: L2BlockSource, txPool: TxPool, p2pService: P2PService, log?: import("@aztec/foundation/log").DebugLogger);
|
|
106
|
+
constructor(store: AztecKVStore, l2BlockSource: L2BlockSource, txPool: TxPool, p2pService: P2PService, log?: import("@aztec/foundation/log").DebugLogger);
|
|
108
107
|
/**
|
|
109
108
|
* Starts the P2P client.
|
|
110
109
|
* @returns An empty promise signalling the synching process.
|
|
@@ -171,5 +170,6 @@ export declare class P2PClient implements P2P {
|
|
|
171
170
|
* @param newState - New state value.
|
|
172
171
|
*/
|
|
173
172
|
private setCurrentState;
|
|
173
|
+
private publishStoredTxs;
|
|
174
174
|
}
|
|
175
175
|
//# sourceMappingURL=p2p_client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAKL,aAAa,EACb,EAAE,EACF,MAAM,EACP,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;GAEG;AACH,oBAAY,cAAc;IACxB,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IACtB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;IAEI;AACJ,MAAM,WAAW,GAAG;IAClB;;;QAGI;IACJ,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;;;QAII;IACJ,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAErD;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,SAAU,YAAW,GAAG;IAgCjC,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAlCb;;OAEG;IACH,OAAO,CAAC,eAAe,CAAoB;IAE3C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAS;IAEzB;;OAEG;IACH,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,wBAAwB,CAAM;IACtC,OAAO,CAAC,WAAW,CAAC,CAAyB;IAC7C,OAAO,CAAC,kBAAkB,CAAyB;IAEnD;;;;;;;OAOG;gBAED,KAAK,EAAE,YAAY,EACX,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,GAAG,8CAAiC;IAO9C;;;OAGG;IACU,KAAK;IA6ClB;;;OAGG;IACU,IAAI;IASjB;;;OAGG;IACI,MAAM,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAI9B;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAIpD;;;;QAII;IACS,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;;QAKI;IACS,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD;;;OAGG;IACI,OAAO;IAId;;;OAGG;IACI,iBAAiB;IAIxB;;;OAGG;IACI,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAOzC;;;;OAIG;YACW,eAAe;IAS7B;;;;OAIG;YACW,cAAc;IAkB5B;;;OAGG;IACH,OAAO,CAAC,eAAe;YAKT,gBAAgB;CAW/B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
|
-
import { L2BlockContext, L2BlockDownloader } from '@aztec/types';
|
|
2
|
+
import { INITIAL_L2_BLOCK_NUM, L2BlockContext, L2BlockDownloader, } from '@aztec/types';
|
|
3
3
|
import { getP2PConfigEnvVars } from '../config.js';
|
|
4
4
|
/**
|
|
5
5
|
* Enum defining the possible states of the p2p client.
|
|
@@ -17,12 +17,13 @@ export var P2PClientState;
|
|
|
17
17
|
export class P2PClient {
|
|
18
18
|
/**
|
|
19
19
|
* In-memory P2P client constructor.
|
|
20
|
+
* @param store - The client's instance of the KV store.
|
|
20
21
|
* @param l2BlockSource - P2P client's source for fetching existing blocks.
|
|
21
22
|
* @param txPool - The client's instance of a transaction pool. Defaults to in-memory implementation.
|
|
22
23
|
* @param p2pService - The concrete instance of p2p networking to use.
|
|
23
24
|
* @param log - A logger.
|
|
24
25
|
*/
|
|
25
|
-
constructor(l2BlockSource, txPool, p2pService, log = createDebugLogger('aztec:p2p')) {
|
|
26
|
+
constructor(store, l2BlockSource, txPool, p2pService, log = createDebugLogger('aztec:p2p')) {
|
|
26
27
|
this.l2BlockSource = l2BlockSource;
|
|
27
28
|
this.txPool = txPool;
|
|
28
29
|
this.p2pService = p2pService;
|
|
@@ -31,16 +32,13 @@ export class P2PClient {
|
|
|
31
32
|
* Property that indicates whether the client is running.
|
|
32
33
|
*/
|
|
33
34
|
this.stopping = false;
|
|
34
|
-
/**
|
|
35
|
-
* Store the ID of the latest block the client has synced to.
|
|
36
|
-
*/
|
|
37
|
-
this.currentL2BlockNum = 0;
|
|
38
35
|
this.currentState = P2PClientState.IDLE;
|
|
39
36
|
this.syncPromise = Promise.resolve();
|
|
40
37
|
this.latestBlockNumberAtStart = -1;
|
|
41
38
|
this.syncResolve = undefined;
|
|
42
39
|
const { p2pBlockCheckIntervalMS: checkInterval, l2QueueSize } = getP2PConfigEnvVars();
|
|
43
40
|
this.blockDownloader = new L2BlockDownloader(l2BlockSource, l2QueueSize, checkInterval);
|
|
41
|
+
this.synchedBlockNumber = store.createSingleton('p2p_pool_last_l2_block');
|
|
44
42
|
}
|
|
45
43
|
/**
|
|
46
44
|
* Starts the P2P client.
|
|
@@ -55,7 +53,7 @@ export class P2PClient {
|
|
|
55
53
|
}
|
|
56
54
|
// get the current latest block number
|
|
57
55
|
this.latestBlockNumberAtStart = await this.l2BlockSource.getBlockNumber();
|
|
58
|
-
const blockToDownloadFrom = this.
|
|
56
|
+
const blockToDownloadFrom = this.getSyncedBlockNum() + 1;
|
|
59
57
|
// if there are blocks to be retrieved, go to a synching state
|
|
60
58
|
if (blockToDownloadFrom <= this.latestBlockNumberAtStart) {
|
|
61
59
|
this.setCurrentState(P2PClientState.SYNCHING);
|
|
@@ -71,6 +69,8 @@ export class P2PClient {
|
|
|
71
69
|
await this.p2pService.start();
|
|
72
70
|
this.log(`Next block ${blockToDownloadFrom} already beyond latest block at ${this.latestBlockNumberAtStart}`);
|
|
73
71
|
}
|
|
72
|
+
// publish any txs in TxPool after its doing initial sync
|
|
73
|
+
this.syncPromise = this.syncPromise.then(() => this.publishStoredTxs());
|
|
74
74
|
// start looking for further blocks
|
|
75
75
|
const blockProcess = async () => {
|
|
76
76
|
while (!this.stopping) {
|
|
@@ -134,7 +134,7 @@ export class P2PClient {
|
|
|
134
134
|
if (!ready) {
|
|
135
135
|
throw new Error('P2P client not ready');
|
|
136
136
|
}
|
|
137
|
-
this.txPool.deleteTxs(txHashes);
|
|
137
|
+
await this.txPool.deleteTxs(txHashes);
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
140
140
|
* Public function to check if the p2p client is fully synced and ready to receive txs.
|
|
@@ -148,7 +148,7 @@ export class P2PClient {
|
|
|
148
148
|
* @returns Block number of latest L2 Block we've synced with.
|
|
149
149
|
*/
|
|
150
150
|
getSyncedBlockNum() {
|
|
151
|
-
return this.
|
|
151
|
+
return this.synchedBlockNumber.get() ?? INITIAL_L2_BLOCK_NUM - 1;
|
|
152
152
|
}
|
|
153
153
|
/**
|
|
154
154
|
* Method to check the status the p2p client.
|
|
@@ -157,7 +157,7 @@ export class P2PClient {
|
|
|
157
157
|
getStatus() {
|
|
158
158
|
return Promise.resolve({
|
|
159
159
|
state: this.currentState,
|
|
160
|
-
syncedToL2Block: this.
|
|
160
|
+
syncedToL2Block: this.getSyncedBlockNum(),
|
|
161
161
|
});
|
|
162
162
|
}
|
|
163
163
|
/**
|
|
@@ -165,14 +165,13 @@ export class P2PClient {
|
|
|
165
165
|
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
166
166
|
* @returns Empty promise.
|
|
167
167
|
*/
|
|
168
|
-
reconcileTxPool(blocks) {
|
|
168
|
+
async reconcileTxPool(blocks) {
|
|
169
169
|
for (let i = 0; i < blocks.length; i++) {
|
|
170
170
|
const blockContext = new L2BlockContext(blocks[i]);
|
|
171
171
|
const txHashes = blockContext.getTxHashes();
|
|
172
|
-
this.txPool.deleteTxs(txHashes);
|
|
172
|
+
await this.txPool.deleteTxs(txHashes);
|
|
173
173
|
this.p2pService.settledTxs(txHashes);
|
|
174
174
|
}
|
|
175
|
-
return Promise.resolve();
|
|
176
175
|
}
|
|
177
176
|
/**
|
|
178
177
|
* Method for processing new blocks.
|
|
@@ -184,9 +183,10 @@ export class P2PClient {
|
|
|
184
183
|
return Promise.resolve();
|
|
185
184
|
}
|
|
186
185
|
await this.reconcileTxPool(blocks);
|
|
187
|
-
|
|
188
|
-
this.
|
|
189
|
-
|
|
186
|
+
const lastBlockNum = blocks[blocks.length - 1].number;
|
|
187
|
+
await this.synchedBlockNumber.set(lastBlockNum);
|
|
188
|
+
this.log(`Synched to block ${lastBlockNum}`);
|
|
189
|
+
if (this.currentState === P2PClientState.SYNCHING && lastBlockNum >= this.latestBlockNumberAtStart) {
|
|
190
190
|
this.setCurrentState(P2PClientState.RUNNING);
|
|
191
191
|
if (this.syncResolve !== undefined) {
|
|
192
192
|
this.syncResolve();
|
|
@@ -202,5 +202,15 @@ export class P2PClient {
|
|
|
202
202
|
this.currentState = newState;
|
|
203
203
|
this.log(`Moved to state ${P2PClientState[this.currentState]}`);
|
|
204
204
|
}
|
|
205
|
+
async publishStoredTxs() {
|
|
206
|
+
if (!this.isReady()) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const txs = this.txPool.getAllTxs();
|
|
210
|
+
if (txs.length > 0) {
|
|
211
|
+
this.log(`Publishing ${txs.length} previously stored txs`);
|
|
212
|
+
await Promise.all(txs.map(tx => this.p2pService.propagateTx(tx)));
|
|
213
|
+
}
|
|
214
|
+
}
|
|
205
215
|
}
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLGNBQWMsRUFDZCxpQkFBaUIsR0FJbEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSW5EOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4QixtREFBSSxDQUFBO0lBQ0osMkRBQVEsQ0FBQTtJQUNSLHlEQUFPLENBQUE7SUFDUCx5REFBTyxDQUFBO0FBQ1QsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCO0FBc0VEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFzQnBCOzs7Ozs7O09BT0c7SUFDSCxZQUNFLEtBQW1CLEVBQ1gsYUFBNEIsRUFDNUIsTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLE1BQU0saUJBQWlCLENBQUMsV0FBVyxDQUFDO1FBSHBDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQWlDO1FBN0I5Qzs7V0FFRztRQUNLLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFPakIsaUJBQVksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLDZCQUF3QixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQWdCLFNBQVMsQ0FBQztRQWtCM0MsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxtQkFB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
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { AztecKVStore } from '@aztec/kv-store';
|
|
2
|
+
import { Tx, TxHash } from '@aztec/types';
|
|
3
|
+
import { TxPool } from './tx_pool.js';
|
|
4
|
+
/**
|
|
5
|
+
* In-memory implementation of the Transaction Pool.
|
|
6
|
+
*/
|
|
7
|
+
export declare class AztecKVTxPool implements TxPool {
|
|
8
|
+
#private;
|
|
9
|
+
/**
|
|
10
|
+
* Class constructor for in-memory TxPool. Initiates our transaction pool as a JS Map.
|
|
11
|
+
* @param store - A KV store.
|
|
12
|
+
* @param log - A logger.
|
|
13
|
+
*/
|
|
14
|
+
constructor(store: AztecKVStore, log?: import("@aztec/foundation/log").DebugLogger);
|
|
15
|
+
/**
|
|
16
|
+
* Checks if a transaction exists in the pool and returns it.
|
|
17
|
+
* @param txHash - The generated tx hash.
|
|
18
|
+
* @returns The transaction, if found, 'undefined' otherwise.
|
|
19
|
+
*/
|
|
20
|
+
getTxByHash(txHash: TxHash): Tx | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Adds a list of transactions to the pool. Duplicates are ignored.
|
|
23
|
+
* @param txs - An array of txs to be added to the pool.
|
|
24
|
+
* @returns Empty promise.
|
|
25
|
+
*/
|
|
26
|
+
addTxs(txs: Tx[]): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Deletes transactions from the pool. Tx hashes that are not present are ignored.
|
|
29
|
+
* @param txHashes - An array of tx hashes to be removed from the tx pool.
|
|
30
|
+
* @returns The number of transactions that was deleted from the pool.
|
|
31
|
+
*/
|
|
32
|
+
deleteTxs(txHashes: TxHash[]): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Gets all the transactions stored in the pool.
|
|
35
|
+
* @returns Array of tx objects in the order they were added to the pool.
|
|
36
|
+
*/
|
|
37
|
+
getAllTxs(): Tx[];
|
|
38
|
+
/**
|
|
39
|
+
* Gets the hashes of all transactions currently in the tx pool.
|
|
40
|
+
* @returns An array of transaction hashes found in the tx pool.
|
|
41
|
+
*/
|
|
42
|
+
getAllTxHashes(): TxHash[];
|
|
43
|
+
/**
|
|
44
|
+
* Returns a boolean indicating if the transaction is present in the pool.
|
|
45
|
+
* @param txHash - The hash of the transaction to be queried.
|
|
46
|
+
* @returns True if the transaction present, false otherwise.
|
|
47
|
+
*/
|
|
48
|
+
hasTx(txHash: TxHash): boolean;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=aztec_kv_tx_pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../src/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAU1C;;;;OAIG;gBACS,KAAK,EAAE,YAAY,EAAE,GAAG,8CAAqC;IAMzE;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACU,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7C;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;;;OAIG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGtC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
var _AztecKVTxPool_store, _AztecKVTxPool_txs, _AztecKVTxPool_log;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
|
+
import { Tx, TxHash } from '@aztec/types';
|
|
5
|
+
/**
|
|
6
|
+
* In-memory implementation of the Transaction Pool.
|
|
7
|
+
*/
|
|
8
|
+
export class AztecKVTxPool {
|
|
9
|
+
/**
|
|
10
|
+
* Class constructor for in-memory TxPool. Initiates our transaction pool as a JS Map.
|
|
11
|
+
* @param store - A KV store.
|
|
12
|
+
* @param log - A logger.
|
|
13
|
+
*/
|
|
14
|
+
constructor(store, log = createDebugLogger('aztec:tx_pool')) {
|
|
15
|
+
_AztecKVTxPool_store.set(this, void 0);
|
|
16
|
+
/**
|
|
17
|
+
* Our tx pool, stored as a Map in-memory, with K: tx hash and V: the transaction.
|
|
18
|
+
*/
|
|
19
|
+
_AztecKVTxPool_txs.set(this, void 0);
|
|
20
|
+
_AztecKVTxPool_log.set(this, void 0);
|
|
21
|
+
__classPrivateFieldSet(this, _AztecKVTxPool_txs, store.createMap('txs'), "f");
|
|
22
|
+
__classPrivateFieldSet(this, _AztecKVTxPool_store, store, "f");
|
|
23
|
+
__classPrivateFieldSet(this, _AztecKVTxPool_log, log, "f");
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Checks if a transaction exists in the pool and returns it.
|
|
27
|
+
* @param txHash - The generated tx hash.
|
|
28
|
+
* @returns The transaction, if found, 'undefined' otherwise.
|
|
29
|
+
*/
|
|
30
|
+
getTxByHash(txHash) {
|
|
31
|
+
const buffer = __classPrivateFieldGet(this, _AztecKVTxPool_txs, "f").get(txHash.toString());
|
|
32
|
+
return buffer ? Tx.fromBuffer(buffer) : undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Adds a list of transactions to the pool. Duplicates are ignored.
|
|
36
|
+
* @param txs - An array of txs to be added to the pool.
|
|
37
|
+
* @returns Empty promise.
|
|
38
|
+
*/
|
|
39
|
+
async addTxs(txs) {
|
|
40
|
+
const txHashes = await Promise.all(txs.map(tx => tx.getTxHash()));
|
|
41
|
+
return __classPrivateFieldGet(this, _AztecKVTxPool_store, "f").transaction(() => {
|
|
42
|
+
for (const [i, tx] of txs.entries()) {
|
|
43
|
+
const txHash = txHashes[i];
|
|
44
|
+
__classPrivateFieldGet(this, _AztecKVTxPool_log, "f").info(`Adding tx with id ${txHash.toString()}`, {
|
|
45
|
+
eventName: 'tx-added-to-pool',
|
|
46
|
+
...tx.getStats(),
|
|
47
|
+
});
|
|
48
|
+
void __classPrivateFieldGet(this, _AztecKVTxPool_txs, "f").set(txHash.toString(), tx.toBuffer());
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Deletes transactions from the pool. Tx hashes that are not present are ignored.
|
|
54
|
+
* @param txHashes - An array of tx hashes to be removed from the tx pool.
|
|
55
|
+
* @returns The number of transactions that was deleted from the pool.
|
|
56
|
+
*/
|
|
57
|
+
deleteTxs(txHashes) {
|
|
58
|
+
return __classPrivateFieldGet(this, _AztecKVTxPool_store, "f").transaction(() => {
|
|
59
|
+
for (const hash of txHashes) {
|
|
60
|
+
void __classPrivateFieldGet(this, _AztecKVTxPool_txs, "f").delete(hash.toString());
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Gets all the transactions stored in the pool.
|
|
66
|
+
* @returns Array of tx objects in the order they were added to the pool.
|
|
67
|
+
*/
|
|
68
|
+
getAllTxs() {
|
|
69
|
+
return Array.from(__classPrivateFieldGet(this, _AztecKVTxPool_txs, "f").values()).map(buffer => Tx.fromBuffer(buffer));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Gets the hashes of all transactions currently in the tx pool.
|
|
73
|
+
* @returns An array of transaction hashes found in the tx pool.
|
|
74
|
+
*/
|
|
75
|
+
getAllTxHashes() {
|
|
76
|
+
return Array.from(__classPrivateFieldGet(this, _AztecKVTxPool_txs, "f").keys()).map(x => TxHash.fromString(x));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Returns a boolean indicating if the transaction is present in the pool.
|
|
80
|
+
* @param txHash - The hash of the transaction to be queried.
|
|
81
|
+
* @returns True if the transaction present, false otherwise.
|
|
82
|
+
*/
|
|
83
|
+
hasTx(txHash) {
|
|
84
|
+
return __classPrivateFieldGet(this, _AztecKVTxPool_txs, "f").has(txHash.toString());
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
_AztecKVTxPool_store = new WeakMap(), _AztecKVTxPool_txs = new WeakMap(), _AztecKVTxPool_log = new WeakMap();
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfa3ZfdHhfcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF9wb29sL2F6dGVjX2t2X3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUsxQzs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBVXhCOzs7O09BSUc7SUFDSCxZQUFZLEtBQW1CLEVBQUUsR0FBRyxHQUFHLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztRQWR6RSx1Q0FBcUI7UUFFckI7O1dBRUc7UUFDSCxxQ0FBK0I7UUFFL0IscUNBQWE7UUFRWCx1QkFBQSxJQUFJLHNCQUFRLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQUEsQ0FBQztRQUNuQyx1QkFBQSxJQUFJLHdCQUFVLEtBQUssTUFBQSxDQUFDO1FBQ3BCLHVCQUFBLElBQUksc0JBQVEsR0FBRyxNQUFBLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsTUFBYztRQUMvQixNQUFNLE1BQU0sR0FBRyx1QkFBQSxJQUFJLDBCQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQVM7UUFDM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sdUJBQUEsSUFBSSw0QkFBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDbkMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQix1QkFBQSxJQUFJLDBCQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRTtvQkFDdkQsU0FBUyxFQUFFLGtCQUFrQjtvQkFDN0IsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO2lCQUNZLENBQUMsQ0FBQztnQkFFaEMsS0FBSyx1QkFBQSxJQUFJLDBCQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUN0RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxTQUFTLENBQUMsUUFBa0I7UUFDakMsT0FBTyx1QkFBQSxJQUFJLDRCQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBRTtnQkFDM0IsS0FBSyx1QkFBQSxJQUFJLDBCQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBQSxJQUFJLDBCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUFBLElBQUksMEJBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxNQUFjO1FBQ3pCLE9BQU8sdUJBQUEsSUFBSSwwQkFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0YifQ==
|
package/dest/tx_pool/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tx_pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tx_pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
|
package/dest/tx_pool/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './tx_pool.js';
|
|
2
2
|
export * from './memory_tx_pool.js';
|
|
3
|
-
|
|
3
|
+
export * from './aztec_kv_tx_pool.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHhfcG9vbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUMifQ==
|
|
@@ -31,7 +31,7 @@ export declare class InMemoryTxPool implements TxPool {
|
|
|
31
31
|
* @param txHashes - An array of tx hashes to be removed from the tx pool.
|
|
32
32
|
* @returns The number of transactions that was deleted from the pool.
|
|
33
33
|
*/
|
|
34
|
-
deleteTxs(txHashes: TxHash[]):
|
|
34
|
+
deleteTxs(txHashes: TxHash[]): Promise<void>;
|
|
35
35
|
/**
|
|
36
36
|
* Gets all the transactions stored in the pool.
|
|
37
37
|
* @returns Array of tx objects in the order they were added to the pool.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory_tx_pool.d.ts","sourceRoot":"","sources":["../../src/tx_pool/memory_tx_pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;GAEG;AACH,qBAAa,cAAe,YAAW,MAAM;IAU/B,OAAO,CAAC,GAAG;IATvB;;OAEG;IACH,OAAO,CAAC,GAAG,CAAkB;IAE7B;;;OAGG;gBACiB,GAAG,8CAAqC;IAI5D;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACU,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"memory_tx_pool.d.ts","sourceRoot":"","sources":["../../src/tx_pool/memory_tx_pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;GAEG;AACH,qBAAa,cAAe,YAAW,MAAM;IAU/B,OAAO,CAAC,GAAG;IATvB;;OAEG;IACH,OAAO,CAAC,GAAG,CAAkB;IAE7B;;;OAGG;gBACiB,GAAG,8CAAqC;IAI5D;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACU,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;;;OAIG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGtC"}
|
|
@@ -42,10 +42,10 @@ export class InMemoryTxPool {
|
|
|
42
42
|
* @returns The number of transactions that was deleted from the pool.
|
|
43
43
|
*/
|
|
44
44
|
deleteTxs(txHashes) {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return
|
|
45
|
+
for (const txHash of txHashes) {
|
|
46
|
+
this.txs.delete(txHash.toBigInt());
|
|
47
|
+
}
|
|
48
|
+
return Promise.resolve();
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Gets all the transactions stored in the pool.
|
|
@@ -70,4 +70,4 @@ export class InMemoryTxPool {
|
|
|
70
70
|
return this.txs.has(txHash.toBigInt());
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X3R4X3Bvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHhfcG9vbC9tZW1vcnlfdHhfcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUsxQzs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBTXpCOzs7T0FHRztJQUNILFlBQW9CLE1BQU0saUJBQWlCLENBQUMsZUFBZSxDQUFDO1FBQXhDLFFBQUcsR0FBSCxHQUFHLENBQXFDO1FBQzFELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQWMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxNQUFjO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFTO1FBQzNCLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO2dCQUNqRCxTQUFTLEVBQUUsa0JBQWtCO2dCQUM3QixHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7YUFDWSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxTQUFTLENBQUMsUUFBa0I7UUFDakMsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDcEM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjO1FBQ25CLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQWM7UUFDekIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0YifQ==
|
|
@@ -18,7 +18,7 @@ export interface TxPool {
|
|
|
18
18
|
* Deletes transactions from the pool. Tx hashes that are not present are ignored.
|
|
19
19
|
* @param txHashes - An array of tx hashes to be removed from the tx pool.
|
|
20
20
|
*/
|
|
21
|
-
deleteTxs(txHashes: TxHash[]): void
|
|
21
|
+
deleteTxs(txHashes: TxHash[]): Promise<void>;
|
|
22
22
|
/**
|
|
23
23
|
* Gets all transactions currently in the tx pool.
|
|
24
24
|
* @returns An array of transaction objects found in the tx pool.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_pool.d.ts","sourceRoot":"","sources":["../../src/tx_pool/tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS,CAAC;IAE5C;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"tx_pool.d.ts","sourceRoot":"","sources":["../../src/tx_pool/tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS,CAAC;IAE5C;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;OAGG;IACH,SAAS,IAAI,EAAE,EAAE,CAAC;IAElB;;;OAGG;IACH,cAAc,IAAI,MAAM,EAAE,CAAC;IAE3B;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx_pool_test_suite.d.ts","sourceRoot":"","sources":["../../src/tx_pool/tx_pool_test_suite.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,MAAM,QAkDrD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { mockTx } from '@aztec/types';
|
|
2
|
+
/**
|
|
3
|
+
* Tests a TxPool implementation.
|
|
4
|
+
* @param getTxPool - Gets a fresh TxPool
|
|
5
|
+
*/
|
|
6
|
+
export function describeTxPool(getTxPool) {
|
|
7
|
+
let pool;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
pool = getTxPool();
|
|
10
|
+
});
|
|
11
|
+
it('Adds txs to the pool', async () => {
|
|
12
|
+
const tx1 = mockTx();
|
|
13
|
+
await pool.addTxs([tx1]);
|
|
14
|
+
const poolTx = pool.getTxByHash(await tx1.getTxHash());
|
|
15
|
+
expect(await poolTx.getTxHash()).toEqual(await tx1.getTxHash());
|
|
16
|
+
});
|
|
17
|
+
it('Removes txs from the pool', async () => {
|
|
18
|
+
const tx1 = mockTx();
|
|
19
|
+
await pool.addTxs([tx1]);
|
|
20
|
+
await pool.deleteTxs([await tx1.getTxHash()]);
|
|
21
|
+
const poolTx = pool.getTxByHash(await tx1.getTxHash());
|
|
22
|
+
expect(poolTx).toBeFalsy();
|
|
23
|
+
});
|
|
24
|
+
it('Returns all transactions in the pool', async () => {
|
|
25
|
+
const tx1 = mockTx(1);
|
|
26
|
+
const tx2 = mockTx(2);
|
|
27
|
+
const tx3 = mockTx(3);
|
|
28
|
+
await pool.addTxs([tx1, tx2, tx3]);
|
|
29
|
+
const poolTxs = pool.getAllTxs();
|
|
30
|
+
expect(poolTxs).toHaveLength(3);
|
|
31
|
+
expect(poolTxs).toEqual(expect.arrayContaining([tx1, tx2, tx3]));
|
|
32
|
+
});
|
|
33
|
+
it('Returns all txHashes in the pool', async () => {
|
|
34
|
+
const tx1 = mockTx(1);
|
|
35
|
+
const tx2 = mockTx(2);
|
|
36
|
+
const tx3 = mockTx(3);
|
|
37
|
+
await pool.addTxs([tx1, tx2, tx3]);
|
|
38
|
+
const poolTxHashes = pool.getAllTxHashes();
|
|
39
|
+
expect(poolTxHashes).toHaveLength(3);
|
|
40
|
+
expect(poolTxHashes).toEqual(expect.arrayContaining([await tx1.getTxHash(), await tx2.getTxHash(), await tx3.getTxHash()]));
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF90ZXN0X3N1aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4X3Bvb2wvdHhfcG9vbF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJdEM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUF1QjtJQUNwRCxJQUFJLElBQVksQ0FBQztJQUVqQixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsSUFBSSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBRXJCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxNQUFNLE1BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJCQUEyQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBRXJCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN2RCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2hELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVuQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUMxQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUM5RixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/p2p",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -32,9 +32,10 @@
|
|
|
32
32
|
"rootDir": "./src"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@aztec/circuits.js": "0.
|
|
36
|
-
"@aztec/foundation": "0.
|
|
37
|
-
"@aztec/
|
|
35
|
+
"@aztec/circuits.js": "0.17.0",
|
|
36
|
+
"@aztec/foundation": "0.17.0",
|
|
37
|
+
"@aztec/kv-store": "0.17.0",
|
|
38
|
+
"@aztec/types": "0.17.0",
|
|
38
39
|
"@chainsafe/libp2p-noise": "^13.0.0",
|
|
39
40
|
"@chainsafe/libp2p-yamux": "^5.0.0",
|
|
40
41
|
"@libp2p/bootstrap": "^9.0.4",
|