@aztec/p2p 3.0.0-devnet.6 → 3.0.0-devnet.6-patch.1
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 +1 -1
- package/dest/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/client/factory.d.ts +1 -1
- package/dest/client/index.d.ts +1 -1
- package/dest/client/interface.d.ts +4 -2
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +8 -26
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +31 -24
- package/dest/config.d.ts +60 -54
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +12 -2
- package/dest/enr/generate-enr.d.ts +1 -1
- package/dest/enr/index.d.ts +1 -1
- package/dest/errors/attestation-pool.error.d.ts +7 -0
- package/dest/errors/attestation-pool.error.d.ts.map +1 -0
- package/dest/errors/attestation-pool.error.js +12 -0
- package/dest/errors/reqresp.error.d.ts +1 -1
- package/dest/errors/reqresp.error.d.ts.map +1 -1
- package/dest/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +43 -6
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +67 -34
- package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +15 -6
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +57 -18
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +13 -6
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +51 -7
- package/dest/mem_pools/attestation_pool/mocks.d.ts +226 -5
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/mocks.js +2 -2
- package/dest/mem_pools/index.d.ts +1 -1
- package/dest/mem_pools/instrumentation.d.ts +3 -1
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +11 -2
- package/dest/mem_pools/interface.d.ts +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +5 -38
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +9 -3
- package/dest/mem_pools/tx_pool/index.d.ts +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +5 -3
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +7 -0
- package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +10 -3
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +5 -4
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -3
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +12 -12
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
- package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
- package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/index.js +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +1 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +22 -10
- package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
- package/dest/msg_validators/index.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
- package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
- package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.d.ts +4 -3
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.js +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.d.ts +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +3 -1
- package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
- package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +3 -2
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
- package/dest/services/data_store.d.ts +1 -1
- package/dest/services/data_store.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.d.ts +1 -1
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/dummy_service.d.ts +1 -1
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/encoding.d.ts +25 -4
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +74 -6
- package/dest/services/gossipsub/scoring.d.ts +1 -1
- package/dest/services/index.d.ts +1 -1
- package/dest/services/libp2p/instrumentation.d.ts +3 -1
- package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
- package/dest/services/libp2p/instrumentation.js +9 -2
- package/dest/services/libp2p/libp2p_service.d.ts +25 -74
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +308 -84
- package/dest/services/peer-manager/interface.d.ts +1 -1
- package/dest/services/peer-manager/metrics.d.ts +3 -1
- package/dest/services/peer-manager/metrics.d.ts.map +1 -1
- package/dest/services/peer-manager/metrics.js +11 -0
- package/dest/services/peer-manager/peer_manager.d.ts +1 -32
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +4 -2
- package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +40 -2
- package/dest/services/reqresp/config.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -4
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/index.d.ts +1 -1
- package/dest/services/reqresp/interface.d.ts +2 -2
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +1 -1
- package/dest/services/reqresp/metrics.d.ts +1 -1
- package/dest/services/reqresp/metrics.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/auth.d.ts +2 -2
- package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/auth.js +2 -2
- package/dest/services/reqresp/protocols/block.d.ts +1 -1
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block.js +3 -2
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +4 -6
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +1 -1
- package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/index.d.ts +1 -1
- package/dest/services/reqresp/protocols/ping.d.ts +1 -1
- package/dest/services/reqresp/protocols/status.d.ts +6 -5
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.js +4 -3
- package/dest/services/reqresp/protocols/tx.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
- package/dest/services/reqresp/reqresp.d.ts +1 -41
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +2 -2
- package/dest/services/reqresp/status.d.ts +2 -2
- package/dest/services/reqresp/status.d.ts.map +1 -1
- package/dest/services/service.d.ts +1 -1
- package/dest/services/tx_collection/config.d.ts +1 -1
- package/dest/services/tx_collection/fast_tx_collection.d.ts +4 -9
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/index.d.ts +1 -1
- package/dest/services/tx_collection/instrumentation.d.ts +1 -1
- package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.d.ts +6 -7
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.js +2 -1
- package/dest/services/tx_collection/tx_collection.d.ts +11 -11
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_source.d.ts +1 -1
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
- package/dest/services/tx_provider.d.ts +5 -4
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider_instrumentation.d.ts +1 -1
- package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
- package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
- package/dest/test-helpers/get-ports.d.ts +1 -1
- package/dest/test-helpers/get-ports.d.ts.map +1 -1
- package/dest/test-helpers/index.d.ts +1 -1
- package/dest/test-helpers/make-enrs.d.ts +1 -1
- package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/mock-pubsub.d.ts +4 -4
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
- package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
- package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
- package/dest/test-helpers/mock-tx-helpers.js +1 -1
- package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +14 -8
- package/dest/testbench/parse_log_file.d.ts +1 -1
- package/dest/testbench/testbench.d.ts +1 -1
- package/dest/testbench/testbench.js +2 -2
- package/dest/testbench/worker_client_manager.d.ts +1 -1
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/types/index.d.ts +1 -1
- package/dest/util.d.ts +2 -1
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +11 -2
- package/dest/versioning.d.ts +1 -1
- package/package.json +19 -18
- package/src/client/interface.ts +4 -1
- package/src/client/p2p_client.ts +51 -43
- package/src/config.ts +19 -2
- package/src/errors/attestation-pool.error.ts +13 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +46 -5
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +84 -34
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +87 -24
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +77 -15
- package/src/mem_pools/attestation_pool/mocks.ts +3 -3
- package/src/mem_pools/instrumentation.ts +13 -0
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +15 -9
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +13 -6
- package/src/mem_pools/tx_pool/tx_pool.ts +10 -2
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +5 -4
- package/src/msg_validators/attestation_validator/attestation_validator.ts +14 -16
- package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
- package/src/msg_validators/attestation_validator/index.ts +1 -0
- package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +26 -10
- package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
- package/src/msg_validators/tx_validator/block_header_validator.ts +1 -1
- package/src/msg_validators/tx_validator/factory.ts +3 -2
- package/src/msg_validators/tx_validator/metadata_validator.ts +1 -1
- package/src/msg_validators/tx_validator/phases_validator.ts +3 -1
- package/src/msg_validators/tx_validator/test_utils.ts +1 -1
- package/src/msg_validators/tx_validator/timestamp_validator.ts +2 -1
- package/src/services/encoding.ts +81 -6
- package/src/services/libp2p/instrumentation.ts +10 -1
- package/src/services/libp2p/libp2p_service.ts +334 -91
- package/src/services/peer-manager/metrics.ts +10 -0
- package/src/services/peer-manager/peer_manager.ts +4 -2
- package/src/services/peer-manager/peer_scoring.ts +46 -3
- package/src/services/reqresp/interface.ts +1 -1
- package/src/services/reqresp/protocols/auth.ts +2 -2
- package/src/services/reqresp/protocols/block.ts +3 -2
- package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +1 -1
- package/src/services/reqresp/protocols/status.ts +9 -8
- package/src/services/reqresp/reqresp.ts +2 -2
- package/src/services/tx_collection/fast_tx_collection.ts +3 -2
- package/src/services/tx_collection/slow_tx_collection.ts +7 -6
- package/src/services/tx_collection/tx_collection.ts +10 -9
- package/src/services/tx_provider.ts +4 -3
- package/src/test-helpers/mock-tx-helpers.ts +1 -1
- package/src/testbench/p2p_client_testbench_worker.ts +11 -5
- package/src/testbench/testbench.ts +2 -2
- package/src/util.ts +12 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import type { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
|
|
2
3
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
4
|
import type { AttestationPool } from './attestation_pool.js';
|
|
@@ -10,14 +11,20 @@ export declare class InMemoryAttestationPool implements AttestationPool {
|
|
|
10
11
|
constructor(telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
|
|
11
12
|
private poolStats;
|
|
12
13
|
isEmpty(): Promise<boolean>;
|
|
13
|
-
getAttestationsForSlot(slot:
|
|
14
|
-
getAttestationsForSlotAndProposal(slot:
|
|
14
|
+
getAttestationsForSlot(slot: SlotNumber): Promise<BlockAttestation[]>;
|
|
15
|
+
getAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<BlockAttestation[]>;
|
|
15
16
|
addAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
16
|
-
deleteAttestationsOlderThan(oldestSlot:
|
|
17
|
-
deleteAttestationsForSlot(slot:
|
|
18
|
-
deleteAttestationsForSlotAndProposal(slot:
|
|
17
|
+
deleteAttestationsOlderThan(oldestSlot: SlotNumber): Promise<void>;
|
|
18
|
+
deleteAttestationsForSlot(slot: SlotNumber): Promise<void>;
|
|
19
|
+
deleteAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<void>;
|
|
19
20
|
deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
21
|
+
hasAttestation(attestation: BlockAttestation): Promise<boolean>;
|
|
20
22
|
addBlockProposal(blockProposal: BlockProposal): Promise<void>;
|
|
21
23
|
getBlockProposal(id: string): Promise<BlockProposal | undefined>;
|
|
24
|
+
hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
|
|
25
|
+
hasReachedProposalCap(slot: SlotNumber): Promise<boolean>;
|
|
26
|
+
hasReachedAttestationCap(slot: SlotNumber, proposalId: string, committeeSize: number): Promise<boolean>;
|
|
27
|
+
canAddProposal(block: BlockProposal): Promise<boolean>;
|
|
28
|
+
canAddAttestation(attestation: BlockAttestation, committeeSize: number): Promise<boolean>;
|
|
22
29
|
}
|
|
23
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2F0dGVzdGF0aW9uX3Bvb2wuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tZW1vcnlfYXR0ZXN0YXRpb25fcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFHbkYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHN0QscUJBQWEsdUJBQXdCLFlBQVcsZUFBZTs7SUFZM0QsT0FBTyxDQUFDLEdBQUc7SUFYYixPQUFPLENBQUMsT0FBTyxDQUF3QztJQUd2RCxPQUFPLENBQUMsWUFBWSxDQUdsQjtJQUNGLE9BQU8sQ0FBQyxTQUFTLENBQTZCO0lBRTlDLFlBQ0UsU0FBUyxHQUFFLGVBQXNDLEVBQ3pDLEdBQUcseUNBQXVDLEVBS25EO0lBRUQsT0FBTyxDQUFDLFNBQVMsQ0FJZjtJQUVLLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWpDO0lBRU0sc0JBQXNCLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQU0zRTtJQUVNLGlDQUFpQyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQVMxRztJQUVNLGVBQWUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBK0J0RTtJQWNZLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW1COUU7SUFFTSx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FnQmhFO0lBRU0sb0NBQW9DLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjL0Y7SUFFTSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBc0J6RTtJQUVNLGNBQWMsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQXFCckU7SUFFTSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FRbkU7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBRXRFO0lBRU0sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc5RTtJQUVNLHFCQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUkvRDtJQUVNLHdCQUF3QixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FJN0c7SUFFWSxjQUFjLENBQUMsS0FBSyxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWxFO0lBRVksaUJBQWlCLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVNyRztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,qBAAa,uBAAwB,YAAW,eAAe;;IAY3D,OAAO,CAAC,GAAG;IAXb,OAAO,CAAC,OAAO,CAAwC;IAGvD,OAAO,CAAC,YAAY,CAGlB;IACF,OAAO,CAAC,SAAS,CAA6B;IAE9C,YACE,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAuC,EAKnD;IAED,OAAO,CAAC,SAAS,CAIf;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAEjC;IAEM,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAM3E;IAEM,iCAAiC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAS1G;IAEM,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BtE;IAcY,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9E;IAEM,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhE;IAEM,oCAAoC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc/F;IAEM,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBzE;IAEM,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBrE;IAEM,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnE;IAEM,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEtE;IAEM,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9E;IAEM,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/D;IAEM,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI7G;IAEY,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAElE;IAEY,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrG;CACF"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
3
3
|
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
4
|
+
import { ATTESTATION_CAP_BUFFER, MAX_PROPOSALS_PER_SLOT } from './kv_attestation_pool.js';
|
|
4
5
|
export class InMemoryAttestationPool {
|
|
5
6
|
log;
|
|
6
7
|
metrics;
|
|
8
|
+
// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
|
|
7
9
|
attestations;
|
|
8
10
|
proposals;
|
|
9
11
|
constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:attestation_pool')){
|
|
@@ -42,17 +44,17 @@ export class InMemoryAttestationPool {
|
|
|
42
44
|
const sender = attestation.getSender();
|
|
43
45
|
// Skip attestations with invalid signatures
|
|
44
46
|
if (!sender) {
|
|
45
|
-
this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber
|
|
47
|
+
this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber}`, {
|
|
46
48
|
signature: attestation.signature.toString(),
|
|
47
49
|
slotNumber,
|
|
48
50
|
proposalId
|
|
49
51
|
});
|
|
50
52
|
continue;
|
|
51
53
|
}
|
|
52
|
-
const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber
|
|
54
|
+
const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber);
|
|
53
55
|
const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
|
|
54
56
|
proposalAttestationMap.set(sender.toString(), attestation);
|
|
55
|
-
this.log.verbose(`Added attestation for slot ${slotNumber
|
|
57
|
+
this.log.verbose(`Added attestation for slot ${slotNumber} from ${sender}`, {
|
|
56
58
|
signature: attestation.signature.toString(),
|
|
57
59
|
slotNumber,
|
|
58
60
|
address: sender,
|
|
@@ -117,7 +119,7 @@ export class InMemoryAttestationPool {
|
|
|
117
119
|
deleteAttestations(attestations) {
|
|
118
120
|
for (const attestation of attestations){
|
|
119
121
|
const slotNumber = attestation.payload.header.slotNumber;
|
|
120
|
-
const slotAttestationMap = this.attestations.get(slotNumber
|
|
122
|
+
const slotAttestationMap = this.attestations.get(slotNumber);
|
|
121
123
|
if (slotAttestationMap) {
|
|
122
124
|
const proposalId = attestation.archive.toString();
|
|
123
125
|
const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
|
|
@@ -125,7 +127,7 @@ export class InMemoryAttestationPool {
|
|
|
125
127
|
const sender = attestation.getSender();
|
|
126
128
|
// Skip attestations with invalid signatures
|
|
127
129
|
if (!sender) {
|
|
128
|
-
this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber
|
|
130
|
+
this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber}`);
|
|
129
131
|
continue;
|
|
130
132
|
}
|
|
131
133
|
proposalAttestationMap.delete(sender.toString());
|
|
@@ -135,10 +137,28 @@ export class InMemoryAttestationPool {
|
|
|
135
137
|
}
|
|
136
138
|
return Promise.resolve();
|
|
137
139
|
}
|
|
140
|
+
hasAttestation(attestation) {
|
|
141
|
+
const slotNumber = attestation.payload.header.slotNumber;
|
|
142
|
+
const proposalId = attestation.archive.toString();
|
|
143
|
+
const sender = attestation.getSender();
|
|
144
|
+
// Attestations with invalid signatures are never in the pool
|
|
145
|
+
if (!sender) {
|
|
146
|
+
return Promise.resolve(false);
|
|
147
|
+
}
|
|
148
|
+
const slotAttestationMap = this.attestations.get(slotNumber);
|
|
149
|
+
if (!slotAttestationMap) {
|
|
150
|
+
return Promise.resolve(false);
|
|
151
|
+
}
|
|
152
|
+
const proposalAttestationMap = slotAttestationMap.get(proposalId);
|
|
153
|
+
if (!proposalAttestationMap) {
|
|
154
|
+
return Promise.resolve(false);
|
|
155
|
+
}
|
|
156
|
+
return Promise.resolve(proposalAttestationMap.has(sender.toString()));
|
|
157
|
+
}
|
|
138
158
|
addBlockProposal(blockProposal) {
|
|
139
159
|
// We initialize slot-proposal mapping if it does not exist
|
|
140
160
|
// This is important to ensure we can delete this proposal if there were not attestations for it
|
|
141
|
-
const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber
|
|
161
|
+
const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber);
|
|
142
162
|
slotProposalMapping.set(blockProposal.payload.archive.toString(), new Map());
|
|
143
163
|
this.proposals.set(blockProposal.payload.archive.toString(), blockProposal);
|
|
144
164
|
return Promise.resolve();
|
|
@@ -146,6 +166,29 @@ export class InMemoryAttestationPool {
|
|
|
146
166
|
getBlockProposal(id) {
|
|
147
167
|
return Promise.resolve(this.proposals.get(id));
|
|
148
168
|
}
|
|
169
|
+
hasBlockProposal(idOrProposal) {
|
|
170
|
+
const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.payload.archive.toString();
|
|
171
|
+
return Promise.resolve(this.proposals.has(id));
|
|
172
|
+
}
|
|
173
|
+
hasReachedProposalCap(slot) {
|
|
174
|
+
const slotAttestationMap = this.attestations.get(slot);
|
|
175
|
+
const proposalCount = slotAttestationMap?.size ?? 0;
|
|
176
|
+
return Promise.resolve(proposalCount >= MAX_PROPOSALS_PER_SLOT);
|
|
177
|
+
}
|
|
178
|
+
hasReachedAttestationCap(slot, proposalId, committeeSize) {
|
|
179
|
+
const limit = committeeSize + ATTESTATION_CAP_BUFFER;
|
|
180
|
+
const count = this.attestations.get(slot)?.get(proposalId)?.size ?? 0;
|
|
181
|
+
return Promise.resolve(limit <= 0 || count >= limit);
|
|
182
|
+
}
|
|
183
|
+
async canAddProposal(block) {
|
|
184
|
+
return this.proposals.has(block.archive.toString()) || !await this.hasReachedProposalCap(block.slotNumber);
|
|
185
|
+
}
|
|
186
|
+
async canAddAttestation(attestation, committeeSize) {
|
|
187
|
+
const sender = attestation.getSender();
|
|
188
|
+
const slot = attestation.payload.header.slotNumber;
|
|
189
|
+
const pid = attestation.archive.toString();
|
|
190
|
+
return !!sender && ((this.attestations.get(slot)?.get(pid)?.has(sender.toString()) ?? false) || !await this.hasReachedAttestationCap(slot, pid, committeeSize));
|
|
191
|
+
}
|
|
149
192
|
}
|
|
150
193
|
/**
|
|
151
194
|
* Get Slot or Default
|
|
@@ -154,7 +197,8 @@ export class InMemoryAttestationPool {
|
|
|
154
197
|
* @param map - The map to fetch from
|
|
155
198
|
* @param slot - The slot to fetch
|
|
156
199
|
* @returns The slot mapping
|
|
157
|
-
*/ function getSlotOrDefault(
|
|
200
|
+
*/ function getSlotOrDefault(// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
|
|
201
|
+
map, slot) {
|
|
158
202
|
if (!map.has(slot)) {
|
|
159
203
|
map.set(slot, new Map());
|
|
160
204
|
}
|
|
@@ -1,13 +1,234 @@
|
|
|
1
|
-
import type { Secp256k1Signer } from '@aztec/foundation/crypto';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import type { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { BlockAttestation } from '@aztec/stdlib/p2p';
|
|
4
|
-
import { type LocalAccount } from 'viem/accounts';
|
|
5
4
|
/** Generate Account
|
|
6
5
|
*
|
|
7
6
|
* Create a random signer
|
|
8
7
|
* @returns A random viem signer
|
|
9
8
|
*/
|
|
10
|
-
export declare const generateAccount: () =>
|
|
9
|
+
export declare const generateAccount: () => {
|
|
10
|
+
address: `0x${string}`;
|
|
11
|
+
nonceManager?: import("viem/accounts").NonceManager | undefined;
|
|
12
|
+
sign?: ((parameters: {
|
|
13
|
+
hash: `0x${string}`;
|
|
14
|
+
}) => Promise<`0x${string}`>) | undefined;
|
|
15
|
+
signAuthorization?: ((parameters: import("viem").AuthorizationRequest) => Promise<import("viem/accounts").SignAuthorizationReturnType>) | undefined;
|
|
16
|
+
signMessage: ({ message }: {
|
|
17
|
+
message: import("viem").SignableMessage;
|
|
18
|
+
}) => Promise<`0x${string}`>;
|
|
19
|
+
signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
|
|
20
|
+
serializer?: serializer | undefined;
|
|
21
|
+
} | undefined) => Promise<`0x${string}`>;
|
|
22
|
+
signTypedData: <const typedData extends Record<string, unknown> | {
|
|
23
|
+
[x: string]: readonly import("viem").TypedDataParameter[];
|
|
24
|
+
[x: `address[${string}]`]: undefined;
|
|
25
|
+
[x: `bool[${string}]`]: undefined;
|
|
26
|
+
[x: `bytes10[${string}]`]: undefined;
|
|
27
|
+
[x: `bytes11[${string}]`]: undefined;
|
|
28
|
+
[x: `bytes12[${string}]`]: undefined;
|
|
29
|
+
[x: `bytes13[${string}]`]: undefined;
|
|
30
|
+
[x: `bytes14[${string}]`]: undefined;
|
|
31
|
+
[x: `bytes15[${string}]`]: undefined;
|
|
32
|
+
[x: `bytes16[${string}]`]: undefined;
|
|
33
|
+
[x: `bytes17[${string}]`]: undefined;
|
|
34
|
+
[x: `bytes18[${string}]`]: undefined;
|
|
35
|
+
[x: `bytes19[${string}]`]: undefined;
|
|
36
|
+
[x: `bytes1[${string}]`]: undefined;
|
|
37
|
+
[x: `bytes20[${string}]`]: undefined;
|
|
38
|
+
[x: `bytes21[${string}]`]: undefined;
|
|
39
|
+
[x: `bytes22[${string}]`]: undefined;
|
|
40
|
+
[x: `bytes23[${string}]`]: undefined;
|
|
41
|
+
[x: `bytes24[${string}]`]: undefined;
|
|
42
|
+
[x: `bytes25[${string}]`]: undefined;
|
|
43
|
+
[x: `bytes26[${string}]`]: undefined;
|
|
44
|
+
[x: `bytes27[${string}]`]: undefined;
|
|
45
|
+
[x: `bytes28[${string}]`]: undefined;
|
|
46
|
+
[x: `bytes29[${string}]`]: undefined;
|
|
47
|
+
[x: `bytes2[${string}]`]: undefined;
|
|
48
|
+
[x: `bytes30[${string}]`]: undefined;
|
|
49
|
+
[x: `bytes31[${string}]`]: undefined;
|
|
50
|
+
[x: `bytes32[${string}]`]: undefined;
|
|
51
|
+
[x: `bytes3[${string}]`]: undefined;
|
|
52
|
+
[x: `bytes4[${string}]`]: undefined;
|
|
53
|
+
[x: `bytes5[${string}]`]: undefined;
|
|
54
|
+
[x: `bytes6[${string}]`]: undefined;
|
|
55
|
+
[x: `bytes7[${string}]`]: undefined;
|
|
56
|
+
[x: `bytes8[${string}]`]: undefined;
|
|
57
|
+
[x: `bytes9[${string}]`]: undefined;
|
|
58
|
+
[x: `bytes[${string}]`]: undefined;
|
|
59
|
+
[x: `function[${string}]`]: undefined;
|
|
60
|
+
[x: `int104[${string}]`]: undefined;
|
|
61
|
+
[x: `int112[${string}]`]: undefined;
|
|
62
|
+
[x: `int120[${string}]`]: undefined;
|
|
63
|
+
[x: `int128[${string}]`]: undefined;
|
|
64
|
+
[x: `int136[${string}]`]: undefined;
|
|
65
|
+
[x: `int144[${string}]`]: undefined;
|
|
66
|
+
[x: `int152[${string}]`]: undefined;
|
|
67
|
+
[x: `int160[${string}]`]: undefined;
|
|
68
|
+
[x: `int168[${string}]`]: undefined;
|
|
69
|
+
[x: `int16[${string}]`]: undefined;
|
|
70
|
+
[x: `int176[${string}]`]: undefined;
|
|
71
|
+
[x: `int184[${string}]`]: undefined;
|
|
72
|
+
[x: `int192[${string}]`]: undefined;
|
|
73
|
+
[x: `int200[${string}]`]: undefined;
|
|
74
|
+
[x: `int208[${string}]`]: undefined;
|
|
75
|
+
[x: `int216[${string}]`]: undefined;
|
|
76
|
+
[x: `int224[${string}]`]: undefined;
|
|
77
|
+
[x: `int232[${string}]`]: undefined;
|
|
78
|
+
[x: `int240[${string}]`]: undefined;
|
|
79
|
+
[x: `int248[${string}]`]: undefined;
|
|
80
|
+
[x: `int24[${string}]`]: undefined;
|
|
81
|
+
[x: `int256[${string}]`]: undefined;
|
|
82
|
+
[x: `int32[${string}]`]: undefined;
|
|
83
|
+
[x: `int40[${string}]`]: undefined;
|
|
84
|
+
[x: `int48[${string}]`]: undefined;
|
|
85
|
+
[x: `int56[${string}]`]: undefined;
|
|
86
|
+
[x: `int64[${string}]`]: undefined;
|
|
87
|
+
[x: `int72[${string}]`]: undefined;
|
|
88
|
+
[x: `int80[${string}]`]: undefined;
|
|
89
|
+
[x: `int88[${string}]`]: undefined;
|
|
90
|
+
[x: `int8[${string}]`]: undefined;
|
|
91
|
+
[x: `int96[${string}]`]: undefined;
|
|
92
|
+
[x: `int[${string}]`]: undefined;
|
|
93
|
+
[x: `string[${string}]`]: undefined;
|
|
94
|
+
[x: `uint104[${string}]`]: undefined;
|
|
95
|
+
[x: `uint112[${string}]`]: undefined;
|
|
96
|
+
[x: `uint120[${string}]`]: undefined;
|
|
97
|
+
[x: `uint128[${string}]`]: undefined;
|
|
98
|
+
[x: `uint136[${string}]`]: undefined;
|
|
99
|
+
[x: `uint144[${string}]`]: undefined;
|
|
100
|
+
[x: `uint152[${string}]`]: undefined;
|
|
101
|
+
[x: `uint160[${string}]`]: undefined;
|
|
102
|
+
[x: `uint168[${string}]`]: undefined;
|
|
103
|
+
[x: `uint16[${string}]`]: undefined;
|
|
104
|
+
[x: `uint176[${string}]`]: undefined;
|
|
105
|
+
[x: `uint184[${string}]`]: undefined;
|
|
106
|
+
[x: `uint192[${string}]`]: undefined;
|
|
107
|
+
[x: `uint200[${string}]`]: undefined;
|
|
108
|
+
[x: `uint208[${string}]`]: undefined;
|
|
109
|
+
[x: `uint216[${string}]`]: undefined;
|
|
110
|
+
[x: `uint224[${string}]`]: undefined;
|
|
111
|
+
[x: `uint232[${string}]`]: undefined;
|
|
112
|
+
[x: `uint240[${string}]`]: undefined;
|
|
113
|
+
[x: `uint248[${string}]`]: undefined;
|
|
114
|
+
[x: `uint24[${string}]`]: undefined;
|
|
115
|
+
[x: `uint256[${string}]`]: undefined;
|
|
116
|
+
[x: `uint32[${string}]`]: undefined;
|
|
117
|
+
[x: `uint40[${string}]`]: undefined;
|
|
118
|
+
[x: `uint48[${string}]`]: undefined;
|
|
119
|
+
[x: `uint56[${string}]`]: undefined;
|
|
120
|
+
[x: `uint64[${string}]`]: undefined;
|
|
121
|
+
[x: `uint72[${string}]`]: undefined;
|
|
122
|
+
[x: `uint80[${string}]`]: undefined;
|
|
123
|
+
[x: `uint88[${string}]`]: undefined;
|
|
124
|
+
[x: `uint8[${string}]`]: undefined;
|
|
125
|
+
[x: `uint96[${string}]`]: undefined;
|
|
126
|
+
[x: `uint[${string}]`]: undefined;
|
|
127
|
+
address?: undefined;
|
|
128
|
+
bool?: undefined;
|
|
129
|
+
bytes?: undefined;
|
|
130
|
+
bytes1?: undefined;
|
|
131
|
+
bytes10?: undefined;
|
|
132
|
+
bytes11?: undefined;
|
|
133
|
+
bytes12?: undefined;
|
|
134
|
+
bytes13?: undefined;
|
|
135
|
+
bytes14?: undefined;
|
|
136
|
+
bytes15?: undefined;
|
|
137
|
+
bytes16?: undefined;
|
|
138
|
+
bytes17?: undefined;
|
|
139
|
+
bytes18?: undefined;
|
|
140
|
+
bytes19?: undefined;
|
|
141
|
+
bytes2?: undefined;
|
|
142
|
+
bytes20?: undefined;
|
|
143
|
+
bytes21?: undefined;
|
|
144
|
+
bytes22?: undefined;
|
|
145
|
+
bytes23?: undefined;
|
|
146
|
+
bytes24?: undefined;
|
|
147
|
+
bytes25?: undefined;
|
|
148
|
+
bytes26?: undefined;
|
|
149
|
+
bytes27?: undefined;
|
|
150
|
+
bytes28?: undefined;
|
|
151
|
+
bytes29?: undefined;
|
|
152
|
+
bytes3?: undefined;
|
|
153
|
+
bytes30?: undefined;
|
|
154
|
+
bytes31?: undefined;
|
|
155
|
+
bytes32?: undefined;
|
|
156
|
+
bytes4?: undefined;
|
|
157
|
+
bytes5?: undefined;
|
|
158
|
+
bytes6?: undefined;
|
|
159
|
+
bytes7?: undefined;
|
|
160
|
+
bytes8?: undefined;
|
|
161
|
+
bytes9?: undefined;
|
|
162
|
+
int104?: undefined;
|
|
163
|
+
int112?: undefined;
|
|
164
|
+
int120?: undefined;
|
|
165
|
+
int128?: undefined;
|
|
166
|
+
int136?: undefined;
|
|
167
|
+
int144?: undefined;
|
|
168
|
+
int152?: undefined;
|
|
169
|
+
int16?: undefined;
|
|
170
|
+
int160?: undefined;
|
|
171
|
+
int168?: undefined;
|
|
172
|
+
int176?: undefined;
|
|
173
|
+
int184?: undefined;
|
|
174
|
+
int192?: undefined;
|
|
175
|
+
int200?: undefined;
|
|
176
|
+
int208?: undefined;
|
|
177
|
+
int216?: undefined;
|
|
178
|
+
int224?: undefined;
|
|
179
|
+
int232?: undefined;
|
|
180
|
+
int24?: undefined;
|
|
181
|
+
int240?: undefined;
|
|
182
|
+
int248?: undefined;
|
|
183
|
+
int256?: undefined;
|
|
184
|
+
int32?: undefined;
|
|
185
|
+
int40?: undefined;
|
|
186
|
+
int48?: undefined;
|
|
187
|
+
int56?: undefined;
|
|
188
|
+
int64?: undefined;
|
|
189
|
+
int72?: undefined;
|
|
190
|
+
int8?: undefined;
|
|
191
|
+
int80?: undefined;
|
|
192
|
+
int88?: undefined;
|
|
193
|
+
int96?: undefined;
|
|
194
|
+
string?: undefined;
|
|
195
|
+
uint104?: undefined;
|
|
196
|
+
uint112?: undefined;
|
|
197
|
+
uint120?: undefined;
|
|
198
|
+
uint128?: undefined;
|
|
199
|
+
uint136?: undefined;
|
|
200
|
+
uint144?: undefined;
|
|
201
|
+
uint152?: undefined;
|
|
202
|
+
uint16?: undefined;
|
|
203
|
+
uint160?: undefined;
|
|
204
|
+
uint168?: undefined;
|
|
205
|
+
uint176?: undefined;
|
|
206
|
+
uint184?: undefined;
|
|
207
|
+
uint192?: undefined;
|
|
208
|
+
uint200?: undefined;
|
|
209
|
+
uint208?: undefined;
|
|
210
|
+
uint216?: undefined;
|
|
211
|
+
uint224?: undefined;
|
|
212
|
+
uint232?: undefined;
|
|
213
|
+
uint24?: undefined;
|
|
214
|
+
uint240?: undefined;
|
|
215
|
+
uint248?: undefined;
|
|
216
|
+
uint256?: undefined;
|
|
217
|
+
uint32?: undefined;
|
|
218
|
+
uint40?: undefined;
|
|
219
|
+
uint48?: undefined;
|
|
220
|
+
uint56?: undefined;
|
|
221
|
+
uint64?: undefined;
|
|
222
|
+
uint72?: undefined;
|
|
223
|
+
uint8?: undefined;
|
|
224
|
+
uint80?: undefined;
|
|
225
|
+
uint88?: undefined;
|
|
226
|
+
uint96?: undefined;
|
|
227
|
+
}, primaryType extends "EIP712Domain" | keyof typedData = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>;
|
|
228
|
+
publicKey: `0x${string}`;
|
|
229
|
+
source: string;
|
|
230
|
+
type: "local";
|
|
231
|
+
};
|
|
11
232
|
/** Mock Attestation
|
|
12
233
|
*
|
|
13
234
|
* @param signer A viem signer to create a signature
|
|
@@ -15,4 +236,4 @@ export declare const generateAccount: () => LocalAccount;
|
|
|
15
236
|
* @returns A Block Attestation
|
|
16
237
|
*/
|
|
17
238
|
export declare const mockAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr) => BlockAttestation;
|
|
18
|
-
//# sourceMappingURL=
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUNMLGdCQUFnQixFQUlqQixNQUFNLG1CQUFtQixDQUFDO0FBSzNCOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBRzNCLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSxlQUFlLDRFQWdCM0IsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EACL,gBAAgB,EAIjB,MAAM,mBAAmB,CAAC;AAK3B;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,4EAgB3B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { BlockAttestation, ConsensusPayload, SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '@aztec/stdlib/p2p';
|
|
3
3
|
import { makeL2BlockHeader } from '@aztec/stdlib/testing';
|
|
4
4
|
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
@@ -18,7 +18,7 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
|
18
18
|
*/ export const mockAttestation = (signer, slot = 0, archive = Fr.random())=>{
|
|
19
19
|
// Use arbitrary numbers for all other than slot
|
|
20
20
|
const header = makeL2BlockHeader(1, 2, slot);
|
|
21
|
-
const payload = new ConsensusPayload(header.toCheckpointHeader(), archive
|
|
21
|
+
const payload = new ConsensusPayload(header.toCheckpointHeader(), archive);
|
|
22
22
|
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
|
|
23
23
|
const attestationSignature = signer.sign(attestationHash);
|
|
24
24
|
const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { type AttestationPool } from './attestation_pool/attestation_pool.js';
|
|
2
2
|
export { type MemPools } from './interface.js';
|
|
3
3
|
export { type TxPool } from './tx_pool/tx_pool.js';
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZW1fcG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUMifQ==
|
|
@@ -14,6 +14,7 @@ export declare class PoolInstrumentation<PoolObject extends Gossipable> {
|
|
|
14
14
|
private poolStats;
|
|
15
15
|
/** The number of txs in the mempool */
|
|
16
16
|
private objectsInMempool;
|
|
17
|
+
private addObjectCounter;
|
|
17
18
|
/** Tracks tx size */
|
|
18
19
|
private objectSize;
|
|
19
20
|
private dbMetrics;
|
|
@@ -21,6 +22,7 @@ export declare class PoolInstrumentation<PoolObject extends Gossipable> {
|
|
|
21
22
|
private meter;
|
|
22
23
|
constructor(telemetry: TelemetryClient, name: PoolName, poolStats: PoolStatsCallback, dbStats?: LmdbStatsCallback);
|
|
23
24
|
recordSize(poolObject: PoolObject): void;
|
|
25
|
+
incrementAddedObjects(count: number): void;
|
|
24
26
|
private observeStats;
|
|
25
27
|
}
|
|
26
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBS0wsS0FBSyxpQkFBaUIsRUFLdEIsS0FBSyxlQUFlLEVBRXJCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQVksUUFBUTtJQUNsQixPQUFPLFdBQVc7SUFDbEIsZ0JBQWdCLG9CQUFvQjtDQUNyQztBQStCRCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUM7SUFDNUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CLENBQUMsVUFBVSxTQUFTLFVBQVU7SUFlMUQsT0FBTyxDQUFDLFNBQVM7SUFkbkIsdUNBQXVDO0lBQ3ZDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBa0I7SUFDMUMsT0FBTyxDQUFDLGdCQUFnQixDQUFnQjtJQUN4QyxxQkFBcUI7SUFDckIsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUU5QixPQUFPLENBQUMsU0FBUyxDQUFjO0lBRS9CLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUMxQixPQUFPLENBQUMsS0FBSyxDQUFRO0lBRXJCLFlBQ0UsU0FBUyxFQUFFLGVBQWUsRUFDMUIsSUFBSSxFQUFFLFFBQVEsRUFDTixTQUFTLEVBQUUsaUJBQWlCLEVBQ3BDLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixFQTZCNUI7SUFFTSxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsUUFFdkM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxRQUV6QztJQUVELE9BQU8sQ0FBQyxZQUFZLENBWWxCO0NBQ0gifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,EAErB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,QAAQ;IAClB,OAAO,WAAW;IAClB,gBAAgB,oBAAoB;CACrC;AA+BD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH;;GAEG;AACH,qBAAa,mBAAmB,CAAC,UAAU,SAAS,UAAU;IAe1D,OAAO,CAAC,SAAS;IAdnB,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAQ;IAErB,YACE,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,EACN,SAAS,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,iBAAiB,EA6B5B;IAEM,UAAU,CAAC,UAAU,EAAE,UAAU,QAEvC;IAEM,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAEzC;IAED,OAAO,CAAC,YAAY,CAYlB;CACH"}
|
|
@@ -12,12 +12,14 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
12
12
|
if (name === "TxPool") {
|
|
13
13
|
return {
|
|
14
14
|
objectInMempool: Metrics.MEMPOOL_TX_COUNT,
|
|
15
|
-
objectSize: Metrics.MEMPOOL_TX_SIZE
|
|
15
|
+
objectSize: Metrics.MEMPOOL_TX_SIZE,
|
|
16
|
+
itemsAdded: Metrics.MEMPOOL_TX_ADDED_COUNT
|
|
16
17
|
};
|
|
17
18
|
} else if (name === "AttestationPool") {
|
|
18
19
|
return {
|
|
19
20
|
objectInMempool: Metrics.MEMPOOL_ATTESTATIONS_COUNT,
|
|
20
|
-
objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE
|
|
21
|
+
objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE,
|
|
22
|
+
itemsAdded: Metrics.MEMPOOL_ATTESTATIONS_ADDED_COUNT
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
25
|
throw new Error('Invalid pool type');
|
|
@@ -27,6 +29,7 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
27
29
|
*/ export class PoolInstrumentation {
|
|
28
30
|
poolStats;
|
|
29
31
|
/** The number of txs in the mempool */ objectsInMempool;
|
|
32
|
+
addObjectCounter;
|
|
30
33
|
/** Tracks tx size */ objectSize;
|
|
31
34
|
dbMetrics;
|
|
32
35
|
defaultAttributes;
|
|
@@ -61,6 +64,9 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
61
64
|
this.dbMetrics = new LmdbMetrics(this.meter, {
|
|
62
65
|
[Attributes.DB_DATA_TYPE]: 'tx-pool'
|
|
63
66
|
}, dbStats);
|
|
67
|
+
this.addObjectCounter = this.meter.createUpDownCounter(metricsLabels.itemsAdded, {
|
|
68
|
+
description: 'The number of transactions added to the mempool'
|
|
69
|
+
});
|
|
64
70
|
this.meter.addBatchObservableCallback(this.observeStats, [
|
|
65
71
|
this.objectsInMempool
|
|
66
72
|
]);
|
|
@@ -68,5 +74,8 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
68
74
|
recordSize(poolObject) {
|
|
69
75
|
this.objectSize.record(poolObject.getSize());
|
|
70
76
|
}
|
|
77
|
+
incrementAddedObjects(count) {
|
|
78
|
+
this.addObjectCounter.add(count);
|
|
79
|
+
}
|
|
71
80
|
observeStats;
|
|
72
81
|
}
|
|
@@ -8,4 +8,4 @@ export type MemPools<T extends P2PClientType = P2PClientType.Full> = {
|
|
|
8
8
|
txPool: TxPool;
|
|
9
9
|
attestationPool?: T extends P2PClientType.Full ? AttestationPool : undefined;
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sTUFBTSxRQUFRLENBQUMsQ0FBQyxTQUFTLGFBQWEsR0FBRyxhQUFhLENBQUMsSUFBSSxJQUFJO0lBQ25FLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixlQUFlLENBQUMsRUFBRSxDQUFDLFNBQVMsYUFBYSxDQUFDLElBQUksR0FBRyxlQUFlLEdBQUcsU0FBUyxDQUFDO0NBQzlFLENBQUMifQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
3
|
import type { TypedEventEmitter } from '@aztec/foundation/types';
|
|
3
4
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
@@ -36,7 +37,7 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
|
|
|
36
37
|
markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void>;
|
|
37
38
|
markMinedAsPending(txHashes: TxHash[]): Promise<void>;
|
|
38
39
|
getPendingTxHashes(): Promise<TxHash[]>;
|
|
39
|
-
getMinedTxHashes(): Promise<[TxHash,
|
|
40
|
+
getMinedTxHashes(): Promise<[TxHash, BlockNumber][]>;
|
|
40
41
|
getPendingTxCount(): Promise<number>;
|
|
41
42
|
getMinedTxCount(): Promise<number>;
|
|
42
43
|
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
|
|
@@ -48,6 +49,7 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
|
|
|
48
49
|
getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
49
50
|
getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
|
|
50
51
|
hasTxs(txHashes: TxHash[]): Promise<boolean[]>;
|
|
52
|
+
hasTx(txHash: TxHash): Promise<boolean>;
|
|
51
53
|
/**
|
|
52
54
|
* Checks if an archived tx exists and returns it.
|
|
53
55
|
* @param txHash - The tx hash.
|
|
@@ -89,7 +91,7 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
|
|
|
89
91
|
* @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
|
|
90
92
|
* @returns The number of transactions permanently deleted.
|
|
91
93
|
*/
|
|
92
|
-
cleanupDeletedMinedTxs(blockNumber:
|
|
94
|
+
cleanupDeletedMinedTxs(blockNumber: BlockNumber): Promise<number>;
|
|
93
95
|
/**
|
|
94
96
|
* Creates a GasTxValidator instance.
|
|
95
97
|
* @param db - DB for the validator to use
|
|
@@ -102,48 +104,13 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
|
|
|
102
104
|
* @returns An ArchiveCache instance
|
|
103
105
|
*/
|
|
104
106
|
protected createArchiveCache(db: MerkleTreeReadOperations): ArchiveCache;
|
|
105
|
-
/**
|
|
106
|
-
* Checks if a cached transaction exists in the in-memory pending tx pool and returns it.
|
|
107
|
-
* Otherwise, it checks the tx pool, updates the pending tx pool, and returns the tx.
|
|
108
|
-
* @param txHash - The generated tx hash.
|
|
109
|
-
* @returns The transaction, if found, 'undefined' otherwise.
|
|
110
|
-
*/
|
|
111
107
|
private getPendingTxByHash;
|
|
112
|
-
/**
|
|
113
|
-
* Archives a list of txs for future reference. The number of archived txs is limited by the specified archivedTxLimit.
|
|
114
|
-
* @param txs - The list of transactions to archive.
|
|
115
|
-
* @returns Empty promise.
|
|
116
|
-
*/
|
|
117
108
|
private archiveTxs;
|
|
118
|
-
/**
|
|
119
|
-
* Evicts pending txs with the lowest priority fees from the pool to accomodate the max tx count and cumulative max tx size
|
|
120
|
-
* after new txs are added.
|
|
121
|
-
*
|
|
122
|
-
* @param newTxHashes - The tx hashes of the new txs added to the pool.
|
|
123
|
-
* @returns The total number of txs evicted from the pool and the number of new txs that were evicted.
|
|
124
|
-
*/
|
|
125
109
|
private evictLowPriorityTxs;
|
|
126
|
-
/**
|
|
127
|
-
* Evicts invalid pending txs from the pool after a txs from a block are mined.
|
|
128
|
-
* Eviction criteria includes:
|
|
129
|
-
* - txs with nullifiers that are already included in the mined block
|
|
130
|
-
* - txs with an insufficient fee payer balance
|
|
131
|
-
* - txs with an expiration timestamp lower than that of the mined block
|
|
132
|
-
*
|
|
133
|
-
* @param minedTxHashes - The tx hashes of the txs mined in the block.
|
|
134
|
-
* @param blockHeader - The header of the mined block.
|
|
135
|
-
* @returns The total number of txs evicted from the pool.
|
|
136
|
-
*/
|
|
137
110
|
private evictInvalidTxsAfterMining;
|
|
138
|
-
/**
|
|
139
|
-
* Evicts pending txs that no longer have valid archive roots or fee payer balances from the pool after a reorg.
|
|
140
|
-
*
|
|
141
|
-
* @param txHashes - The tx hashes of the txs that were moved from mined to pending.
|
|
142
|
-
* @returns The total number of txs evicted from the pool.
|
|
143
|
-
*/
|
|
144
111
|
private evictInvalidTxsAfterReorg;
|
|
145
112
|
private addPendingTxIndices;
|
|
146
113
|
private removePendingTxIndices;
|
|
147
114
|
}
|
|
148
115
|
export {};
|
|
149
|
-
//# sourceMappingURL=
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfa3ZfdHhfcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sL2F6dGVjX2t2X3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUEwRCxNQUFNLGlCQUFpQixDQUFDO0FBR2pILE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBS25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHcEYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXhFOztHQUVHO0FBQ0gscUJBQWEsYUFBYyxTQUFRLGtCQUE0RCxZQUFXLE1BQU07O0lBUzlHLDBHQUEwRztJQUMxRyxvQkFBb0IsRUFBRSxNQUFNLENBQUs7SUFnRGpDOzs7Ozs7O09BT0c7SUFDSCxZQUNFLEtBQUssRUFBRSxpQkFBaUIsRUFDeEIsT0FBTyxFQUFFLGlCQUFpQixFQUMxQixzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsU0FBUyxHQUFFLGVBQXNDLEVBQ2pELE1BQU0sR0FBRSxhQUFrQixFQUMxQixHQUFHLFNBQThCLEVBMEJsQztJQUVELE9BQU8sQ0FBQyxRQUFRLENBU2Q7SUFFVyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUt2QztJQUNEOzs7Ozs7T0FNRztJQUNVLFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBMENwRjtJQUVZLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBdUJqRTtJQUVZLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUduRDtJQUVZLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLENBR2hFO0lBRVksaUJBQWlCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUVoRDtJQUVZLGVBQWUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRTlDO0lBRVksV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQWlCN0Y7SUFFRDs7OztPQUlHO0lBQ1UsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FHaEU7SUFFSyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBR2xFO0lBRUssTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FFbkQ7SUFFSyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRzVDO0lBRUQ7Ozs7T0FJRztJQUNVLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FHeEU7SUFFRDs7OztPQUlHO0lBQ1UsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUU7UUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FzQzlFO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksR0FBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQThDNUc7SUFFRDs7O09BR0c7SUFDVSxTQUFTLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBR3RDO0lBRUQ7OztPQUdHO0lBQ1UsY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUcvQztJQUVNLFlBQVksQ0FBQyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsRUFBRSxhQUFhLEdBQUcsSUFBSSxDQXdCakc7SUFFTSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUc5RDtJQUVEOzs7O09BSUc7SUFDVSxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FpQzdFO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsd0JBQXdCLEdBQUcsY0FBYyxDQUUzRTtJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLHdCQUF3QixHQUFHLFlBQVksQ0FFdkU7WUFRYSxrQkFBa0I7WUF5QmxCLFVBQVU7WUFrRFYsbUJBQW1CO1lBeURuQiwwQkFBMEI7WUFrRTFCLHlCQUF5QjtZQXFDekIsbUJBQW1CO1lBTW5CLHNCQUFzQjtDQU1yQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"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"}
|