@aztec/p2p 0.0.1-commit.ee80a48 → 0.0.1-commit.ef17749e1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/client/factory.d.ts +11 -11
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +41 -14
- package/dest/client/interface.d.ts +46 -33
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +41 -51
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +149 -224
- package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +7 -8
- package/dest/config.d.ts +48 -17
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +85 -39
- package/dest/errors/tx-pool.error.d.ts +8 -0
- package/dest/errors/tx-pool.error.d.ts.map +1 -0
- package/dest/errors/tx-pool.error.js +9 -0
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +104 -88
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.js +445 -3
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
- 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 +353 -87
- package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
- package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/index.js +1 -2
- package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
- 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 +3 -2
- package/dest/mem_pools/index.d.ts.map +1 -1
- package/dest/mem_pools/index.js +1 -1
- package/dest/mem_pools/instrumentation.d.ts +4 -2
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +16 -14
- package/dest/mem_pools/interface.d.ts +5 -5
- package/dest/mem_pools/interface.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +3 -3
- package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
- package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
- package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
- package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
- package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
- package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +93 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
- package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
- package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
- package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
- package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/index.js +5 -0
- package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
- package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +213 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +127 -0
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_metadata.js +210 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +60 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +164 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +909 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +3 -3
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
- package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/proposal_validator.js +48 -36
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +16 -3
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +13 -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 +4 -4
- package/dest/msg_validators/tx_validator/factory.d.ts +114 -6
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.js +219 -58
- package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
- package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +58 -3
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.js +73 -36
- package/dest/msg_validators/tx_validator/index.d.ts +3 -1
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +2 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
- package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
- package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +44 -23
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +20 -4
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/timestamp_validator.js +6 -6
- package/dest/services/dummy_service.d.ts +13 -5
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +10 -4
- package/dest/services/encoding.d.ts +3 -3
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +11 -10
- package/dest/services/gossipsub/index.d.ts +3 -0
- package/dest/services/gossipsub/index.d.ts.map +1 -0
- package/dest/services/gossipsub/index.js +2 -0
- package/dest/services/gossipsub/scoring.d.ts +21 -3
- package/dest/services/gossipsub/scoring.d.ts.map +1 -1
- package/dest/services/gossipsub/scoring.js +24 -7
- package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
- package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
- package/dest/services/gossipsub/topic_score_params.js +346 -0
- package/dest/services/index.d.ts +2 -1
- package/dest/services/index.d.ts.map +1 -1
- package/dest/services/index.js +1 -0
- package/dest/services/libp2p/libp2p_service.d.ts +94 -42
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +435 -346
- 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 +6 -0
- package/dest/services/peer-manager/peer_manager.d.ts +1 -1
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +2 -1
- package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +25 -2
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +6 -5
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +26 -53
- package/dest/services/reqresp/batch-tx-requester/interface.d.ts +2 -6
- package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
- package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +10 -13
- package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
- package/dest/services/reqresp/batch-tx-requester/missing_txs.js +25 -46
- package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +17 -11
- package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
- package/dest/services/reqresp/batch-tx-requester/peer_collection.js +49 -15
- package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
- package/dest/services/reqresp/interface.d.ts +10 -1
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +15 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +16 -11
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +21 -10
- 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 +27 -11
- package/dest/services/reqresp/protocols/tx.d.ts +7 -1
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/tx.js +20 -0
- package/dest/services/reqresp/reqresp.d.ts +1 -1
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +13 -5
- package/dest/services/service.d.ts +39 -3
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_collection/config.d.ts +22 -4
- package/dest/services/tx_collection/config.d.ts.map +1 -1
- package/dest/services/tx_collection/config.js +49 -3
- package/dest/services/tx_collection/fast_tx_collection.d.ts +6 -5
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/fast_tx_collection.js +64 -48
- package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
- package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
- package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
- package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
- package/dest/services/tx_collection/file_store_tx_source.js +90 -0
- package/dest/services/tx_collection/index.d.ts +3 -2
- package/dest/services/tx_collection/index.d.ts.map +1 -1
- package/dest/services/tx_collection/index.js +1 -0
- 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/instrumentation.js +2 -1
- package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
- package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
- package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
- package/dest/services/tx_collection/proposal_tx_collector.d.ts +15 -14
- package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
- package/dest/services/tx_collection/proposal_tx_collector.js +6 -6
- package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.js +60 -26
- package/dest/services/tx_collection/tx_collection.d.ts +23 -10
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection.js +75 -3
- package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection_sink.js +26 -29
- package/dest/services/tx_collection/tx_source.d.ts +8 -3
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_source.js +19 -2
- package/dest/services/tx_file_store/config.d.ts +16 -0
- package/dest/services/tx_file_store/config.d.ts.map +1 -0
- package/dest/services/tx_file_store/config.js +22 -0
- package/dest/services/tx_file_store/index.d.ts +4 -0
- package/dest/services/tx_file_store/index.d.ts.map +1 -0
- package/dest/services/tx_file_store/index.js +3 -0
- package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
- package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
- package/dest/services/tx_file_store/instrumentation.js +29 -0
- package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
- package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
- package/dest/services/tx_file_store/tx_file_store.js +152 -0
- package/dest/services/tx_provider.d.ts +4 -4
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +9 -8
- package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +1 -2
- package/dest/test-helpers/mock-pubsub.d.ts +30 -4
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
- package/dest/test-helpers/mock-pubsub.js +105 -4
- package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +4 -3
- package/dest/test-helpers/testbench-utils.d.ts +43 -38
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
- package/dest/test-helpers/testbench-utils.js +128 -59
- package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
- package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +17 -16
- package/dest/testbench/worker_client_manager.d.ts +3 -1
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/testbench/worker_client_manager.js +6 -2
- package/dest/util.d.ts +3 -3
- package/dest/util.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/client/factory.ts +79 -27
- package/src/client/interface.ts +56 -34
- package/src/client/p2p_client.ts +185 -269
- package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +21 -12
- package/src/config.ts +132 -44
- package/src/errors/tx-pool.error.ts +12 -0
- package/src/index.ts +1 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +497 -91
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
- package/src/mem_pools/attestation_pool/index.ts +9 -2
- package/src/mem_pools/attestation_pool/mocks.ts +2 -1
- package/src/mem_pools/index.ts +4 -1
- package/src/mem_pools/instrumentation.ts +17 -13
- package/src/mem_pools/interface.ts +4 -4
- package/src/mem_pools/tx_pool/README.md +1 -1
- package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +3 -3
- package/src/mem_pools/tx_pool_v2/README.md +283 -0
- package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
- package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
- package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
- package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +121 -0
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
- package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
- package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
- package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
- package/src/mem_pools/tx_pool_v2/index.ts +12 -0
- package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
- package/src/mem_pools/tx_pool_v2/interfaces.ts +245 -0
- package/src/mem_pools/tx_pool_v2/tx_metadata.ts +327 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +226 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1090 -0
- package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +2 -2
- package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
- package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
- package/src/msg_validators/proposal_validator/proposal_validator.ts +63 -40
- package/src/msg_validators/tx_validator/README.md +115 -0
- package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
- package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
- package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
- package/src/msg_validators/tx_validator/block_header_validator.ts +15 -3
- package/src/msg_validators/tx_validator/double_spend_validator.ts +11 -6
- package/src/msg_validators/tx_validator/factory.ts +353 -77
- package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
- package/src/msg_validators/tx_validator/gas_validator.ts +90 -27
- package/src/msg_validators/tx_validator/index.ts +2 -0
- package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
- package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
- package/src/msg_validators/tx_validator/phases_validator.ts +51 -26
- package/src/msg_validators/tx_validator/timestamp_validator.ts +23 -18
- package/src/services/dummy_service.ts +18 -6
- package/src/services/encoding.ts +9 -9
- package/src/services/gossipsub/README.md +641 -0
- package/src/services/gossipsub/index.ts +2 -0
- package/src/services/gossipsub/scoring.ts +29 -5
- package/src/services/gossipsub/topic_score_params.ts +487 -0
- package/src/services/index.ts +1 -0
- package/src/services/libp2p/libp2p_service.ts +460 -366
- package/src/services/peer-manager/metrics.ts +7 -0
- package/src/services/peer-manager/peer_manager.ts +2 -1
- package/src/services/peer-manager/peer_scoring.ts +25 -0
- package/src/services/reqresp/batch-tx-requester/README.md +7 -7
- package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +31 -59
- package/src/services/reqresp/batch-tx-requester/interface.ts +1 -5
- package/src/services/reqresp/batch-tx-requester/missing_txs.ts +23 -71
- package/src/services/reqresp/batch-tx-requester/peer_collection.ts +63 -24
- package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
- package/src/services/reqresp/interface.ts +26 -1
- package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +23 -14
- package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +38 -15
- package/src/services/reqresp/protocols/tx.ts +22 -0
- package/src/services/reqresp/reqresp.ts +16 -4
- package/src/services/service.ts +51 -2
- package/src/services/tx_collection/config.ts +74 -6
- package/src/services/tx_collection/fast_tx_collection.ts +74 -51
- package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
- package/src/services/tx_collection/file_store_tx_source.ts +117 -0
- package/src/services/tx_collection/index.ts +2 -1
- package/src/services/tx_collection/instrumentation.ts +7 -1
- package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
- package/src/services/tx_collection/proposal_tx_collector.ts +20 -21
- package/src/services/tx_collection/slow_tx_collection.ts +66 -33
- package/src/services/tx_collection/tx_collection.ts +113 -16
- package/src/services/tx_collection/tx_collection_sink.ts +30 -34
- package/src/services/tx_collection/tx_source.ts +22 -3
- package/src/services/tx_file_store/config.ts +37 -0
- package/src/services/tx_file_store/index.ts +3 -0
- package/src/services/tx_file_store/instrumentation.ts +36 -0
- package/src/services/tx_file_store/tx_file_store.ts +175 -0
- package/src/services/tx_provider.ts +10 -9
- package/src/test-helpers/make-test-p2p-clients.ts +4 -6
- package/src/test-helpers/mock-pubsub.ts +146 -9
- package/src/test-helpers/reqresp-nodes.ts +5 -7
- package/src/test-helpers/testbench-utils.ts +127 -71
- package/src/testbench/p2p_client_testbench_worker.ts +26 -22
- package/src/testbench/worker_client_manager.ts +13 -5
- package/src/util.ts +8 -2
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
- package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EpochCacheInterface } from '@aztec/epoch-cache';
|
|
2
|
-
import {
|
|
2
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import type { Logger } from '@aztec/foundation/log';
|
|
4
|
+
import type { L2Block, L2BlockId } from '@aztec/stdlib/block';
|
|
4
5
|
import type { WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
5
6
|
import type {
|
|
6
7
|
BlockProposal,
|
|
@@ -12,15 +13,17 @@ import { type BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
|
|
|
12
13
|
|
|
13
14
|
import EventEmitter from 'events';
|
|
14
15
|
|
|
15
|
-
import type {
|
|
16
|
-
import type {
|
|
16
|
+
import type { TryAddResult } from '../mem_pools/attestation_pool/attestation_pool.js';
|
|
17
|
+
import type { AddTxsResult, TxPoolV2, TxPoolV2Config } from '../mem_pools/tx_pool_v2/interfaces.js';
|
|
18
|
+
import type { TxState } from '../mem_pools/tx_pool_v2/tx_metadata.js';
|
|
17
19
|
import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.js';
|
|
18
20
|
|
|
19
21
|
/**
|
|
20
22
|
* In-memory TxPool implementation for testing.
|
|
21
23
|
* Provides basic tx storage without persistence.
|
|
24
|
+
* Implements TxPoolV2 interface with stub implementations for testing.
|
|
22
25
|
*/
|
|
23
|
-
export class InMemoryTxPool extends EventEmitter implements
|
|
26
|
+
export class InMemoryTxPool extends EventEmitter implements TxPoolV2 {
|
|
24
27
|
private txsByHash = new Map<string, Tx>();
|
|
25
28
|
private logger: Logger | null = null;
|
|
26
29
|
|
|
@@ -54,133 +57,189 @@ export class InMemoryTxPool extends EventEmitter implements TxPool {
|
|
|
54
57
|
this.removeAllListeners();
|
|
55
58
|
}
|
|
56
59
|
|
|
57
|
-
|
|
60
|
+
// === Core Operations (TxPoolV2) ===
|
|
61
|
+
|
|
62
|
+
addPendingTxs(txs: Tx[], opts?: { source?: string; feeComparisonOnly?: boolean }): Promise<AddTxsResult> {
|
|
63
|
+
const accepted: TxHash[] = [];
|
|
58
64
|
const newTxs: Tx[] = [];
|
|
59
|
-
let added = 0;
|
|
60
65
|
for (const tx of txs) {
|
|
61
66
|
const key = tx.getTxHash().toString();
|
|
62
67
|
if (!this.txsByHash.has(key)) {
|
|
63
68
|
newTxs.push(tx);
|
|
64
|
-
|
|
69
|
+
accepted.push(tx.getTxHash());
|
|
65
70
|
}
|
|
66
71
|
this.txsByHash.set(key, tx);
|
|
67
72
|
}
|
|
68
73
|
if (newTxs.length > 0) {
|
|
69
74
|
this.emit('txs-added', { txs: newTxs, source: opts?.source });
|
|
70
75
|
}
|
|
71
|
-
return Promise.resolve(
|
|
76
|
+
return Promise.resolve({ accepted, ignored: [], rejected: [] });
|
|
72
77
|
}
|
|
73
78
|
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'> {
|
|
80
|
+
const key = tx.getTxHash().toString();
|
|
81
|
+
if (this.txsByHash.has(key)) {
|
|
82
|
+
return Promise.resolve('ignored');
|
|
83
|
+
}
|
|
84
|
+
return Promise.resolve('accepted');
|
|
76
85
|
}
|
|
77
86
|
|
|
78
|
-
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
addProtectedTxs(txs: Tx[], _block: BlockHeader, opts?: { source?: string }): Promise<void> {
|
|
88
|
+
for (const tx of txs) {
|
|
89
|
+
const key = tx.getTxHash().toString();
|
|
90
|
+
this.txsByHash.set(key, tx);
|
|
91
|
+
}
|
|
92
|
+
if (txs.length > 0) {
|
|
93
|
+
this.emit('txs-added', { txs, source: opts?.source });
|
|
94
|
+
}
|
|
95
|
+
return Promise.resolve();
|
|
83
96
|
}
|
|
84
97
|
|
|
85
|
-
|
|
86
|
-
|
|
98
|
+
protectTxs(txHashes: TxHash[], _block: BlockHeader): Promise<TxHash[]> {
|
|
99
|
+
const notFound: TxHash[] = [];
|
|
100
|
+
for (const txHash of txHashes) {
|
|
101
|
+
if (!this.txsByHash.has(txHash.toString())) {
|
|
102
|
+
notFound.push(txHash);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return Promise.resolve(notFound);
|
|
87
106
|
}
|
|
88
107
|
|
|
89
|
-
|
|
90
|
-
|
|
108
|
+
addMinedTxs(txs: Tx[], _block: BlockHeader, _opts?: { source?: string }): Promise<void> {
|
|
109
|
+
for (const tx of txs) {
|
|
110
|
+
const key = tx.getTxHash().toString();
|
|
111
|
+
this.txsByHash.set(key, tx);
|
|
112
|
+
}
|
|
113
|
+
return Promise.resolve();
|
|
91
114
|
}
|
|
92
115
|
|
|
93
|
-
|
|
94
|
-
|
|
116
|
+
// === State Transition Handlers (TxPoolV2) ===
|
|
117
|
+
|
|
118
|
+
handleMinedBlock(_block: L2Block): Promise<void> {
|
|
119
|
+
return Promise.resolve();
|
|
95
120
|
}
|
|
96
121
|
|
|
97
|
-
|
|
122
|
+
prepareForSlot(_slotNumber: SlotNumber): Promise<void> {
|
|
123
|
+
return Promise.resolve();
|
|
124
|
+
}
|
|
98
125
|
|
|
99
|
-
|
|
126
|
+
handlePrunedBlocks(_latestBlock: L2BlockId, _options?: { deleteAllTxs?: boolean }): Promise<void> {
|
|
127
|
+
return Promise.resolve();
|
|
128
|
+
}
|
|
100
129
|
|
|
101
|
-
|
|
130
|
+
handleFailedExecution(txHashes: TxHash[]): Promise<void> {
|
|
102
131
|
for (const txHash of txHashes) {
|
|
103
132
|
this.txsByHash.delete(txHash.toString());
|
|
104
133
|
}
|
|
105
134
|
return Promise.resolve();
|
|
106
135
|
}
|
|
107
136
|
|
|
108
|
-
|
|
109
|
-
return Promise.resolve(
|
|
137
|
+
handleFinalizedBlock(_block: BlockHeader): Promise<void> {
|
|
138
|
+
return Promise.resolve();
|
|
110
139
|
}
|
|
111
140
|
|
|
112
|
-
|
|
113
|
-
|
|
141
|
+
// === Query Operations (TxPoolV2) ===
|
|
142
|
+
|
|
143
|
+
getTxByHash(hash: TxHash): Promise<Tx | undefined> {
|
|
144
|
+
return Promise.resolve(this.txsByHash.get(hash.toString()));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
getTxsByHash(hashes: TxHash[]): Promise<(Tx | undefined)[]> {
|
|
148
|
+
const result = hashes.map(h => this.txsByHash.get(h.toString()));
|
|
149
|
+
const found = result.filter(tx => tx !== undefined).length;
|
|
150
|
+
this.logger?.debug(`[TxPool] getTxsByHash: requested ${hashes.length}, found ${found}`);
|
|
151
|
+
return Promise.resolve(result);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
hasTxs(hashes: TxHash[]): Promise<boolean[]> {
|
|
155
|
+
return Promise.resolve(hashes.map(h => this.txsByHash.has(h.toString())));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
getArchivedTxByHash(_hash: TxHash): Promise<Tx | undefined> {
|
|
159
|
+
return Promise.resolve(undefined);
|
|
114
160
|
}
|
|
115
161
|
|
|
116
162
|
getPendingTxHashes(): Promise<TxHash[]> {
|
|
117
163
|
return Promise.resolve([...this.txsByHash.keys()].map(key => TxHash.fromString(key)));
|
|
118
164
|
}
|
|
119
165
|
|
|
166
|
+
getEligiblePendingTxHashes(): Promise<TxHash[]> {
|
|
167
|
+
return this.getPendingTxHashes();
|
|
168
|
+
}
|
|
169
|
+
|
|
120
170
|
getPendingTxCount(): Promise<number> {
|
|
121
171
|
return Promise.resolve(this.txsByHash.size);
|
|
122
172
|
}
|
|
123
173
|
|
|
124
|
-
getMinedTxHashes(): Promise<[
|
|
174
|
+
getMinedTxHashes(): Promise<[TxHash, L2BlockId][]> {
|
|
125
175
|
return Promise.resolve([]);
|
|
126
176
|
}
|
|
127
177
|
|
|
128
|
-
|
|
129
|
-
return Promise.resolve(
|
|
178
|
+
getMinedTxCount(): Promise<number> {
|
|
179
|
+
return Promise.resolve(0);
|
|
130
180
|
}
|
|
131
181
|
|
|
132
|
-
|
|
182
|
+
getTxStatus(hash: TxHash): Promise<TxState | 'deleted' | undefined> {
|
|
183
|
+
return Promise.resolve(this.txsByHash.has(hash.toString()) ? 'pending' : undefined);
|
|
184
|
+
}
|
|
133
185
|
|
|
134
186
|
isEmpty(): Promise<boolean> {
|
|
135
187
|
return Promise.resolve(this.txsByHash.size === 0);
|
|
136
188
|
}
|
|
137
189
|
|
|
138
|
-
|
|
190
|
+
getLowestPriorityPending(_limit: number): Promise<TxHash[]> {
|
|
191
|
+
return Promise.resolve([]);
|
|
192
|
+
}
|
|
139
193
|
|
|
140
|
-
|
|
194
|
+
// === Configuration (TxPoolV2) ===
|
|
141
195
|
|
|
142
|
-
|
|
143
|
-
return Promise.resolve(
|
|
196
|
+
updateConfig(_config: Partial<TxPoolV2Config>): Promise<void> {
|
|
197
|
+
return Promise.resolve();
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// === Lifecycle (TxPoolV2) ===
|
|
201
|
+
|
|
202
|
+
start(): Promise<void> {
|
|
203
|
+
return Promise.resolve();
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
stop(): Promise<void> {
|
|
207
|
+
return Promise.resolve();
|
|
144
208
|
}
|
|
145
209
|
}
|
|
146
210
|
|
|
147
211
|
/**
|
|
148
|
-
* In-memory AttestationPool
|
|
212
|
+
* In-memory AttestationPool mock for testing/benchmarking.
|
|
213
|
+
* Provides minimal implementation without persistence.
|
|
149
214
|
*/
|
|
150
|
-
export class InMemoryAttestationPool
|
|
215
|
+
export class InMemoryAttestationPool {
|
|
151
216
|
private proposals = new Map<string, BlockProposal>();
|
|
152
217
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
218
|
+
tryAddBlockProposal(blockProposal: BlockProposal): Promise<TryAddResult> {
|
|
219
|
+
const id = blockProposal.archive.toString();
|
|
220
|
+
const alreadyExists = this.proposals.has(id);
|
|
221
|
+
if (alreadyExists) {
|
|
222
|
+
return Promise.resolve({ added: false, alreadyExists: true, count: 1 });
|
|
223
|
+
}
|
|
224
|
+
this.proposals.set(id, blockProposal);
|
|
225
|
+
return Promise.resolve({ added: true, alreadyExists: false, count: 1 });
|
|
156
226
|
}
|
|
157
227
|
|
|
158
228
|
getBlockProposal(id: string): Promise<BlockProposal | undefined> {
|
|
159
229
|
return Promise.resolve(this.proposals.get(id));
|
|
160
230
|
}
|
|
161
231
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return Promise.resolve(this.proposals.has(id));
|
|
232
|
+
tryAddCheckpointProposal(_proposal: CheckpointProposal): Promise<TryAddResult> {
|
|
233
|
+
return Promise.resolve({ added: true, alreadyExists: false, count: 1 });
|
|
165
234
|
}
|
|
166
235
|
|
|
167
|
-
canAddProposal(_block: BlockProposal): Promise<boolean> {
|
|
168
|
-
return Promise.resolve(true);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
async addCheckpointProposal(_proposal: CheckpointProposal): Promise<void> {}
|
|
172
|
-
|
|
173
236
|
getCheckpointProposal(_id: string): Promise<CheckpointProposalCore | undefined> {
|
|
174
237
|
return Promise.resolve(undefined);
|
|
175
238
|
}
|
|
176
239
|
|
|
177
|
-
|
|
178
|
-
return Promise.resolve(false);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
async addCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void> {}
|
|
240
|
+
async addOwnCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void> {}
|
|
182
241
|
|
|
183
|
-
async
|
|
242
|
+
async deleteOlderThan(_slot: SlotNumber): Promise<void> {}
|
|
184
243
|
|
|
185
244
|
getCheckpointAttestationsForSlot(_slot: SlotNumber): Promise<CheckpointAttestation[]> {
|
|
186
245
|
return Promise.resolve([]);
|
|
@@ -193,23 +252,11 @@ export class InMemoryAttestationPool implements AttestationPool {
|
|
|
193
252
|
return Promise.resolve([]);
|
|
194
253
|
}
|
|
195
254
|
|
|
196
|
-
|
|
197
|
-
return Promise.resolve(false);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
canAddCheckpointProposal(_proposal: CheckpointProposal): Promise<boolean> {
|
|
201
|
-
return Promise.resolve(true);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
canAddCheckpointAttestation(_attestation: CheckpointAttestation, _committeeSize: number): Promise<boolean> {
|
|
205
|
-
return Promise.resolve(true);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
hasReachedCheckpointProposalCap(_slot: SlotNumber): Promise<boolean> {
|
|
209
|
-
return Promise.resolve(false);
|
|
255
|
+
tryAddCheckpointAttestation(_attestation: CheckpointAttestation): Promise<TryAddResult> {
|
|
256
|
+
return Promise.resolve({ added: true, alreadyExists: false, count: 1 });
|
|
210
257
|
}
|
|
211
258
|
|
|
212
|
-
|
|
259
|
+
hasBlockProposalsForSlot(_slot: SlotNumber): Promise<boolean> {
|
|
213
260
|
return Promise.resolve(false);
|
|
214
261
|
}
|
|
215
262
|
|
|
@@ -237,6 +284,15 @@ export function createMockEpochCache(): EpochCacheInterface {
|
|
|
237
284
|
isInCommittee: () => Promise.resolve(false),
|
|
238
285
|
getRegisteredValidators: () => Promise.resolve([]),
|
|
239
286
|
filterInCommittee: () => Promise.resolve([]),
|
|
287
|
+
getL1Constants: () => ({
|
|
288
|
+
l1StartBlock: 0n,
|
|
289
|
+
l1GenesisTime: 0n,
|
|
290
|
+
epochDuration: 1,
|
|
291
|
+
slotDuration: 1,
|
|
292
|
+
ethereumSlotDuration: 1,
|
|
293
|
+
proofSubmissionEpochs: 1,
|
|
294
|
+
targetCommitteeSize: 48,
|
|
295
|
+
}),
|
|
240
296
|
};
|
|
241
297
|
}
|
|
242
298
|
|
|
@@ -12,14 +12,14 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
12
12
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
13
13
|
import { sleep } from '@aztec/foundation/sleep';
|
|
14
14
|
import { DateProvider, Timer } from '@aztec/foundation/timer';
|
|
15
|
-
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
16
15
|
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
17
16
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
18
17
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
19
18
|
import type { L2BlockSource } from '@aztec/stdlib/block';
|
|
20
19
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
21
20
|
import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
22
|
-
import
|
|
21
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
22
|
+
import { type BlockProposal, P2PMessage } from '@aztec/stdlib/p2p';
|
|
23
23
|
import { ChonkProof } from '@aztec/stdlib/proofs';
|
|
24
24
|
import { makeAztecAddress, makeBlockHeader, makeBlockProposal, mockTx } from '@aztec/stdlib/testing';
|
|
25
25
|
import { Tx, TxHash, type TxValidationResult } from '@aztec/stdlib/tx';
|
|
@@ -29,22 +29,19 @@ import type { Message, PeerId } from '@libp2p/interface';
|
|
|
29
29
|
import { TopicValidatorResult } from '@libp2p/interface';
|
|
30
30
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
31
31
|
|
|
32
|
-
import type { P2PClient } from '../client/
|
|
32
|
+
import type { P2PClient } from '../client/index.js';
|
|
33
33
|
import type { P2PConfig } from '../config.js';
|
|
34
34
|
import { createP2PClient } from '../index.js';
|
|
35
|
-
import type { MemPools } from '../mem_pools/
|
|
36
|
-
import { LibP2PService } from '../services/
|
|
35
|
+
import type { MemPools } from '../mem_pools/index.js';
|
|
36
|
+
import { BatchTxRequesterCollector, LibP2PService, SendBatchRequestCollector } from '../services/index.js';
|
|
37
37
|
import type { PeerManager } from '../services/peer-manager/peer_manager.js';
|
|
38
38
|
import type { BatchTxRequesterLibP2PService } from '../services/reqresp/batch-tx-requester/interface.js';
|
|
39
39
|
import type { IBatchRequestTxValidator } from '../services/reqresp/batch-tx-requester/tx_validator.js';
|
|
40
40
|
import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.js';
|
|
41
41
|
import type { ReqResp } from '../services/reqresp/reqresp.js';
|
|
42
42
|
import type { PeerDiscoveryService } from '../services/service.js';
|
|
43
|
-
import {
|
|
44
|
-
|
|
45
|
-
SendBatchRequestCollector,
|
|
46
|
-
} from '../services/tx_collection/proposal_tx_collector.js';
|
|
47
|
-
import { AlwaysTrueCircuitVerifier } from '../test-helpers/reqresp-nodes.js';
|
|
43
|
+
import { MissingTxsTracker } from '../services/tx_collection/missing_txs_tracker.js';
|
|
44
|
+
import { AlwaysTrueCircuitVerifier } from '../test-helpers/index.js';
|
|
48
45
|
import {
|
|
49
46
|
BENCHMARK_CONSTANTS,
|
|
50
47
|
type CollectorType,
|
|
@@ -55,7 +52,7 @@ import {
|
|
|
55
52
|
createMockEpochCache,
|
|
56
53
|
createMockWorldStateSynchronizer,
|
|
57
54
|
filterTxsByDistribution,
|
|
58
|
-
} from '../test-helpers/
|
|
55
|
+
} from '../test-helpers/index.js';
|
|
59
56
|
import type { PubSubLibp2p } from '../util.js';
|
|
60
57
|
|
|
61
58
|
export type { DistributionPattern, CollectorType } from '../test-helpers/testbench-utils.js';
|
|
@@ -89,12 +86,11 @@ export interface BenchReadyMessage {
|
|
|
89
86
|
}
|
|
90
87
|
const txCache = new Map<number, Tx[]>();
|
|
91
88
|
|
|
92
|
-
class TestLibP2PService
|
|
89
|
+
class TestLibP2PService extends LibP2PService {
|
|
93
90
|
private disableTxValidation: boolean;
|
|
94
91
|
private gossipMessageCount = 0;
|
|
95
92
|
|
|
96
93
|
constructor(
|
|
97
|
-
clientType: T,
|
|
98
94
|
config: P2PConfig,
|
|
99
95
|
node: PubSubLibp2p,
|
|
100
96
|
peerDiscoveryService: PeerDiscoveryService,
|
|
@@ -110,7 +106,6 @@ class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends Li
|
|
|
110
106
|
disableTxValidation = true,
|
|
111
107
|
) {
|
|
112
108
|
super(
|
|
113
|
-
clientType,
|
|
114
109
|
config,
|
|
115
110
|
node,
|
|
116
111
|
peerDiscoveryService,
|
|
@@ -144,7 +139,7 @@ class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends Li
|
|
|
144
139
|
const txHash = tx.getTxHash();
|
|
145
140
|
const txHashString = txHash.toString();
|
|
146
141
|
this.logger.verbose(`Received tx ${txHashString} from external peer ${source.toString()}.`);
|
|
147
|
-
await this.mempools.txPool.
|
|
142
|
+
await this.mempools.txPool.addPendingTxs([tx]);
|
|
148
143
|
} else {
|
|
149
144
|
await super.handleGossipedTx(payload, msgId, source);
|
|
150
145
|
}
|
|
@@ -166,7 +161,7 @@ async function generateDeterministicTxs(txCount: number, seed: number, config: P
|
|
|
166
161
|
return cached.slice(0, txCount);
|
|
167
162
|
}
|
|
168
163
|
|
|
169
|
-
const
|
|
164
|
+
const expirationTimestampBase = BigInt(seed);
|
|
170
165
|
for (let i = cached.length; i < txCount; i++) {
|
|
171
166
|
const txSeed = seed * 10000 + i;
|
|
172
167
|
const tx = await mockTx(txSeed, {
|
|
@@ -182,7 +177,7 @@ async function generateDeterministicTxs(txCount: number, seed: number, config: P
|
|
|
182
177
|
hasPublicTeardownCallRequest: false,
|
|
183
178
|
publicCalldataSize: 0,
|
|
184
179
|
});
|
|
185
|
-
tx.data.
|
|
180
|
+
tx.data.expirationTimestamp = expirationTimestampBase + BigInt(i);
|
|
186
181
|
await tx.recomputeHash();
|
|
187
182
|
cached.push(tx);
|
|
188
183
|
}
|
|
@@ -277,7 +272,12 @@ async function runAggregatorBenchmark(
|
|
|
277
272
|
new DateProvider(),
|
|
278
273
|
noopTxValidator,
|
|
279
274
|
);
|
|
280
|
-
const fetchedTxs = await collector.collectTxs(
|
|
275
|
+
const fetchedTxs = await collector.collectTxs(
|
|
276
|
+
MissingTxsTracker.fromArray(txHashes),
|
|
277
|
+
blockProposal,
|
|
278
|
+
pinnedPeer,
|
|
279
|
+
timeoutMs,
|
|
280
|
+
);
|
|
281
281
|
const durationMs = timer.ms();
|
|
282
282
|
return {
|
|
283
283
|
type: 'BENCH_RESULT',
|
|
@@ -292,7 +292,12 @@ async function runAggregatorBenchmark(
|
|
|
292
292
|
BENCHMARK_CONSTANTS.FIXED_MAX_PEERS,
|
|
293
293
|
BENCHMARK_CONSTANTS.FIXED_MAX_RETRY_ATTEMPTS,
|
|
294
294
|
);
|
|
295
|
-
const fetchedTxs = await collector.collectTxs(
|
|
295
|
+
const fetchedTxs = await collector.collectTxs(
|
|
296
|
+
MissingTxsTracker.fromArray(txHashes),
|
|
297
|
+
blockProposal,
|
|
298
|
+
pinnedPeer,
|
|
299
|
+
timeoutMs,
|
|
300
|
+
);
|
|
296
301
|
const durationMs = timer.ms();
|
|
297
302
|
return {
|
|
298
303
|
type: 'BENCH_RESULT',
|
|
@@ -335,6 +340,7 @@ process.on('message', async msg => {
|
|
|
335
340
|
const config: P2PConfig = {
|
|
336
341
|
...rawConfig,
|
|
337
342
|
peerIdPrivateKey: rawConfig.peerIdPrivateKey ? new SecretValue(rawConfig.peerIdPrivateKey) : undefined,
|
|
343
|
+
priceBumpPercentage: 10n,
|
|
338
344
|
} as P2PConfig;
|
|
339
345
|
|
|
340
346
|
workerConfig = config;
|
|
@@ -358,7 +364,6 @@ process.on('message', async msg => {
|
|
|
358
364
|
};
|
|
359
365
|
|
|
360
366
|
const client = await createP2PClient(
|
|
361
|
-
P2PClientType.Full,
|
|
362
367
|
config as P2PConfig & DataStoreConfig,
|
|
363
368
|
l2BlockSource,
|
|
364
369
|
proofVerifier as ClientProtocolCircuitVerifier,
|
|
@@ -371,7 +376,6 @@ process.on('message', async msg => {
|
|
|
371
376
|
);
|
|
372
377
|
|
|
373
378
|
const testService = new TestLibP2PService(
|
|
374
|
-
P2PClientType.Full,
|
|
375
379
|
config,
|
|
376
380
|
(client as any).p2pService.node,
|
|
377
381
|
(client as any).p2pService.peerDiscoveryService,
|
|
@@ -447,7 +451,7 @@ process.on('message', async msg => {
|
|
|
447
451
|
const txHashes = allTxs.map(tx => tx.getTxHash());
|
|
448
452
|
const blockProposal = await createBlockProposal(benchCmd.blockNumber, txHashes, benchCmd.seed);
|
|
449
453
|
|
|
450
|
-
await workerAttestationPool.
|
|
454
|
+
await workerAttestationPool.tryAddBlockProposal(blockProposal);
|
|
451
455
|
workerLogger.debug(
|
|
452
456
|
`[BENCH] Added block proposal with archive ${blockProposal.archive.toString().slice(0, 10)}...`,
|
|
453
457
|
);
|
|
@@ -81,13 +81,15 @@ class WorkerClientManager {
|
|
|
81
81
|
* Note: We send the raw peerIdPrivateKey string instead of SecretValue
|
|
82
82
|
* because SecretValue.toJSON() returns '[Redacted]', losing the value.
|
|
83
83
|
* The worker must re-wrap it in SecretValue.
|
|
84
|
+
* We also omit priceBumpPercentage since it's a bigint and can't be
|
|
85
|
+
* serialized over IPC (which uses JSON under the hood).
|
|
84
86
|
*/
|
|
85
87
|
private createClientConfig(
|
|
86
88
|
clientIndex: number,
|
|
87
89
|
port: number,
|
|
88
90
|
otherNodes: string[],
|
|
89
|
-
): Omit<P2PConfig, 'peerIdPrivateKey'> & { peerIdPrivateKey: string } & Partial<ChainConfig> {
|
|
90
|
-
|
|
91
|
+
): Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & { peerIdPrivateKey: string } & Partial<ChainConfig> {
|
|
92
|
+
const { priceBumpPercentage: _, ...config } = {
|
|
91
93
|
...getP2PDefaultConfig(),
|
|
92
94
|
p2pEnabled: true,
|
|
93
95
|
peerIdPrivateKey: this.peerIdPrivateKeys[clientIndex],
|
|
@@ -96,7 +98,10 @@ class WorkerClientManager {
|
|
|
96
98
|
p2pPort: port,
|
|
97
99
|
bootstrapNodes: [...otherNodes],
|
|
98
100
|
...this.p2pConfig,
|
|
99
|
-
}
|
|
101
|
+
};
|
|
102
|
+
return config as Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & {
|
|
103
|
+
peerIdPrivateKey: string;
|
|
104
|
+
} & Partial<ChainConfig>;
|
|
100
105
|
}
|
|
101
106
|
|
|
102
107
|
/**
|
|
@@ -104,7 +109,9 @@ class WorkerClientManager {
|
|
|
104
109
|
* Config uses raw string for peerIdPrivateKey (not SecretValue) for IPC serialization.
|
|
105
110
|
*/
|
|
106
111
|
private spawnWorkerProcess(
|
|
107
|
-
config: Omit<P2PConfig, 'peerIdPrivateKey'> & {
|
|
112
|
+
config: Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & {
|
|
113
|
+
peerIdPrivateKey: string;
|
|
114
|
+
} & Partial<ChainConfig>,
|
|
108
115
|
clientIndex: number,
|
|
109
116
|
): [ChildProcess, Promise<void>] {
|
|
110
117
|
const useCompiled = existsSync(workerJsPath);
|
|
@@ -483,7 +490,8 @@ class WorkerClientManager {
|
|
|
483
490
|
};
|
|
484
491
|
|
|
485
492
|
this.processes[0].send(aggregatorCmd);
|
|
486
|
-
const
|
|
493
|
+
const aggregatorBudgetMs = config.timeoutMs + BENCHMARK_CONSTANTS.MAX_PEER_WAIT_MS + 30000;
|
|
494
|
+
const result = await this.waitForBenchResult(0, aggregatorBudgetMs);
|
|
487
495
|
|
|
488
496
|
this.logger.info(
|
|
489
497
|
`Benchmark complete: fetched=${result.fetchedCount}/${config.txCount}, duration=${result.durationMs.toFixed(0)}ms, success=${result.success}`,
|
package/src/util.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SecretValue } from '@aztec/foundation/config';
|
|
2
2
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
3
|
import type { AztecAsyncKVStore, AztecAsyncSingleton } from '@aztec/kv-store';
|
|
4
|
-
import type { DataStoreConfig } from '@aztec/kv-store
|
|
4
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
5
5
|
|
|
6
6
|
import type { GossipSub } from '@chainsafe/libp2p-gossipsub';
|
|
7
7
|
import { generateKeyPair, marshalPrivateKey, unmarshalPrivateKey } from '@libp2p/crypto/keys';
|
|
@@ -23,7 +23,13 @@ export interface PubSubLibp2p extends Pick<Libp2p, 'status' | 'start' | 'stop' |
|
|
|
23
23
|
services: {
|
|
24
24
|
pubsub: Pick<
|
|
25
25
|
GossipSub,
|
|
26
|
-
|
|
26
|
+
| 'addEventListener'
|
|
27
|
+
| 'removeEventListener'
|
|
28
|
+
| 'publish'
|
|
29
|
+
| 'subscribe'
|
|
30
|
+
| 'reportMessageValidationResult'
|
|
31
|
+
| 'direct'
|
|
32
|
+
| 'getMeshPeers'
|
|
27
33
|
> & { score: Pick<GossipSub['score'], 'score'> };
|
|
28
34
|
};
|
|
29
35
|
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
|
-
import { BlockProposal, CheckpointAttestation, CheckpointProposal, type CheckpointProposalCore } from '@aztec/stdlib/p2p';
|
|
4
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
|
-
import type { AttestationPool } from './attestation_pool.js';
|
|
6
|
-
export declare const MAX_PROPOSALS_PER_SLOT = 5;
|
|
7
|
-
export declare const ATTESTATION_CAP_BUFFER = 10;
|
|
8
|
-
export declare class KvAttestationPool implements AttestationPool {
|
|
9
|
-
private store;
|
|
10
|
-
private log;
|
|
11
|
-
private metrics;
|
|
12
|
-
private proposals;
|
|
13
|
-
private checkpointAttestations;
|
|
14
|
-
private checkpointProposals;
|
|
15
|
-
private checkpointProposalsForSlot;
|
|
16
|
-
private checkpointAttestationsForProposal;
|
|
17
|
-
constructor(store: AztecAsyncKVStore, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
|
|
18
|
-
private poolStats;
|
|
19
|
-
isEmpty(): Promise<boolean>;
|
|
20
|
-
private getProposalKey;
|
|
21
|
-
private getAttestationKey;
|
|
22
|
-
addBlockProposal(blockProposal: BlockProposal): Promise<void>;
|
|
23
|
-
getBlockProposal(id: string): Promise<BlockProposal | undefined>;
|
|
24
|
-
hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
|
|
25
|
-
addCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
|
|
26
|
-
getCheckpointProposal(id: string): Promise<CheckpointProposalCore | undefined>;
|
|
27
|
-
hasCheckpointProposal(idOrProposal: string | CheckpointProposal): Promise<boolean>;
|
|
28
|
-
addCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
|
|
29
|
-
getCheckpointAttestationsForSlot(slot: SlotNumber): Promise<CheckpointAttestation[]>;
|
|
30
|
-
getCheckpointAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<CheckpointAttestation[]>;
|
|
31
|
-
deleteCheckpointAttestationsOlderThan(oldestSlot: SlotNumber): Promise<void>;
|
|
32
|
-
private deleteCheckpointAttestationsForSlot;
|
|
33
|
-
hasCheckpointAttestation(attestation: CheckpointAttestation): Promise<boolean>;
|
|
34
|
-
canAddProposal(_block: BlockProposal): Promise<boolean>;
|
|
35
|
-
canAddCheckpointProposal(proposal: CheckpointProposal): Promise<boolean>;
|
|
36
|
-
canAddCheckpointAttestation(attestation: CheckpointAttestation, committeeSize: number): Promise<boolean>;
|
|
37
|
-
hasReachedCheckpointProposalCap(slot: SlotNumber): Promise<boolean>;
|
|
38
|
-
hasReachedCheckpointAttestationCap(slot: SlotNumber, proposalId: string, committeeSize: number): Promise<boolean>;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2t2X2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSTdELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sRUFDTCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RCxlQUFPLE1BQU0sc0JBQXNCLElBQUksQ0FBQztBQUN4QyxlQUFPLE1BQU0sc0JBQXNCLEtBQUssQ0FBQztBQUV6QyxxQkFBYSxpQkFBa0IsWUFBVyxlQUFlO0lBZXJELE9BQU8sQ0FBQyxLQUFLO0lBRWIsT0FBTyxDQUFDLEdBQUc7SUFoQmIsT0FBTyxDQUFDLE9BQU8sQ0FBNkM7SUFFNUQsT0FBTyxDQUFDLFNBQVMsQ0FHZjtJQUdGLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBZ0M7SUFDOUQsT0FBTyxDQUFDLG1CQUFtQixDQUFnQztJQUMzRCxPQUFPLENBQUMsMEJBQTBCLENBQXFDO0lBQ3ZFLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBcUM7SUFFOUUsWUFDVSxLQUFLLEVBQUUsaUJBQWlCLEVBQ2hDLFNBQVMsR0FBRSxlQUFzQyxFQUN6QyxHQUFHLHlDQUF5QyxFQVdyRDtJQUVELE9BQU8sQ0FBQyxTQUFTLENBSWY7SUFFVyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVF2QztJQUVELE9BQU8sQ0FBQyxjQUFjO0lBWXRCLE9BQU8sQ0FBQyxpQkFBaUI7SUFJWixnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNekU7SUFFWSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBVzVFO0lBRVksZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUdwRjtJQUVZLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBNEI5RTtJQUVZLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxDQVcxRjtJQUVZLHFCQUFxQixDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc5RjtJQUVZLHlCQUF5QixDQUFDLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FzQzNGO0lBRVksZ0NBQWdDLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQVNoRztJQUVZLDJDQUEyQyxDQUN0RCxJQUFJLEVBQUUsVUFBVSxFQUNoQixVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQWtCbEM7SUFFWSxxQ0FBcUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLeEY7WUFFYSxtQ0FBbUM7SUF3QnBDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBYzFGO0lBRU0sY0FBYyxDQUFDLE1BQU0sRUFBRSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc3RDtJQUVZLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBTXBGO0lBRVksMkJBQTJCLENBQ3RDLFdBQVcsRUFBRSxxQkFBcUIsRUFDbEMsYUFBYSxFQUFFLE1BQU0sR0FDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVNsQjtJQUVZLCtCQUErQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUcvRTtJQUVZLGtDQUFrQyxDQUM3QyxJQUFJLEVBQUUsVUFBVSxFQUNoQixVQUFVLEVBQUUsTUFBTSxFQUNsQixhQUFhLEVBQUUsTUFBTSxHQUNwQixPQUFPLENBQUMsT0FBTyxDQUFDLENBS2xCO0NBQ0YifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kv_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/kv_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,qBAAa,iBAAkB,YAAW,eAAe;IAerD,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IAhBb,OAAO,CAAC,OAAO,CAA6C;IAE5D,OAAO,CAAC,SAAS,CAGf;IAGF,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,0BAA0B,CAAqC;IACvE,OAAO,CAAC,iCAAiC,CAAqC;IAE9E,YACU,KAAK,EAAE,iBAAiB,EAChC,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAyC,EAWrD;IAED,OAAO,CAAC,SAAS,CAIf;IAEW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAQvC;IAED,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAIZ,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE;IAEY,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAW5E;IAEY,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF;IAEY,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B9E;IAEY,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAW1F;IAEY,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9F;IAEY,yBAAyB,CAAC,YAAY,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC3F;IAEY,gCAAgC,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAShG;IAEY,2CAA2C,CACtD,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkBlC;IAEY,qCAAqC,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxF;YAEa,mCAAmC;IAwBpC,wBAAwB,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAc1F;IAEM,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAG7D;IAEY,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAMpF;IAEY,2BAA2B,CACtC,WAAW,EAAE,qBAAqB,EAClC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CASlB;IAEY,+BAA+B,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E;IAEY,kCAAkC,CAC7C,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CAKlB;CACF"}
|