@aztec/p2p 0.16.9 → 0.18.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 +3 -2
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +3 -3
- package/dest/client/mocks.d.ts +1 -1
- package/dest/client/mocks.d.ts.map +1 -1
- package/dest/client/mocks.js +2 -2
- package/dest/client/p2p_client.d.ts +6 -6
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +30 -17
- package/dest/service/dummy_service.d.ts +1 -1
- package/dest/service/dummy_service.d.ts.map +1 -1
- package/dest/service/libp2p_service.d.ts +1 -2
- package/dest/service/libp2p_service.d.ts.map +1 -1
- package/dest/service/libp2p_service.js +4 -10
- package/dest/service/service.d.ts +1 -1
- package/dest/service/service.d.ts.map +1 -1
- package/dest/service/tx_messages.d.ts +1 -1
- package/dest/service/tx_messages.d.ts.map +1 -1
- package/dest/service/tx_messages.js +2 -2
- 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 +2 -2
- package/dest/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/tx_pool/memory_tx_pool.js +6 -6
- package/dest/tx_pool/tx_pool.d.ts +2 -2
- 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 { L2BlockSource } from '@aztec/types';
|
|
1
|
+
import { L2BlockSource } from '@aztec/circuit-types';
|
|
2
|
+
import { AztecKVStore } from '@aztec/kv-store';
|
|
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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,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=
|
package/dest/client/mocks.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { L2Block, L2BlockSource, L2Tx, TxHash } from '@aztec/circuit-types';
|
|
1
2
|
import { EthAddress } from '@aztec/circuits.js';
|
|
2
|
-
import { L2Block, L2BlockSource, L2Tx, TxHash } from '@aztec/types';
|
|
3
3
|
/**
|
|
4
4
|
* A mocked implementation of L2BlockSource to be used in p2p tests.
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/client/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/client/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IAIvC,OAAO,CAAC,SAAS;IAH7B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAc;gBAEP,SAAS,SAAM;IAQnC;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIvC;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIzC;;;OAGG;IACI,cAAc;IAIrB;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM;IAI9B;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAI5C;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM;IAKtB;;;OAGG;IACI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;;OAGG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
package/dest/client/mocks.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { L2Block } from '@aztec/circuit-types';
|
|
1
2
|
import { EthAddress } from '@aztec/circuits.js';
|
|
2
|
-
import { L2Block } from '@aztec/types';
|
|
3
3
|
/**
|
|
4
4
|
* A mocked implementation of L2BlockSource to be used in p2p tests.
|
|
5
5
|
*/
|
|
@@ -76,4 +76,4 @@ export class MockBlockSource {
|
|
|
76
76
|
return Promise.resolve();
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L21vY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQStCLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFBb0IsWUFBWSxHQUFHO1FBQWYsY0FBUyxHQUFULFNBQVMsQ0FBTTtRQUgzQixhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYztRQUNuQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsTUFBYztRQUM1QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFNBQVMsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUMxQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLE1BQWM7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSztRQUNWLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxJQUFJO1FBQ1QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNGIn0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { L2BlockSource, Tx, TxHash } from '@aztec/types';
|
|
1
|
+
import { L2BlockSource, Tx, TxHash } from '@aztec/circuit-types';
|
|
2
|
+
import { AztecKVStore } from '@aztec/kv-store';
|
|
2
3
|
import { P2PService } from '../service/service.js';
|
|
3
4
|
import { TxPool } from '../tx_pool/index.js';
|
|
4
5
|
/**
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,aAAa,EACb,EAAE,EACF,MAAM,EACP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAG/D,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;IAYjB;;;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
|
+
import { INITIAL_L2_BLOCK_NUM, L2BlockContext, L2BlockDownloader, } from '@aztec/circuit-types';
|
|
1
2
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
|
-
import { 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) {
|
|
@@ -91,9 +91,12 @@ export class P2PClient {
|
|
|
91
91
|
this.log('Stopping p2p client...');
|
|
92
92
|
this.stopping = true;
|
|
93
93
|
await this.p2pService.stop();
|
|
94
|
+
this.log('Stopped p2p service');
|
|
94
95
|
await this.blockDownloader.stop();
|
|
96
|
+
this.log('Stopped block downloader');
|
|
95
97
|
await this.runningPromise;
|
|
96
98
|
this.setCurrentState(P2PClientState.STOPPED);
|
|
99
|
+
this.log('P2P client stopped...');
|
|
97
100
|
}
|
|
98
101
|
/**
|
|
99
102
|
* Returns all transactions in the transaction pool.
|
|
@@ -134,7 +137,7 @@ export class P2PClient {
|
|
|
134
137
|
if (!ready) {
|
|
135
138
|
throw new Error('P2P client not ready');
|
|
136
139
|
}
|
|
137
|
-
this.txPool.deleteTxs(txHashes);
|
|
140
|
+
await this.txPool.deleteTxs(txHashes);
|
|
138
141
|
}
|
|
139
142
|
/**
|
|
140
143
|
* Public function to check if the p2p client is fully synced and ready to receive txs.
|
|
@@ -148,7 +151,7 @@ export class P2PClient {
|
|
|
148
151
|
* @returns Block number of latest L2 Block we've synced with.
|
|
149
152
|
*/
|
|
150
153
|
getSyncedBlockNum() {
|
|
151
|
-
return this.
|
|
154
|
+
return this.synchedBlockNumber.get() ?? INITIAL_L2_BLOCK_NUM - 1;
|
|
152
155
|
}
|
|
153
156
|
/**
|
|
154
157
|
* Method to check the status the p2p client.
|
|
@@ -157,7 +160,7 @@ export class P2PClient {
|
|
|
157
160
|
getStatus() {
|
|
158
161
|
return Promise.resolve({
|
|
159
162
|
state: this.currentState,
|
|
160
|
-
syncedToL2Block: this.
|
|
163
|
+
syncedToL2Block: this.getSyncedBlockNum(),
|
|
161
164
|
});
|
|
162
165
|
}
|
|
163
166
|
/**
|
|
@@ -165,14 +168,13 @@ export class P2PClient {
|
|
|
165
168
|
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
166
169
|
* @returns Empty promise.
|
|
167
170
|
*/
|
|
168
|
-
reconcileTxPool(blocks) {
|
|
171
|
+
async reconcileTxPool(blocks) {
|
|
169
172
|
for (let i = 0; i < blocks.length; i++) {
|
|
170
173
|
const blockContext = new L2BlockContext(blocks[i]);
|
|
171
174
|
const txHashes = blockContext.getTxHashes();
|
|
172
|
-
this.txPool.deleteTxs(txHashes);
|
|
175
|
+
await this.txPool.deleteTxs(txHashes);
|
|
173
176
|
this.p2pService.settledTxs(txHashes);
|
|
174
177
|
}
|
|
175
|
-
return Promise.resolve();
|
|
176
178
|
}
|
|
177
179
|
/**
|
|
178
180
|
* Method for processing new blocks.
|
|
@@ -184,9 +186,10 @@ export class P2PClient {
|
|
|
184
186
|
return Promise.resolve();
|
|
185
187
|
}
|
|
186
188
|
await this.reconcileTxPool(blocks);
|
|
187
|
-
|
|
188
|
-
this.
|
|
189
|
-
|
|
189
|
+
const lastBlockNum = blocks[blocks.length - 1].number;
|
|
190
|
+
await this.synchedBlockNumber.set(lastBlockNum);
|
|
191
|
+
this.log(`Synched to block ${lastBlockNum}`);
|
|
192
|
+
if (this.currentState === P2PClientState.SYNCHING && lastBlockNum >= this.latestBlockNumberAtStart) {
|
|
190
193
|
this.setCurrentState(P2PClientState.RUNNING);
|
|
191
194
|
if (this.syncResolve !== undefined) {
|
|
192
195
|
this.syncResolve();
|
|
@@ -202,5 +205,15 @@ export class P2PClient {
|
|
|
202
205
|
this.currentState = newState;
|
|
203
206
|
this.log(`Moved to state ${P2PClientState[this.currentState]}`);
|
|
204
207
|
}
|
|
208
|
+
async publishStoredTxs() {
|
|
209
|
+
if (!this.isReady()) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const txs = this.txPool.getAllTxs();
|
|
213
|
+
if (txs.length > 0) {
|
|
214
|
+
this.log(`Publishing ${txs.length} previously stored txs`);
|
|
215
|
+
await Promise.all(txs.map(tx => this.p2pService.propagateTx(tx)));
|
|
216
|
+
}
|
|
217
|
+
}
|
|
205
218
|
}
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLGNBQWMsRUFDZCxpQkFBaUIsR0FJbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLG1EQUFJLENBQUE7SUFDSiwyREFBUSxDQUFBO0lBQ1IseURBQU8sQ0FBQTtJQUNQLHlEQUFPLENBQUE7QUFDVCxDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFzRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBUztJQXNCcEI7Ozs7Ozs7T0FPRztJQUNILFlBQ0UsS0FBbUIsRUFDWCxhQUE0QixFQUM1QixNQUFjLEVBQ2QsVUFBc0IsRUFDdEIsTUFBTSxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7UUFIcEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBaUM7UUE3QjlDOztXQUVHO1FBQ0ssYUFBUSxHQUFHLEtBQUssQ0FBQztRQU9qQixpQkFBWSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEMsNkJBQXdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUIsZ0JBQVcsR0FBZ0IsU0FBUyxDQUFDO1FBa0IzQyxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFDdEYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGNBQWMsQ0FBQyxJQUFJLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pCO1FBRUQsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFMUUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFekQsOERBQThEO1FBQzlELElBQUksbUJBQW1CLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsbUJBQW1CLGtCQUFrQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3RHO2FBQU07WUFDTCx1REFBdUQ7WUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxtQkFBbUIsbUNBQW1DLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUM7U0FDL0c7UUFFRCx5REFBeUQ7UUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLG1DQUFtQztRQUNuQyxNQUFNLFlBQVksR0FBRyxLQUFLLElBQUksRUFBRTtZQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0RCxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkM7UUFDSCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU07UUFDWCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLE1BQWM7UUFDeEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7O1FBSUk7SUFDRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQU07UUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN6QztRQUNELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7UUFLSTtJQUNHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBa0I7UUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN6QztRQUNELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE9BQU87UUFDWixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVM7UUFDZCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLGVBQWUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFpQjtRQUM3QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFpQjtRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNsQixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUMxQjtRQUNELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdEQsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFN0MsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGNBQWMsQ0FBQyxRQUFRLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNsRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUMvQjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGVBQWUsQ0FBQyxRQUF3QjtRQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25CLE9BQU87U0FDUjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxDQUFDLE1BQU0sd0JBQXdCLENBQUMsQ0FBQztZQUMzRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy_service.d.ts","sourceRoot":"","sources":["../../src/service/dummy_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dummy_service.d.ts","sourceRoot":"","sources":["../../src/service/dummy_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;OAGG;IACI,KAAK;IAIZ;;;OAGG;IACI,IAAI;IAIX;;;OAGG;IACI,WAAW,CAAC,CAAC,EAAE,EAAE;IAExB;;;OAGG;IACI,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;CAC9B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Tx, TxHash } from '@aztec/types';
|
|
1
|
+
import { Tx, TxHash } from '@aztec/circuit-types';
|
|
2
2
|
import { PeerId } from '@libp2p/interface-peer-id';
|
|
3
3
|
import { Libp2p } from 'libp2p';
|
|
4
4
|
import { P2PConfig } from '../config.js';
|
|
@@ -26,7 +26,6 @@ export declare class LibP2PService implements P2PService {
|
|
|
26
26
|
private txPool;
|
|
27
27
|
private logger;
|
|
28
28
|
private jobQueue;
|
|
29
|
-
private timeout;
|
|
30
29
|
private knownTxLookup;
|
|
31
30
|
constructor(config: P2PConfig, node: Libp2p, protocolId: string, txPool: TxPool, logger?: import("@aztec/foundation/log").DebugLogger);
|
|
32
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../src/service/libp2p_service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../src/service/libp2p_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQlD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAOnD,OAAO,EAAE,MAAM,EAAkD,MAAM,QAAQ,CAAC;AAGhF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY1C;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,uDAS3D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,UAExD;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,UAAU;IAI5C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAPhB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,aAAa,CAAsC;gBAEjD,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,8CAA4C;IAG5D;;;OAGG;IACU,KAAK;IA2ClB;;;OAGG;IACU,IAAI;IAQjB;;;;;OAKG;WACiB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAkEzD;;;OAGG;IACI,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI;IAIhC;;;OAGG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;YAI7B,kBAAkB;YAelB,oBAAoB;IAYlC,OAAO,CAAC,mBAAmB;YAYb,cAAc;YAiBd,uBAAuB;YAevB,qCAAqC;YAgBrC,kBAAkB;YAalB,iBAAiB;YASjB,aAAa;YAsBb,yBAAyB;YAazB,gCAAgC;YAShC,6BAA6B;YAW7B,oBAAoB;IAMlC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,eAAe;CAGxB"}
|
|
@@ -12,7 +12,6 @@ import { createLibp2p } from 'libp2p';
|
|
|
12
12
|
import { identifyService } from 'libp2p/identify';
|
|
13
13
|
import { KnownTxLookup } from './known_txs.js';
|
|
14
14
|
import { Messages, createGetTransactionsRequestMessage, createTransactionHashesMessage, createTransactionsMessage, decodeGetTransactionsRequestMessage, decodeTransactionHashesMessage, decodeTransactionsMessage, getEncodedMessage, } from './tx_messages.js';
|
|
15
|
-
const INITIAL_PEER_REFRESH_INTERVAL = 20000;
|
|
16
15
|
/**
|
|
17
16
|
* Create a libp2p peer ID from the private key if provided, otherwise creates a new random ID.
|
|
18
17
|
* @param privateKey - Optional peer ID private key as hex string
|
|
@@ -47,7 +46,6 @@ export class LibP2PService {
|
|
|
47
46
|
this.txPool = txPool;
|
|
48
47
|
this.logger = logger;
|
|
49
48
|
this.jobQueue = new SerialQueue();
|
|
50
|
-
this.timeout = undefined;
|
|
51
49
|
this.knownTxLookup = new KnownTxLookup();
|
|
52
50
|
}
|
|
53
51
|
/**
|
|
@@ -90,21 +88,17 @@ export class LibP2PService {
|
|
|
90
88
|
await this.node.handle(this.protocolId, (incoming) => this.jobQueue.put(() => Promise.resolve(this.handleProtocolDial(incoming))));
|
|
91
89
|
const dht = this.node.services['kadDHT'];
|
|
92
90
|
this.logger(`Started P2P client as ${await dht.getMode()} with Peer ID ${this.node.peerId.toString()}`);
|
|
93
|
-
this.timeout = setTimeout(async () => {
|
|
94
|
-
this.logger(`Refreshing routing table...`);
|
|
95
|
-
await dht.refreshRoutingTable();
|
|
96
|
-
}, INITIAL_PEER_REFRESH_INTERVAL);
|
|
97
91
|
}
|
|
98
92
|
/**
|
|
99
93
|
* Stops the LibP2P service.
|
|
100
94
|
* @returns An empty promise.
|
|
101
95
|
*/
|
|
102
96
|
async stop() {
|
|
103
|
-
|
|
104
|
-
clearTimeout(this.timeout);
|
|
105
|
-
}
|
|
97
|
+
this.logger('Stopping job queue...');
|
|
106
98
|
await this.jobQueue.end();
|
|
99
|
+
this.logger('Stopping LibP2P...');
|
|
107
100
|
await this.node.stop();
|
|
101
|
+
this.logger('LibP2P service stopped');
|
|
108
102
|
}
|
|
109
103
|
/**
|
|
110
104
|
* Creates an instance of the LibP2P service.
|
|
@@ -347,4 +341,4 @@ export class LibP2PService {
|
|
|
347
341
|
return this.config.bootstrapNodes.findIndex(bootstrap => bootstrap.includes(peer.toString())) != -1;
|
|
348
342
|
}
|
|
349
343
|
}
|
|
350
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9saWJwMnBfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJOUMsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQTRDLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxRQUFRLEVBQ1IsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsaUJBQWlCLEdBQ2xCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsTUFBTSw2QkFBNkIsR0FBRyxLQUFLLENBQUM7QUFFNUM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsVUFBbUI7SUFDMUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7UUFDdkIsT0FBTyxNQUFNLHFCQUFxQixFQUFFLENBQUM7S0FDdEM7SUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakUsT0FBTyxNQUFNLGNBQWMsQ0FBQztRQUMxQixFQUFFLEVBQUUsRUFBRTtRQUNOLE9BQU8sRUFBRSxNQUFNO0tBQ2hCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE1BQWM7SUFDdkQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQ1UsTUFBaUIsRUFDakIsSUFBWSxFQUNaLFVBQWtCLEVBQ2xCLE1BQWMsRUFDZCxTQUFTLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDO1FBSmxELFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQTRDO1FBUnBELGFBQVEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUMxQyxZQUFPLEdBQTZCLFNBQVMsQ0FBQztRQUM5QyxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO0lBT3hELENBQUM7SUFFSjs7O09BR0c7SUFDSSxLQUFLLENBQUMsS0FBSztRQUNoQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsV0FBVyxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDcEUsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixnQkFBZ0IsUUFBUSxZQUFZLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQztTQUN2RjtRQUNELElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNqRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsNkJBQTZCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDL0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQy9DLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNsRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQzFCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNwRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLHNDQUFzQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ3hFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUE0QixFQUFFLEVBQUUsQ0FDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUM1RSxDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFlLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sR0FBRyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxFQUFFLDZCQUE2QixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUI7UUFDRCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQWlCLEVBQUUsTUFBYztRQUN2RCxNQUFNLEVBQ0osV0FBVyxFQUNYLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osWUFBWSxFQUNaLGdCQUFnQixHQUNqQixHQUFHLE1BQU0sQ0FBQztRQUNYLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUxRCxNQUFNLElBQUksR0FBOEI7WUFDdEMsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNO1lBQ04sU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRSxDQUFDLFFBQVEsV0FBVyxRQUFRLGFBQWEsRUFBRSxDQUFDO2dCQUNwRCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsUUFBUSxZQUFZLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUMvRjtZQUNELFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ25CLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2hDLG9CQUFvQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsaUJBQWlCLEVBQUU7Z0JBQ2pCLGNBQWMsRUFBRSxZQUFZO2dCQUM1QixjQUFjLEVBQUUsWUFBWTthQUM3QjtZQUNELGFBQWEsRUFBRTtnQkFDYixTQUFTLENBQUM7b0JBQ1IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjO2lCQUM1QixDQUFDO2FBQ0g7U0FDRixDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQXNCO1lBQ2xDLFFBQVEsRUFBRSxlQUFlLENBQUM7Z0JBQ3hCLGNBQWMsRUFBRSxPQUFPO2FBQ3hCLENBQUM7WUFDRixNQUFNLEVBQUUsTUFBTSxDQUFDO2dCQUNiLGNBQWMsRUFBRSxPQUFPO2dCQUN2QixVQUFVLEVBQUUsZ0JBQWdCO2FBQzdCLENBQUM7U0FDSCxDQUFDO1FBRUYsZ0dBQWdHO1FBQ2hHLGdHQUFnRztRQUNoRyw4REFBOEQ7UUFDOUQsNEZBQTRGO1FBQzVGLGtFQUFrRTtRQUNsRSx1RkFBdUY7UUFDdkYsK0JBQStCO1FBQy9CLG1CQUFtQjtRQUNuQix3Q0FBd0M7UUFDeEMsK0JBQStCO1FBQy9CLFFBQVE7UUFDUix5Q0FBeUM7UUFDekMsSUFBSTtRQUVKLE1BQU0sSUFBSSxHQUFHLE1BQU0sWUFBWSxDQUFDO1lBQzlCLEdBQUcsSUFBSTtZQUNQLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7UUFDOUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLEVBQU07UUFDdkIsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsUUFBa0I7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFzQztRQUNyRSxJQUFJO1lBQ0YsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLG9DQUFvQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ3BFO1lBQ0QsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMxQztRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsK0NBQStDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFDcEcsR0FBRyxDQUNKLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsa0JBQXNDO1FBQ3ZFLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLEVBQUMsRUFBRTtZQUNuRCxJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0UsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE1BQWM7UUFDeEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsK0JBQStCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDakU7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsaUNBQWlDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEUsc0RBQXNEO1lBQ3RELEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2hDLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFlLEVBQUUsTUFBYztRQUMxRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxRQUFRLENBQUMsbUJBQW1CO2dCQUMvQixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELE9BQU87WUFDVCxLQUFLLFFBQVEsQ0FBQyx5QkFBeUI7Z0JBQ3JDLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDM0QsT0FBTztZQUNULEtBQUssUUFBUSxDQUFDLGdCQUFnQjtnQkFDNUIsTUFBTSxJQUFJLENBQUMscUNBQXFDLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RSxPQUFPO1NBQ1Y7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxLQUFLLENBQUMsdUJBQXVCLENBQUMsY0FBc0IsRUFBRSxNQUFjO1FBQzFFLElBQUk7WUFDRixNQUFNLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtDQUFrQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLG1HQUFtRztZQUNuRyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO2dCQUMxQixPQUFPO2FBQ1I7WUFDRCxNQUFNLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDL0Q7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2hFO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxjQUFzQixFQUFFLE1BQWM7UUFDeEYsSUFBSTtZQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsa0NBQWtDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkUsZ0VBQWdFO1lBQ2hFLE1BQU0sZUFBZSxHQUFHLENBQUksS0FBb0IsRUFBYyxFQUFFLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztZQUNwRixNQUFNLFFBQVEsR0FBRyxtQ0FBbUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsT0FBTzthQUNSO1lBQ0QsTUFBTSxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZEO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM3RDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBc0IsRUFBRSxNQUFjO1FBQ3JFLElBQUk7WUFDRixNQUFNLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN0RCxrREFBa0Q7WUFDbEQsbUVBQW1FO1lBQ25FLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFO2dCQUNwQixNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDMUM7U0FDRjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0NBQStDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQU0sRUFBRSxNQUFjO1FBQ3BELE1BQU0sTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLFlBQVksY0FBYyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBTTtRQUNoQyxNQUFNLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixJQUFJO2dCQUNGLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFO29CQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixZQUFZLFlBQVksSUFBSSxDQUFDLFFBQVEsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO29CQUN0RyxTQUFTO2lCQUNWO2dCQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxZQUFZLFlBQVksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDckUsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDckQ7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3hFLFNBQVM7YUFDVjtTQUNGO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxJQUFZO1FBQ2xELElBQUk7WUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNsQixPQUFPO2FBQ1I7WUFDRCxNQUFNLE9BQU8sR0FBRyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNoRTtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFnQixFQUFFLElBQVk7UUFDM0UsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUFHLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVELE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hFO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDaEY7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLDZCQUE2QixDQUFDLEdBQVMsRUFBRSxJQUFZO1FBQ2pFLDhFQUE4RTtRQUM5RSx1REFBdUQ7UUFDdkQsTUFBTSxPQUFPLEdBQUcseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9DLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsT0FBbUIsRUFBRSxJQUFZO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVk7UUFDbEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztDQUNGIn0=
|
|
344
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9saWJwMnBfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJOUMsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQTRDLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxRQUFRLEVBQ1IsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsaUJBQWlCLEdBQ2xCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUI7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsVUFBbUI7SUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_messages.d.ts","sourceRoot":"","sources":["../../src/service/tx_messages.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"tx_messages.d.ts","sourceRoot":"","sources":["../../src/service/tx_messages.ts"],"names":[],"mappings":";AAAA,OAAO,EAAwB,EAAE,EAAE,MAAM,EAAY,MAAM,sBAAsB,CAAC;AAIlF;;GAEG;AACH,oBAAY,QAAQ;IAClB,mBAAmB,IAAI;IACvB,yBAAyB,IAAI;IAC7B,gBAAgB,IAAI;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAEhE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,EAAE,EAAE,UAGlD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,QAWxD;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,UAG9D;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,YAY7D;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM,EAAE,UAGnE;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,YAGlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,UAEhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,UAEhD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CA6B1C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAmDhD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { ExtendedContractData, Tx, TxHash, TxL2Logs } from '@aztec/circuit-types';
|
|
1
2
|
import { KernelCircuitPublicInputsFinal, Proof, PublicCallRequest } from '@aztec/circuits.js';
|
|
2
3
|
import { numToUInt32BE } from '@aztec/foundation/serialize';
|
|
3
|
-
import { ExtendedContractData, Tx, TxHash, TxL2Logs } from '@aztec/types';
|
|
4
4
|
/**
|
|
5
5
|
* Enumeration of P2P message types.
|
|
6
6
|
*/
|
|
@@ -188,4 +188,4 @@ export function fromTxMessage(buffer) {
|
|
|
188
188
|
const newContracts = toObjectArray(publicCalls.remainingData, ExtendedContractData);
|
|
189
189
|
return new Tx(publicInputs.obj, proof.obj, encryptedLogs.obj, unencryptedLogs.obj, publicCalls.objects, newContracts.objects);
|
|
190
190
|
}
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfbWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS90eF9tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsOEJBQThCLEVBQTRCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hILE9BQU8sRUFBUyxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFFBSVg7QUFKRCxXQUFZLFFBQVE7SUFDbEIscUVBQXVCLENBQUE7SUFDdkIsaUZBQTZCLENBQUE7SUFDN0IsK0RBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQUpXLFFBQVEsS0FBUixRQUFRLFFBSW5CO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQWMsRUFBRSxXQUFtQjtJQUMvRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxHQUFTO0lBQ2pELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxPQUFlO0lBQ3ZELE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNyQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7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
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Tx, TxHash } from '@aztec/circuit-types';
|
|
2
|
+
import { AztecKVStore } from '@aztec/kv-store';
|
|
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":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAEzD,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 { Tx, TxHash } from '@aztec/circuit-types';
|
|
4
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfa3ZfdHhfcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF9wb29sL2F6dGVjX2t2X3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBS2xFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFVeEI7Ozs7T0FJRztJQUNILFlBQVksS0FBbUIsRUFBRSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDO1FBZHpFLHVDQUFxQjtRQUVyQjs7V0FFRztRQUNILHFDQUErQjtRQUUvQixxQ0FBYTtRQVFYLHVCQUFBLElBQUksc0JBQVEsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBQSxDQUFDO1FBQ25DLHVCQUFBLElBQUksd0JBQVUsS0FBSyxNQUFBLENBQUM7UUFDcEIsdUJBQUEsSUFBSSxzQkFBUSxHQUFHLE1BQUEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxNQUFjO1FBQy9CLE1BQU0sTUFBTSxHQUFHLHVCQUFBLElBQUksMEJBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBUztRQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyx1QkFBQSxJQUFJLDRCQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNuQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLHVCQUFBLElBQUksMEJBQUssQ0FBQyxJQUFJLENBQUMscUJBQXFCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO29CQUN2RCxTQUFTLEVBQUUsa0JBQWtCO29CQUM3QixHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7aUJBQ1ksQ0FBQyxDQUFDO2dCQUVoQyxLQUFLLHVCQUFBLElBQUksMEJBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3REO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxRQUFrQjtRQUNqQyxPQUFPLHVCQUFBLElBQUksNEJBQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2xDLEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFO2dCQUMzQixLQUFLLHVCQUFBLElBQUksMEJBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDeEM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTO1FBQ2QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUFBLElBQUksMEJBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYztRQUNuQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsdUJBQUEsSUFBSSwwQkFBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQWM7UUFDekIsT0FBTyx1QkFBQSxJQUFJLDBCQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiJ9
|
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==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Tx, TxHash } from '@aztec/types';
|
|
1
|
+
import { Tx, TxHash } from '@aztec/circuit-types';
|
|
2
2
|
import { TxPool } from './tx_pool.js';
|
|
3
3
|
/**
|
|
4
4
|
* In-memory implementation of the Transaction Pool.
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"memory_tx_pool.d.ts","sourceRoot":"","sources":["../../src/tx_pool/memory_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIlD,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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { Tx, TxHash } from '@aztec/circuit-types';
|
|
1
2
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
|
-
import { Tx, TxHash } from '@aztec/types';
|
|
3
3
|
/**
|
|
4
4
|
* In-memory implementation of the Transaction Pool.
|
|
5
5
|
*/
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X3R4X3Bvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHhfcG9vbC9tZW1vcnlfdHhfcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFNekI7OztPQUdHO0lBQ0gsWUFBb0IsTUFBTSxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7UUFBeEMsUUFBRyxHQUFILEdBQUcsQ0FBcUM7UUFDMUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLE1BQWM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQVM7UUFDM0IsS0FBSyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUU7Z0JBQ2pELFNBQVMsRUFBRSxrQkFBa0I7Z0JBQzdCLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTthQUNZLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxRQUFrQjtRQUNqQyxLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNwQztRQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTO1FBQ2QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsTUFBYztRQUN6QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDRiJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Tx, TxHash } from '@aztec/types';
|
|
1
|
+
import { Tx, TxHash } from '@aztec/circuit-types';
|
|
2
2
|
/**
|
|
3
3
|
* Interface of a transaction pool. The pool includes tx requests and is kept up-to-date by a P2P client.
|
|
4
4
|
*/
|
|
@@ -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,
|
|
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,sBAAsB,CAAC;AAElD;;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/circuit-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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF90ZXN0X3N1aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4X3Bvb2wvdHhfcG9vbF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUk5Qzs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLFNBQXVCO0lBQ3BELElBQUksSUFBWSxDQUFDO0lBRWpCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDcEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFckIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLE1BQU0sTUFBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFckIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFOUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDaEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQzFCLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQzlGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/p2p",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.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/
|
|
36
|
-
"@aztec/
|
|
37
|
-
"@aztec/
|
|
35
|
+
"@aztec/circuit-types": "0.18.0",
|
|
36
|
+
"@aztec/circuits.js": "0.18.0",
|
|
37
|
+
"@aztec/foundation": "0.18.0",
|
|
38
|
+
"@aztec/kv-store": "0.18.0",
|
|
38
39
|
"@chainsafe/libp2p-noise": "^13.0.0",
|
|
39
40
|
"@chainsafe/libp2p-yamux": "^5.0.0",
|
|
40
41
|
"@libp2p/bootstrap": "^9.0.4",
|