@aztec/p2p 0.0.1-commit.3d8f95d → 0.0.1-commit.3e3d0c9cd
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 +7 -7
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +35 -29
- package/dest/client/interface.d.ts +14 -19
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +9 -18
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +62 -96
- package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +6 -7
- package/dest/config.d.ts +37 -15
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +81 -37
- 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/attestation_pool/attestation_pool.d.ts +4 -2
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.js +10 -1
- 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/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/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/eviction/invalid_txs_after_mining_rule.js +3 -3
- 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 +30 -13
- package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/deleted_pool.js +91 -20
- 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 +7 -3
- 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 +7 -5
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +7 -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 +14 -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 +24 -6
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/interfaces.js +5 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +56 -15
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.js +107 -18
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +12 -3
- 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 +50 -45
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +12 -5
- 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 +17 -6
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +14 -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 +319 -147
- 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/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 +240 -59
- 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/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 +22 -2
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +71 -23
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +2 -2
- 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 +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 +2 -2
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +9 -8
- 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 +111 -93
- 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/reqresp/batch-tx-requester/batch_tx_requester.d.ts +11 -4
- 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 +45 -55
- package/dest/services/reqresp/batch-tx-requester/interface.d.ts +4 -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 +11 -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 +31 -46
- package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -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 +52 -15
- package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
- 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 +3 -2
- package/dest/services/service.d.ts +5 -3
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_collection/config.d.ts +13 -1
- package/dest/services/tx_collection/config.d.ts.map +1 -1
- package/dest/services/tx_collection/config.js +30 -0
- 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 +38 -29
- package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/file_store_tx_collection.js +126 -77
- 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 +49 -16
- 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 +5 -3
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.js +17 -12
- package/dest/services/tx_collection/tx_collection.d.ts +9 -6
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection.js +26 -10
- 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 +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/tx_file_store.d.ts +3 -2
- package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
- package/dest/services/tx_file_store/tx_file_store.js +9 -6
- 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 +8 -3
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
- package/dest/test-helpers/testbench-utils.js +9 -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 +15 -14
- 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 +62 -47
- package/src/client/interface.ts +17 -20
- package/src/client/p2p_client.ts +68 -126
- package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +20 -11
- package/src/config.ts +116 -43
- package/src/errors/tx-pool.error.ts +12 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +13 -4
- package/src/mem_pools/attestation_pool/mocks.ts +2 -1
- package/src/mem_pools/instrumentation.ts +17 -13
- package/src/mem_pools/tx_pool/README.md +1 -1
- package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +2 -1
- package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +3 -3
- 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 +52 -28
- package/src/mem_pools/tx_pool_v2/deleted_pool.ts +109 -22
- 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 +7 -3
- 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 +5 -5
- 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 +14 -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 +26 -6
- package/src/mem_pools/tx_pool_v2/tx_metadata.ts +156 -26
- package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +58 -45
- package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +34 -8
- package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +353 -143
- 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/factory.ts +387 -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/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 +81 -26
- package/src/msg_validators/tx_validator/timestamp_validator.ts +7 -7
- package/src/services/dummy_service.ts +6 -6
- package/src/services/encoding.ts +7 -7
- 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 +122 -101
- package/src/services/peer-manager/metrics.ts +7 -0
- package/src/services/peer-manager/peer_manager.ts +2 -1
- package/src/services/reqresp/README.md +229 -0
- package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +49 -57
- package/src/services/reqresp/batch-tx-requester/interface.ts +3 -5
- package/src/services/reqresp/batch-tx-requester/missing_txs.ts +30 -71
- package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
- package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
- package/src/services/reqresp/reqresp.ts +4 -2
- package/src/services/service.ts +11 -2
- package/src/services/tx_collection/config.ts +42 -0
- package/src/services/tx_collection/fast_tx_collection.ts +51 -30
- package/src/services/tx_collection/file_store_tx_collection.ts +143 -93
- package/src/services/tx_collection/file_store_tx_source.ts +64 -17
- 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 +17 -13
- package/src/services/tx_collection/tx_collection.ts +45 -14
- package/src/services/tx_collection/tx_collection_sink.ts +15 -29
- package/src/services/tx_collection/tx_source.ts +22 -3
- package/src/services/tx_file_store/tx_file_store.ts +6 -4
- package/src/services/tx_provider.ts +2 -2
- package/src/test-helpers/make-test-p2p-clients.ts +1 -3
- package/src/test-helpers/mock-pubsub.ts +13 -6
- package/src/test-helpers/reqresp-nodes.ts +3 -6
- package/src/test-helpers/testbench-utils.ts +12 -3
- package/src/testbench/p2p_client_testbench_worker.ts +24 -20
- package/src/testbench/worker_client_manager.ts +13 -5
- package/src/util.ts +8 -2
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/metadata_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EACL,KAAK,KAAK,EAKV,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;IAIvE,OAAO,CAAC,MAAM;IADhB,YACU,MAAM,EAAE;QACd,SAAS,EAAE,EAAE,CAAC;QACd,aAAa,EAAE,EAAE,CAAC;QAClB,UAAU,EAAE,EAAE,CAAC;QACf,qBAAqB,EAAE,EAAE,CAAC;KAC3B,EACD,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"metadata_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/metadata_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EACL,KAAK,KAAK,EAKV,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;IAIvE,OAAO,CAAC,MAAM;IADhB,YACU,MAAM,EAAE;QACd,SAAS,EAAE,EAAE,CAAC;QACd,aAAa,EAAE,EAAE,CAAC;QAClB,UAAU,EAAE,EAAE,CAAC;QACf,qBAAqB,EAAE,EAAE,CAAC;KAC3B,EACD,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAuB7C;CAqDF"}
|
|
@@ -10,16 +10,16 @@ export class MetadataTxValidator {
|
|
|
10
10
|
validateTx(tx) {
|
|
11
11
|
const errors = [];
|
|
12
12
|
if (!this.#hasCorrectL1ChainId(tx)) {
|
|
13
|
-
errors.push(TX_ERROR_INCORRECT_L1_CHAIN_ID);
|
|
13
|
+
errors.push(`${TX_ERROR_INCORRECT_L1_CHAIN_ID} (tx: ${tx.data.constants.txContext.chainId.toNumber()}, expected: ${this.values.l1ChainId.toNumber()})`);
|
|
14
14
|
}
|
|
15
15
|
if (!this.#hasCorrectRollupVersion(tx)) {
|
|
16
|
-
errors.push(TX_ERROR_INCORRECT_ROLLUP_VERSION);
|
|
16
|
+
errors.push(`${TX_ERROR_INCORRECT_ROLLUP_VERSION} (tx: ${tx.data.constants.txContext.version.toNumber()}, expected: ${this.values.rollupVersion.toNumber()})`);
|
|
17
17
|
}
|
|
18
18
|
if (!this.#hasCorrectVkTreeRoot(tx)) {
|
|
19
|
-
errors.push(TX_ERROR_INCORRECT_VK_TREE_ROOT);
|
|
19
|
+
errors.push(`${TX_ERROR_INCORRECT_VK_TREE_ROOT} (tx: ${tx.data.constants.vkTreeRoot.toString()}, expected: ${this.values.vkTreeRoot.toString()})`);
|
|
20
20
|
}
|
|
21
21
|
if (!this.#hasCorrectprotocolContractsHash(tx)) {
|
|
22
|
-
errors.push(TX_ERROR_INCORRECT_PROTOCOL_CONTRACTS_HASH);
|
|
22
|
+
errors.push(`${TX_ERROR_INCORRECT_PROTOCOL_CONTRACTS_HASH} (tx: ${tx.data.constants.protocolContractsHash.toString()}, expected: ${this.values.protocolContractsHash.toString()})`);
|
|
23
23
|
}
|
|
24
24
|
return Promise.resolve(errors.length > 0 ? {
|
|
25
25
|
result: 'invalid',
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NullifierSource } from '@aztec/p2p';
|
|
2
|
+
import type { MerkleTreeReadOperations } from '@aztec/stdlib/interfaces/server';
|
|
3
|
+
/**
|
|
4
|
+
* Implements a nullifier source by checking a DB and an in-memory collection.
|
|
5
|
+
* Intended for validating transactions as they are added to a block.
|
|
6
|
+
*/
|
|
7
|
+
export declare class NullifierCache implements NullifierSource {
|
|
8
|
+
private db;
|
|
9
|
+
nullifiers: Set<string>;
|
|
10
|
+
constructor(db: MerkleTreeReadOperations);
|
|
11
|
+
nullifiersExist(nullifiers: Buffer[]): Promise<boolean[]>;
|
|
12
|
+
addNullifiers(nullifiers: Buffer[]): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlmaWVyX2NhY2hlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvdHhfdmFsaWRhdG9yL251bGxpZmllcl9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdoRjs7O0dBR0c7QUFDSCxxQkFBYSxjQUFlLFlBQVcsZUFBZTtJQUd4QyxPQUFPLENBQUMsRUFBRTtJQUZ0QixVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhCLFlBQW9CLEVBQUUsRUFBRSx3QkFBd0IsRUFFL0M7SUFFWSxlQUFlLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQU9yRTtJQUVNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBSXhDO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullifier_cache.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/nullifier_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,cAAe,YAAW,eAAe;IAGxC,OAAO,CAAC,EAAE;IAFtB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAExB,YAAoB,EAAE,EAAE,wBAAwB,EAE/C;IAEY,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAOrE;IAEM,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAIxC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
2
|
+
/**
|
|
3
|
+
* Implements a nullifier source by checking a DB and an in-memory collection.
|
|
4
|
+
* Intended for validating transactions as they are added to a block.
|
|
5
|
+
*/ export class NullifierCache {
|
|
6
|
+
db;
|
|
7
|
+
nullifiers;
|
|
8
|
+
constructor(db){
|
|
9
|
+
this.db = db;
|
|
10
|
+
this.nullifiers = new Set();
|
|
11
|
+
}
|
|
12
|
+
async nullifiersExist(nullifiers) {
|
|
13
|
+
const cacheResults = nullifiers.map((n)=>this.nullifiers.has(n.toString()));
|
|
14
|
+
const toCheckDb = nullifiers.filter((_n, index)=>!cacheResults[index]);
|
|
15
|
+
const dbHits = await this.db.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, toCheckDb);
|
|
16
|
+
let dbIndex = 0;
|
|
17
|
+
return nullifiers.map((_n, index)=>cacheResults[index] || dbHits[dbIndex++] !== undefined);
|
|
18
|
+
}
|
|
19
|
+
addNullifiers(nullifiers) {
|
|
20
|
+
for (const nullifier of nullifiers){
|
|
21
|
+
this.nullifiers.add(nullifier.toString());
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -10,6 +10,26 @@ export declare class PhasesTxValidator implements TxValidator<Tx> {
|
|
|
10
10
|
private contractsDB;
|
|
11
11
|
constructor(contracts: ContractDataSource, setupAllowList: AllowedElement[], timestamp: UInt64, bindings?: LoggerBindings);
|
|
12
12
|
validateTx(tx: Tx): Promise<TxValidationResult>;
|
|
13
|
-
private
|
|
13
|
+
private checkAllowList;
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
/** Structural interface for the allowed-setup-calls flag check. */
|
|
16
|
+
export interface HasAllowedSetupCallsData {
|
|
17
|
+
txHash: {
|
|
18
|
+
toString(): string;
|
|
19
|
+
};
|
|
20
|
+
allowedSetupCalls: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validates that a transaction's setup-phase calls were allowed at receipt time.
|
|
24
|
+
*
|
|
25
|
+
* Checks the precomputed `allowedSetupCalls` flag on TxMetaData. The flag is
|
|
26
|
+
* computed by running the PhasesTxValidator on the full Tx when it first enters
|
|
27
|
+
* the pool. This lightweight validator is used during pending pool migration to
|
|
28
|
+
* reject txs whose setup calls are not on the allow list.
|
|
29
|
+
*/
|
|
30
|
+
export declare class AllowedSetupCallsMetaValidator<T extends HasAllowedSetupCallsData> implements TxValidator<T> {
|
|
31
|
+
#private;
|
|
32
|
+
constructor(bindings?: LoggerBindings);
|
|
33
|
+
validateTx(tx: T): Promise<TxValidationResult>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2VzX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9waGFzZXNfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUd2RixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFRTCxFQUFFLEVBRUYsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxXQUFXLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQscUJBQWEsaUJBQWtCLFlBQVcsV0FBVyxDQUFDLEVBQUUsQ0FBQzs7SUFNckQsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFNBQVM7SUFMbkIsT0FBTyxDQUFDLFdBQVcsQ0FBb0I7SUFFdkMsWUFDRSxTQUFTLEVBQUUsa0JBQWtCLEVBQ3JCLGNBQWMsRUFBRSxjQUFjLEVBQUUsRUFDaEMsU0FBUyxFQUFFLE1BQU0sRUFDekIsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUkxQjtJQUVLLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQXNDcEQ7WUFHYSxjQUFjO0NBa0U3QjtBQUVELG1FQUFtRTtBQUNuRSxNQUFNLFdBQVcsd0JBQXdCO0lBQ3ZDLE1BQU0sRUFBRTtRQUFFLFFBQVEsSUFBSSxNQUFNLENBQUE7S0FBRSxDQUFDO0lBQy9CLGlCQUFpQixFQUFFLE9BQU8sQ0FBQztDQUM1QjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxxQkFBYSw4QkFBOEIsQ0FBQyxDQUFDLFNBQVMsd0JBQXdCLENBQUUsWUFBVyxXQUFXLENBQUMsQ0FBQyxDQUFDOztJQUd2RyxZQUFZLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFFcEM7SUFFRCxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FNN0M7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phases_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/phases_validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"phases_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/phases_validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAGvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAQL,EAAE,EAEF,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,qBAAa,iBAAkB,YAAW,WAAW,CAAC,EAAE,CAAC;;IAMrD,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IALnB,OAAO,CAAC,WAAW,CAAoB;IAEvC,YACE,SAAS,EAAE,kBAAkB,EACrB,cAAc,EAAE,cAAc,EAAE,EAChC,SAAS,EAAE,MAAM,EACzB,QAAQ,CAAC,EAAE,cAAc,EAI1B;IAEK,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsCpD;YAGa,cAAc;CAkE7B;AAED,mEAAmE;AACnE,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,8BAA8B,CAAC,CAAC,SAAS,wBAAwB,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;IAGvG,YAAY,QAAQ,CAAC,EAAE,cAAc,EAEpC;IAED,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAM7C;CACF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { NULL_MSG_SENDER_CONTRACT_ADDRESS } from '@aztec/constants';
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { PublicContractsDB, getCallRequestsWithCalldataByPhase } from '@aztec/simulator/server';
|
|
3
|
-
import {
|
|
4
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
+
import { TX_ERROR_DURING_VALIDATION, TX_ERROR_SETUP_FUNCTION_NOT_ALLOWED, TX_ERROR_SETUP_FUNCTION_UNKNOWN_CONTRACT, TX_ERROR_SETUP_NULL_MSG_SENDER, TX_ERROR_SETUP_ONLY_SELF_WRONG_SENDER, TX_ERROR_SETUP_WRONG_CALLDATA_LENGTH, TxExecutionPhase } from '@aztec/stdlib/tx';
|
|
4
6
|
export class PhasesTxValidator {
|
|
5
7
|
setupAllowList;
|
|
6
8
|
timestamp;
|
|
@@ -28,14 +30,15 @@ export class PhasesTxValidator {
|
|
|
28
30
|
}
|
|
29
31
|
const setupFns = getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP);
|
|
30
32
|
for (const setupFn of setupFns){
|
|
31
|
-
|
|
33
|
+
const rejectionReason = await this.checkAllowList(setupFn, this.setupAllowList);
|
|
34
|
+
if (rejectionReason) {
|
|
32
35
|
this.#log.verbose(`Rejecting tx ${tx.getTxHash().toString()} because it calls setup function not on allow list: ${setupFn.request.contractAddress}:${setupFn.functionSelector}`, {
|
|
33
36
|
allowList: this.setupAllowList
|
|
34
37
|
});
|
|
35
38
|
return {
|
|
36
39
|
result: 'invalid',
|
|
37
40
|
reason: [
|
|
38
|
-
|
|
41
|
+
rejectionReason
|
|
39
42
|
]
|
|
40
43
|
};
|
|
41
44
|
}
|
|
@@ -55,39 +58,84 @@ export class PhasesTxValidator {
|
|
|
55
58
|
this.contractsDB.revertCheckpoint();
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
|
-
async
|
|
61
|
+
/** Returns a rejection reason if the call is not on the allow list, or undefined if it is allowed. */ async checkAllowList(publicCall, allowList) {
|
|
59
62
|
if (publicCall.isEmpty()) {
|
|
60
|
-
return
|
|
63
|
+
return undefined;
|
|
61
64
|
}
|
|
62
65
|
const contractAddress = publicCall.request.contractAddress;
|
|
63
66
|
const functionSelector = publicCall.functionSelector;
|
|
64
|
-
//
|
|
67
|
+
// Check address-based entries first since they don't require the contract class.
|
|
65
68
|
for (const entry of allowList){
|
|
66
|
-
if ('address' in entry
|
|
67
|
-
if (contractAddress.equals(entry.address)) {
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
if ('address' in entry && 'selector' in entry) {
|
|
69
|
+
if ('address' in entry) {
|
|
72
70
|
if (contractAddress.equals(entry.address) && entry.selector.equals(functionSelector)) {
|
|
73
|
-
|
|
71
|
+
if (entry.calldataLength !== undefined && publicCall.calldata.length !== entry.calldataLength) {
|
|
72
|
+
return TX_ERROR_SETUP_WRONG_CALLDATA_LENGTH;
|
|
73
|
+
}
|
|
74
|
+
if (entry.onlySelf && !publicCall.request.msgSender.equals(contractAddress)) {
|
|
75
|
+
return TX_ERROR_SETUP_ONLY_SELF_WRONG_SENDER;
|
|
76
|
+
}
|
|
77
|
+
if (entry.rejectNullMsgSender && publicCall.request.msgSender.equals(AztecAddress.fromBigInt(NULL_MSG_SENDER_CONTRACT_ADDRESS))) {
|
|
78
|
+
return TX_ERROR_SETUP_NULL_MSG_SENDER;
|
|
79
|
+
}
|
|
80
|
+
return undefined;
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
83
|
+
}
|
|
84
|
+
// Check class-based entries. Fetch the contract instance lazily (only once).
|
|
85
|
+
let contractClassId;
|
|
86
|
+
for (const entry of allowList){
|
|
87
|
+
if (!('classId' in entry)) {
|
|
88
|
+
continue;
|
|
79
89
|
}
|
|
80
|
-
if (
|
|
81
|
-
|
|
82
|
-
|
|
90
|
+
if (contractClassId === undefined) {
|
|
91
|
+
const instance = await this.contractsDB.getContractInstance(contractAddress, this.timestamp);
|
|
92
|
+
contractClassId = {
|
|
93
|
+
value: instance?.currentContractClassId.toString()
|
|
94
|
+
};
|
|
95
|
+
if (!contractClassId.value) {
|
|
96
|
+
return TX_ERROR_SETUP_FUNCTION_UNKNOWN_CONTRACT;
|
|
83
97
|
}
|
|
84
98
|
}
|
|
85
|
-
if (
|
|
86
|
-
if (
|
|
87
|
-
return
|
|
99
|
+
if (contractClassId.value === entry.classId.toString() && entry.selector.equals(functionSelector)) {
|
|
100
|
+
if (entry.calldataLength !== undefined && publicCall.calldata.length !== entry.calldataLength) {
|
|
101
|
+
return TX_ERROR_SETUP_WRONG_CALLDATA_LENGTH;
|
|
102
|
+
}
|
|
103
|
+
if (entry.onlySelf && !publicCall.request.msgSender.equals(contractAddress)) {
|
|
104
|
+
return TX_ERROR_SETUP_ONLY_SELF_WRONG_SENDER;
|
|
88
105
|
}
|
|
106
|
+
if (entry.rejectNullMsgSender && publicCall.request.msgSender.equals(AztecAddress.fromBigInt(NULL_MSG_SENDER_CONTRACT_ADDRESS))) {
|
|
107
|
+
return TX_ERROR_SETUP_NULL_MSG_SENDER;
|
|
108
|
+
}
|
|
109
|
+
return undefined;
|
|
89
110
|
}
|
|
90
111
|
}
|
|
91
|
-
return
|
|
112
|
+
return TX_ERROR_SETUP_FUNCTION_NOT_ALLOWED;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Validates that a transaction's setup-phase calls were allowed at receipt time.
|
|
117
|
+
*
|
|
118
|
+
* Checks the precomputed `allowedSetupCalls` flag on TxMetaData. The flag is
|
|
119
|
+
* computed by running the PhasesTxValidator on the full Tx when it first enters
|
|
120
|
+
* the pool. This lightweight validator is used during pending pool migration to
|
|
121
|
+
* reject txs whose setup calls are not on the allow list.
|
|
122
|
+
*/ export class AllowedSetupCallsMetaValidator {
|
|
123
|
+
#log;
|
|
124
|
+
constructor(bindings){
|
|
125
|
+
this.#log = createLogger('sequencer:tx_validator:tx_phases_meta', bindings);
|
|
126
|
+
}
|
|
127
|
+
validateTx(tx) {
|
|
128
|
+
if (!tx.allowedSetupCalls) {
|
|
129
|
+
this.#log.verbose(`Rejecting tx ${tx.txHash} because its setup calls are not on the allow list`);
|
|
130
|
+
return Promise.resolve({
|
|
131
|
+
result: 'invalid',
|
|
132
|
+
reason: [
|
|
133
|
+
TX_ERROR_SETUP_FUNCTION_NOT_ALLOWED
|
|
134
|
+
]
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return Promise.resolve({
|
|
138
|
+
result: 'valid'
|
|
139
|
+
});
|
|
92
140
|
}
|
|
93
141
|
}
|
|
@@ -8,7 +8,7 @@ export interface HasTimestampData {
|
|
|
8
8
|
toString(): string;
|
|
9
9
|
};
|
|
10
10
|
data: {
|
|
11
|
-
|
|
11
|
+
expirationTimestamp: bigint;
|
|
12
12
|
constants: {
|
|
13
13
|
anchorBlockHeader: {
|
|
14
14
|
globalVariables: {
|
|
@@ -27,4 +27,4 @@ export declare class TimestampTxValidator<T extends HasTimestampData> implements
|
|
|
27
27
|
}, bindings?: LoggerBindings);
|
|
28
28
|
validateTx(tx: T): Promise<TxValidationResult>;
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXN0YW1wX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci90aW1lc3RhbXBfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEVBQXlDLEtBQUssa0JBQWtCLEVBQUUsS0FBSyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwSCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxxREFBcUQ7QUFDckQsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixNQUFNLEVBQUU7UUFBRSxRQUFRLElBQUksTUFBTSxDQUFBO0tBQUUsQ0FBQztJQUMvQixJQUFJLEVBQUU7UUFDSixtQkFBbUIsRUFBRSxNQUFNLENBQUM7UUFDNUIsU0FBUyxFQUFFO1lBQ1QsaUJBQWlCLEVBQUU7Z0JBQ2pCLGVBQWUsRUFBRTtvQkFDZixXQUFXLEVBQUUsV0FBVyxDQUFDO2lCQUMxQixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUM7S0FDSCxDQUFDO0NBQ0g7QUFFRCxxQkFBYSxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsZ0JBQWdCLENBQUUsWUFBVyxXQUFXLENBQUMsQ0FBQyxDQUFDOztJQUluRixPQUFPLENBQUMsTUFBTTtJQURoQixZQUNVLE1BQU0sRUFBRTtRQUdkLFNBQVMsRUFBRSxNQUFNLENBQUM7UUFFbEIsV0FBVyxFQUFFLFdBQVcsQ0FBQztLQUMxQixFQUNELFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFRCxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FtQjdDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/timestamp_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAyC,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC;IAC/B,IAAI,EAAE;QACJ,
|
|
1
|
+
{"version":3,"file":"timestamp_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/timestamp_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAyC,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC;IAC/B,IAAI,EAAE;QACJ,mBAAmB,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE;YACT,iBAAiB,EAAE;gBACjB,eAAe,EAAE;oBACf,WAAW,EAAE,WAAW,CAAC;iBAC1B,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,qBAAa,oBAAoB,CAAC,CAAC,SAAS,gBAAgB,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;IAInF,OAAO,CAAC,MAAM;IADhB,YACU,MAAM,EAAE;QAGd,SAAS,EAAE,MAAM,CAAC;QAElB,WAAW,EAAE,WAAW,CAAC;KAC1B,EACD,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmB7C;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
-
import {
|
|
2
|
+
import { TX_ERROR_INVALID_EXPIRATION_TIMESTAMP } from '@aztec/stdlib/tx';
|
|
3
3
|
export class TimestampTxValidator {
|
|
4
4
|
values;
|
|
5
5
|
#log;
|
|
@@ -8,19 +8,19 @@ export class TimestampTxValidator {
|
|
|
8
8
|
this.#log = createLogger('p2p:tx_validator:timestamp', bindings);
|
|
9
9
|
}
|
|
10
10
|
validateTx(tx) {
|
|
11
|
-
const
|
|
12
|
-
// If building block 1, we skip the expiration check. For details on why see the `
|
|
11
|
+
const expirationTimestamp = tx.data.expirationTimestamp;
|
|
12
|
+
// If building block 1, we skip the expiration check. For details on why see the `validate_expiration_timestamp`
|
|
13
13
|
// function in `noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/components/validation_requests.nr`.
|
|
14
14
|
const buildingBlock1 = this.values.blockNumber === 1;
|
|
15
|
-
if (!buildingBlock1 &&
|
|
15
|
+
if (!buildingBlock1 && expirationTimestamp < this.values.timestamp) {
|
|
16
16
|
if (tx.data.constants.anchorBlockHeader.globalVariables.blockNumber === 0) {
|
|
17
17
|
this.#log.warn(`A tx built against a genesis block failed to be included in block 1 which is the only block in which txs built against a genesis block are allowed to be included.`);
|
|
18
18
|
}
|
|
19
|
-
this.#log.verbose(`Rejecting tx ${tx.txHash} for low expiration timestamp. Tx expiration timestamp: ${
|
|
19
|
+
this.#log.verbose(`Rejecting tx ${tx.txHash} for low expiration timestamp. Tx expiration timestamp: ${expirationTimestamp}, timestamp: ${this.values.timestamp}.`);
|
|
20
20
|
return Promise.resolve({
|
|
21
21
|
result: 'invalid',
|
|
22
22
|
reason: [
|
|
23
|
-
|
|
23
|
+
TX_ERROR_INVALID_EXPIRATION_TIMESTAMP
|
|
24
24
|
]
|
|
25
25
|
});
|
|
26
26
|
} else {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
2
|
import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
|
|
3
|
-
import type { Gossipable, PeerErrorSeverity } from '@aztec/stdlib/p2p';
|
|
3
|
+
import type { Gossipable, PeerErrorSeverity, TopicType } from '@aztec/stdlib/p2p';
|
|
4
4
|
import { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
5
5
|
import type { PeerId } from '@libp2p/interface';
|
|
6
6
|
import type { ENR } from '@nethermindeth/enr';
|
|
@@ -20,6 +20,7 @@ export declare class DummyP2PService implements P2PService {
|
|
|
20
20
|
updateConfig(_config: Partial<P2PReqRespConfig>): void;
|
|
21
21
|
/** Returns an empty array for peers. */
|
|
22
22
|
getPeers(): PeerInfo[];
|
|
23
|
+
getGossipMeshPeerCount(_topicType: TopicType): number;
|
|
23
24
|
/**
|
|
24
25
|
* Starts the dummy implementation.
|
|
25
26
|
* @returns A resolved promise.
|
|
@@ -76,8 +77,7 @@ export declare class DummyP2PService implements P2PService {
|
|
|
76
77
|
* @returns The ENR of the peer, otherwise undefined.
|
|
77
78
|
*/
|
|
78
79
|
getEnr(): undefined;
|
|
79
|
-
|
|
80
|
-
validatePropagatedTx(_tx: Tx, _peerId: PeerId): Promise<boolean>;
|
|
80
|
+
validateTxsReceivedInBlockProposal(_txs: Tx[]): Promise<void>;
|
|
81
81
|
addReqRespSubProtocol(_subProtocol: ReqRespSubProtocol, _handler: ReqRespSubProtocolHandler, _validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
|
|
82
82
|
handleAuthRequestFromPeer(_authRequest: AuthRequest, _peerId: PeerId): Promise<StatusMessage>;
|
|
83
83
|
registerThisValidatorAddresses(_address: EthAddress[]): void;
|
|
@@ -145,4 +145,4 @@ export declare class DummyReqResp implements ReqRespInterface {
|
|
|
145
145
|
getConnectionSampler(): Pick<ConnectionSampler, 'getPeerListSortedByConnectionCountAsc'>;
|
|
146
146
|
addSubProtocol(_subProtocol: ReqRespSubProtocol, _handler: ReqRespSubProtocolHandler, _validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
|
|
147
147
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfc2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2R1bW15X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUYsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUNWLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLGNBQWMsRUFDZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy_service.d.ts","sourceRoot":"","sources":["../../src/services/dummy_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"dummy_service.d.ts","sourceRoot":"","sources":["../../src/services/dummy_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,EACjC,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAG;IAEzD,wCAAwC;IACxC,QAAQ,IAAI,QAAQ,EAAE,CAErB;IAED,sBAAsB,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM,CAEpD;IAED;;;OAGG;IACI,KAAK,kBAEX;IAED;;;OAGG;IACI,IAAI,kBAEV;IAED;;;OAGG;IACI,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,iBAE1C;IAED;;;OAGG;IACI,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,QAAI;IAEjC;;OAEG;IACI,6BAA6B,CAAC,SAAS,EAAE,wBAAwB,QAAI;IAE5E;;OAEG;IACI,kCAAkC,CAAC,SAAS,EAAE,6BAA6B,QAAI;IAEtF;;OAEG;IACI,iCAAiC,CAAC,SAAS,EAAE,4BAA4B,GAAG,IAAI,CAAG;IAE1F;;OAEG;IACI,oCAAoC,CAAC,SAAS,EAAE,+BAA+B,GAAG,IAAI,CAAG;IAEhG;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,SAAS,kBAAkB,EACpD,SAAS,EAAE,QAAQ,EACnB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAC1D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAEzE;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,QAAQ,SAAS,kBAAkB,EACzD,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAC7D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAE/D;IAEM,iBAAiB,CACtB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,CAAC,CAE1B;IAED;;;OAGG;IACI,MAAM,IAAI,SAAS,CAEzB;IAED,kCAAkC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;IAED,qBAAqB,CACnB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,yBAAyB,EACnC,UAAU,CAAC,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC,CAEf;IAED,yBAAyB,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAE5F;IAGD,8BAA8B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAG;IAE/D;;OAEG;IACH,0BAA0B,IAAI,6BAA6B,CAgB1D;CACF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,YAAa,YAAW,oBAAoB;IACzF,OAAO,CAAC,YAAY,CAA8B;IAC3C,iBAAiB,EAAE,GAAG,EAAE,CAAM;IAErC;;;OAGG;IACI,KAAK,kBAGX;IACD;;;OAGG;IACI,IAAI,kBAGV;IACD;;;OAGG;IACI,YAAY,YAElB;IAEM,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1C;IAEM,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzC;IAEM,SAAS,IAAI,kBAAkB,CAErC;IAEM,MAAM,IAAI,SAAS,CAEzB;CACF;AAED,qBAAa,gBAAiB,YAAW,oBAAoB;IAElD,MAAM,EAAE,MAAM;IACrB,OAAO,CAAC,aAAa,CAAC;IAFxB,YACS,MAAM,EAAE,MAAM,EACb,aAAa,CAAC;;iBAA8B,EAClD;IAEG,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAYrD;IAEM,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAEtC;IACM,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3C;IAEM,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;IAEM,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IACM,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhC;IACM,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAG;IACxC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAG;IACxC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAAG;IACjE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAG;IACnE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAG;IAC1C,yBAAyB,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAEnG;IAGD,8BAA8B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAG;CAChE;AAED,qBAAa,YAAa,YAAW,gBAAgB;IACnD,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAG;IACzD,KAAK,CACH,oBAAoB,EAAE,0BAA0B,EAChD,sBAAsB,EAAE,4BAA4B,GACnD,OAAO,CAAC,IAAI,CAAC,CAEf;IACD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpB;IACD,WAAW,CAAC,WAAW,SAAS,kBAAkB,EAChD,YAAY,EAAE,WAAW,EACzB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAC7D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAE5E;IACD,gBAAgB,CAAC,WAAW,SAAS,kBAAkB,EACrD,YAAY,EAAE,WAAW,EACzB,SAAS,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EACjE,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAElE;IACM,iBAAiB,CACtB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,CAAC,CAE1B;IAED;;OAEG;IACH,oBAAoB,IAAI,IAAI,CAAC,iBAAiB,EAAE,uCAAuC,CAAC,CAIvF;IAED,cAAc,CACZ,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,yBAAyB,EACnC,UAAU,CAAC,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC,CAEf;CACF"}
|
|
@@ -9,6 +9,9 @@ import { PeerDiscoveryState } from './service.js';
|
|
|
9
9
|
/** Returns an empty array for peers. */ getPeers() {
|
|
10
10
|
return [];
|
|
11
11
|
}
|
|
12
|
+
getGossipMeshPeerCount(_topicType) {
|
|
13
|
+
return 0;
|
|
14
|
+
}
|
|
12
15
|
/**
|
|
13
16
|
* Starts the dummy implementation.
|
|
14
17
|
* @returns A resolved promise.
|
|
@@ -71,12 +74,9 @@ import { PeerDiscoveryState } from './service.js';
|
|
|
71
74
|
*/ getEnr() {
|
|
72
75
|
return undefined;
|
|
73
76
|
}
|
|
74
|
-
|
|
77
|
+
validateTxsReceivedInBlockProposal(_txs) {
|
|
75
78
|
return Promise.resolve();
|
|
76
79
|
}
|
|
77
|
-
validatePropagatedTx(_tx, _peerId) {
|
|
78
|
-
return Promise.resolve(true);
|
|
79
|
-
}
|
|
80
80
|
addReqRespSubProtocol(_subProtocol, _handler, _validator) {
|
|
81
81
|
return Promise.resolve();
|
|
82
82
|
}
|
|
@@ -17,7 +17,7 @@ export declare function msgIdToStrFn(msgId: Uint8Array): string;
|
|
|
17
17
|
* @param message - The libp2p message
|
|
18
18
|
* @returns The message identifier
|
|
19
19
|
*/
|
|
20
|
-
export declare function getMsgIdFn(
|
|
20
|
+
export declare function getMsgIdFn({ topic, data }: Message): Promise<Uint8Array>;
|
|
21
21
|
/**
|
|
22
22
|
* Snappy transform for libp2p gossipsub
|
|
23
23
|
*/
|
|
@@ -47,4 +47,4 @@ export declare function readSnappyPreamble(data: Uint8Array): {
|
|
|
47
47
|
decompressedSize: number;
|
|
48
48
|
bytesRead: number;
|
|
49
49
|
};
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWtCLFNBQVMsRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRixPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQWNqRDs7O0dBR0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FLdkQ7QUFFRCx3QkFBZ0IsWUFBWSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUl0RDtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUk5RTtBQWNEOztHQUVHO0FBQ0gscUJBQWEsZUFBZ0IsWUFBVyxhQUFhO0lBRWpELE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLE1BQU07SUFIaEIsWUFDVSxVQUFVLEdBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQXFCLEVBQ3pELGdCQUFnQixHQUFFLE1BQWtCLEVBQ3BDLE1BQU0seUNBQXVDLEVBQ25EO0lBR0osZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxHQUFHLFVBQVUsQ0FHL0Q7SUFFTSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBWS9GO0lBR0QsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxHQUFHLFVBQVUsQ0FFakU7SUFFTSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FLakQ7Q0FDRjtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUc7SUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FtQ3BHIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/services/encoding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/services/encoding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,SAAS,EAAsB,MAAM,mBAAmB,CAAC;AAElF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAcjD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAKvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAItD;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAI9E;AAcD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IAEjD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IAHhB,YACU,UAAU,GAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAqB,EACzD,gBAAgB,GAAE,MAAkB,EACpC,MAAM,yCAAuC,EACnD;IAGJ,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAG/D;IAEM,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAY/F;IAGD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAEjE;IAEM,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;CACF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmCpG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Taken from lodestar: https://github.com/ChainSafe/lodestar
|
|
2
|
-
import { sha256 } from '@aztec/foundation/crypto/sha256';
|
|
3
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
3
|
import { MAX_TX_SIZE_KB, TopicType, getTopicFromString } from '@aztec/stdlib/p2p';
|
|
4
|
+
import { webcrypto } from 'node:crypto';
|
|
5
5
|
import { compressSync, uncompressSync } from 'snappy';
|
|
6
6
|
import xxhashFactory from 'xxhash-wasm';
|
|
7
7
|
// Load WASM
|
|
@@ -32,13 +32,13 @@ export function msgIdToStrFn(msgId) {
|
|
|
32
32
|
*
|
|
33
33
|
* @param message - The libp2p message
|
|
34
34
|
* @returns The message identifier
|
|
35
|
-
*/ export function getMsgIdFn(
|
|
36
|
-
const
|
|
37
|
-
const vec = [
|
|
35
|
+
*/ export async function getMsgIdFn({ topic, data }) {
|
|
36
|
+
const buffer = Buffer.concat([
|
|
38
37
|
Buffer.from(topic),
|
|
39
|
-
|
|
40
|
-
];
|
|
41
|
-
|
|
38
|
+
data
|
|
39
|
+
]);
|
|
40
|
+
const hash = await webcrypto.subtle.digest('SHA-256', buffer);
|
|
41
|
+
return Buffer.from(hash.slice(0, 20));
|
|
42
42
|
}
|
|
43
43
|
const DefaultMaxSizesKb = {
|
|
44
44
|
[TopicType.tx]: MAX_TX_SIZE_KB,
|
|
@@ -47,7 +47,8 @@ const DefaultMaxSizesKb = {
|
|
|
47
47
|
// Proposals may carry some tx objects, so we allow a larger size capped at 10mb
|
|
48
48
|
// Note this may not be enough for carrying all tx objects in a block
|
|
49
49
|
[TopicType.block_proposal]: 1024 * 10,
|
|
50
|
-
//
|
|
50
|
+
// Checkpoint proposals carry almost the same data as a block proposal (see the lastBlockProposal)
|
|
51
|
+
// Only diff is an additional header, which is pretty small compared to the 10mb limit
|
|
51
52
|
[TopicType.checkpoint_proposal]: 1024 * 10
|
|
52
53
|
};
|
|
53
54
|
/**
|
|
@@ -12,6 +12,8 @@ export type TopicScoringNetworkParams = {
|
|
|
12
12
|
targetCommitteeSize: number;
|
|
13
13
|
/** Duration per block in milliseconds when building multiple blocks per slot. If undefined, single block mode. */
|
|
14
14
|
blockDurationMs?: number;
|
|
15
|
+
/** Expected number of block proposals per slot for scoring override. 0 disables scoring, undefined falls back to blocksPerSlot - 1. */
|
|
16
|
+
expectedBlockProposalsPerSlot?: number;
|
|
15
17
|
};
|
|
16
18
|
/**
|
|
17
19
|
* Calculates the number of blocks per slot based on timing parameters.
|
|
@@ -59,25 +61,31 @@ export declare function computeConvergence(messagesPerHeartbeat: number, decay:
|
|
|
59
61
|
* @returns Threshold value
|
|
60
62
|
*/
|
|
61
63
|
export declare function computeThreshold(convergence: number, conservativeFactor: number): number;
|
|
64
|
+
/**
|
|
65
|
+
* Determines the effective expected block proposals per slot for scoring.
|
|
66
|
+
* Returns undefined if scoring should be disabled, or a positive number if enabled.
|
|
67
|
+
*
|
|
68
|
+
* @param blocksPerSlot - Number of blocks per slot from timetable
|
|
69
|
+
* @param expectedBlockProposalsPerSlot - Config override. 0 disables scoring, undefined falls back to blocksPerSlot - 1.
|
|
70
|
+
* @returns Positive number of expected block proposals, or undefined if scoring is disabled
|
|
71
|
+
*/
|
|
72
|
+
export declare function getEffectiveBlockProposalsPerSlot(blocksPerSlot: number, expectedBlockProposalsPerSlot?: number): number | undefined;
|
|
62
73
|
/**
|
|
63
74
|
* Gets the expected messages per slot for a given topic type.
|
|
64
75
|
*
|
|
65
76
|
* @param topicType - The topic type
|
|
66
77
|
* @param targetCommitteeSize - Target committee size
|
|
67
78
|
* @param blocksPerSlot - Number of blocks per slot
|
|
79
|
+
* @param expectedBlockProposalsPerSlot - Override for block proposals. 0 disables scoring, undefined falls back to blocksPerSlot - 1.
|
|
68
80
|
* @returns Expected messages per slot, or undefined if unpredictable
|
|
69
81
|
*/
|
|
70
|
-
export declare function getExpectedMessagesPerSlot(topicType: TopicType, targetCommitteeSize: number, blocksPerSlot: number): number | undefined;
|
|
82
|
+
export declare function getExpectedMessagesPerSlot(topicType: TopicType, targetCommitteeSize: number, blocksPerSlot: number, expectedBlockProposalsPerSlot?: number): number | undefined;
|
|
71
83
|
/** Maximum P1 score contribution per topic */
|
|
72
84
|
export declare const MAX_P1_SCORE = 8;
|
|
73
85
|
/** Maximum P2 score contribution per topic */
|
|
74
86
|
export declare const MAX_P2_SCORE = 25;
|
|
75
87
|
/** Maximum P3 penalty per topic (must exceed P1 + P2 to cause pruning) */
|
|
76
88
|
export declare const MAX_P3_PENALTY_PER_TOPIC: number;
|
|
77
|
-
/** Number of topics with P3 enabled in MBPS mode (block_proposal + checkpoint_proposal + checkpoint_attestation) */
|
|
78
|
-
export declare const NUM_P3_ENABLED_TOPICS = 3;
|
|
79
|
-
/** Total maximum P3b penalty across all topics after pruning in MBPS mode */
|
|
80
|
-
export declare const TOTAL_MAX_P3B_PENALTY: number;
|
|
81
89
|
/**
|
|
82
90
|
* Factory class for creating gossipsub topic scoring parameters.
|
|
83
91
|
* Computes shared values once and reuses them across all topics.
|
|
@@ -126,6 +134,10 @@ export declare class TopicScoreParamsFactory {
|
|
|
126
134
|
* @param expectedPerSlot - Expected messages per slot
|
|
127
135
|
*/
|
|
128
136
|
private createEnabledP3Params;
|
|
137
|
+
/** Number of topics with P3 enabled, computed from config. Always 2 (checkpoint_proposal + checkpoint_attestation) plus optionally block_proposal. */
|
|
138
|
+
get numP3EnabledTopics(): number;
|
|
139
|
+
/** Total maximum P3b penalty across all topics after pruning, computed from config */
|
|
140
|
+
get totalMaxP3bPenalty(): number;
|
|
129
141
|
/**
|
|
130
142
|
* Creates topic score parameters for a specific topic type.
|
|
131
143
|
*
|
|
@@ -158,4 +170,4 @@ export declare function createTopicScoreParamsForTopic(topicType: TopicType, par
|
|
|
158
170
|
* @returns Record mapping topic strings to their score parameters
|
|
159
171
|
*/
|
|
160
172
|
export declare function createAllTopicScoreParams(protocolVersion: string, params: TopicScoringNetworkParams): Record<string, ReturnType<typeof createTopicScoreParams>>;
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWNfc2NvcmVfcGFyYW1zLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZ29zc2lwc3ViL3RvcGljX3Njb3JlX3BhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBR2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTNFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHlCQUF5QixHQUFHO0lBQ3RDLHVDQUF1QztJQUN2QyxjQUFjLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLG1EQUFtRDtJQUNuRCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsK0VBQStFO0lBQy9FLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1QixrSEFBa0g7SUFDbEgsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLHVJQUF1STtJQUN2SSw2QkFBNkIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN4QyxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxNQUFNLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FFMUc7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsbUJBQW1CLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FRM0U7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixZQUFZLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FPbEg7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBRXRGO0FBRUQ7Ozs7Ozs7R0FPRztB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic_score_params.d.ts","sourceRoot":"","sources":["../../../src/services/gossipsub/topic_score_params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kHAAkH;IAClH,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"topic_score_params.d.ts","sourceRoot":"","sources":["../../../src/services/gossipsub/topic_score_params.ts"],"names":[],"mappings":"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"}
|