@aztec/p2p 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.76.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/bootstrap/bootstrap.d.ts +38 -0
- package/dest/bootstrap/bootstrap.d.ts.map +1 -0
- package/dest/bootstrap/bootstrap.js +31 -38
- package/dest/client/factory.d.ts +21 -0
- package/dest/client/factory.d.ts.map +1 -0
- package/dest/client/factory.js +13 -11
- package/dest/client/index.d.ts +3 -0
- package/dest/client/index.d.ts.map +1 -0
- package/dest/client/index.js +1 -0
- package/dest/client/p2p_client.d.ts +332 -0
- package/dest/client/p2p_client.d.ts.map +1 -0
- package/dest/client/p2p_client.js +535 -513
- package/dest/config.d.ts +187 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +64 -53
- package/dest/errors/reqresp.error.d.ts +28 -0
- package/dest/errors/reqresp.error.d.ts.map +1 -0
- package/dest/errors/reqresp.error.js +10 -6
- package/dest/index.d.ts +9 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +57 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.js +2 -6
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +3 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +32 -64
- package/dest/mem_pools/attestation_pool/index.d.ts +3 -0
- package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/index.js +1 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +22 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +19 -22
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +17 -0
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +26 -22
- package/dest/mem_pools/attestation_pool/mocks.d.ts +18 -0
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/mocks.js +6 -10
- 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 -1
- 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 +1 -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 +4 -5
- 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 +3 -2
- 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 -1
- package/dest/mem_pools/instrumentation.d.ts +31 -0
- package/dest/mem_pools/instrumentation.d.ts.map +1 -0
- package/dest/mem_pools/instrumentation.js +42 -37
- package/dest/mem_pools/interface.d.ts +13 -0
- package/dest/mem_pools/interface.d.ts.map +1 -0
- package/dest/mem_pools/interface.js +2 -3
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +66 -0
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +134 -127
- package/dest/mem_pools/tx_pool/index.d.ts +4 -0
- package/dest/mem_pools/tx_pool/index.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/index.js +1 -0
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +56 -0
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +43 -45
- package/dest/mem_pools/tx_pool/priority.d.ts +8 -0
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/priority.js +3 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +66 -0
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/tx_pool.js +2 -3
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +7 -0
- 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 +37 -107
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +8 -0
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/attestation_validator.js +3 -3
- package/dest/msg_validators/attestation_validator/index.d.ts +2 -0
- package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/index.js +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +8 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +2 -2
- package/dest/msg_validators/block_proposal_validator/index.d.ts +2 -0
- package/dest/msg_validators/block_proposal_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/block_proposal_validator/index.js +1 -0
- package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.d.ts +8 -0
- package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.d.ts.map +1 -0
- package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.js +2 -2
- package/dest/msg_validators/epoch_proof_quote_validator/index.d.ts +2 -0
- package/dest/msg_validators/epoch_proof_quote_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/epoch_proof_quote_validator/index.js +1 -0
- package/dest/msg_validators/index.d.ts +4 -0
- package/dest/msg_validators/index.d.ts.map +1 -0
- package/dest/msg_validators/index.js +1 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +7 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -9
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +11 -0
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/block_header_validator.js +12 -17
- package/dest/msg_validators/tx_validator/data_validator.d.ts +6 -0
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/data_validator.js +32 -41
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +12 -0
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/double_spend_validator.js +14 -22
- package/dest/msg_validators/tx_validator/index.d.ts +7 -0
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/index.js +1 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +10 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/metadata_validator.js +26 -29
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +8 -0
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/tx_proof_validator.js +12 -17
- package/dest/services/data_store.d.ts +27 -0
- package/dest/services/data_store.d.ts.map +1 -0
- package/dest/services/data_store.js +57 -57
- package/dest/services/discv5/discV5_service.d.ts +40 -0
- package/dest/services/discv5/discV5_service.d.ts.map +1 -0
- package/dest/services/discv5/discV5_service.js +82 -43
- package/dest/services/dummy_service.d.ts +83 -0
- package/dest/services/dummy_service.d.ts.map +1 -0
- package/dest/services/dummy_service.js +59 -40
- package/dest/services/encoding.d.ts +31 -0
- package/dest/services/encoding.d.ts.map +1 -0
- package/dest/services/encoding.js +9 -10
- package/dest/services/index.d.ts +3 -0
- package/dest/services/index.d.ts.map +1 -0
- package/dest/services/index.js +1 -0
- package/dest/services/libp2p/libp2p_logger.d.ts +7 -0
- package/dest/services/libp2p/libp2p_logger.d.ts.map +1 -0
- package/dest/services/libp2p/libp2p_logger.js +67 -0
- package/dest/services/libp2p/libp2p_service.d.ts +225 -0
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -0
- package/dest/services/libp2p/libp2p_service.js +727 -709
- package/dest/services/peer-manager/metrics.d.ts +12 -0
- package/dest/services/peer-manager/metrics.d.ts.map +1 -0
- package/dest/services/peer-manager/metrics.js +7 -14
- package/dest/services/peer-manager/peer_manager.d.ts +76 -0
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -0
- package/dest/services/peer-manager/peer_manager.js +342 -340
- package/dest/services/peer-manager/peer_scoring.d.ts +28 -0
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -0
- package/dest/services/peer-manager/peer_scoring.js +18 -20
- package/dest/services/reqresp/config.d.ts +16 -0
- package/dest/services/reqresp/config.d.ts.map +1 -0
- package/dest/services/reqresp/config.js +5 -4
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +45 -0
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -0
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +28 -35
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +61 -0
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -0
- package/dest/services/reqresp/connection-sampler/connection_sampler.js +59 -60
- package/dest/services/reqresp/index.d.ts +6 -0
- package/dest/services/reqresp/index.d.ts.map +1 -0
- package/dest/services/reqresp/index.js +3 -1
- package/dest/services/reqresp/interface.d.ts +116 -0
- package/dest/services/reqresp/interface.d.ts.map +1 -0
- package/dest/services/reqresp/interface.js +30 -25
- package/dest/services/reqresp/metrics.d.ts +15 -0
- package/dest/services/reqresp/metrics.d.ts.map +1 -0
- package/dest/services/reqresp/metrics.js +10 -23
- package/dest/services/reqresp/protocols/block.d.ts +4 -0
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block.js +2 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts +51 -0
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/goodbye.js +41 -36
- package/dest/services/reqresp/protocols/index.d.ts +9 -0
- package/dest/services/reqresp/protocols/index.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/index.js +3 -1
- package/dest/services/reqresp/protocols/ping.d.ts +9 -0
- package/dest/services/reqresp/protocols/ping.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/ping.js +3 -1
- package/dest/services/reqresp/protocols/status.d.ts +9 -0
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/status.js +3 -1
- package/dest/services/reqresp/protocols/tx.d.ts +13 -0
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/tx.js +8 -5
- package/dest/services/reqresp/rate-limiter/index.d.ts +2 -0
- package/dest/services/reqresp/rate-limiter/index.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/index.js +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +102 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +35 -39
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +3 -0
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limits.js +17 -16
- package/dest/services/reqresp/reqresp.d.ts +166 -0
- package/dest/services/reqresp/reqresp.d.ts.map +1 -0
- package/dest/services/reqresp/reqresp.js +463 -460
- package/dest/services/reqresp/status.d.ts +31 -0
- package/dest/services/reqresp/status.d.ts.map +1 -0
- package/dest/services/reqresp/status.js +17 -16
- package/dest/services/service.d.ts +86 -0
- package/dest/services/service.d.ts.map +1 -0
- package/dest/services/service.js +4 -3
- package/dest/services/types.d.ts +32 -0
- package/dest/services/types.d.ts.map +1 -0
- package/dest/services/types.js +19 -20
- package/dest/test-helpers/generate-peer-id-private-keys.d.ts +7 -0
- package/dest/test-helpers/generate-peer-id-private-keys.d.ts.map +1 -0
- package/dest/test-helpers/generate-peer-id-private-keys.js +15 -0
- package/dest/test-helpers/get-ports.d.ts +7 -0
- package/dest/test-helpers/get-ports.d.ts.map +1 -0
- package/dest/test-helpers/get-ports.js +8 -0
- package/dest/test-helpers/index.d.ts +6 -0
- package/dest/test-helpers/index.d.ts.map +1 -0
- package/dest/test-helpers/index.js +6 -0
- package/dest/test-helpers/make-enrs.d.ts +16 -0
- package/dest/test-helpers/make-enrs.d.ts.map +1 -0
- package/dest/test-helpers/make-enrs.js +35 -0
- package/dest/test-helpers/make-test-p2p-clients.d.ts +37 -0
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -0
- package/dest/test-helpers/make-test-p2p-clients.js +71 -0
- package/dest/test-helpers/reqresp-nodes.d.ts +55 -0
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -0
- package/dest/test-helpers/reqresp-nodes.js +183 -0
- package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -0
- package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -0
- package/dest/testbench/p2p_client_testbench_worker.js +125 -0
- package/dest/util.d.ts +53 -0
- package/dest/util.d.ts.map +1 -0
- package/dest/util.js +34 -23
- package/dest/versioning.d.ts +12 -0
- package/dest/versioning.d.ts.map +1 -0
- package/dest/versioning.js +38 -0
- package/package.json +11 -9
- package/src/bootstrap/bootstrap.ts +9 -3
- package/src/client/factory.ts +12 -5
- package/src/config.ts +56 -29
- package/src/mem_pools/index.ts +3 -3
- package/src/mem_pools/instrumentation.ts +2 -3
- package/src/msg_validators/attestation_validator/attestation_validator.ts +3 -3
- package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +3 -3
- package/src/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.ts +3 -3
- package/src/services/discv5/discV5_service.ts +67 -18
- package/src/services/dummy_service.ts +2 -0
- package/src/services/libp2p/libp2p_logger.ts +78 -0
- package/src/services/libp2p/libp2p_service.ts +47 -10
- package/src/services/reqresp/protocols/goodbye.ts +1 -1
- package/src/services/reqresp/reqresp.ts +9 -1
- package/src/services/service.ts +2 -0
- package/src/services/types.ts +2 -10
- package/src/test-helpers/generate-peer-id-private-keys.ts +15 -0
- package/src/test-helpers/get-ports.ts +8 -0
- package/src/test-helpers/index.ts +5 -0
- package/src/test-helpers/make-enrs.ts +44 -0
- package/src/test-helpers/make-test-p2p-clients.ts +124 -0
- package/src/{mocks/index.ts → test-helpers/reqresp-nodes.ts} +10 -5
- package/src/testbench/README.md +20 -0
- package/src/testbench/p2p_client_testbench_worker.ts +156 -0
- package/src/testbench/scripts/run_testbench.sh +7 -0
- package/src/versioning.ts +50 -0
- package/dest/mocks/index.js +0 -190
|
@@ -10,31 +10,29 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
10
10
|
let signers;
|
|
11
11
|
// Check that metrics are recorded correctly
|
|
12
12
|
let metricsMock;
|
|
13
|
-
beforeEach(()=>{
|
|
13
|
+
beforeEach(() => {
|
|
14
14
|
ap = getAttestationPool();
|
|
15
|
-
signers = Array.from({
|
|
16
|
-
length: NUMBER_OF_SIGNERS_PER_TEST
|
|
17
|
-
}, ()=>Secp256k1Signer.random());
|
|
15
|
+
signers = Array.from({ length: NUMBER_OF_SIGNERS_PER_TEST }, () => Secp256k1Signer.random());
|
|
18
16
|
metricsMock = mock();
|
|
19
17
|
// Can i overwrite this like this??
|
|
20
18
|
ap.metrics = metricsMock;
|
|
21
19
|
});
|
|
22
|
-
const createAttestationsForSlot = (slotNumber)=>{
|
|
20
|
+
const createAttestationsForSlot = (slotNumber) => {
|
|
23
21
|
const archive = Fr.random();
|
|
24
|
-
return Promise.all(signers.map(
|
|
22
|
+
return Promise.all(signers.map(signer => mockAttestation(signer, slotNumber, archive)));
|
|
25
23
|
};
|
|
26
24
|
// We compare buffers as the objects can have cached values attached to them which are not serialised
|
|
27
25
|
// using array containing as the kv store does not respect insertion order
|
|
28
|
-
const compareAttestations = (a1, a2)=>{
|
|
29
|
-
const a1Buffer = a1.map(
|
|
30
|
-
const a2Buffer = a2.map(
|
|
26
|
+
const compareAttestations = (a1, a2) => {
|
|
27
|
+
const a1Buffer = a1.map(attestation => attestation.toBuffer());
|
|
28
|
+
const a2Buffer = a2.map(attestation => attestation.toBuffer());
|
|
31
29
|
expect(a1Buffer.length).toBe(a2Buffer.length);
|
|
32
30
|
expect(a1Buffer).toEqual(expect.arrayContaining(a2Buffer));
|
|
33
31
|
};
|
|
34
|
-
it('should add attestations to pool', async ()=>{
|
|
32
|
+
it('should add attestations to pool', async () => {
|
|
35
33
|
const slotNumber = 420;
|
|
36
34
|
const archive = Fr.random();
|
|
37
|
-
const attestations = await Promise.all(signers.map(
|
|
35
|
+
const attestations = await Promise.all(signers.map(signer => mockAttestation(signer, slotNumber, archive)));
|
|
38
36
|
await ap.addAttestations(attestations);
|
|
39
37
|
// Check metrics have been updated.
|
|
40
38
|
expect(metricsMock.recordAddedObjects).toHaveBeenCalledWith(attestations.length);
|
|
@@ -47,21 +45,14 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
47
45
|
const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), archive.toString());
|
|
48
46
|
expect(retreivedAttestationsAfterDelete.length).toBe(0);
|
|
49
47
|
});
|
|
50
|
-
it('Should handle duplicate proposals in a slot', async ()=>{
|
|
48
|
+
it('Should handle duplicate proposals in a slot', async () => {
|
|
51
49
|
const slotNumber = 420;
|
|
52
50
|
const archive = Fr.random();
|
|
53
|
-
const txs = [
|
|
54
|
-
0,
|
|
55
|
-
1,
|
|
56
|
-
2,
|
|
57
|
-
3,
|
|
58
|
-
4,
|
|
59
|
-
5
|
|
60
|
-
].map(()=>TxHash.random());
|
|
51
|
+
const txs = [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
61
52
|
// Use the same signer for all attestations
|
|
62
53
|
const attestations = [];
|
|
63
54
|
const signer = signers[0];
|
|
64
|
-
for(let i = 0; i < NUMBER_OF_SIGNERS_PER_TEST; i++){
|
|
55
|
+
for (let i = 0; i < NUMBER_OF_SIGNERS_PER_TEST; i++) {
|
|
65
56
|
attestations.push(await mockAttestation(signer, slotNumber, archive, txs));
|
|
66
57
|
}
|
|
67
58
|
await ap.addAttestations(attestations);
|
|
@@ -71,16 +62,11 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
71
62
|
expect(retreivedAttestations[0].payload.txHashes).toEqual(txs);
|
|
72
63
|
expect((await retreivedAttestations[0].getSender()).toString()).toEqual(signer.address.toString());
|
|
73
64
|
});
|
|
74
|
-
it('Should store attestations by differing slot', async ()=>{
|
|
75
|
-
const slotNumbers = [
|
|
76
|
-
|
|
77
|
-
2,
|
|
78
|
-
3,
|
|
79
|
-
4
|
|
80
|
-
];
|
|
81
|
-
const attestations = await Promise.all(signers.map((signer, i)=>mockAttestation(signer, slotNumbers[i])));
|
|
65
|
+
it('Should store attestations by differing slot', async () => {
|
|
66
|
+
const slotNumbers = [1, 2, 3, 4];
|
|
67
|
+
const attestations = await Promise.all(signers.map((signer, i) => mockAttestation(signer, slotNumbers[i])));
|
|
82
68
|
await ap.addAttestations(attestations);
|
|
83
|
-
for (const attestation of attestations){
|
|
69
|
+
for (const attestation of attestations) {
|
|
84
70
|
const slot = attestation.payload.header.globalVariables.slotNumber;
|
|
85
71
|
const archive = attestation.archive.toString();
|
|
86
72
|
const retreivedAttestations = await ap.getAttestationsForSlot(slot.toBigInt(), archive);
|
|
@@ -89,22 +75,12 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
89
75
|
expect(retreivedAttestations[0].payload.header.globalVariables.slotNumber).toEqual(slot);
|
|
90
76
|
}
|
|
91
77
|
});
|
|
92
|
-
it('Should store attestations by differing slot and archive', async ()=>{
|
|
93
|
-
const slotNumbers = [
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
2,
|
|
97
|
-
3
|
|
98
|
-
];
|
|
99
|
-
const archives = [
|
|
100
|
-
Fr.random(),
|
|
101
|
-
Fr.random(),
|
|
102
|
-
Fr.random(),
|
|
103
|
-
Fr.random()
|
|
104
|
-
];
|
|
105
|
-
const attestations = await Promise.all(signers.map((signer, i)=>mockAttestation(signer, slotNumbers[i], archives[i])));
|
|
78
|
+
it('Should store attestations by differing slot and archive', async () => {
|
|
79
|
+
const slotNumbers = [1, 1, 2, 3];
|
|
80
|
+
const archives = [Fr.random(), Fr.random(), Fr.random(), Fr.random()];
|
|
81
|
+
const attestations = await Promise.all(signers.map((signer, i) => mockAttestation(signer, slotNumbers[i], archives[i])));
|
|
106
82
|
await ap.addAttestations(attestations);
|
|
107
|
-
for (const attestation of attestations){
|
|
83
|
+
for (const attestation of attestations) {
|
|
108
84
|
const slot = attestation.payload.header.globalVariables.slotNumber;
|
|
109
85
|
const proposalId = attestation.archive.toString();
|
|
110
86
|
const retreivedAttestations = await ap.getAttestationsForSlot(slot.toBigInt(), proposalId);
|
|
@@ -113,10 +89,10 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
113
89
|
expect(retreivedAttestations[0].payload.header.globalVariables.slotNumber).toEqual(slot);
|
|
114
90
|
}
|
|
115
91
|
});
|
|
116
|
-
it('Should delete attestations', async ()=>{
|
|
92
|
+
it('Should delete attestations', async () => {
|
|
117
93
|
const slotNumber = 420;
|
|
118
94
|
const archive = Fr.random();
|
|
119
|
-
const attestations = await Promise.all(signers.map(
|
|
95
|
+
const attestations = await Promise.all(signers.map(signer => mockAttestation(signer, slotNumber, archive)));
|
|
120
96
|
const proposalId = attestations[0].archive.toString();
|
|
121
97
|
await ap.addAttestations(attestations);
|
|
122
98
|
expect(metricsMock.recordAddedObjects).toHaveBeenCalledWith(attestations.length);
|
|
@@ -128,10 +104,10 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
128
104
|
const gottenAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
|
|
129
105
|
expect(gottenAfterDelete.length).toBe(0);
|
|
130
106
|
});
|
|
131
|
-
it('Should blanket delete attestations per slot', async ()=>{
|
|
107
|
+
it('Should blanket delete attestations per slot', async () => {
|
|
132
108
|
const slotNumber = 420;
|
|
133
109
|
const archive = Fr.random();
|
|
134
|
-
const attestations = await Promise.all(signers.map(
|
|
110
|
+
const attestations = await Promise.all(signers.map(signer => mockAttestation(signer, slotNumber, archive)));
|
|
135
111
|
const proposalId = attestations[0].archive.toString();
|
|
136
112
|
await ap.addAttestations(attestations);
|
|
137
113
|
const retreivedAttestations = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
|
|
@@ -141,14 +117,14 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
141
117
|
const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
|
|
142
118
|
expect(retreivedAttestationsAfterDelete.length).toBe(0);
|
|
143
119
|
});
|
|
144
|
-
it('Should blanket delete attestations per slot and proposal', async ()=>{
|
|
120
|
+
it('Should blanket delete attestations per slot and proposal', async () => {
|
|
145
121
|
const slotNumber = 420;
|
|
146
122
|
const archive = Fr.random();
|
|
147
|
-
const attestations = await Promise.all(signers.map(
|
|
123
|
+
const attestations = await Promise.all(signers.map(signer => mockAttestation(signer, slotNumber, archive)));
|
|
148
124
|
const proposalId = attestations[0].archive.toString();
|
|
149
125
|
// Add another set of attestations with a different proposalId, yet the same slot
|
|
150
126
|
const archive2 = Fr.random();
|
|
151
|
-
const attestations2 = await Promise.all(signers.map(
|
|
127
|
+
const attestations2 = await Promise.all(signers.map(signer => mockAttestation(signer, slotNumber, archive2)));
|
|
152
128
|
const proposalId2 = attestations2[0].archive.toString();
|
|
153
129
|
await ap.addAttestations(attestations);
|
|
154
130
|
await ap.addAttestations(attestations2);
|
|
@@ -165,18 +141,9 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
165
141
|
expect(retreivedAttestationsAfterDeleteForOtherProposal.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
|
|
166
142
|
compareAttestations(retreivedAttestationsAfterDeleteForOtherProposal, attestations2);
|
|
167
143
|
});
|
|
168
|
-
it('Should delete attestations older than a given slot', async ()=>{
|
|
169
|
-
const slotNumbers = [
|
|
170
|
-
|
|
171
|
-
2,
|
|
172
|
-
3,
|
|
173
|
-
69,
|
|
174
|
-
72,
|
|
175
|
-
74,
|
|
176
|
-
88,
|
|
177
|
-
420
|
|
178
|
-
];
|
|
179
|
-
const attestations = (await Promise.all(slotNumbers.map((slotNumber)=>createAttestationsForSlot(slotNumber)))).flat();
|
|
144
|
+
it('Should delete attestations older than a given slot', async () => {
|
|
145
|
+
const slotNumbers = [1, 2, 3, 69, 72, 74, 88, 420];
|
|
146
|
+
const attestations = (await Promise.all(slotNumbers.map(slotNumber => createAttestationsForSlot(slotNumber)))).flat();
|
|
180
147
|
const proposalId = attestations[0].archive.toString();
|
|
181
148
|
await ap.addAttestations(attestations);
|
|
182
149
|
const attestationsForSlot1 = await ap.getAttestationsForSlot(BigInt(1), proposalId);
|
|
@@ -193,3 +160,4 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
193
160
|
expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(72));
|
|
194
161
|
});
|
|
195
162
|
}
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25fcG9vbF90ZXN0X3N1aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2F0dGVzdGF0aW9uX3Bvb2xfdGVzdF9zdWl0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQWtCLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQUM7QUFFckMsTUFBTSxVQUFVLHVCQUF1QixDQUFDLGtCQUF5QztJQUMvRSxJQUFJLEVBQW1CLENBQUM7SUFDeEIsSUFBSSxPQUEwQixDQUFDO0lBRS9CLDRDQUE0QztJQUM1QyxJQUFJLFdBQTZELENBQUM7SUFFbEUsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLDBCQUEwQixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFN0YsV0FBVyxHQUFHLElBQUksRUFBeUMsQ0FBQztRQUM1RCxtQ0FBbUM7UUFDbEMsRUFBVSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLHlCQUF5QixHQUFHLENBQUMsVUFBa0IsRUFBRSxFQUFFO1FBQ3ZE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TSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkQsTUFBTSxZQUFZLEdBQUcsQ0FDbkIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQ3hGLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXRELE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV2QyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sRUFBRSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwRixNQUFNLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6RCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFFMUUsTUFBTSxFQUFFLENBQUMsMkJBQTJCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFakQsTUFBTSwrQkFBK0IsR0FBRyxNQUFNLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0YsTUFBTSxDQUFDLCtCQUErQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
|
|
@@ -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,2 +1,3 @@
|
|
|
1
1
|
export * from './attestation_pool.js';
|
|
2
2
|
export * from './memory_attestation_pool.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2F0dGVzdGF0aW9uX3Bvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDIn0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BlockAttestation } from '@aztec/circuit-types';
|
|
2
|
+
import { type AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
4
|
+
import { type AttestationPool } from './attestation_pool.js';
|
|
5
|
+
export declare class KvAttestationPool implements AttestationPool {
|
|
6
|
+
private store;
|
|
7
|
+
private log;
|
|
8
|
+
private metrics;
|
|
9
|
+
private attestations;
|
|
10
|
+
private proposalsForSlot;
|
|
11
|
+
private attestationsForProposal;
|
|
12
|
+
constructor(store: AztecAsyncKVStore, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
|
|
13
|
+
private getProposalKey;
|
|
14
|
+
private getAttestationKey;
|
|
15
|
+
addAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
16
|
+
getAttestationsForSlot(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
|
|
17
|
+
deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void>;
|
|
18
|
+
deleteAttestationsForSlot(slot: bigint): Promise<void>;
|
|
19
|
+
deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
|
|
20
|
+
deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=kv_attestation_pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kv_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/kv_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,KAAK,iBAAiB,EAA+C,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,iBAAkB,YAAW,eAAe;IAQrD,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IATb,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,uBAAuB,CAAqC;gBAG1D,KAAK,EAAE,iBAAiB,EAChC,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAyC;IAStD,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAIZ,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhE,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsBrF,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBjF"}
|
|
@@ -5,13 +5,7 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
5
5
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
6
6
|
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
7
7
|
export class KvAttestationPool {
|
|
8
|
-
store
|
|
9
|
-
log;
|
|
10
|
-
metrics;
|
|
11
|
-
attestations;
|
|
12
|
-
proposalsForSlot;
|
|
13
|
-
attestationsForProposal;
|
|
14
|
-
constructor(store, telemetry = getTelemetryClient(), log = createLogger('aztec:attestation_pool')){
|
|
8
|
+
constructor(store, telemetry = getTelemetryClient(), log = createLogger('aztec:attestation_pool')) {
|
|
15
9
|
this.store = store;
|
|
16
10
|
this.log = log;
|
|
17
11
|
this.attestations = store.openMap('attestations');
|
|
@@ -21,15 +15,19 @@ export class KvAttestationPool {
|
|
|
21
15
|
}
|
|
22
16
|
getProposalKey(slot, proposalId) {
|
|
23
17
|
const slotStr = typeof slot === 'string' ? slot : new Fr(slot).toString();
|
|
24
|
-
const proposalIdStr = typeof proposalId === 'string'
|
|
18
|
+
const proposalIdStr = typeof proposalId === 'string'
|
|
19
|
+
? proposalId
|
|
20
|
+
: Buffer.isBuffer(proposalId)
|
|
21
|
+
? Fr.fromBuffer(proposalId).toString()
|
|
22
|
+
: proposalId.toString();
|
|
25
23
|
return `${slotStr}-${proposalIdStr}`;
|
|
26
24
|
}
|
|
27
25
|
getAttestationKey(slot, proposalId, address) {
|
|
28
26
|
return `${this.getProposalKey(slot, proposalId)}-${address}`;
|
|
29
27
|
}
|
|
30
28
|
async addAttestations(attestations) {
|
|
31
|
-
await this.store.transactionAsync(async ()=>{
|
|
32
|
-
for (const attestation of attestations){
|
|
29
|
+
await this.store.transactionAsync(async () => {
|
|
30
|
+
for (const attestation of attestations) {
|
|
33
31
|
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
34
32
|
const proposalId = attestation.archive;
|
|
35
33
|
const address = (await attestation.getSender()).toString();
|
|
@@ -45,7 +43,7 @@ export class KvAttestationPool {
|
|
|
45
43
|
const attestationIds = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)));
|
|
46
44
|
const attestations = [];
|
|
47
45
|
// alternatively iterate this.attestaions starting from slot-proposal-EthAddress.zero
|
|
48
|
-
for (const id of attestationIds){
|
|
46
|
+
for (const id of attestationIds) {
|
|
49
47
|
const buf = await this.attestations.getAsync(id);
|
|
50
48
|
if (!buf) {
|
|
51
49
|
// this should not happen unless we lost writes
|
|
@@ -57,22 +55,20 @@ export class KvAttestationPool {
|
|
|
57
55
|
return attestations;
|
|
58
56
|
}
|
|
59
57
|
async deleteAttestationsOlderThan(oldestSlot) {
|
|
60
|
-
const olderThan = await toArray(this.proposalsForSlot.keysAsync({
|
|
61
|
-
|
|
62
|
-
}));
|
|
63
|
-
for (const oldSlot of olderThan){
|
|
58
|
+
const olderThan = await toArray(this.proposalsForSlot.keysAsync({ end: new Fr(oldestSlot).toString() }));
|
|
59
|
+
for (const oldSlot of olderThan) {
|
|
64
60
|
await this.deleteAttestationsForSlot(BigInt(oldSlot));
|
|
65
61
|
}
|
|
66
62
|
}
|
|
67
63
|
async deleteAttestationsForSlot(slot) {
|
|
68
64
|
const slotFr = new Fr(slot);
|
|
69
65
|
let numberOfAttestations = 0;
|
|
70
|
-
await this.store.transactionAsync(async ()=>{
|
|
66
|
+
await this.store.transactionAsync(async () => {
|
|
71
67
|
const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
|
|
72
|
-
for (const proposalId of proposalIds){
|
|
68
|
+
for (const proposalId of proposalIds) {
|
|
73
69
|
const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slotFr, proposalId)));
|
|
74
70
|
numberOfAttestations += attestations.length;
|
|
75
|
-
for (const attestation of attestations){
|
|
71
|
+
for (const attestation of attestations) {
|
|
76
72
|
await this.attestations.delete(attestation);
|
|
77
73
|
}
|
|
78
74
|
await this.attestationsForProposal.delete(this.getProposalKey(slotFr, proposalId));
|
|
@@ -83,11 +79,11 @@ export class KvAttestationPool {
|
|
|
83
79
|
}
|
|
84
80
|
async deleteAttestationsForSlotAndProposal(slot, proposalId) {
|
|
85
81
|
let numberOfAttestations = 0;
|
|
86
|
-
await this.store.transactionAsync(async ()=>{
|
|
82
|
+
await this.store.transactionAsync(async () => {
|
|
87
83
|
const slotString = new Fr(slot).toString();
|
|
88
84
|
const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)));
|
|
89
85
|
numberOfAttestations += attestations.length;
|
|
90
|
-
for (const attestation of attestations){
|
|
86
|
+
for (const attestation of attestations) {
|
|
91
87
|
await this.attestations.delete(attestation);
|
|
92
88
|
}
|
|
93
89
|
await this.proposalsForSlot.deleteValue(slotString, proposalId);
|
|
@@ -97,8 +93,8 @@ export class KvAttestationPool {
|
|
|
97
93
|
this.metrics.recordRemovedObjects(numberOfAttestations);
|
|
98
94
|
}
|
|
99
95
|
async deleteAttestations(attestations) {
|
|
100
|
-
await this.store.transactionAsync(async ()=>{
|
|
101
|
-
for (const attestation of attestations){
|
|
96
|
+
await this.store.transactionAsync(async () => {
|
|
97
|
+
for (const attestation of attestations) {
|
|
102
98
|
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
103
99
|
const proposalId = attestation.archive;
|
|
104
100
|
const address = (await attestation.getSender()).toString();
|
|
@@ -110,3 +106,4 @@ export class KvAttestationPool {
|
|
|
110
106
|
this.metrics.recordRemovedObjects(attestations.length);
|
|
111
107
|
}
|
|
112
108
|
}
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXR0ZXN0YXRpb25fcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9rdl9hdHRlc3RhdGlvbl9wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBd0Isa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHdEUsTUFBTSxPQUFPLGlCQUFpQjtJQU81QixZQUNVLEtBQXdCLEVBQ2hDLFlBQTZCLGtCQUFrQixFQUFFLEVBQ3pDLE1BQU0sWUFBWSxDQUFDLHdCQUF3QixDQUFDO1FBRjVDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBRXhCLFFBQUcsR0FBSCxHQUFHLENBQXlDO1FBRXBELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQW1DLEVBQUUsVUFBZ0M7UUFDMUYsTUFBTSxPQUFPLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFFLE1BQU0sYUFBYSxHQUNqQixPQUFPLFVBQVUsS0FBSyxRQUFRO1lBQzVCLENBQUMsQ0FBQyxVQUFVO1lBQ1osQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUM3QixDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFNUIsT0FBTyxHQUFHLE9BQU8sSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBbUMsRUFBRSxVQUF1QixFQUFFLE9BQWU7UUFDckcsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZSxDQUFDLFlBQWdDO1FBQzNELE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUMzQyxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUN2QyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO2dCQUN6RSxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRTNELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBRTdHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzlFLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUN4RCxDQUFDO2dCQUVGLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLDhCQUE4QixVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQVksRUFBRSxVQUFrQjtRQUNsRSxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FDbEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUNuRixDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQXVCLEVBQUUsQ0FBQztRQUU1QyxxRkFBcUY7UUFDckYsS0FBSyxNQUFNLEVBQUUsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWpELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCwrQ0FBK0M7Z0JBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUVELE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyRCxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRU0sS0FBSyxDQUFDLDJCQUEyQixDQUFDLFVBQWtCO1FBQ3pELE1BQU0sU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekcsS0FBSyxNQUFNLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxJQUFZO1FBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUMzQyxNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0YsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQ2hDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FDckYsQ0FBQztnQkFFRixvQkFBb0IsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO2dCQUM1QyxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUN2QyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO2dCQUVELE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsb0JBQW9CLDBCQUEwQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sS0FBSyxDQUFDLG9DQUFvQyxDQUFDLElBQVksRUFBRSxVQUFrQjtRQUNoRixJQUFJLG9CQUFvQixHQUFHLENBQUMsQ0FBQztRQUM3QixNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQ2hDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FDbkYsQ0FBQztZQUVGLG9CQUFvQixJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUM7WUFDNUMsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBRUQsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNoRSxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN6RixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsb0JBQW9CLDBCQUEwQixJQUFJLGlCQUFpQixVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLFlBQWdDO1FBQzlELE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUMzQyxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUN2QyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO2dCQUN6RSxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRTNELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDeEYsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQ3hELENBQUM7Z0JBRUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQy9FLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type BlockAttestation } from '@aztec/circuit-types';
|
|
2
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
+
import { type AttestationPool } from './attestation_pool.js';
|
|
4
|
+
export declare class InMemoryAttestationPool implements AttestationPool {
|
|
5
|
+
#private;
|
|
6
|
+
private log;
|
|
7
|
+
private metrics;
|
|
8
|
+
private attestations;
|
|
9
|
+
constructor(telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
|
|
10
|
+
getAttestationsForSlot(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
|
|
11
|
+
addAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
12
|
+
deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void>;
|
|
13
|
+
deleteAttestationsForSlot(slot: bigint): Promise<void>;
|
|
14
|
+
deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
|
|
15
|
+
deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# 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,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,uBAAwB,YAAW,eAAe;;IAKE,OAAO,CAAC,GAAG;IAJ1E,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgG;gBAExG,SAAS,GAAE,eAAsC,EAAU,GAAG,yCAAuC;IAK1G,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAW/E,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgChE,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpE,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;IAe/E,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBjF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
var _InMemoryAttestationPool_instances, _InMemoryAttestationPool_getNumberOfAttestationsInSlot;
|
|
2
|
+
import { __classPrivateFieldGet } from "tslib";
|
|
1
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
4
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
3
5
|
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
4
6
|
export class InMemoryAttestationPool {
|
|
5
|
-
log
|
|
6
|
-
|
|
7
|
-
attestations;
|
|
8
|
-
constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:attestation_pool')){
|
|
7
|
+
constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:attestation_pool')) {
|
|
8
|
+
_InMemoryAttestationPool_instances.add(this);
|
|
9
9
|
this.log = log;
|
|
10
10
|
this.attestations = new Map();
|
|
11
11
|
this.metrics = new PoolInstrumentation(telemetry, PoolName.ATTESTATION_POOL);
|
|
@@ -21,7 +21,7 @@ export class InMemoryAttestationPool {
|
|
|
21
21
|
return Promise.resolve([]);
|
|
22
22
|
}
|
|
23
23
|
async addAttestations(attestations) {
|
|
24
|
-
for (const attestation of attestations){
|
|
24
|
+
for (const attestation of attestations) {
|
|
25
25
|
// Perf: order and group by slot before insertion
|
|
26
26
|
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
27
27
|
const proposalId = attestation.archive.toString();
|
|
@@ -35,37 +35,28 @@ export class InMemoryAttestationPool {
|
|
|
35
35
|
this.metrics.recordAddedObjects(attestations.length);
|
|
36
36
|
return Promise.resolve();
|
|
37
37
|
}
|
|
38
|
-
#getNumberOfAttestationsInSlot(slot) {
|
|
39
|
-
let total = 0;
|
|
40
|
-
const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
|
|
41
|
-
if (slotAttestationMap) {
|
|
42
|
-
for (const proposalAttestationMap of slotAttestationMap.values() ?? []){
|
|
43
|
-
total += proposalAttestationMap.size;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return total;
|
|
47
|
-
}
|
|
48
38
|
async deleteAttestationsOlderThan(oldestSlot) {
|
|
49
39
|
const olderThan = [];
|
|
50
40
|
// Entries are iterated in insertion order, so we can break as soon as we find a slot that is older than the oldestSlot.
|
|
51
41
|
// Note: this will only prune correctly if attestations are added in order of rising slot, it is important that we do not allow
|
|
52
42
|
// insertion of attestations that are old. #(https://github.com/AztecProtocol/aztec-packages/issues/10322)
|
|
53
43
|
const slots = this.attestations.keys();
|
|
54
|
-
for (const slot of slots){
|
|
44
|
+
for (const slot of slots) {
|
|
55
45
|
if (slot < oldestSlot) {
|
|
56
46
|
olderThan.push(slot);
|
|
57
|
-
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
58
49
|
break;
|
|
59
50
|
}
|
|
60
51
|
}
|
|
61
|
-
for (const oldSlot of olderThan){
|
|
52
|
+
for (const oldSlot of olderThan) {
|
|
62
53
|
await this.deleteAttestationsForSlot(oldSlot);
|
|
63
54
|
}
|
|
64
55
|
return Promise.resolve();
|
|
65
56
|
}
|
|
66
57
|
deleteAttestationsForSlot(slot) {
|
|
67
58
|
// We count the number of attestations we are removing
|
|
68
|
-
const numberOfAttestations = this
|
|
59
|
+
const numberOfAttestations = __classPrivateFieldGet(this, _InMemoryAttestationPool_instances, "m", _InMemoryAttestationPool_getNumberOfAttestationsInSlot).call(this, slot);
|
|
69
60
|
this.attestations.delete(slot);
|
|
70
61
|
this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot}`);
|
|
71
62
|
this.metrics.recordRemovedObjects(numberOfAttestations);
|
|
@@ -84,7 +75,7 @@ export class InMemoryAttestationPool {
|
|
|
84
75
|
return Promise.resolve();
|
|
85
76
|
}
|
|
86
77
|
async deleteAttestations(attestations) {
|
|
87
|
-
for (const attestation of attestations){
|
|
78
|
+
for (const attestation of attestations) {
|
|
88
79
|
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
89
80
|
const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
|
|
90
81
|
if (slotAttestationMap) {
|
|
@@ -101,6 +92,16 @@ export class InMemoryAttestationPool {
|
|
|
101
92
|
return Promise.resolve();
|
|
102
93
|
}
|
|
103
94
|
}
|
|
95
|
+
_InMemoryAttestationPool_instances = new WeakSet(), _InMemoryAttestationPool_getNumberOfAttestationsInSlot = function _InMemoryAttestationPool_getNumberOfAttestationsInSlot(slot) {
|
|
96
|
+
let total = 0;
|
|
97
|
+
const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
|
|
98
|
+
if (slotAttestationMap) {
|
|
99
|
+
for (const proposalAttestationMap of slotAttestationMap.values() ?? []) {
|
|
100
|
+
total += proposalAttestationMap.size;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return total;
|
|
104
|
+
};
|
|
104
105
|
/**
|
|
105
106
|
* Get Slot or Default
|
|
106
107
|
*
|
|
@@ -108,7 +109,8 @@ export class InMemoryAttestationPool {
|
|
|
108
109
|
* @param map - The map to fetch from
|
|
109
110
|
* @param slot - The slot to fetch
|
|
110
111
|
* @returns The slot mapping
|
|
111
|
-
*/
|
|
112
|
+
*/
|
|
113
|
+
function getSlotOrDefault(map, slot) {
|
|
112
114
|
if (!map.has(slot)) {
|
|
113
115
|
map.set(slot, new Map());
|
|
114
116
|
}
|
|
@@ -121,9 +123,11 @@ export class InMemoryAttestationPool {
|
|
|
121
123
|
* @param map - The map to fetch from
|
|
122
124
|
* @param proposalId - The proposal id to fetch
|
|
123
125
|
* @returns The proposal mapping
|
|
124
|
-
*/
|
|
126
|
+
*/
|
|
127
|
+
function getProposalOrDefault(map, proposalId) {
|
|
125
128
|
if (!map.has(proposalId)) {
|
|
126
129
|
map.set(proposalId, new Map());
|
|
127
130
|
}
|
|
128
131
|
return map.get(proposalId);
|
|
129
132
|
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2F0dGVzdGF0aW9uX3Bvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2F0dGVzdGF0aW9uX3Bvb2wvbWVtb3J5X2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RSxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQVksWUFBNkIsa0JBQWtCLEVBQUUsRUFBVSxNQUFNLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQzs7UUFBMUMsUUFBRyxHQUFILEdBQUcsQ0FBdUM7UUFDL0csSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVNLHNCQUFzQixDQUFDLElBQVksRUFBRSxVQUFrQjtRQUM1RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixNQUFNLHNCQUFzQixHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQzNCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0RSxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8s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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BlockAttestation, TxHash } from '@aztec/circuit-types';
|
|
2
|
+
import { type Secp256k1Signer } from '@aztec/foundation/crypto';
|
|
3
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
+
import { type LocalAccount } from 'viem/accounts';
|
|
5
|
+
/** Generate Account
|
|
6
|
+
*
|
|
7
|
+
* Create a random signer
|
|
8
|
+
* @returns A random viem signer
|
|
9
|
+
*/
|
|
10
|
+
export declare const generateAccount: () => LocalAccount;
|
|
11
|
+
/** Mock Attestation
|
|
12
|
+
*
|
|
13
|
+
* @param signer A viem signer to create a signature
|
|
14
|
+
* @param slot The slot number the attestation is for
|
|
15
|
+
* @returns A Block Attestation
|
|
16
|
+
*/
|
|
17
|
+
export declare const mockAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr, txs?: TxHash[]) => Promise<BlockAttestation>;
|
|
18
|
+
//# 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,EACL,gBAAgB,EAGhB,MAAM,EAEP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,YAAY,EAA2C,MAAM,eAAe,CAAC;AAE3F;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAO,YAGlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,WAClB,eAAe,SACjB,MAAM,YACH,EAAE,QACN,MAAM,EAAE,KACZ,QAAQ,gBAAgB,CAS1B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BlockAttestation, ConsensusPayload, SignatureDomainSeparator, TxHash, getHashedSignaturePayloadEthSignedMessage } from '@aztec/circuit-types';
|
|
1
|
+
import { BlockAttestation, ConsensusPayload, SignatureDomainSeparator, TxHash, getHashedSignaturePayloadEthSignedMessage, } from '@aztec/circuit-types';
|
|
2
2
|
import { makeHeader } from '@aztec/circuits.js/testing';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
@@ -6,7 +6,8 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
|
6
6
|
*
|
|
7
7
|
* Create a random signer
|
|
8
8
|
* @returns A random viem signer
|
|
9
|
-
*/
|
|
9
|
+
*/
|
|
10
|
+
export const generateAccount = () => {
|
|
10
11
|
const privateKey = generatePrivateKey();
|
|
11
12
|
return privateKeyToAccount(privateKey);
|
|
12
13
|
};
|
|
@@ -15,14 +16,8 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
|
15
16
|
* @param signer A viem signer to create a signature
|
|
16
17
|
* @param slot The slot number the attestation is for
|
|
17
18
|
* @returns A Block Attestation
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
1,
|
|
21
|
-
2,
|
|
22
|
-
3,
|
|
23
|
-
4,
|
|
24
|
-
5
|
|
25
|
-
].map(()=>TxHash.random()))=>{
|
|
19
|
+
*/
|
|
20
|
+
export const mockAttestation = async (signer, slot = 0, archive = Fr.random(), txs = [0, 1, 2, 3, 4, 5].map(() => TxHash.random())) => {
|
|
26
21
|
// Use arbitrary numbers for all other than slot
|
|
27
22
|
const header = makeHeader(1, 2, slot);
|
|
28
23
|
const payload = new ConsensusPayload(header, archive, txs);
|
|
@@ -30,3 +25,4 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
|
30
25
|
const signature = signer.sign(hash);
|
|
31
26
|
return new BlockAttestation(payload, signature);
|
|
32
27
|
};
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2F0dGVzdGF0aW9uX3Bvb2wvbW9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBQ3hCLE1BQU0sRUFDTix5Q0FBeUMsR0FDMUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFBcUIsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0Y7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFpQixFQUFFO0lBQ2hELE1BQU0sVUFBVSxHQUFHLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQ2xDLE1BQXVCLEVBQ3ZCLE9BQWUsQ0FBQyxFQUNoQixVQUFjLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFDekIsTUFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFDbEMsRUFBRTtJQUM3QixnREFBZ0Q7SUFDaEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTNELE1BQU0sSUFBSSxHQUFHLE1BQU0seUNBQXlDLENBQUMsT0FBTyxFQUFFLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakgsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyJ9
|
|
@@ -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"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './epoch_proof_quote_pool.js';
|
|
2
2
|
export * from './memory_epoch_proof_quote_pool.js';
|
|
3
3
|
export * from './test_utils.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2Vwb2NoX3Byb29mX3F1b3RlX3Bvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUJBQWlCLENBQUMifQ==
|