@aztec/p2p 0.0.0-test.0 → 0.0.1-commit.03f7ef2
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/bootstrap/bootstrap.js +22 -9
- package/dest/client/factory.d.ts +15 -5
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +60 -25
- package/dest/client/index.d.ts +2 -1
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +1 -0
- package/dest/client/interface.d.ts +157 -0
- package/dest/client/interface.d.ts.map +1 -0
- package/dest/client/interface.js +9 -0
- package/dest/client/p2p_client.d.ts +75 -190
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +381 -183
- package/dest/config.d.ts +151 -125
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +183 -34
- package/dest/enr/generate-enr.d.ts +11 -3
- package/dest/enr/generate-enr.d.ts.map +1 -1
- package/dest/enr/generate-enr.js +27 -5
- 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 +4 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +68 -8
- 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 +216 -65
- package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +21 -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 +127 -26
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +19 -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 +111 -21
- package/dest/mem_pools/attestation_pool/mocks.d.ts +227 -7
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/mocks.js +10 -16
- package/dest/mem_pools/index.d.ts +1 -1
- package/dest/mem_pools/instrumentation.d.ts +16 -12
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +57 -35
- package/dest/mem_pools/interface.d.ts +3 -4
- package/dest/mem_pools/interface.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +64 -14
- 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 +472 -97
- package/dest/mem_pools/tx_pool/index.d.ts +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +36 -11
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +137 -36
- package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
- package/dest/mem_pools/tx_pool/priority.js +1 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +67 -10
- 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 +273 -42
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -2
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +45 -9
- 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 +6 -2
- 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 +73 -12
- 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 +10 -0
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -0
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.js +36 -0
- 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 +3 -0
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/allowed_public_setup.js +27 -0
- package/dest/msg_validators/tx_validator/archive_cache.d.ts +14 -0
- package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/archive_cache.js +22 -0
- 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/block_header_validator.js +4 -4
- 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/data_validator.js +56 -86
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -3
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.js +21 -27
- package/dest/msg_validators/tx_validator/factory.d.ts +16 -0
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/factory.js +74 -0
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +11 -0
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/gas_validator.js +115 -0
- package/dest/msg_validators/tx_validator/index.d.ts +8 -1
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +7 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +9 -5
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.js +39 -20
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +14 -0
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/phases_validator.js +93 -0
- package/dest/msg_validators/tx_validator/test_utils.d.ts +17 -0
- package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/test_utils.js +22 -0
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +13 -0
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/timestamp_validator.js +32 -0
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +8 -0
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/tx_permitted_validator.js +24 -0
- 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/msg_validators/tx_validator/tx_proof_validator.js +6 -5
- 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 +10 -9
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +63 -36
- package/dest/services/dummy_service.d.ts +50 -11
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +88 -5
- package/dest/services/encoding.d.ts +26 -7
- 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 +5 -1
- package/dest/services/index.d.ts.map +1 -1
- package/dest/services/index.js +4 -0
- package/dest/services/libp2p/instrumentation.d.ts +20 -0
- package/dest/services/libp2p/instrumentation.d.ts.map +1 -0
- package/dest/services/libp2p/instrumentation.js +164 -0
- package/dest/services/libp2p/libp2p_service.d.ts +78 -89
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +695 -248
- package/dest/services/peer-manager/interface.d.ts +23 -0
- package/dest/services/peer-manager/interface.d.ts.map +1 -0
- package/dest/services/peer-manager/interface.js +1 -0
- package/dest/services/peer-manager/metrics.d.ts +6 -2
- package/dest/services/peer-manager/metrics.d.ts.map +1 -1
- package/dest/services/peer-manager/metrics.js +22 -2
- package/dest/services/peer-manager/peer_manager.d.ts +102 -22
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +549 -72
- 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 +11 -9
- package/dest/services/reqresp/config.d.ts.map +1 -1
- package/dest/services/reqresp/config.js +18 -4
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +2 -2
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +10 -6
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +31 -17
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.js +142 -84
- package/dest/services/reqresp/index.d.ts +3 -2
- package/dest/services/reqresp/index.d.ts.map +1 -1
- package/dest/services/reqresp/index.js +2 -1
- package/dest/services/reqresp/interface.d.ts +73 -24
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +46 -27
- 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 +43 -0
- package/dest/services/reqresp/protocols/auth.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/auth.js +71 -0
- package/dest/services/reqresp/protocols/block.d.ts +6 -1
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block.js +30 -6
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +30 -0
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/bitvector.js +75 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +11 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +39 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +47 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +75 -0
- package/dest/services/reqresp/protocols/block_txs/index.d.ts +4 -0
- package/dest/services/reqresp/protocols/block_txs/index.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/index.js +3 -0
- package/dest/services/reqresp/protocols/goodbye.d.ts +3 -5
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/goodbye.js +7 -7
- package/dest/services/reqresp/protocols/index.d.ts +3 -1
- package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/index.js +2 -0
- package/dest/services/reqresp/protocols/ping.d.ts +1 -3
- package/dest/services/reqresp/protocols/ping.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.d.ts +40 -7
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.js +73 -5
- package/dest/services/reqresp/protocols/tx.d.ts +14 -4
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/tx.js +34 -6
- package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +6 -4
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -2
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.js +21 -1
- package/dest/services/reqresp/reqresp.d.ts +24 -66
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +298 -207
- package/dest/services/reqresp/status.d.ts +10 -4
- package/dest/services/reqresp/status.d.ts.map +1 -1
- package/dest/services/reqresp/status.js +9 -2
- package/dest/services/service.d.ts +23 -19
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_collection/config.d.ts +25 -0
- package/dest/services/tx_collection/config.d.ts.map +1 -0
- package/dest/services/tx_collection/config.js +58 -0
- package/dest/services/tx_collection/fast_tx_collection.d.ts +51 -0
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/fast_tx_collection.js +300 -0
- package/dest/services/tx_collection/index.d.ts +3 -0
- package/dest/services/tx_collection/index.d.ts.map +1 -0
- package/dest/services/tx_collection/index.js +2 -0
- package/dest/services/tx_collection/instrumentation.d.ts +10 -0
- package/dest/services/tx_collection/instrumentation.d.ts.map +1 -0
- package/dest/services/tx_collection/instrumentation.js +34 -0
- package/dest/services/tx_collection/slow_tx_collection.d.ts +53 -0
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/slow_tx_collection.js +177 -0
- package/dest/services/tx_collection/tx_collection.d.ts +110 -0
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_collection.js +128 -0
- package/dest/services/tx_collection/tx_collection_sink.d.ts +30 -0
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_collection_sink.js +111 -0
- package/dest/services/tx_collection/tx_source.d.ts +18 -0
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_source.js +31 -0
- package/dest/services/tx_provider.d.ts +51 -0
- package/dest/services/tx_provider.d.ts.map +1 -0
- package/dest/services/tx_provider.js +217 -0
- package/dest/services/tx_provider_instrumentation.d.ts +16 -0
- package/dest/services/tx_provider_instrumentation.d.ts.map +1 -0
- package/dest/services/tx_provider_instrumentation.js +47 -0
- 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 +2 -1
- package/dest/test-helpers/index.d.ts.map +1 -1
- package/dest/test-helpers/index.js +1 -0
- package/dest/test-helpers/make-enrs.d.ts +1 -1
- package/dest/test-helpers/make-enrs.d.ts.map +1 -1
- package/dest/test-helpers/make-enrs.js +4 -5
- package/dest/test-helpers/make-test-p2p-clients.d.ts +33 -5
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +86 -16
- package/dest/test-helpers/mock-pubsub.d.ts +59 -0
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -0
- package/dest/test-helpers/mock-pubsub.js +130 -0
- package/dest/test-helpers/mock-tx-helpers.d.ts +12 -0
- package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -0
- package/dest/test-helpers/mock-tx-helpers.js +19 -0
- package/dest/test-helpers/reqresp-nodes.d.ts +15 -11
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +62 -28
- package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +103 -29
- package/dest/testbench/parse_log_file.d.ts +1 -1
- package/dest/testbench/parse_log_file.js +4 -4
- package/dest/testbench/testbench.d.ts +1 -1
- package/dest/testbench/testbench.js +4 -4
- package/dest/testbench/worker_client_manager.d.ts +1 -6
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/testbench/worker_client_manager.js +11 -19
- package/dest/types/index.d.ts +4 -2
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +2 -0
- package/dest/util.d.ts +24 -16
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +75 -69
- package/dest/versioning.d.ts +4 -4
- package/dest/versioning.d.ts.map +1 -1
- package/dest/versioning.js +8 -3
- package/package.json +32 -27
- package/src/bootstrap/bootstrap.ts +27 -11
- package/src/client/factory.ts +139 -53
- package/src/client/index.ts +1 -0
- package/src/client/interface.ts +198 -0
- package/src/client/p2p_client.ts +484 -348
- package/src/config.ts +305 -134
- package/src/enr/generate-enr.ts +39 -6
- package/src/errors/attestation-pool.error.ts +13 -0
- package/src/index.ts +4 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +75 -7
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +266 -67
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +174 -35
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +156 -30
- package/src/mem_pools/attestation_pool/mocks.ts +13 -12
- package/src/mem_pools/instrumentation.ts +70 -40
- package/src/mem_pools/interface.ts +2 -4
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +555 -110
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +160 -46
- package/src/mem_pools/tx_pool/priority.ts +1 -1
- package/src/mem_pools/tx_pool/tx_pool.ts +69 -9
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +224 -35
- package/src/msg_validators/attestation_validator/attestation_validator.ts +54 -11
- 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 +82 -14
- package/src/msg_validators/msg_seen_validator/msg_seen_validator.ts +36 -0
- package/src/msg_validators/tx_validator/allowed_public_setup.ts +35 -0
- package/src/msg_validators/tx_validator/archive_cache.ts +28 -0
- package/src/msg_validators/tx_validator/block_header_validator.ts +5 -5
- package/src/msg_validators/tx_validator/data_validator.ts +81 -69
- package/src/msg_validators/tx_validator/double_spend_validator.ts +19 -17
- package/src/msg_validators/tx_validator/factory.ts +110 -0
- package/src/msg_validators/tx_validator/gas_validator.ts +134 -0
- package/src/msg_validators/tx_validator/index.ts +7 -0
- package/src/msg_validators/tx_validator/metadata_validator.ts +59 -22
- package/src/msg_validators/tx_validator/phases_validator.ts +116 -0
- package/src/msg_validators/tx_validator/test_utils.ts +43 -0
- package/src/msg_validators/tx_validator/timestamp_validator.ts +47 -0
- package/src/msg_validators/tx_validator/tx_permitted_validator.ts +17 -0
- package/src/msg_validators/tx_validator/tx_proof_validator.ts +6 -5
- package/src/services/discv5/discV5_service.ts +84 -38
- package/src/services/dummy_service.ts +147 -9
- package/src/services/encoding.ts +81 -6
- package/src/services/index.ts +4 -0
- package/src/services/libp2p/instrumentation.ts +167 -0
- package/src/services/libp2p/libp2p_service.ts +865 -298
- package/src/services/peer-manager/interface.ts +29 -0
- package/src/services/peer-manager/metrics.ts +26 -1
- package/src/services/peer-manager/peer_manager.ts +654 -78
- package/src/services/peer-manager/peer_scoring.ts +46 -3
- package/src/services/reqresp/config.ts +26 -9
- package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +12 -6
- package/src/services/reqresp/connection-sampler/connection_sampler.ts +148 -95
- package/src/services/reqresp/index.ts +2 -0
- package/src/services/reqresp/interface.ts +92 -37
- package/src/services/reqresp/metrics.ts +4 -1
- package/src/services/reqresp/protocols/auth.ts +83 -0
- package/src/services/reqresp/protocols/block.ts +26 -4
- package/src/services/reqresp/protocols/block_txs/bitvector.ts +90 -0
- package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +53 -0
- package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +79 -0
- package/src/services/reqresp/protocols/block_txs/index.ts +3 -0
- package/src/services/reqresp/protocols/goodbye.ts +9 -7
- package/src/services/reqresp/protocols/index.ts +2 -0
- package/src/services/reqresp/protocols/status.ts +118 -5
- package/src/services/reqresp/protocols/tx.ts +36 -8
- package/src/services/reqresp/rate-limiter/rate_limiter.ts +12 -3
- package/src/services/reqresp/rate-limiter/rate_limits.ts +21 -1
- package/src/services/reqresp/reqresp.ts +387 -256
- package/src/services/reqresp/status.ts +12 -3
- package/src/services/service.ts +45 -21
- package/src/services/tx_collection/config.ts +84 -0
- package/src/services/tx_collection/fast_tx_collection.ts +341 -0
- package/src/services/tx_collection/index.ts +2 -0
- package/src/services/tx_collection/instrumentation.ts +43 -0
- package/src/services/tx_collection/slow_tx_collection.ts +233 -0
- package/src/services/tx_collection/tx_collection.ts +216 -0
- package/src/services/tx_collection/tx_collection_sink.ts +129 -0
- package/src/services/tx_collection/tx_source.ts +37 -0
- package/src/services/tx_provider.ts +229 -0
- package/src/services/tx_provider_instrumentation.ts +61 -0
- package/src/test-helpers/index.ts +1 -0
- package/src/test-helpers/make-enrs.ts +4 -5
- package/src/test-helpers/make-test-p2p-clients.ts +111 -21
- package/src/test-helpers/mock-pubsub.ts +188 -0
- package/src/test-helpers/mock-tx-helpers.ts +24 -0
- package/src/test-helpers/reqresp-nodes.ts +87 -36
- package/src/testbench/p2p_client_testbench_worker.ts +151 -25
- package/src/testbench/parse_log_file.ts +4 -4
- package/src/testbench/testbench.ts +4 -4
- package/src/testbench/worker_client_manager.ts +17 -23
- package/src/types/index.ts +2 -0
- package/src/util.ts +105 -91
- package/src/versioning.ts +11 -4
|
@@ -1,19 +1,239 @@
|
|
|
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 { TxHash } from '@aztec/stdlib/tx';
|
|
5
|
-
import { type LocalAccount } from 'viem/accounts';
|
|
6
4
|
/** Generate Account
|
|
7
5
|
*
|
|
8
6
|
* Create a random signer
|
|
9
7
|
* @returns A random viem signer
|
|
10
8
|
*/
|
|
11
|
-
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
|
+
};
|
|
12
232
|
/** Mock Attestation
|
|
13
233
|
*
|
|
14
234
|
* @param signer A viem signer to create a signature
|
|
15
235
|
* @param slot The slot number the attestation is for
|
|
16
236
|
* @returns A Block Attestation
|
|
17
237
|
*/
|
|
18
|
-
export declare const mockAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr
|
|
19
|
-
//# sourceMappingURL=
|
|
238
|
+
export declare const mockAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr) => BlockAttestation;
|
|
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,7 +1,6 @@
|
|
|
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
|
-
import {
|
|
4
|
-
import { TxHash } from '@aztec/stdlib/tx';
|
|
3
|
+
import { makeL2BlockHeader } from '@aztec/stdlib/testing';
|
|
5
4
|
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
6
5
|
/** Generate Account
|
|
7
6
|
*
|
|
@@ -16,18 +15,13 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
|
16
15
|
* @param signer A viem signer to create a signature
|
|
17
16
|
* @param slot The slot number the attestation is for
|
|
18
17
|
* @returns A Block Attestation
|
|
19
|
-
*/ export const mockAttestation =
|
|
20
|
-
0,
|
|
21
|
-
1,
|
|
22
|
-
2,
|
|
23
|
-
3,
|
|
24
|
-
4,
|
|
25
|
-
5
|
|
26
|
-
].map(()=>TxHash.random()))=>{
|
|
18
|
+
*/ export const mockAttestation = (signer, slot = 0, archive = Fr.random())=>{
|
|
27
19
|
// Use arbitrary numbers for all other than slot
|
|
28
|
-
const header =
|
|
29
|
-
const payload = new ConsensusPayload(header, archive
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
|
|
20
|
+
const header = makeL2BlockHeader(1, 2, slot);
|
|
21
|
+
const payload = new ConsensusPayload(header.toCheckpointHeader(), archive);
|
|
22
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
|
|
23
|
+
const attestationSignature = signer.sign(attestationHash);
|
|
24
|
+
const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
|
|
25
|
+
const proposerSignature = signer.sign(proposalHash);
|
|
26
|
+
return new BlockAttestation(payload, attestationSignature, proposerSignature);
|
|
33
27
|
};
|
|
@@ -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==
|
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
import type { Gossipable } from '@aztec/stdlib/p2p';
|
|
2
|
+
import type { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
2
3
|
import { type LmdbStatsCallback, type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
4
|
export declare enum PoolName {
|
|
4
5
|
TX_POOL = "TxPool",
|
|
5
6
|
ATTESTATION_POOL = "AttestationPool"
|
|
6
7
|
}
|
|
8
|
+
export type PoolStatsCallback = () => Promise<{
|
|
9
|
+
itemCount: number | Record<string, number>;
|
|
10
|
+
}>;
|
|
7
11
|
/**
|
|
8
12
|
* Instrumentation class for the Pools (TxPool, AttestationPool, etc).
|
|
9
13
|
*/
|
|
10
14
|
export declare class PoolInstrumentation<PoolObject extends Gossipable> {
|
|
15
|
+
private poolStats;
|
|
11
16
|
/** The number of txs in the mempool */
|
|
12
17
|
private objectsInMempool;
|
|
18
|
+
private addObjectCounter;
|
|
13
19
|
/** Tracks tx size */
|
|
14
20
|
private objectSize;
|
|
21
|
+
/** Track delay between transaction added and evicted */
|
|
22
|
+
private minedDelay;
|
|
15
23
|
private dbMetrics;
|
|
16
24
|
private defaultAttributes;
|
|
17
|
-
|
|
25
|
+
private meter;
|
|
26
|
+
private txAddedTimestamp;
|
|
27
|
+
constructor(telemetry: TelemetryClient, name: PoolName, poolStats: PoolStatsCallback, dbStats?: LmdbStatsCallback);
|
|
18
28
|
recordSize(poolObject: PoolObject): void;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
recordAddedObjects(count?: number, status?: string): void;
|
|
24
|
-
/**
|
|
25
|
-
* Updates the metrics by removing objects from the mempool.
|
|
26
|
-
* @param count - The number of objects to remove from the mempool
|
|
27
|
-
*/
|
|
28
|
-
recordRemovedObjects(count?: number, status?: string): void;
|
|
29
|
+
incrementAddedObjects(count: number): void;
|
|
30
|
+
transactionsAdded(transactions: Tx[]): void;
|
|
31
|
+
transactionsRemoved(hashes: TxHash[]): void;
|
|
32
|
+
private observeStats;
|
|
29
33
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUtMLEtBQUssaUJBQWlCLEVBS3RCLEtBQUssZUFBZSxFQUVyQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLG9CQUFZLFFBQVE7SUFDbEIsT0FBTyxXQUFXO0lBQ2xCLGdCQUFnQixvQkFBb0I7Q0FDckM7QUFrQ0QsTUFBTSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDO0lBQzVDLFNBQVMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztDQUM1QyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILHFCQUFhLG1CQUFtQixDQUFDLFVBQVUsU0FBUyxVQUFVO0lBbUIxRCxPQUFPLENBQUMsU0FBUztJQWxCbkIsdUNBQXVDO0lBQ3ZDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBa0I7SUFDMUMsT0FBTyxDQUFDLGdCQUFnQixDQUFnQjtJQUN4QyxxQkFBcUI7SUFDckIsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUM5Qix3REFBd0Q7SUFDeEQsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUU5QixPQUFPLENBQUMsU0FBUyxDQUFjO0lBRS9CLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUMxQixPQUFPLENBQUMsS0FBSyxDQUFRO0lBRXJCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBa0Q7SUFFMUUsWUFDRSxTQUFTLEVBQUUsZUFBZSxFQUMxQixJQUFJLEVBQUUsUUFBUSxFQUNOLFNBQVMsRUFBRSxpQkFBaUIsRUFDcEMsT0FBTyxDQUFDLEVBQUUsaUJBQWlCLEVBaUM1QjtJQUVNLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxRQUV2QztJQUVNLHFCQUFxQixDQUFDLEtBQUssRUFBRSxNQUFNLFFBRXpDO0lBRU0saUJBQWlCLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSxRQUsxQztJQUVNLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFVMUM7SUFFRCxPQUFPLENBQUMsWUFBWSxDQVlsQjtDQUNIIn0=
|
|
@@ -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,
|
|
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,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,EAErB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,QAAQ;IAClB,OAAO,WAAW;IAClB,gBAAgB,oBAAoB;CACrC;AAkCD,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;IAmB1D,OAAO,CAAC,SAAS;IAlBnB,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAC9B,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,gBAAgB,CAAkD;IAE1E,YACE,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,EACN,SAAS,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,iBAAiB,EAiC5B;IAEM,UAAU,CAAC,UAAU,EAAE,UAAU,QAEvC;IAEM,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAEzC;IAEM,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,QAK1C;IAEM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAU1C;IAED,OAAO,CAAC,YAAY,CAYlB;CACH"}
|
|
@@ -12,12 +12,16 @@ 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,
|
|
17
|
+
itemMinedDelay: Metrics.MEMPOOL_TX_MINED_DELAY
|
|
16
18
|
};
|
|
17
19
|
} else if (name === "AttestationPool") {
|
|
18
20
|
return {
|
|
19
21
|
objectInMempool: Metrics.MEMPOOL_ATTESTATIONS_COUNT,
|
|
20
|
-
objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE
|
|
22
|
+
objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE,
|
|
23
|
+
itemsAdded: Metrics.MEMPOOL_ATTESTATIONS_ADDED_COUNT,
|
|
24
|
+
itemMinedDelay: Metrics.MEMPOOL_ATTESTATIONS_MINED_DELAY
|
|
21
25
|
};
|
|
22
26
|
}
|
|
23
27
|
throw new Error('Invalid pool type');
|
|
@@ -25,60 +29,78 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
25
29
|
/**
|
|
26
30
|
* Instrumentation class for the Pools (TxPool, AttestationPool, etc).
|
|
27
31
|
*/ export class PoolInstrumentation {
|
|
32
|
+
poolStats;
|
|
28
33
|
/** The number of txs in the mempool */ objectsInMempool;
|
|
34
|
+
addObjectCounter;
|
|
29
35
|
/** Tracks tx size */ objectSize;
|
|
36
|
+
/** Track delay between transaction added and evicted */ minedDelay;
|
|
30
37
|
dbMetrics;
|
|
31
38
|
defaultAttributes;
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
meter;
|
|
40
|
+
txAddedTimestamp;
|
|
41
|
+
constructor(telemetry, name, poolStats, dbStats){
|
|
42
|
+
this.poolStats = poolStats;
|
|
43
|
+
this.txAddedTimestamp = new Map();
|
|
44
|
+
this.observeStats = async (observer)=>{
|
|
45
|
+
const { itemCount } = await this.poolStats();
|
|
46
|
+
if (typeof itemCount === 'number') {
|
|
47
|
+
observer.observe(this.objectsInMempool, itemCount, this.defaultAttributes);
|
|
48
|
+
} else {
|
|
49
|
+
for (const [status, count] of Object.entries(itemCount)){
|
|
50
|
+
observer.observe(this.objectsInMempool, count, {
|
|
51
|
+
...this.defaultAttributes,
|
|
52
|
+
[Attributes.STATUS]: status
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
this.meter = telemetry.getMeter(name);
|
|
34
58
|
this.defaultAttributes = {
|
|
35
59
|
[Attributes.POOL_NAME]: name
|
|
36
60
|
};
|
|
37
61
|
const metricsLabels = getMetricsLabels(name);
|
|
38
|
-
this.objectsInMempool = meter.
|
|
62
|
+
this.objectsInMempool = this.meter.createObservableGauge(metricsLabels.objectInMempool, {
|
|
39
63
|
description: 'The current number of transactions in the mempool'
|
|
40
64
|
});
|
|
41
|
-
this.objectSize = meter.createHistogram(metricsLabels.objectSize, {
|
|
65
|
+
this.objectSize = this.meter.createHistogram(metricsLabels.objectSize, {
|
|
42
66
|
unit: 'By',
|
|
43
67
|
description: 'The size of transactions in the mempool'
|
|
44
68
|
});
|
|
45
|
-
this.dbMetrics = new LmdbMetrics(meter, {
|
|
69
|
+
this.dbMetrics = new LmdbMetrics(this.meter, {
|
|
46
70
|
[Attributes.DB_DATA_TYPE]: 'tx-pool'
|
|
47
71
|
}, dbStats);
|
|
72
|
+
this.addObjectCounter = this.meter.createUpDownCounter(metricsLabels.itemsAdded, {
|
|
73
|
+
description: 'The number of transactions added to the mempool'
|
|
74
|
+
});
|
|
75
|
+
this.minedDelay = this.meter.createHistogram(metricsLabels.itemMinedDelay, {
|
|
76
|
+
description: 'Delay between transaction added and evicted from the mempool'
|
|
77
|
+
});
|
|
78
|
+
this.meter.addBatchObservableCallback(this.observeStats, [
|
|
79
|
+
this.objectsInMempool
|
|
80
|
+
]);
|
|
48
81
|
}
|
|
49
82
|
recordSize(poolObject) {
|
|
50
83
|
this.objectSize.record(poolObject.getSize());
|
|
51
84
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
* @param txs - The objects to record
|
|
55
|
-
*/ recordAddedObjects(count = 1, status) {
|
|
56
|
-
if (count < 0) {
|
|
57
|
-
throw new Error('Count must be positive');
|
|
58
|
-
}
|
|
59
|
-
if (count === 0) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
const attributes = status ? {
|
|
63
|
-
...this.defaultAttributes,
|
|
64
|
-
[Attributes.STATUS]: status
|
|
65
|
-
} : this.defaultAttributes;
|
|
66
|
-
this.objectsInMempool.add(count, attributes);
|
|
85
|
+
incrementAddedObjects(count) {
|
|
86
|
+
this.addObjectCounter.add(count);
|
|
67
87
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (count < 0) {
|
|
73
|
-
throw new Error('Count must be positive');
|
|
88
|
+
transactionsAdded(transactions) {
|
|
89
|
+
const timestamp = Date.now();
|
|
90
|
+
for (const transaction of transactions){
|
|
91
|
+
this.txAddedTimestamp.set(transaction.txHash.toString(), timestamp);
|
|
74
92
|
}
|
|
75
|
-
|
|
76
|
-
|
|
93
|
+
}
|
|
94
|
+
transactionsRemoved(hashes) {
|
|
95
|
+
const timestamp = Date.now();
|
|
96
|
+
for (const hash of hashes){
|
|
97
|
+
const key = hash.toString();
|
|
98
|
+
const addedAt = this.txAddedTimestamp.get(key);
|
|
99
|
+
if (addedAt) {
|
|
100
|
+
this.txAddedTimestamp.delete(key);
|
|
101
|
+
this.minedDelay.record(addedAt - timestamp);
|
|
102
|
+
}
|
|
77
103
|
}
|
|
78
|
-
const attributes = status ? {
|
|
79
|
-
...this.defaultAttributes,
|
|
80
|
-
[Attributes.STATUS]: status
|
|
81
|
-
} : this.defaultAttributes;
|
|
82
|
-
this.objectsInMempool.add(-1 * count, attributes);
|
|
83
104
|
}
|
|
105
|
+
observeStats;
|
|
84
106
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { P2PClientType } from '@aztec/stdlib/p2p';
|
|
2
1
|
import type { AttestationPool } from './attestation_pool/attestation_pool.js';
|
|
3
2
|
import type { TxPool } from './tx_pool/tx_pool.js';
|
|
4
3
|
/**
|
|
5
4
|
* A interface the combines all mempools
|
|
6
5
|
*/
|
|
7
|
-
export type MemPools
|
|
6
|
+
export type MemPools = {
|
|
8
7
|
txPool: TxPool;
|
|
9
|
-
attestationPool
|
|
8
|
+
attestationPool: AttestationPool;
|
|
10
9
|
};
|
|
11
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sTUFBTSxRQUFRLEdBQUc7SUFDckIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLGVBQWUsRUFBRSxlQUFlLENBQUM7Q0FDbEMsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/mem_pools/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/mem_pools/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
3
|
+
import type { TypedEventEmitter } from '@aztec/foundation/types';
|
|
2
4
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
|
-
import {
|
|
5
|
+
import type { MerkleTreeReadOperations, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
6
|
+
import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
|
|
4
7
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
|
-
import
|
|
8
|
+
import { ArchiveCache } from '../../msg_validators/tx_validator/archive_cache.js';
|
|
9
|
+
import { GasTxValidator } from '../../msg_validators/tx_validator/gas_validator.js';
|
|
10
|
+
import type { TxPool, TxPoolEvents, TxPoolOptions } from './tx_pool.js';
|
|
11
|
+
declare const AztecKVTxPool_base: new () => TypedEventEmitter<TxPoolEvents>;
|
|
6
12
|
/**
|
|
7
13
|
* KV implementation of the Transaction Pool.
|
|
8
14
|
*/
|
|
9
|
-
export declare class AztecKVTxPool implements TxPool {
|
|
15
|
+
export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool {
|
|
10
16
|
#private;
|
|
17
|
+
/** The tx evicion logic will kick after pool size is greater than maxTxPoolSize * txPoolOverflowFactor */
|
|
18
|
+
txPoolOverflowFactor: number;
|
|
11
19
|
/**
|
|
12
20
|
* Class constructor for KV TxPool. Initiates our transaction pool as an AztecMap.
|
|
13
21
|
* @param store - A KV store for live txs in the pool.
|
|
@@ -16,18 +24,32 @@ export declare class AztecKVTxPool implements TxPool {
|
|
|
16
24
|
* @param archivedTxLimit - The number of txs to archive.
|
|
17
25
|
* @param log - A logger.
|
|
18
26
|
*/
|
|
19
|
-
constructor(store: AztecAsyncKVStore, archive: AztecAsyncKVStore, telemetry?: TelemetryClient,
|
|
20
|
-
|
|
27
|
+
constructor(store: AztecAsyncKVStore, archive: AztecAsyncKVStore, worldStateSynchronizer: WorldStateSynchronizer, telemetry?: TelemetryClient, config?: TxPoolOptions, log?: Logger);
|
|
28
|
+
private countTxs;
|
|
29
|
+
isEmpty(): Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Marks transactions as mined in a block and updates the pool state accordingly.
|
|
32
|
+
* Removes the transactions from the pending set and adds them to the mined set.
|
|
33
|
+
* Also evicts any transactions that become invalid after the block is mined.
|
|
34
|
+
* @param txHashes - Array of transaction hashes that were mined
|
|
35
|
+
* @param blockHeader - The header of the block the transactions were mined in
|
|
36
|
+
*/
|
|
37
|
+
markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void>;
|
|
21
38
|
markMinedAsPending(txHashes: TxHash[]): Promise<void>;
|
|
22
39
|
getPendingTxHashes(): Promise<TxHash[]>;
|
|
23
|
-
getMinedTxHashes(): Promise<[TxHash,
|
|
24
|
-
|
|
40
|
+
getMinedTxHashes(): Promise<[TxHash, BlockNumber][]>;
|
|
41
|
+
getPendingTxCount(): Promise<number>;
|
|
42
|
+
getMinedTxCount(): Promise<number>;
|
|
43
|
+
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
|
|
25
44
|
/**
|
|
26
45
|
* Checks if a transaction exists in the pool and returns it.
|
|
27
46
|
* @param txHash - The generated tx hash.
|
|
28
47
|
* @returns The transaction, if found, 'undefined' otherwise.
|
|
29
48
|
*/
|
|
30
49
|
getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
50
|
+
getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
|
|
51
|
+
hasTxs(txHashes: TxHash[]): Promise<boolean[]>;
|
|
52
|
+
hasTx(txHash: TxHash): Promise<boolean>;
|
|
31
53
|
/**
|
|
32
54
|
* Checks if an archived tx exists and returns it.
|
|
33
55
|
* @param txHash - The tx hash.
|
|
@@ -39,13 +61,19 @@ export declare class AztecKVTxPool implements TxPool {
|
|
|
39
61
|
* @param txs - An array of txs to be added to the pool.
|
|
40
62
|
* @returns Empty promise.
|
|
41
63
|
*/
|
|
42
|
-
addTxs(txs: Tx[]
|
|
64
|
+
addTxs(txs: Tx[], opts?: {
|
|
65
|
+
source?: string;
|
|
66
|
+
}): Promise<number>;
|
|
43
67
|
/**
|
|
44
68
|
* Deletes transactions from the pool. Tx hashes that are not present are ignored.
|
|
45
|
-
*
|
|
69
|
+
* Mined transactions are soft-deleted with a timestamp, pending transactions are permanently deleted.
|
|
70
|
+
* @param txHashes - An array of tx hashes to be deleted from the tx pool.
|
|
46
71
|
* @returns Empty promise.
|
|
47
72
|
*/
|
|
48
|
-
deleteTxs(txHashes: TxHash[]
|
|
73
|
+
deleteTxs(txHashes: TxHash[], opts?: {
|
|
74
|
+
eviction?: boolean;
|
|
75
|
+
permanently?: boolean;
|
|
76
|
+
}): Promise<void>;
|
|
49
77
|
/**
|
|
50
78
|
* Gets all the transactions stored in the pool.
|
|
51
79
|
* @returns Array of tx objects in the order they were added to the pool.
|
|
@@ -56,11 +84,33 @@ export declare class AztecKVTxPool implements TxPool {
|
|
|
56
84
|
* @returns An array of transaction hashes found in the tx pool.
|
|
57
85
|
*/
|
|
58
86
|
getAllTxHashes(): Promise<TxHash[]>;
|
|
87
|
+
updateConfig({ maxTxPoolSize, txPoolOverflowFactor, archivedTxLimit }: TxPoolOptions): void;
|
|
88
|
+
markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
|
|
59
89
|
/**
|
|
60
|
-
*
|
|
61
|
-
* @param
|
|
62
|
-
* @returns
|
|
90
|
+
* Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
|
|
91
|
+
* @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
|
|
92
|
+
* @returns The number of transactions permanently deleted.
|
|
93
|
+
*/
|
|
94
|
+
cleanupDeletedMinedTxs(blockNumber: BlockNumber): Promise<number>;
|
|
95
|
+
/**
|
|
96
|
+
* Creates a GasTxValidator instance.
|
|
97
|
+
* @param db - DB for the validator to use
|
|
98
|
+
* @returns A GasTxValidator instance
|
|
99
|
+
*/
|
|
100
|
+
protected createGasTxValidator(db: MerkleTreeReadOperations): GasTxValidator;
|
|
101
|
+
/**
|
|
102
|
+
* Creates an ArchiveCache instance.
|
|
103
|
+
* @param db - DB for the cache to use
|
|
104
|
+
* @returns An ArchiveCache instance
|
|
63
105
|
*/
|
|
106
|
+
protected createArchiveCache(db: MerkleTreeReadOperations): ArchiveCache;
|
|
107
|
+
private getPendingTxByHash;
|
|
64
108
|
private archiveTxs;
|
|
109
|
+
private evictLowPriorityTxs;
|
|
110
|
+
private evictInvalidTxsAfterMining;
|
|
111
|
+
private evictInvalidTxsAfterReorg;
|
|
112
|
+
private addPendingTxIndices;
|
|
113
|
+
private removePendingTxIndices;
|
|
65
114
|
}
|
|
66
|
-
|
|
115
|
+
export {};
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfa3ZfdHhfcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sL2F6dGVjX2t2X3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUEwRCxNQUFNLGlCQUFpQixDQUFDO0FBR2pILE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBS25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHcEYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXhFOztHQUVHO0FBQ0gscUJBQWEsYUFBYyxTQUFRLGtCQUE0RCxZQUFXLE1BQU07O0lBUzlHLDBHQUEwRztJQUMxRyxvQkFBb0IsRUFBRSxNQUFNLENBQUs7SUFnRGpDOzs7Ozs7O09BT0c7SUFDSCxZQUNFLEtBQUssRUFBRSxpQkFBaUIsRUFDeEIsT0FBTyxFQUFFLGlCQUFpQixFQUMxQixzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsU0FBUyxHQUFFLGVBQXNDLEVBQ2pELE1BQU0sR0FBRSxhQUFrQixFQUMx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
|
|
@@ -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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"}
|