@aztec/p2p 0.0.1-commit.21ecf947b → 0.0.1-commit.2448fdb
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/README.md +129 -3
- package/dest/client/factory.d.ts +6 -6
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +31 -28
- package/dest/client/interface.d.ts +10 -19
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +7 -18
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +51 -96
- package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +6 -7
- package/dest/config.d.ts +29 -10
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +80 -31
- 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/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
- package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +2 -1
- package/dest/mem_pools/tx_pool/priority.d.ts +2 -2
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/priority.js +4 -4
- 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 +3 -1
- package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +3 -1
- package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/deleted_pool.js +9 -0
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +3 -3
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +18 -9
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +5 -4
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +3 -3
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +12 -4
- package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +54 -5
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +8 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +5 -5
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +12 -6
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +4 -4
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +16 -4
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +3 -3
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +3 -3
- package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/index.js +1 -1
- 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 +18 -6
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/interfaces.js +3 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +49 -9
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.js +102 -14
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +5 -2
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +21 -12
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +9 -4
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +9 -5
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +11 -5
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +279 -153
- 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 +2 -2
- 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/contract_instance_validator.d.ts +9 -0
- package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
- 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 +35 -2
- package/dest/msg_validators/tx_validator/factory.d.ts +133 -6
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.js +247 -60
- 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 +67 -3
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.js +104 -37
- 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/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 +22 -2
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
- package/dest/services/dummy_service.d.ts +4 -4
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +4 -4
- package/dest/services/encoding.d.ts +6 -2
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +16 -9
- package/dest/services/gossipsub/topic_score_params.d.ts +18 -6
- package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
- package/dest/services/gossipsub/topic_score_params.js +32 -10
- package/dest/services/libp2p/libp2p_service.d.ts +16 -13
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +97 -93
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +4 -3
- 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 +5 -9
- 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/tx_validator.js +2 -2
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
- 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 +17 -9
- package/dest/services/service.d.ts +5 -3
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -1
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/fast_tx_collection.js +39 -33
- package/dest/services/tx_collection/file_store_tx_collection.d.ts +1 -1
- package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/file_store_tx_collection.js +4 -2
- package/dest/services/tx_collection/file_store_tx_source.d.ts +16 -6
- package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/file_store_tx_source.js +50 -9
- 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 +7 -6
- package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
- package/dest/services/tx_collection/proposal_tx_collector.js +5 -4
- package/dest/services/tx_collection/slow_tx_collection.d.ts +2 -2
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.js +10 -8
- package/dest/services/tx_collection/tx_collection.d.ts +5 -4
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection_sink.d.ts +6 -5
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection_sink.js +13 -22
- package/dest/services/tx_collection/tx_source.d.ts +13 -7
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_source.js +26 -7
- package/dest/services/tx_file_store/tx_file_store.js +1 -1
- package/dest/services/tx_provider.d.ts +3 -3
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +4 -4
- package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
- 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 +4 -4
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
- package/dest/test-helpers/mock-pubsub.js +8 -2
- 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 +2 -2
- package/dest/test-helpers/testbench-utils.d.ts +6 -3
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
- package/dest/test-helpers/testbench-utils.js +3 -2
- 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 +13 -12
- 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 +4 -1
- package/dest/util.d.ts +2 -2
- package/dest/util.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/client/factory.ts +53 -46
- package/src/client/interface.ts +11 -20
- package/src/client/p2p_client.ts +55 -126
- package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +19 -10
- package/src/config.ts +115 -33
- package/src/errors/tx-pool.error.ts +12 -0
- package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +2 -1
- package/src/mem_pools/tx_pool/priority.ts +4 -4
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +3 -1
- package/src/mem_pools/tx_pool_v2/README.md +9 -1
- package/src/mem_pools/tx_pool_v2/deleted_pool.ts +11 -0
- package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +21 -8
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +5 -4
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +18 -4
- package/src/mem_pools/tx_pool_v2/eviction/index.ts +4 -0
- package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +59 -4
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +2 -2
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +5 -5
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +12 -9
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +33 -6
- package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +4 -3
- package/src/mem_pools/tx_pool_v2/index.ts +1 -1
- package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
- package/src/mem_pools/tx_pool_v2/interfaces.ts +17 -6
- package/src/mem_pools/tx_pool_v2/tx_metadata.ts +143 -17
- package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +25 -14
- package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +25 -8
- package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +311 -148
- package/src/msg_validators/attestation_validator/README.md +49 -0
- package/src/msg_validators/proposal_validator/README.md +123 -0
- 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 +119 -0
- package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -3
- 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/contract_instance_validator.ts +56 -0
- package/src/msg_validators/tx_validator/data_validator.ts +42 -1
- package/src/msg_validators/tx_validator/factory.ts +394 -78
- package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
- package/src/msg_validators/tx_validator/gas_validator.ts +123 -27
- package/src/msg_validators/tx_validator/index.ts +2 -0
- package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
- package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
- package/src/services/dummy_service.ts +6 -6
- package/src/services/encoding.ts +16 -8
- package/src/services/gossipsub/README.md +29 -14
- package/src/services/gossipsub/topic_score_params.ts +49 -13
- package/src/services/libp2p/libp2p_service.ts +111 -101
- package/src/services/reqresp/README.md +229 -0
- package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +6 -6
- 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/tx_validator.ts +2 -2
- package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
- package/src/services/reqresp/reqresp.ts +19 -11
- package/src/services/service.ts +11 -2
- package/src/services/tx_collection/fast_tx_collection.ts +51 -30
- package/src/services/tx_collection/file_store_tx_collection.ts +7 -3
- package/src/services/tx_collection/file_store_tx_source.ts +65 -9
- 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 +8 -7
- package/src/services/tx_collection/slow_tx_collection.ts +8 -9
- package/src/services/tx_collection/tx_collection.ts +4 -3
- package/src/services/tx_collection/tx_collection_sink.ts +15 -29
- package/src/services/tx_collection/tx_source.ts +28 -8
- package/src/services/tx_file_store/tx_file_store.ts +1 -1
- package/src/services/tx_provider.ts +2 -2
- package/src/test-helpers/make-test-p2p-clients.ts +0 -2
- package/src/test-helpers/mock-pubsub.ts +13 -6
- package/src/test-helpers/reqresp-nodes.ts +2 -5
- package/src/test-helpers/testbench-utils.ts +4 -3
- package/src/testbench/p2p_client_testbench_worker.ts +21 -17
- package/src/testbench/worker_client_manager.ts +11 -4
- package/src/util.ts +7 -1
- 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/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
|
@@ -2,14 +2,23 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
4
4
|
import { BlockHash } from '@aztec/stdlib/block';
|
|
5
|
+
import { Gas } from '@aztec/stdlib/gas';
|
|
6
|
+
import { TxHash } from '@aztec/stdlib/tx';
|
|
5
7
|
import { getFeePayerBalanceDelta } from '../../msg_validators/tx_validator/fee_payer_balance.js';
|
|
6
8
|
import { getTxPriorityFee } from '../tx_pool/priority.js';
|
|
9
|
+
import { TxPoolRejectionCode } from './eviction/interfaces.js';
|
|
7
10
|
/**
|
|
8
11
|
* Builds TxMetaData from a full Tx object.
|
|
9
12
|
* Extracts all relevant fields for efficient in-memory storage and querying.
|
|
10
13
|
* Fr values are captured in closures for zero-cost re-validation.
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
*
|
|
15
|
+
* @param allowedSetupCalls - Whether the tx's setup-phase calls pass the allow list.
|
|
16
|
+
* For gossip/RPC txs this is always `true` (already validated by PhasesTxValidator).
|
|
17
|
+
* For req/resp txs this should be computed by the caller using the phases validator.
|
|
18
|
+
*/ export async function buildTxMetaData(tx, allowedSetupCalls = true) {
|
|
19
|
+
const txHashObj = tx.getTxHash();
|
|
20
|
+
const txHash = txHashObj.toString();
|
|
21
|
+
const txHashBigInt = txHashObj.toBigInt();
|
|
13
22
|
const nullifierFrs = tx.data.getNonEmptyNullifiers();
|
|
14
23
|
const nullifiers = nullifierFrs.map((n)=>n.toString());
|
|
15
24
|
const anchorBlockHeaderHashFr = await tx.data.constants.anchorBlockHeader.hash();
|
|
@@ -19,8 +28,10 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
|
|
|
19
28
|
const priorityFee = getTxPriorityFee(tx);
|
|
20
29
|
const feePayer = tx.data.feePayer.toString();
|
|
21
30
|
const { feeLimit, claimAmount } = await getFeePayerBalanceDelta(tx, ProtocolContractAddress.FeeJuice);
|
|
31
|
+
const estimatedSizeBytes = estimateTxMetaDataSize(nullifiers.length);
|
|
22
32
|
return {
|
|
23
33
|
txHash,
|
|
34
|
+
txHashBigInt,
|
|
24
35
|
anchorBlockHeaderHash,
|
|
25
36
|
priorityFee,
|
|
26
37
|
feePayer,
|
|
@@ -28,21 +39,49 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
|
|
|
28
39
|
feeLimit,
|
|
29
40
|
nullifiers,
|
|
30
41
|
expirationTimestamp,
|
|
42
|
+
allowedSetupCalls,
|
|
31
43
|
receivedAt: 0,
|
|
44
|
+
estimatedSizeBytes,
|
|
32
45
|
data: {
|
|
33
46
|
getNonEmptyNullifiers: ()=>nullifierFrs,
|
|
34
47
|
expirationTimestamp,
|
|
48
|
+
forPublic: !!tx.data.forPublic,
|
|
35
49
|
constants: {
|
|
36
50
|
anchorBlockHeader: {
|
|
37
51
|
hash: ()=>Promise.resolve(anchorBlockHeaderHashFr),
|
|
38
52
|
globalVariables: {
|
|
39
53
|
blockNumber: anchorBlockNumber
|
|
40
54
|
}
|
|
55
|
+
},
|
|
56
|
+
txContext: {
|
|
57
|
+
gasSettings: {
|
|
58
|
+
gasLimits: tx.data.constants.txContext.gasSettings.gasLimits
|
|
59
|
+
}
|
|
41
60
|
}
|
|
42
61
|
}
|
|
43
62
|
}
|
|
44
63
|
};
|
|
45
64
|
}
|
|
65
|
+
// V8 JS object overhead (~64 bytes for a plain object with hidden class).
|
|
66
|
+
// String overhead: ~32 bytes header + 1 byte per ASCII char (V8 one-byte strings).
|
|
67
|
+
// Hex string (0x + 64 hex chars = 66 chars): ~98 bytes per string.
|
|
68
|
+
// bigint: ~32 bytes. number: 8 bytes. Fr: ~80 bytes (32 data + object overhead).
|
|
69
|
+
const OBJECT_OVERHEAD = 64;
|
|
70
|
+
const HEX_STRING_BYTES = 98;
|
|
71
|
+
const BIGINT_BYTES = 32;
|
|
72
|
+
const FR_BYTES = 80;
|
|
73
|
+
// Fixed cost: object shell + txHash + anchorBlockHeaderHash + feePayer (3 hex strings)
|
|
74
|
+
// + txHashBigInt + priorityFee + claimAmount + feeLimit + includeByTimestamp (5 bigints)
|
|
75
|
+
// + receivedAt (number, 8 bytes) + estimatedSizeBytes (number, 8 bytes)
|
|
76
|
+
// + data closure object (~OBJECT_OVERHEAD + anchorBlockHeaderHashFr Fr + anchorBlockNumber number)
|
|
77
|
+
const FIXED_METADATA_BYTES = OBJECT_OVERHEAD + 3 * HEX_STRING_BYTES + 5 * BIGINT_BYTES + 8 + 8 + OBJECT_OVERHEAD + FR_BYTES + 8;
|
|
78
|
+
/** Estimates the in-memory size of a TxMetaData object based on the number of nullifiers. */ function estimateTxMetaDataSize(nullifierCount) {
|
|
79
|
+
// Per nullifier: one hex string in nullifiers[] + one Fr in the captured nullifierFrs[]
|
|
80
|
+
return FIXED_METADATA_BYTES + nullifierCount * (HEX_STRING_BYTES + FR_BYTES);
|
|
81
|
+
}
|
|
82
|
+
/** Converts a txHash bigint back to the canonical 0x-prefixed 64-char hex string. */ export function txHashFromBigInt(value) {
|
|
83
|
+
return TxHash.fromBigInt(value).toString();
|
|
84
|
+
}
|
|
46
85
|
/**
|
|
47
86
|
* Compares two priority fees in ascending order.
|
|
48
87
|
* Returns negative if a < b, positive if a > b, 0 if equal.
|
|
@@ -54,9 +93,7 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
|
|
|
54
93
|
* Uses field element comparison for deterministic ordering.
|
|
55
94
|
* Returns negative if a < b, positive if a > b, 0 if equal.
|
|
56
95
|
*/ export function compareTxHash(a, b) {
|
|
57
|
-
|
|
58
|
-
const fieldB = Fr.fromHexString(b);
|
|
59
|
-
return fieldA.cmp(fieldB);
|
|
96
|
+
return Fr.cmpAsBigInt(a, b);
|
|
60
97
|
}
|
|
61
98
|
/**
|
|
62
99
|
* Compares two transactions by priority fee, with txHash as tiebreaker.
|
|
@@ -67,19 +104,33 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
|
|
|
67
104
|
if (feeComparison !== 0) {
|
|
68
105
|
return feeComparison;
|
|
69
106
|
}
|
|
70
|
-
return compareTxHash(a.
|
|
107
|
+
return compareTxHash(a.txHashBigInt, b.txHashBigInt);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Returns the minimum fee required to replace an existing tx with the given price bump percentage.
|
|
111
|
+
* Uses integer arithmetic: `existingFee + existingFee * priceBumpPercentage / 100`.
|
|
112
|
+
*/ export function getMinimumPriceBumpFee(existingFee, priceBumpPercentage) {
|
|
113
|
+
const bump = existingFee * priceBumpPercentage / 100n;
|
|
114
|
+
// Ensure the minimum bump is at least 1, so that replacement always requires
|
|
115
|
+
// paying strictly more — even with 0% bump or zero existing fee.
|
|
116
|
+
const effectiveBump = bump > 0n ? bump : 1n;
|
|
117
|
+
return existingFee + effectiveBump;
|
|
71
118
|
}
|
|
72
119
|
/**
|
|
73
120
|
* Checks for nullifier conflicts between an incoming transaction and existing pool state.
|
|
74
121
|
*
|
|
75
122
|
* When the incoming tx shares nullifiers with existing pending txs:
|
|
76
|
-
* - If the incoming tx
|
|
77
|
-
* -
|
|
123
|
+
* - If the incoming tx meets or exceeds the required priority, mark conflicting txs for eviction
|
|
124
|
+
* - Otherwise, ignore the incoming tx
|
|
125
|
+
*
|
|
126
|
+
* When `priceBumpPercentage` is provided (RPC path), uses fee-only comparison with the
|
|
127
|
+
* percentage bump instead of `comparePriority`.
|
|
78
128
|
*
|
|
79
129
|
* @param incomingMeta - Metadata for the incoming transaction
|
|
80
130
|
* @param getTxHashByNullifier - Accessor to find which tx uses a nullifier
|
|
81
131
|
* @param getMetadata - Accessor to get metadata for a tx hash
|
|
82
|
-
|
|
132
|
+
* @param priceBumpPercentage - Optional percentage bump required for fee-based replacement
|
|
133
|
+
*/ export function checkNullifierConflict(incomingMeta, getTxHashByNullifier, getMetadata, priceBumpPercentage) {
|
|
83
134
|
const txHashesToEvict = [];
|
|
84
135
|
for (const nullifier of incomingMeta.nullifiers){
|
|
85
136
|
const conflictingHashStr = getTxHashByNullifier(nullifier);
|
|
@@ -94,16 +145,23 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
|
|
|
94
145
|
if (!conflictingMeta) {
|
|
95
146
|
continue;
|
|
96
147
|
}
|
|
97
|
-
//
|
|
98
|
-
// Otherwise,
|
|
99
|
-
|
|
100
|
-
if (
|
|
148
|
+
// When price bump is set (RPC path), require the incoming fee to meet the bumped threshold.
|
|
149
|
+
// Otherwise (P2P path), use full comparePriority with tx hash tiebreaker.
|
|
150
|
+
const isHigherPriority = priceBumpPercentage !== undefined ? incomingMeta.priorityFee >= getMinimumPriceBumpFee(conflictingMeta.priorityFee, priceBumpPercentage) : comparePriority(incomingMeta, conflictingMeta) > 0;
|
|
151
|
+
if (isHigherPriority) {
|
|
101
152
|
txHashesToEvict.push(conflictingHashStr);
|
|
102
153
|
} else {
|
|
154
|
+
const minimumFee = priceBumpPercentage !== undefined ? getMinimumPriceBumpFee(conflictingMeta.priorityFee, priceBumpPercentage) : undefined;
|
|
103
155
|
return {
|
|
104
156
|
shouldIgnore: true,
|
|
105
157
|
txHashesToEvict: [],
|
|
106
|
-
reason:
|
|
158
|
+
reason: {
|
|
159
|
+
code: TxPoolRejectionCode.NULLIFIER_CONFLICT,
|
|
160
|
+
message: minimumFee !== undefined ? `Nullifier conflict with existing tx ${conflictingHashStr}. Minimum required fee: ${minimumFee}, got: ${incomingMeta.priorityFee}` : `Nullifier conflict with existing tx ${conflictingHashStr}`,
|
|
161
|
+
conflictingTxHash: conflictingHashStr,
|
|
162
|
+
minimumPriceBumpFee: minimumFee,
|
|
163
|
+
txPriorityFee: minimumFee !== undefined ? incomingMeta.priorityFee : undefined
|
|
164
|
+
}
|
|
107
165
|
};
|
|
108
166
|
}
|
|
109
167
|
}
|
|
@@ -122,7 +180,37 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
|
|
|
122
180
|
globalVariables: {
|
|
123
181
|
blockNumber: BlockNumber(0)
|
|
124
182
|
}
|
|
183
|
+
},
|
|
184
|
+
txContext: {
|
|
185
|
+
gasSettings: {
|
|
186
|
+
gasLimits: Gas.empty()
|
|
187
|
+
}
|
|
125
188
|
}
|
|
126
189
|
}
|
|
127
190
|
};
|
|
128
191
|
}
|
|
192
|
+
/** Creates a stub TxMetaData for tests. All fields have sensible defaults and can be overridden. */ export function stubTxMetaData(txHash, overrides = {}) {
|
|
193
|
+
const txHashBigInt = Fr.fromHexString(txHash).toBigInt();
|
|
194
|
+
// Normalize to canonical zero-padded hex so txHashFromBigInt(txHashBigInt) === normalizedTxHash
|
|
195
|
+
const normalizedTxHash = txHashFromBigInt(txHashBigInt);
|
|
196
|
+
const expirationTimestamp = overrides.expirationTimestamp ?? 0n;
|
|
197
|
+
return {
|
|
198
|
+
txHash: normalizedTxHash,
|
|
199
|
+
txHashBigInt,
|
|
200
|
+
anchorBlockHeaderHash: overrides.anchorBlockHeaderHash ?? '0x1234',
|
|
201
|
+
priorityFee: overrides.priorityFee ?? 100n,
|
|
202
|
+
feePayer: overrides.feePayer ?? '0xfeepayer',
|
|
203
|
+
claimAmount: overrides.claimAmount ?? 0n,
|
|
204
|
+
feeLimit: overrides.feeLimit ?? 100n,
|
|
205
|
+
nullifiers: overrides.nullifiers ?? [
|
|
206
|
+
`0x${normalizedTxHash.slice(2)}null1`
|
|
207
|
+
],
|
|
208
|
+
expirationTimestamp,
|
|
209
|
+
allowedSetupCalls: overrides.allowedSetupCalls ?? true,
|
|
210
|
+
receivedAt: 0,
|
|
211
|
+
estimatedSizeBytes: 0,
|
|
212
|
+
data: stubTxMetaValidationData({
|
|
213
|
+
expirationTimestamp
|
|
214
|
+
})
|
|
215
|
+
};
|
|
216
|
+
}
|
|
@@ -93,13 +93,16 @@ export declare class TxPoolIndices {
|
|
|
93
93
|
filterUnprotected(txs: TxMetaData[]): TxMetaData[];
|
|
94
94
|
/** Filters to transactions that have metadata and are not mined */
|
|
95
95
|
filterRestorable(txHashes: string[]): TxMetaData[];
|
|
96
|
-
/** Counts transactions by state */
|
|
96
|
+
/** Counts transactions by state and estimates total metadata memory usage */
|
|
97
97
|
countTxs(): {
|
|
98
98
|
pending: number;
|
|
99
99
|
protected: number;
|
|
100
100
|
mined: number;
|
|
101
|
+
totalMetadataBytes: number;
|
|
101
102
|
};
|
|
103
|
+
/** Returns the estimated total memory consumed by all metadata objects */
|
|
104
|
+
getTotalMetadataBytes(): number;
|
|
102
105
|
/** Gets all mined transactions with their block IDs */
|
|
103
106
|
getMinedTxs(): [string, L2BlockId][];
|
|
104
107
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF9pbmRpY2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF9pbmRpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsS0FBSyxPQUFPLEVBQStDLE1BQU0sa0JBQWtCLENBQUM7QUFFOUc7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxxQkFBYSxhQUFhOztJQWdCeEI7Ozs7OztPQU1HO0lBQ0gsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQVFwQztJQUVELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBRWxEO0lBRUQsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUUzQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsVUFBVSxJQUFJLE1BQU0sQ0FFbkI7SUFNRDs7O09BR0c7SUFDRix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FpQnRHO0lBRUQ7Ozs7T0FJRztJQUNGLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQU9qRztJQUVELG9DQUFvQztJQUNuQyxlQUFlLElBQUksU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBRWxEO0lBTUQsb0RBQW9EO0lBQ3BELFVBQVUsQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_pool_indices.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_indices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"tx_pool_indices.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_indices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { compareFee, compareTxHash } from './tx_metadata.js';
|
|
1
|
+
import { compareFee, compareTxHash, txHashFromBigInt } from './tx_metadata.js';
|
|
2
2
|
/**
|
|
3
3
|
* Manages in-memory indices for the transaction pool.
|
|
4
4
|
*
|
|
@@ -14,7 +14,7 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
|
|
|
14
14
|
/** Primary metadata store: txHash -> TxMetaData */ #metadata = new Map();
|
|
15
15
|
/** Nullifier to txHash index (pending txs only) */ #nullifierToTxHash = new Map();
|
|
16
16
|
/** Fee payer to txHashes index (pending txs only) */ #feePayerToTxHashes = new Map();
|
|
17
|
-
/** Pending
|
|
17
|
+
/** Pending txHash bigints grouped by priority fee */ #pendingByPriority = new Map();
|
|
18
18
|
/** Protected transactions: txHash -> slotNumber */ #protectedTransactions = new Map();
|
|
19
19
|
// ============================================================================
|
|
20
20
|
// STATE QUERIES
|
|
@@ -53,19 +53,18 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
|
|
|
53
53
|
* Iterates pending transaction hashes in priority order.
|
|
54
54
|
* @param order - 'desc' for highest priority first, 'asc' for lowest priority first
|
|
55
55
|
*/ *iteratePendingByPriority(order, filter) {
|
|
56
|
-
// Use compareFee from tx_metadata, swap args for descending order
|
|
57
56
|
const feeCompareFn = order === 'desc' ? (a, b)=>compareFee(b, a) : compareFee;
|
|
58
|
-
const hashCompareFn = order === 'desc' ? (a, b)=>compareTxHash(b, a) : compareTxHash;
|
|
57
|
+
const hashCompareFn = order === 'desc' ? (a, b)=>compareTxHash(b, a) : (a, b)=>compareTxHash(a, b);
|
|
59
58
|
const sortedFees = [
|
|
60
59
|
...this.#pendingByPriority.keys()
|
|
61
60
|
].sort(feeCompareFn);
|
|
62
61
|
for (const fee of sortedFees){
|
|
63
62
|
const hashesAtFee = this.#pendingByPriority.get(fee);
|
|
64
|
-
// Use compareTxHash from tx_metadata, swap args for descending order
|
|
65
63
|
const sortedHashes = [
|
|
66
64
|
...hashesAtFee
|
|
67
65
|
].sort(hashCompareFn);
|
|
68
|
-
for (const
|
|
66
|
+
for (const hashBigInt of sortedHashes){
|
|
67
|
+
const hash = txHashFromBigInt(hashBigInt);
|
|
69
68
|
if (filter === undefined || filter(hash)) {
|
|
70
69
|
yield hash;
|
|
71
70
|
}
|
|
@@ -201,8 +200,8 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
|
|
|
201
200
|
/** Gets all pending transactions */ getPendingTxs() {
|
|
202
201
|
const result = [];
|
|
203
202
|
for (const hashSet of this.#pendingByPriority.values()){
|
|
204
|
-
for (const
|
|
205
|
-
const meta = this.#metadata.get(
|
|
203
|
+
for (const txHashBigInt of hashSet){
|
|
204
|
+
const meta = this.#metadata.get(txHashFromBigInt(txHashBigInt));
|
|
206
205
|
if (meta) {
|
|
207
206
|
result.push(meta);
|
|
208
207
|
}
|
|
@@ -265,11 +264,13 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
|
|
|
265
264
|
// ============================================================================
|
|
266
265
|
// METRICS
|
|
267
266
|
// ============================================================================
|
|
268
|
-
/** Counts transactions by state */ countTxs() {
|
|
267
|
+
/** Counts transactions by state and estimates total metadata memory usage */ countTxs() {
|
|
269
268
|
let pending = 0;
|
|
270
269
|
let protected_ = 0;
|
|
271
270
|
let mined = 0;
|
|
271
|
+
let totalMetadataBytes = 0;
|
|
272
272
|
for (const meta of this.#metadata.values()){
|
|
273
|
+
totalMetadataBytes += meta.estimatedSizeBytes;
|
|
273
274
|
const state = this.getTxState(meta);
|
|
274
275
|
if (state === 'pending') {
|
|
275
276
|
pending++;
|
|
@@ -282,9 +283,17 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
|
|
|
282
283
|
return {
|
|
283
284
|
pending,
|
|
284
285
|
protected: protected_,
|
|
285
|
-
mined
|
|
286
|
+
mined,
|
|
287
|
+
totalMetadataBytes
|
|
286
288
|
};
|
|
287
289
|
}
|
|
290
|
+
/** Returns the estimated total memory consumed by all metadata objects */ getTotalMetadataBytes() {
|
|
291
|
+
let total = 0;
|
|
292
|
+
for (const meta of this.#metadata.values()){
|
|
293
|
+
total += meta.estimatedSizeBytes;
|
|
294
|
+
}
|
|
295
|
+
return total;
|
|
296
|
+
}
|
|
288
297
|
/** Gets all mined transactions with their block IDs */ getMinedTxs() {
|
|
289
298
|
const result = [];
|
|
290
299
|
for (const [txHash, meta] of this.#metadata){
|
|
@@ -318,7 +327,7 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
|
|
|
318
327
|
prioritySet = new Set();
|
|
319
328
|
this.#pendingByPriority.set(meta.priorityFee, prioritySet);
|
|
320
329
|
}
|
|
321
|
-
prioritySet.add(meta.
|
|
330
|
+
prioritySet.add(meta.txHashBigInt);
|
|
322
331
|
}
|
|
323
332
|
#removeFromPendingIndices(meta) {
|
|
324
333
|
// Remove from nullifier index
|
|
@@ -336,7 +345,7 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
|
|
|
336
345
|
// Remove from priority map
|
|
337
346
|
const hashSet = this.#pendingByPriority.get(meta.priorityFee);
|
|
338
347
|
if (hashSet) {
|
|
339
|
-
hashSet.delete(meta.
|
|
348
|
+
hashSet.delete(meta.txHashBigInt);
|
|
340
349
|
if (hashSet.size === 0) {
|
|
341
350
|
this.#pendingByPriority.delete(meta.priorityFee);
|
|
342
351
|
}
|
|
@@ -6,7 +6,7 @@ import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
|
6
6
|
import type { L2Block, L2BlockId } from '@aztec/stdlib/block';
|
|
7
7
|
import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
|
|
8
8
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
9
|
-
import type { AddTxsResult, TxPoolV2, TxPoolV2Config, TxPoolV2Dependencies, TxPoolV2Events } from './interfaces.js';
|
|
9
|
+
import type { AddTxsResult, PoolReadAccess, TxPoolV2, TxPoolV2Config, TxPoolV2Dependencies, TxPoolV2Events } from './interfaces.js';
|
|
10
10
|
import type { TxState } from './tx_metadata.js';
|
|
11
11
|
declare const AztecKVTxPoolV2_base: new () => TypedEventEmitter<TxPoolV2Events>;
|
|
12
12
|
/**
|
|
@@ -20,8 +20,9 @@ export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxP
|
|
|
20
20
|
constructor(store: AztecAsyncKVStore, archiveStore: AztecAsyncKVStore, deps: TxPoolV2Dependencies, telemetry?: TelemetryClient, config?: Partial<TxPoolV2Config>, dateProvider?: DateProvider, log?: Logger);
|
|
21
21
|
addPendingTxs(txs: Tx[], opts?: {
|
|
22
22
|
source?: string;
|
|
23
|
+
feeComparisonOnly?: boolean;
|
|
23
24
|
}): Promise<AddTxsResult>;
|
|
24
|
-
canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'
|
|
25
|
+
canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'>;
|
|
25
26
|
addProtectedTxs(txs: Tx[], block: BlockHeader, opts?: {
|
|
26
27
|
source?: string;
|
|
27
28
|
}): Promise<void>;
|
|
@@ -31,7 +32,9 @@ export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxP
|
|
|
31
32
|
}): Promise<void>;
|
|
32
33
|
handleMinedBlock(block: L2Block): Promise<void>;
|
|
33
34
|
prepareForSlot(slotNumber: SlotNumber): Promise<void>;
|
|
34
|
-
handlePrunedBlocks(latestBlock: L2BlockId
|
|
35
|
+
handlePrunedBlocks(latestBlock: L2BlockId, options?: {
|
|
36
|
+
deleteAllTxs?: boolean;
|
|
37
|
+
}): Promise<void>;
|
|
35
38
|
handleFailedExecution(txHashes: TxHash[]): Promise<void>;
|
|
36
39
|
handleFinalizedBlock(block: BlockHeader): Promise<void>;
|
|
37
40
|
getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
@@ -46,6 +49,8 @@ export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxP
|
|
|
46
49
|
isEmpty(): Promise<boolean>;
|
|
47
50
|
getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
48
51
|
getLowestPriorityPending(limit: number): Promise<TxHash[]>;
|
|
52
|
+
/** Returns read-only access to the pool. Used for testing. */
|
|
53
|
+
getPoolReadAccess(): PoolReadAccess;
|
|
49
54
|
updateConfig(config: Partial<TxPoolV2Config>): Promise<void>;
|
|
50
55
|
/**
|
|
51
56
|
* Starts the pool and initializes state from persistence.
|
|
@@ -54,4 +59,4 @@ export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxP
|
|
|
54
59
|
stop(): Promise<void>;
|
|
55
60
|
}
|
|
56
61
|
export {};
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Mi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL3R4X3Bvb2xfdjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFLbkYsT0FBTyxLQUFLLEVBQ1YsWUFBWSxFQUNaLGNBQWMsRUFDZCxRQUFRLEVBQ1IsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixjQUFjLEVBQ2YsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHaEQ7Ozs7O0dBS0c7QUFDSCxxQkFBYSxlQUFnQixTQUFRLG9CQUE4RCxZQUFXLFFBQVE7O0lBU3BILFlBQ0UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixZQUFZLEVBQUUsaUJBQWlCLEVBQy9CLElBQUksRUFBRSxvQkFBb0IsRUFDMUIsU0FBUyxHQUFFLGVBQXNDLEVBQ2pELE1BQU0sR0FBRSxPQUFPLENBQUMsY0FBYyxDQUFNLEVBQ3BDLFlBQVksR0FBRSxZQUFp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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_pool_v2.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAKnF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tx_pool_v2.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
// Create the implementation
|
|
47
|
-
this.#impl = new TxPoolV2Impl(store, archiveStore, deps, callbacks, config, dateProvider, log);
|
|
47
|
+
this.#impl = new TxPoolV2Impl(store, archiveStore, deps, callbacks, telemetry, config, dateProvider, log);
|
|
48
48
|
}
|
|
49
49
|
// ============================================================================
|
|
50
50
|
// PUBLIC API - All methods queue to the implementation
|
|
@@ -60,7 +60,7 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
|
|
|
60
60
|
return this.#queue.put(()=>this.#impl.addProtectedTxs(txs, block, opts));
|
|
61
61
|
}
|
|
62
62
|
protectTxs(txHashes, block) {
|
|
63
|
-
return this.#queue.put(()=>
|
|
63
|
+
return this.#queue.put(()=>this.#impl.protectTxs(txHashes, block));
|
|
64
64
|
}
|
|
65
65
|
addMinedTxs(txs, block, opts = {}) {
|
|
66
66
|
return this.#queue.put(()=>this.#impl.addMinedTxs(txs, block, opts));
|
|
@@ -72,8 +72,8 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
|
|
|
72
72
|
prepareForSlot(slotNumber) {
|
|
73
73
|
return this.#queue.put(()=>this.#impl.prepareForSlot(slotNumber));
|
|
74
74
|
}
|
|
75
|
-
handlePrunedBlocks(latestBlock) {
|
|
76
|
-
return this.#queue.put(()=>this.#impl.handlePrunedBlocks(latestBlock));
|
|
75
|
+
handlePrunedBlocks(latestBlock, options) {
|
|
76
|
+
return this.#queue.put(()=>this.#impl.handlePrunedBlocks(latestBlock, options));
|
|
77
77
|
}
|
|
78
78
|
handleFailedExecution(txHashes) {
|
|
79
79
|
return this.#queue.put(()=>this.#impl.handleFailedExecution(txHashes));
|
|
@@ -118,6 +118,9 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
|
|
|
118
118
|
getLowestPriorityPending(limit) {
|
|
119
119
|
return this.#queue.put(()=>Promise.resolve(this.#impl.getLowestPriorityPending(limit)));
|
|
120
120
|
}
|
|
121
|
+
/** Returns read-only access to the pool. Used for testing. */ getPoolReadAccess() {
|
|
122
|
+
return this.#impl.getPoolReadAccess();
|
|
123
|
+
}
|
|
121
124
|
// === Configuration ===
|
|
122
125
|
updateConfig(config) {
|
|
123
126
|
return this.#queue.put(()=>{
|
|
@@ -143,7 +146,8 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
|
|
|
143
146
|
itemCount: {
|
|
144
147
|
pending: counts.pending,
|
|
145
148
|
protected: counts.protected,
|
|
146
|
-
mined: counts.mined
|
|
149
|
+
mined: counts.mined,
|
|
150
|
+
softDeleted: counts.softDeleted
|
|
147
151
|
}
|
|
148
152
|
});
|
|
149
153
|
}), ()=>this.#store.estimateSize());
|
|
@@ -4,6 +4,7 @@ import type { DateProvider } from '@aztec/foundation/timer';
|
|
|
4
4
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
5
5
|
import type { L2Block, L2BlockId } from '@aztec/stdlib/block';
|
|
6
6
|
import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
|
|
7
|
+
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
7
8
|
import { type AddTxsResult, type PoolReadAccess, type TxPoolV2Config, type TxPoolV2Dependencies } from './interfaces.js';
|
|
8
9
|
import { type TxState } from './tx_metadata.js';
|
|
9
10
|
/**
|
|
@@ -22,7 +23,7 @@ export interface TxPoolV2Callbacks {
|
|
|
22
23
|
*/
|
|
23
24
|
export declare class TxPoolV2Impl {
|
|
24
25
|
#private;
|
|
25
|
-
constructor(store: AztecAsyncKVStore, archiveStore: AztecAsyncKVStore, deps: TxPoolV2Dependencies, callbacks: TxPoolV2Callbacks, config: Partial<TxPoolV2Config> | undefined, dateProvider: DateProvider, log: Logger);
|
|
26
|
+
constructor(store: AztecAsyncKVStore, archiveStore: AztecAsyncKVStore, deps: TxPoolV2Dependencies, callbacks: TxPoolV2Callbacks, telemetry: TelemetryClient, config: Partial<TxPoolV2Config> | undefined, dateProvider: DateProvider, log: Logger);
|
|
26
27
|
/**
|
|
27
28
|
* Hydrates the in-memory state from the database on startup.
|
|
28
29
|
* Pipeline: Load → Check Mined Status → Partition → Validate Non-Mined → Rebuild Pending Pool → Delete Invalid
|
|
@@ -33,18 +34,21 @@ export declare class TxPoolV2Impl {
|
|
|
33
34
|
hydrateFromDatabase(): Promise<void>;
|
|
34
35
|
addPendingTxs(txs: Tx[], opts: {
|
|
35
36
|
source?: string;
|
|
37
|
+
feeComparisonOnly?: boolean;
|
|
36
38
|
}): Promise<AddTxsResult>;
|
|
37
|
-
canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'
|
|
39
|
+
canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'>;
|
|
38
40
|
addProtectedTxs(txs: Tx[], block: BlockHeader, opts: {
|
|
39
41
|
source?: string;
|
|
40
42
|
}): Promise<void>;
|
|
41
|
-
protectTxs(txHashes: TxHash[], block: BlockHeader): TxHash[]
|
|
43
|
+
protectTxs(txHashes: TxHash[], block: BlockHeader): Promise<TxHash[]>;
|
|
42
44
|
addMinedTxs(txs: Tx[], block: BlockHeader, opts: {
|
|
43
45
|
source?: string;
|
|
44
46
|
}): Promise<void>;
|
|
45
47
|
handleMinedBlock(block: L2Block): Promise<void>;
|
|
46
48
|
prepareForSlot(slotNumber: SlotNumber): Promise<void>;
|
|
47
|
-
handlePrunedBlocks(latestBlock: L2BlockId
|
|
49
|
+
handlePrunedBlocks(latestBlock: L2BlockId, options?: {
|
|
50
|
+
deleteAllTxs?: boolean;
|
|
51
|
+
}): Promise<void>;
|
|
48
52
|
handleFailedExecution(txHashes: TxHash[]): Promise<void>;
|
|
49
53
|
handleFinalizedBlock(block: BlockHeader): Promise<void>;
|
|
50
54
|
getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
@@ -66,6 +70,8 @@ export declare class TxPoolV2Impl {
|
|
|
66
70
|
pending: number;
|
|
67
71
|
protected: number;
|
|
68
72
|
mined: number;
|
|
73
|
+
softDeleted: number;
|
|
74
|
+
totalMetadataBytes: number;
|
|
69
75
|
};
|
|
70
76
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Ml9pbXBsLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF92Ml9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQW9CL0QsT0FBTyxFQUNMLEtBQUssWUFBWSxFQUVqQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxjQUFjLEVBQ25CLEtBQUssb0JBQW9CLEVBQzFCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFtQixLQUFLLE9BQU8sRUFBMkMsTUFBTSxrQkFBa0IsQ0FBQztBQUcxRzs7R0FFRztBQUNILE1BQU0sV0FBVyxpQkFBaUI7SUFDaEMsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTtRQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQUssSUFBSSxDQUFDO0lBQzNELFlBQVksRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUM7Q0FDdkQ7QUFFRDs7OztHQUlHO0FBQ0gscUJBQWEs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_pool_v2_impl.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAIxE,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAoB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"tx_pool_v2_impl.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts"],"names":[],"mappings":"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"}
|