@aztec/p2p 0.56.0 → 0.58.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 +6 -3
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +12 -6
- package/dest/client/p2p_client.d.ts +30 -12
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +375 -335
- package/dest/config.js +3 -3
- package/dest/index.d.ts +4 -3
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +5 -4
- package/dest/{attestation_pool → mem_pools/attestation_pool}/attestation_pool.d.ts +2 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -0
- package/dest/{attestation_pool → mem_pools/attestation_pool}/attestation_pool.js +1 -1
- package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -0
- package/dest/{attestation_pool → mem_pools/attestation_pool}/index.js +1 -1
- package/dest/{attestation_pool → mem_pools/attestation_pool}/memory_attestation_pool.d.ts +6 -2
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +114 -0
- package/dest/{attestation_pool → mem_pools/attestation_pool}/mocks.d.ts +2 -1
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/mocks.js +31 -0
- package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts +7 -0
- package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.js +2 -0
- package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts +4 -0
- package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/index.js +4 -0
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts +12 -0
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.js +30 -0
- package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts +8 -0
- package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/test_utils.js +21 -0
- package/dest/mem_pools/index.d.ts +5 -0
- package/dest/mem_pools/index.d.ts.map +1 -0
- package/dest/mem_pools/index.js +2 -0
- package/dest/mem_pools/instrumentation.d.ts +25 -0
- package/dest/mem_pools/instrumentation.d.ts.map +1 -0
- package/dest/mem_pools/instrumentation.js +70 -0
- package/dest/mem_pools/interface.d.ts +12 -0
- package/dest/mem_pools/interface.d.ts.map +1 -0
- package/dest/mem_pools/interface.js +2 -0
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -0
- package/dest/{tx_pool → mem_pools/tx_pool}/aztec_kv_tx_pool.js +9 -9
- package/dest/mem_pools/tx_pool/index.d.ts.map +1 -0
- package/dest/{tx_pool → mem_pools/tx_pool}/index.js +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +111 -0
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -0
- package/dest/{tx_pool → mem_pools/tx_pool}/tx_pool.js +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +55 -0
- package/dest/service/libp2p_service.d.ts +12 -7
- package/dest/service/libp2p_service.d.ts.map +1 -1
- package/dest/service/libp2p_service.js +453 -381
- package/dest/service/reqresp/reqresp.d.ts +0 -1
- package/dest/service/reqresp/reqresp.d.ts.map +1 -1
- package/dest/service/reqresp/reqresp.js +7 -4
- package/package.json +10 -6
- package/src/client/index.ts +21 -8
- package/src/client/p2p_client.ts +77 -21
- package/src/config.ts +2 -2
- package/src/index.ts +4 -3
- package/src/{attestation_pool → mem_pools/attestation_pool}/attestation_pool.ts +2 -1
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +141 -0
- package/src/{attestation_pool → mem_pools/attestation_pool}/mocks.ts +5 -2
- package/src/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.ts +7 -0
- package/src/mem_pools/epoch_proof_quote_pool/index.ts +3 -0
- package/src/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.ts +42 -0
- package/src/mem_pools/epoch_proof_quote_pool/test_utils.ts +26 -0
- package/src/mem_pools/index.ts +4 -0
- package/src/mem_pools/instrumentation.ts +85 -0
- package/src/mem_pools/interface.ts +12 -0
- package/src/{tx_pool → mem_pools/tx_pool}/aztec_kv_tx_pool.ts +9 -9
- package/src/{tx_pool → mem_pools/tx_pool}/memory_tx_pool.ts +9 -9
- package/src/service/libp2p_service.ts +78 -20
- package/src/service/reqresp/reqresp.ts +9 -5
- package/dest/attestation_pool/attestation_pool.d.ts.map +0 -1
- package/dest/attestation_pool/index.d.ts.map +0 -1
- package/dest/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
- package/dest/attestation_pool/memory_attestation_pool.js +0 -57
- package/dest/attestation_pool/mocks.d.ts.map +0 -1
- package/dest/attestation_pool/mocks.js +0 -32
- package/dest/client/mocks.d.ts +0 -65
- package/dest/client/mocks.d.ts.map +0 -1
- package/dest/client/mocks.js +0 -106
- package/dest/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
- package/dest/tx_pool/index.d.ts.map +0 -1
- package/dest/tx_pool/instrumentation.d.ts +0 -25
- package/dest/tx_pool/instrumentation.d.ts.map +0 -1
- package/dest/tx_pool/instrumentation.js +0 -61
- package/dest/tx_pool/memory_tx_pool.d.ts.map +0 -1
- package/dest/tx_pool/memory_tx_pool.js +0 -111
- package/dest/tx_pool/tx_pool.d.ts.map +0 -1
- package/dest/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
- package/dest/tx_pool/tx_pool_test_suite.js +0 -55
- package/src/attestation_pool/memory_attestation_pool.ts +0 -71
- package/src/client/mocks.ts +0 -129
- package/src/tx_pool/instrumentation.ts +0 -73
- /package/dest/{attestation_pool → mem_pools/attestation_pool}/index.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/aztec_kv_tx_pool.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/index.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/memory_tx_pool.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/tx_pool.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/tx_pool_test_suite.d.ts +0 -0
- /package/src/{attestation_pool → mem_pools/attestation_pool}/index.ts +0 -0
- /package/src/{tx_pool → mem_pools/tx_pool}/index.ts +0 -0
- /package/src/{tx_pool → mem_pools/tx_pool}/tx_pool.ts +0 -0
- /package/src/{tx_pool → mem_pools/tx_pool}/tx_pool_test_suite.ts +0 -0
package/dest/config.js
CHANGED
|
@@ -22,12 +22,12 @@ export const p2pConfigMappings = {
|
|
|
22
22
|
...numberConfigHelper(1000),
|
|
23
23
|
},
|
|
24
24
|
tcpListenAddress: {
|
|
25
|
-
env: '
|
|
25
|
+
env: 'P2P_TCP_LISTEN_ADDR',
|
|
26
26
|
defaultValue: '0.0.0.0:40400',
|
|
27
27
|
description: 'The listen address for TCP. Format: <IP_ADDRESS>:<PORT>.',
|
|
28
28
|
},
|
|
29
29
|
udpListenAddress: {
|
|
30
|
-
env: '
|
|
30
|
+
env: 'P2P_UDP_LISTEN_ADDR',
|
|
31
31
|
defaultValue: '0.0.0.0:40400',
|
|
32
32
|
description: 'The listen address for UDP. Format: <IP_ADDRESS>:<PORT>.',
|
|
33
33
|
},
|
|
@@ -158,4 +158,4 @@ const bootnodeConfigKeys = [
|
|
|
158
158
|
'udpListenAddress',
|
|
159
159
|
];
|
|
160
160
|
export const bootnodeConfigMappings = pickConfigMappings(p2pConfigMappings, bootnodeConfigKeys);
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBeUIsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWlKOUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWtDO0lBQzlELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxhQUFhO1FBQ2xCLFdBQVcsRUFBRSwrREFBK0Q7UUFDNUUsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsV0FB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
|
package/dest/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
export * from './mem_pools/attestation_pool/index.js';
|
|
2
|
+
export * from './bootstrap/bootstrap.js';
|
|
1
3
|
export * from './client/index.js';
|
|
2
4
|
export * from './config.js';
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './attestation_pool/index.js';
|
|
5
|
+
export * from './mem_pools/epoch_proof_quote_pool/index.js';
|
|
5
6
|
export * from './service/index.js';
|
|
6
|
-
export * from './
|
|
7
|
+
export * from './mem_pools/tx_pool/index.js';
|
|
7
8
|
export * from './tx_validator/index.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
export * from './mem_pools/attestation_pool/index.js';
|
|
2
|
+
export * from './bootstrap/bootstrap.js';
|
|
1
3
|
export * from './client/index.js';
|
|
2
4
|
export * from './config.js';
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './attestation_pool/index.js';
|
|
5
|
+
export * from './mem_pools/epoch_proof_quote_pool/index.js';
|
|
5
6
|
export * from './service/index.js';
|
|
6
|
-
export * from './
|
|
7
|
+
export * from './mem_pools/tx_pool/index.js';
|
|
7
8
|
export * from './tx_validator/index.js';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx5QkFBeUIsQ0FBQyJ9
|
|
@@ -32,8 +32,9 @@ export interface AttestationPool {
|
|
|
32
32
|
* Retrieve all of the attestations observed pertaining to a given slot
|
|
33
33
|
*
|
|
34
34
|
* @param slot - The slot to query
|
|
35
|
+
* @param proposalId - The proposal to query
|
|
35
36
|
* @return BlockAttestations
|
|
36
37
|
*/
|
|
37
|
-
getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
|
|
38
|
+
getAttestationsForSlot(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
|
|
38
39
|
}
|
|
39
40
|
//# sourceMappingURL=attestation_pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;OAMG;IACH,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;;;;;OAQG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACvF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25fcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9hdHRlc3RhdGlvbl9wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './attestation_pool.js';
|
|
2
2
|
export * from './memory_attestation_pool.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2F0dGVzdGF0aW9uX3Bvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDIn0=
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { type BlockAttestation } from '@aztec/circuit-types';
|
|
2
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
2
3
|
import { type AttestationPool } from './attestation_pool.js';
|
|
3
4
|
export declare class InMemoryAttestationPool implements AttestationPool {
|
|
5
|
+
#private;
|
|
4
6
|
private log;
|
|
7
|
+
private metrics;
|
|
5
8
|
private attestations;
|
|
6
|
-
constructor(log?: import("@aztec/foundation/log").Logger);
|
|
7
|
-
getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
|
|
9
|
+
constructor(_telemetry: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
|
|
10
|
+
getAttestationsForSlot(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
|
|
8
11
|
addAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
9
12
|
deleteAttestationsForSlot(slot: bigint): Promise<void>;
|
|
13
|
+
deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
|
|
10
14
|
deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
11
15
|
}
|
|
12
16
|
//# sourceMappingURL=memory_attestation_pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,uBAAwB,YAAW,eAAe;;IAKpB,OAAO,CAAC,GAAG;IAJpD,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgG;gBAExG,UAAU,EAAE,eAAe,EAAU,GAAG,yCAA8C;IAK3F,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWrF,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgChE,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAerF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB3E"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
var _InMemoryAttestationPool_instances, _InMemoryAttestationPool_getNumberOfAttestationsInSlot;
|
|
2
|
+
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
|
+
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
5
|
+
import { PoolInstrumentation } from '../instrumentation.js';
|
|
6
|
+
export class InMemoryAttestationPool {
|
|
7
|
+
constructor(_telemetry, log = createDebugLogger('aztec:attestation_pool')) {
|
|
8
|
+
_InMemoryAttestationPool_instances.add(this);
|
|
9
|
+
this.log = log;
|
|
10
|
+
this.attestations = new Map();
|
|
11
|
+
this.metrics = new PoolInstrumentation(new NoopTelemetryClient(), 'InMemoryAttestationPool');
|
|
12
|
+
}
|
|
13
|
+
getAttestationsForSlot(slot, proposalId) {
|
|
14
|
+
const slotAttestationMap = this.attestations.get(slot);
|
|
15
|
+
if (slotAttestationMap) {
|
|
16
|
+
const proposalAttestationMap = slotAttestationMap.get(proposalId);
|
|
17
|
+
if (proposalAttestationMap) {
|
|
18
|
+
return Promise.resolve(Array.from(proposalAttestationMap.values()));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return Promise.resolve([]);
|
|
22
|
+
}
|
|
23
|
+
addAttestations(attestations) {
|
|
24
|
+
for (const attestation of attestations) {
|
|
25
|
+
// Perf: order and group by slot before insertion
|
|
26
|
+
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
27
|
+
const proposalId = attestation.archive.toString();
|
|
28
|
+
const address = attestation.getSender();
|
|
29
|
+
const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber.toBigInt());
|
|
30
|
+
const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
|
|
31
|
+
proposalAttestationMap.set(address.toString(), attestation);
|
|
32
|
+
this.log.verbose(`Added attestation for slot ${slotNumber} from ${address}`);
|
|
33
|
+
}
|
|
34
|
+
// TODO: set these to pending or something ????
|
|
35
|
+
this.metrics.recordAddedObjects(attestations.length);
|
|
36
|
+
return Promise.resolve();
|
|
37
|
+
}
|
|
38
|
+
deleteAttestationsForSlot(slot) {
|
|
39
|
+
// We count the number of attestations we are removing
|
|
40
|
+
const numberOfAttestations = __classPrivateFieldGet(this, _InMemoryAttestationPool_instances, "m", _InMemoryAttestationPool_getNumberOfAttestationsInSlot).call(this, slot);
|
|
41
|
+
this.attestations.delete(slot);
|
|
42
|
+
this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot}`);
|
|
43
|
+
this.metrics.recordRemovedObjects(numberOfAttestations);
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
deleteAttestationsForSlotAndProposal(slot, proposalId) {
|
|
47
|
+
const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
|
|
48
|
+
if (slotAttestationMap) {
|
|
49
|
+
if (slotAttestationMap.has(proposalId)) {
|
|
50
|
+
const numberOfAttestations = slotAttestationMap.get(proposalId)?.size ?? 0;
|
|
51
|
+
slotAttestationMap.delete(proposalId);
|
|
52
|
+
this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
|
|
53
|
+
this.metrics.recordRemovedObjects(numberOfAttestations);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return Promise.resolve();
|
|
57
|
+
}
|
|
58
|
+
deleteAttestations(attestations) {
|
|
59
|
+
for (const attestation of attestations) {
|
|
60
|
+
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
61
|
+
const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
|
|
62
|
+
if (slotAttestationMap) {
|
|
63
|
+
const proposalId = attestation.archive.toString();
|
|
64
|
+
const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
|
|
65
|
+
if (proposalAttestationMap) {
|
|
66
|
+
const address = attestation.getSender();
|
|
67
|
+
proposalAttestationMap.delete(address.toString());
|
|
68
|
+
this.log.debug(`Deleted attestation for slot ${slotNumber} from ${address}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
this.metrics.recordRemovedObjects(attestations.length);
|
|
73
|
+
return Promise.resolve();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
_InMemoryAttestationPool_instances = new WeakSet(), _InMemoryAttestationPool_getNumberOfAttestationsInSlot = function _InMemoryAttestationPool_getNumberOfAttestationsInSlot(slot) {
|
|
77
|
+
let total = 0;
|
|
78
|
+
const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
|
|
79
|
+
if (slotAttestationMap) {
|
|
80
|
+
for (const proposalAttestationMap of slotAttestationMap.values() ?? []) {
|
|
81
|
+
total += proposalAttestationMap.size;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return total;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Get Slot or Default
|
|
88
|
+
*
|
|
89
|
+
* Fetch the slot mapping, if it does not exist, then create a mapping and return it
|
|
90
|
+
* @param map - The map to fetch from
|
|
91
|
+
* @param slot - The slot to fetch
|
|
92
|
+
* @returns The slot mapping
|
|
93
|
+
*/
|
|
94
|
+
function getSlotOrDefault(map, slot) {
|
|
95
|
+
if (!map.has(slot)) {
|
|
96
|
+
map.set(slot, new Map());
|
|
97
|
+
}
|
|
98
|
+
return map.get(slot);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get Proposal or Default
|
|
102
|
+
*
|
|
103
|
+
* Fetch the proposal mapping, if it does not exist, then create a mapping and return it
|
|
104
|
+
* @param map - The map to fetch from
|
|
105
|
+
* @param proposalId - The proposal id to fetch
|
|
106
|
+
* @returns The proposal mapping
|
|
107
|
+
*/
|
|
108
|
+
function getProposalOrDefault(map, proposalId) {
|
|
109
|
+
if (!map.has(proposalId)) {
|
|
110
|
+
map.set(proposalId, new Map());
|
|
111
|
+
}
|
|
112
|
+
return map.get(proposalId);
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2F0dGVzdGF0aW9uX3Bvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2F0dGVzdGF0aW9uX3Bvb2wvbWVtb3J5X2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQVksVUFBMkIsRUFBVSxNQUFNLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDOztRQUFqRCxRQUFHLEdBQUgsR0FBRyxDQUE4QztRQUNoRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksbUJBQW1CLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsVUFBa0I7UUFDNUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDdkIsTUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEUsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2dCQUMzQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENB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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BlockAttestation } from '@aztec/circuit-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { type PrivateKeyAccount } from 'viem';
|
|
3
4
|
/** Generate Account
|
|
4
5
|
*
|
|
@@ -12,5 +13,5 @@ export declare const generateAccount: () => PrivateKeyAccount;
|
|
|
12
13
|
* @param slot The slot number the attestation is for
|
|
13
14
|
* @returns A Block Attestation
|
|
14
15
|
*/
|
|
15
|
-
export declare const mockAttestation: (signer: PrivateKeyAccount, slot?: number) => Promise<BlockAttestation>;
|
|
16
|
+
export declare const mockAttestation: (signer: PrivateKeyAccount, slot?: number, archive?: Fr) => Promise<BlockAttestation>;
|
|
16
17
|
//# sourceMappingURL=mocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,sBAAsB,CAAC;AAGlF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C;;;;GAIG;AACH,eAAO,MAAM,eAAe,yBAG3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,WAClB,iBAAiB,SACnB,MAAM,YACH,EAAE,KACV,QAAQ,gBAAgB,CAY1B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BlockAttestation, ConsensusPayload, TxHash } from '@aztec/circuit-types';
|
|
2
|
+
import { makeHeader } from '@aztec/circuits.js/testing';
|
|
3
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
6
|
+
/** Generate Account
|
|
7
|
+
*
|
|
8
|
+
* Create a random signer
|
|
9
|
+
* @returns A random viem signer
|
|
10
|
+
*/
|
|
11
|
+
export const generateAccount = () => {
|
|
12
|
+
const privateKey = generatePrivateKey();
|
|
13
|
+
return privateKeyToAccount(privateKey);
|
|
14
|
+
};
|
|
15
|
+
/** Mock Attestation
|
|
16
|
+
*
|
|
17
|
+
* @param signer A viem signer to create a signature
|
|
18
|
+
* @param slot The slot number the attestation is for
|
|
19
|
+
* @returns A Block Attestation
|
|
20
|
+
*/
|
|
21
|
+
export const mockAttestation = async (signer, slot = 0, archive = Fr.random()) => {
|
|
22
|
+
// Use arbitrary numbers for all other than slot
|
|
23
|
+
const header = makeHeader(1, 2, slot);
|
|
24
|
+
const txs = [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
25
|
+
const payload = new ConsensusPayload(header, archive, txs);
|
|
26
|
+
const message = `0x${payload.getPayloadToSign().toString('hex')}`;
|
|
27
|
+
const sigString = await signer.signMessage({ message });
|
|
28
|
+
const signature = Signature.from0xString(sigString);
|
|
29
|
+
return new BlockAttestation(payload, signature);
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2F0dGVzdGF0aW9uX3Bvb2wvbW9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUNsQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLE9BQU8sbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUNsQyxNQUF5QixFQUN6QixPQUFlLENBQUMsRUFDaEIsVUFBYyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQ0UsRUFBRTtJQUM3QixnREFBZ0Q7SUFDaEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUUxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFM0QsTUFBTSxPQUFPLEdBQWtCLEtBQUssT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDakYsTUFBTSxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUV4RCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type EpochProofQuote } from '@aztec/circuit-types';
|
|
2
|
+
export interface EpochProofQuotePool {
|
|
3
|
+
addQuote(quote: EpochProofQuote): void;
|
|
4
|
+
getQuotes(epoch: bigint): EpochProofQuote[];
|
|
5
|
+
deleteQuotesToEpoch(epoch: bigint): void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=epoch_proof_quote_pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epoch_proof_quote_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;IAC5C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2hfcHJvb2ZfcXVvdGVfcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvZXBvY2hfcHJvb2ZfcXVvdGVfcG9vbC9lcG9jaF9wcm9vZl9xdW90ZV9wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/epoch_proof_quote_pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './epoch_proof_quote_pool.js';
|
|
2
|
+
export * from './memory_epoch_proof_quote_pool.js';
|
|
3
|
+
export * from './test_utils.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2Vwb2NoX3Byb29mX3F1b3RlX3Bvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUJBQWlCLENBQUMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type EpochProofQuote } from '@aztec/circuit-types';
|
|
2
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
+
import { type EpochProofQuotePool } from './epoch_proof_quote_pool.js';
|
|
4
|
+
export declare class MemoryEpochProofQuotePool implements EpochProofQuotePool {
|
|
5
|
+
private quotes;
|
|
6
|
+
private metrics;
|
|
7
|
+
constructor(_telemetry: TelemetryClient);
|
|
8
|
+
addQuote(quote: EpochProofQuote): void;
|
|
9
|
+
getQuotes(epoch: bigint): EpochProofQuote[];
|
|
10
|
+
deleteQuotesToEpoch(epoch: bigint): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=memory_epoch_proof_quote_pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory_epoch_proof_quote_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,qBAAa,yBAA0B,YAAW,mBAAmB;IACnE,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAuC;gBAE1C,UAAU,EAAE,eAAe;IAKvC,QAAQ,CAAC,KAAK,EAAE,eAAe;IAS/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE;IAG3C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAazC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
2
|
+
import { PoolInstrumentation } from '../instrumentation.js';
|
|
3
|
+
export class MemoryEpochProofQuotePool {
|
|
4
|
+
constructor(_telemetry) {
|
|
5
|
+
this.quotes = new Map();
|
|
6
|
+
this.metrics = new PoolInstrumentation(new NoopTelemetryClient(), 'MemoryEpochProofQuotePool');
|
|
7
|
+
}
|
|
8
|
+
addQuote(quote) {
|
|
9
|
+
const epoch = quote.payload.epochToProve;
|
|
10
|
+
if (!this.quotes.has(epoch)) {
|
|
11
|
+
this.quotes.set(epoch, []);
|
|
12
|
+
}
|
|
13
|
+
this.quotes.get(epoch).push(quote);
|
|
14
|
+
this.metrics.recordAddedObjects(1);
|
|
15
|
+
}
|
|
16
|
+
getQuotes(epoch) {
|
|
17
|
+
return this.quotes.get(epoch) || [];
|
|
18
|
+
}
|
|
19
|
+
deleteQuotesToEpoch(epoch) {
|
|
20
|
+
const expiredEpochs = Array.from(this.quotes.keys()).filter(k => k <= epoch);
|
|
21
|
+
let removedObjectsCount = 0;
|
|
22
|
+
for (const expiredEpoch of expiredEpochs) {
|
|
23
|
+
// For logging
|
|
24
|
+
removedObjectsCount += this.quotes.get(expiredEpoch)?.length || 0;
|
|
25
|
+
this.quotes.delete(expiredEpoch);
|
|
26
|
+
}
|
|
27
|
+
this.metrics.recordRemovedObjects(removedObjectsCount);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2Vwb2NoX3Byb29mX3F1b3RlX3Bvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2Vwb2NoX3Byb29mX3F1b3RlX3Bvb2wvbWVtb3J5X2Vwb2NoX3Byb29mX3F1b3RlX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHNUQsTUFBTSxPQUFPLHlCQUF5QjtJQUlwQyxZQUFZLFVBQTJCO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFzQjtRQUM3QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsS0FBYTtRQUMvQixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7UUFFN0UsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDNUIsS0FBSyxNQUFNLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUN6QyxjQUFjO1lBQ2QsbUJBQW1CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztZQUVsRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EpochProofQuote, EpochProofQuotePayload } from '@aztec/circuit-types';
|
|
2
|
+
import { Secp256k1Signer } from '@aztec/foundation/crypto';
|
|
3
|
+
export declare function makeRandomEpochProofQuotePayload(): EpochProofQuotePayload;
|
|
4
|
+
export declare function makeRandomEpochProofQuote(payload?: EpochProofQuotePayload): {
|
|
5
|
+
quote: EpochProofQuote;
|
|
6
|
+
signer: Secp256k1Signer;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=test_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/epoch_proof_quote_pool/test_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAA2B,MAAM,0BAA0B,CAAC;AAEpF,wBAAgB,gCAAgC,IAAI,sBAAsB,CAQzE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG;IAC3E,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB,CAOA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EpochProofQuote, EpochProofQuotePayload } from '@aztec/circuit-types';
|
|
2
|
+
import { EthAddress } from '@aztec/circuits.js';
|
|
3
|
+
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
4
|
+
import { Secp256k1Signer, randomBigInt, randomInt } from '@aztec/foundation/crypto';
|
|
5
|
+
export function makeRandomEpochProofQuotePayload() {
|
|
6
|
+
return EpochProofQuotePayload.from({
|
|
7
|
+
basisPointFee: randomInt(10000),
|
|
8
|
+
bondAmount: 1000000000000000000n,
|
|
9
|
+
epochToProve: randomBigInt(1000000n),
|
|
10
|
+
prover: EthAddress.random(),
|
|
11
|
+
validUntilSlot: randomBigInt(1000000n),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export function makeRandomEpochProofQuote(payload) {
|
|
15
|
+
const signer = Secp256k1Signer.random();
|
|
16
|
+
return {
|
|
17
|
+
quote: EpochProofQuote.new(Buffer32.random(), payload ?? makeRandomEpochProofQuotePayload(), signer),
|
|
18
|
+
signer,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF91dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvZXBvY2hfcHJvb2ZfcXVvdGVfcG9vbC90ZXN0X3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBGLE1BQU0sVUFBVSxnQ0FBZ0M7SUFDOUMsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7UUFDakMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDL0IsVUFBVSxFQUFFLG9CQUFvQjtRQUNoQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUNwQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUMzQixjQUFjLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQztLQUN2QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE9BQWdDO0lBSXhFLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUV4QyxPQUFPO1FBQ0wsS0FBSyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sSUFBSSxnQ0FBZ0MsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUNwRyxNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { TxPool } from './tx_pool/tx_pool.js';
|
|
2
|
+
export { AttestationPool } from './attestation_pool/attestation_pool.js';
|
|
3
|
+
export { EpochProofQuotePool } from './epoch_proof_quote_pool/epoch_proof_quote_pool.js';
|
|
4
|
+
export { type MemPools } from './interface.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mem_pools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Gossipable } from '@aztec/circuit-types';
|
|
2
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
+
/**
|
|
4
|
+
* Instrumentation class for the Pools (TxPool, AttestationPool, etc).
|
|
5
|
+
*/
|
|
6
|
+
export declare class PoolInstrumentation<PoolObject extends Gossipable> {
|
|
7
|
+
/** The number of txs in the mempool */
|
|
8
|
+
private objectsInMempool;
|
|
9
|
+
/** Tracks tx size */
|
|
10
|
+
private objectSize;
|
|
11
|
+
private defaultAttributes;
|
|
12
|
+
constructor(telemetry: TelemetryClient, name: string);
|
|
13
|
+
recordSize(poolObject: PoolObject): void;
|
|
14
|
+
/**
|
|
15
|
+
* Updates the metrics with the new objects.
|
|
16
|
+
* @param txs - The objects to record
|
|
17
|
+
*/
|
|
18
|
+
recordAddedObjects(count?: number, status?: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Updates the metrics by removing objects from the mempool.
|
|
21
|
+
* @param count - The number of objects to remove from the mempool
|
|
22
|
+
*/
|
|
23
|
+
recordRemovedObjects(count?: number, status?: string): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAuC,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAExH;;GAEG;AACH,qBAAa,mBAAmB,CAAC,UAAU,SAAS,UAAU;IAC5D,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAgB;IACxC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,iBAAiB,CAAC;gBAEd,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM;IAyB7C,UAAU,CAAC,UAAU,EAAE,UAAU;IAIxC;;;OAGG;IACI,kBAAkB,CAAC,KAAK,SAAI,EAAE,MAAM,CAAC,EAAE,MAAM;IAiBpD;;;OAGG;IACI,oBAAoB,CAAC,KAAK,SAAI,EAAE,MAAM,CAAC,EAAE,MAAM;CAgBvD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Attributes, Metrics } from '@aztec/telemetry-client';
|
|
2
|
+
/**
|
|
3
|
+
* Instrumentation class for the Pools (TxPool, AttestationPool, etc).
|
|
4
|
+
*/
|
|
5
|
+
export class PoolInstrumentation {
|
|
6
|
+
constructor(telemetry, name) {
|
|
7
|
+
const meter = telemetry.getMeter(name);
|
|
8
|
+
this.defaultAttributes = { [Attributes.POOL_NAME]: name };
|
|
9
|
+
this.objectsInMempool = meter.createUpDownCounter(Metrics.MEMPOOL_TX_COUNT, {
|
|
10
|
+
description: 'The current number of transactions in the mempool',
|
|
11
|
+
});
|
|
12
|
+
this.objectSize = meter.createHistogram(Metrics.MEMPOOL_TX_SIZE, {
|
|
13
|
+
unit: 'By',
|
|
14
|
+
description: 'The size of transactions in the mempool',
|
|
15
|
+
advice: {
|
|
16
|
+
explicitBucketBoundaries: [
|
|
17
|
+
5000, // 5KB
|
|
18
|
+
10000,
|
|
19
|
+
20000,
|
|
20
|
+
50000,
|
|
21
|
+
75000,
|
|
22
|
+
100000, // 100KB
|
|
23
|
+
200000,
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
recordSize(poolObject) {
|
|
29
|
+
this.objectSize.record(poolObject.getSize());
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Updates the metrics with the new objects.
|
|
33
|
+
* @param txs - The objects to record
|
|
34
|
+
*/
|
|
35
|
+
recordAddedObjects(count = 1, status) {
|
|
36
|
+
if (count < 0) {
|
|
37
|
+
throw new Error('Count must be positive');
|
|
38
|
+
}
|
|
39
|
+
if (count === 0) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const attributes = status
|
|
43
|
+
? {
|
|
44
|
+
...this.defaultAttributes,
|
|
45
|
+
[Attributes.STATUS]: status,
|
|
46
|
+
}
|
|
47
|
+
: this.defaultAttributes;
|
|
48
|
+
this.objectsInMempool.add(count, attributes);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Updates the metrics by removing objects from the mempool.
|
|
52
|
+
* @param count - The number of objects to remove from the mempool
|
|
53
|
+
*/
|
|
54
|
+
recordRemovedObjects(count = 1, status) {
|
|
55
|
+
if (count < 0) {
|
|
56
|
+
throw new Error('Count must be positive');
|
|
57
|
+
}
|
|
58
|
+
if (count === 0) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const attributes = status
|
|
62
|
+
? {
|
|
63
|
+
...this.defaultAttributes,
|
|
64
|
+
[Attributes.STATUS]: status,
|
|
65
|
+
}
|
|
66
|
+
: this.defaultAttributes;
|
|
67
|
+
this.objectsInMempool.add(-1 * count, attributes);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lbV9wb29scy9pbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBa0IsT0FBTyxFQUE0QyxNQUFNLHlCQUF5QixDQUFDO0FBRXhIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixZQUFZLFNBQTBCLEVBQUUsSUFBWTtRQUNsRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTFELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO1lBQzFFLFdBQVcsRUFBRSxtREFBbUQ7U0FDakUsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUU7WUFDL0QsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUseUNBQXlDO1lBQ3RELE1BQU0sRUFBRTtnQkFDTix3QkFBd0IsRUFBRTtvQkFDeEIsSUFBSyxFQUFFLE1BQU07b0JBQ2IsS0FBTTtvQkFDTixLQUFNO29CQUNOLEtBQU07b0JBQ04sS0FBTTtvQkFDTixNQUFPLEVBQUUsUUFBUTtvQkFDakIsTUFBTztpQkFDUjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxVQUFzQjtRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFlO1FBQ2xELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLE1BQU07WUFDdkIsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtnQkFDekIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTTthQUM1QjtZQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLG9CQUFvQixDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsTUFBZTtRQUNwRCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNO1lBQ3ZCLENBQUMsQ0FBQztnQkFDRSxHQUFHLElBQUksQ0FBQyxpQkFBaUI7Z0JBQ3pCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07YUFDNUI7WUFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type AttestationPool } from './attestation_pool/attestation_pool.js';
|
|
2
|
+
import { type EpochProofQuotePool } from './epoch_proof_quote_pool/epoch_proof_quote_pool.js';
|
|
3
|
+
import { type TxPool } from './tx_pool/tx_pool.js';
|
|
4
|
+
/**
|
|
5
|
+
* A interface the combines all mempools
|
|
6
|
+
*/
|
|
7
|
+
export interface MemPools {
|
|
8
|
+
txPool: TxPool;
|
|
9
|
+
attestationPool: AttestationPool;
|
|
10
|
+
epochProofQuotePool: EpochProofQuotePool;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/mem_pools/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAgC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAe1C;;;;OAIG;gBACS,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAqC;IAU9F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C,kBAAkB,IAAI,MAAM,EAAE;IAI9B,gBAAgB,IAAI,MAAM,EAAE;IAI5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAWnE;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;CAGlC"}
|