chia-blockchain 2.5.7rc4__py3-none-any.whl → 2.5.8rc1__py3-none-any.whl
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.
- chia/__init__.py +8 -4
- chia/_tests/blockchain/blockchain_test_utils.py +6 -8
- chia/_tests/blockchain/test_augmented_chain.py +4 -4
- chia/_tests/blockchain/test_blockchain.py +165 -190
- chia/_tests/blockchain/test_build_chains.py +2 -4
- chia/_tests/blockchain/test_get_block_generator.py +2 -3
- chia/_tests/clvm/coin_store.py +4 -7
- chia/_tests/clvm/test_clvm_step.py +4 -4
- chia/_tests/clvm/test_puzzle_compression.py +2 -1
- chia/_tests/clvm/test_puzzle_drivers.py +2 -2
- chia/_tests/clvm/test_singletons.py +2 -4
- chia/_tests/clvm/test_spend_sim.py +2 -2
- chia/_tests/cmds/cmd_test_utils.py +27 -45
- chia/_tests/cmds/test_cmd_framework.py +6 -6
- chia/_tests/cmds/test_daemon.py +3 -3
- chia/_tests/cmds/test_show.py +4 -4
- chia/_tests/cmds/test_tx_config_args.py +1 -2
- chia/_tests/cmds/testing_classes.py +4 -5
- chia/_tests/cmds/wallet/test_did.py +24 -27
- chia/_tests/cmds/wallet/test_nft.py +12 -10
- chia/_tests/cmds/wallet/test_vcs.py +11 -12
- chia/_tests/cmds/wallet/test_wallet.py +134 -89
- chia/_tests/conftest.py +59 -30
- chia/_tests/connection_utils.py +2 -2
- chia/_tests/core/cmds/test_beta.py +4 -4
- chia/_tests/core/cmds/test_keys.py +2 -3
- chia/_tests/core/cmds/test_wallet.py +15 -15
- chia/_tests/core/consensus/test_pot_iterations.py +19 -73
- chia/_tests/core/custom_types/test_proof_of_space.py +124 -98
- chia/_tests/core/daemon/test_daemon.py +11 -11
- chia/_tests/core/data_layer/conftest.py +2 -2
- chia/_tests/core/data_layer/test_data_rpc.py +28 -14
- chia/_tests/core/data_layer/test_data_store.py +10 -10
- chia/_tests/core/data_layer/util.py +11 -11
- chia/_tests/core/farmer/test_farmer_api.py +2 -4
- chia/_tests/core/full_node/full_sync/test_full_sync.py +8 -7
- chia/_tests/core/full_node/stores/test_block_store.py +5 -4
- chia/_tests/core/full_node/stores/test_coin_store.py +5 -11
- chia/_tests/core/full_node/stores/test_full_node_store.py +8 -8
- chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
- chia/_tests/core/full_node/test_block_height_map.py +3 -4
- chia/_tests/core/full_node/test_conditions.py +21 -23
- chia/_tests/core/full_node/test_full_node.py +225 -62
- chia/_tests/core/full_node/test_hint_management.py +2 -4
- chia/_tests/core/full_node/test_performance.py +0 -1
- chia/_tests/core/full_node/test_prev_tx_block.py +88 -11
- chia/_tests/core/full_node/test_transactions.py +1 -2
- chia/_tests/core/full_node/test_tx_processing_queue.py +109 -25
- chia/_tests/core/mempool/test_mempool.py +29 -37
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +39 -39
- chia/_tests/core/mempool/test_mempool_fee_protocol.py +2 -6
- chia/_tests/core/mempool/test_mempool_manager.py +963 -839
- chia/_tests/core/mempool/test_singleton_fast_forward.py +6 -6
- chia/_tests/core/server/serve.py +7 -7
- chia/_tests/core/server/test_dos.py +1 -2
- chia/_tests/core/server/test_event_loop.py +12 -4
- chia/_tests/core/server/test_loop.py +7 -8
- chia/_tests/core/server/test_rate_limits.py +9 -8
- chia/_tests/core/server/test_server.py +61 -1
- chia/_tests/core/services/test_services.py +2 -2
- chia/_tests/core/ssl/test_ssl.py +2 -2
- chia/_tests/core/test_cost_calculation.py +2 -6
- chia/_tests/core/test_farmer_harvester_rpc.py +3 -5
- chia/_tests/core/test_filter.py +0 -1
- chia/_tests/core/test_full_node_rpc.py +2 -2
- chia/_tests/core/test_merkle_set.py +1 -2
- chia/_tests/core/test_seeder.py +4 -4
- chia/_tests/core/util/test_config.py +4 -4
- chia/_tests/core/util/test_jsonify.py +2 -2
- chia/_tests/core/util/test_keychain.py +3 -3
- chia/_tests/core/util/test_lockfile.py +2 -1
- chia/_tests/core/util/test_log_exceptions.py +1 -2
- chia/_tests/core/util/test_streamable.py +17 -17
- chia/_tests/db/test_db_wrapper.py +3 -2
- chia/_tests/environments/wallet.py +14 -14
- chia/_tests/ether.py +4 -3
- chia/_tests/farmer_harvester/test_farmer.py +41 -24
- chia/_tests/farmer_harvester/test_farmer_harvester.py +50 -17
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +27 -27
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +21 -22
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +18 -18
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +11 -9
- chia/_tests/harvester/test_harvester_api.py +11 -4
- chia/_tests/plot_sync/test_plot_sync.py +13 -11
- chia/_tests/plot_sync/test_receiver.py +11 -10
- chia/_tests/plot_sync/test_sync_simulated.py +2 -2
- chia/_tests/plot_sync/util.py +1 -2
- chia/_tests/plotting/test_plot_manager.py +7 -6
- chia/_tests/plotting/test_prover.py +30 -38
- chia/_tests/pools/test_pool_cmdline.py +4 -6
- chia/_tests/pools/test_pool_rpc.py +203 -61
- chia/_tests/pools/test_pool_wallet.py +3 -3
- chia/_tests/pools/test_wallet_pool_store.py +1 -4
- chia/_tests/process_junit.py +2 -2
- chia/_tests/rpc/test_rpc_client.py +4 -4
- chia/_tests/rpc/test_rpc_server.py +3 -3
- chia/_tests/simulation/test_simulation.py +12 -25
- chia/_tests/solver/test_solver_service.py +13 -4
- chia/_tests/testconfig.py +2 -2
- chia/_tests/timelord/test_new_peak.py +22 -11
- chia/_tests/tools/test_run_block.py +0 -2
- chia/_tests/tools/test_virtual_project.py +2 -1
- chia/_tests/util/benchmarks.py +1 -0
- chia/_tests/util/blockchain.py +38 -36
- chia/_tests/util/blockchain_mock.py +11 -11
- chia/_tests/util/build_network_protocol_files.py +2 -1
- chia/_tests/util/coin_store.py +2 -1
- chia/_tests/util/config.py +1 -1
- chia/_tests/util/db_connection.py +2 -3
- chia/_tests/util/full_sync.py +9 -11
- chia/_tests/util/gen_ssl_certs.py +4 -5
- chia/_tests/util/get_name_puzzle_conditions.py +2 -0
- chia/_tests/util/misc.py +24 -24
- chia/_tests/util/network_protocol_data.py +20 -3
- chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
- chia/_tests/util/protocol_messages_json.py +292 -3
- chia/_tests/util/setup_nodes.py +62 -47
- chia/_tests/util/spend_sim.py +57 -57
- chia/_tests/util/test_async_pool.py +2 -3
- chia/_tests/util/test_chia_version.py +1 -3
- chia/_tests/util/test_config.py +3 -3
- chia/_tests/util/test_full_block_utils.py +6 -3
- chia/_tests/util/test_limited_semaphore.py +1 -2
- chia/_tests/util/test_misc.py +2 -2
- chia/_tests/util/test_network.py +1 -2
- chia/_tests/util/test_priority_mutex.py +3 -3
- chia/_tests/util/test_recursive_replace.py +5 -6
- chia/_tests/util/test_replace_str_to_bytes.py +8 -10
- chia/_tests/util/test_testnet_overrides.py +3 -3
- chia/_tests/util/time_out_assert.py +2 -2
- chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +4 -6
- chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +2 -4
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +19 -13
- chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +13 -13
- chia/_tests/wallet/cat_wallet/test_trades.py +40 -38
- chia/_tests/wallet/clawback/test_clawback_lifecycle.py +2 -4
- chia/_tests/wallet/conftest.py +6 -6
- chia/_tests/wallet/db_wallet/test_db_graftroot.py +1 -1
- chia/_tests/wallet/db_wallet/test_dl_offers.py +34 -34
- chia/_tests/wallet/did_wallet/test_did.py +16 -6
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +21 -21
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +20 -6
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +19 -21
- chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +1 -2
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +121 -2
- chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +6 -9
- chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +44 -1
- chia/_tests/wallet/rpc/test_wallet_rpc.py +1672 -896
- chia/_tests/wallet/sync/test_wallet_sync.py +43 -47
- chia/_tests/wallet/test_clvm_streamable.py +2 -3
- chia/_tests/wallet/test_coin_management.py +2 -2
- chia/_tests/wallet/test_conditions.py +45 -51
- chia/_tests/wallet/test_debug_spend_bundle.py +2 -2
- chia/_tests/wallet/test_new_wallet_protocol.py +4 -6
- chia/_tests/wallet/test_notifications.py +14 -14
- chia/_tests/wallet/test_signer_protocol.py +5 -5
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +4 -3
- chia/_tests/wallet/test_transaction_store.py +20 -20
- chia/_tests/wallet/test_util.py +2 -2
- chia/_tests/wallet/test_wallet.py +380 -228
- chia/_tests/wallet/test_wallet_action_scope.py +4 -4
- chia/_tests/wallet/test_wallet_blockchain.py +12 -12
- chia/_tests/wallet/test_wallet_coin_store.py +3 -4
- chia/_tests/wallet/test_wallet_node.py +14 -14
- chia/_tests/wallet/test_wallet_test_framework.py +2 -1
- chia/_tests/wallet/test_wallet_utils.py +2 -3
- chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -5
- chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +14 -15
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +29 -24
- chia/_tests/wallet/wallet_block_tools.py +12 -11
- chia/_tests/weight_proof/config.py +1 -0
- chia/_tests/weight_proof/test_weight_proof.py +5 -4
- chia/apis/__init__.py +21 -0
- chia/apis/farmer_stub.py +102 -0
- chia/apis/full_node_stub.py +372 -0
- chia/apis/harvester_stub.py +57 -0
- chia/apis/introducer_stub.py +35 -0
- chia/apis/solver_stub.py +30 -0
- chia/apis/stub_protocol_registry.py +21 -0
- chia/apis/timelord_stub.py +39 -0
- chia/apis/wallet_stub.py +161 -0
- chia/cmds/beta.py +3 -4
- chia/cmds/beta_funcs.py +4 -3
- chia/cmds/check_wallet_db.py +4 -4
- chia/cmds/chia.py +1 -2
- chia/cmds/cmd_classes.py +11 -13
- chia/cmds/cmd_helpers.py +11 -11
- chia/cmds/cmds_util.py +15 -15
- chia/cmds/coin_funcs.py +6 -7
- chia/cmds/coins.py +2 -3
- chia/cmds/configure.py +1 -2
- chia/cmds/data.py +42 -42
- chia/cmds/data_funcs.py +81 -81
- chia/cmds/db.py +4 -5
- chia/cmds/db_backup_func.py +2 -2
- chia/cmds/db_upgrade_func.py +3 -3
- chia/cmds/db_validate_func.py +2 -2
- chia/cmds/dev/data.py +4 -4
- chia/cmds/dev/gh.py +5 -5
- chia/cmds/dev/installers.py +2 -3
- chia/cmds/dev/mempool.py +3 -4
- chia/cmds/dev/mempool_funcs.py +4 -4
- chia/cmds/dev/sim.py +8 -8
- chia/cmds/dump_keyring.py +3 -3
- chia/cmds/farm.py +6 -8
- chia/cmds/farm_funcs.py +25 -24
- chia/cmds/init_funcs.py +4 -4
- chia/cmds/keys.py +16 -18
- chia/cmds/keys_funcs.py +36 -36
- chia/cmds/netspace.py +1 -3
- chia/cmds/netspace_funcs.py +1 -2
- chia/cmds/options.py +3 -2
- chia/cmds/param_types.py +17 -16
- chia/cmds/passphrase.py +6 -7
- chia/cmds/passphrase_funcs.py +11 -13
- chia/cmds/peer.py +1 -3
- chia/cmds/peer_funcs.py +3 -3
- chia/cmds/plotnft.py +6 -7
- chia/cmds/plotnft_funcs.py +37 -26
- chia/cmds/rpc.py +3 -3
- chia/cmds/show.py +3 -5
- chia/cmds/show_funcs.py +9 -9
- chia/cmds/sim_funcs.py +25 -26
- chia/cmds/solver.py +1 -3
- chia/cmds/solver_funcs.py +1 -2
- chia/cmds/start_funcs.py +2 -2
- chia/cmds/wallet.py +76 -81
- chia/cmds/wallet_funcs.py +206 -177
- chia/consensus/augmented_chain.py +6 -6
- chia/consensus/block_body_validation.py +19 -15
- chia/consensus/block_creation.py +25 -21
- chia/consensus/block_header_validation.py +27 -13
- chia/consensus/block_height_map.py +3 -6
- chia/consensus/block_height_map_protocol.py +2 -2
- chia/consensus/block_record.py +2 -4
- chia/consensus/blockchain.py +58 -40
- chia/consensus/blockchain_interface.py +7 -7
- chia/consensus/coin_store_protocol.py +5 -6
- chia/consensus/condition_tools.py +4 -4
- chia/consensus/cost_calculator.py +2 -3
- chia/consensus/default_constants.py +16 -13
- chia/consensus/deficit.py +1 -3
- chia/consensus/difficulty_adjustment.py +3 -5
- chia/consensus/find_fork_point.py +2 -4
- chia/consensus/full_block_to_block_record.py +11 -13
- chia/consensus/generator_tools.py +2 -3
- chia/consensus/get_block_challenge.py +42 -26
- chia/consensus/get_block_generator.py +2 -3
- chia/consensus/make_sub_epoch_summary.py +8 -7
- chia/consensus/multiprocess_validation.py +31 -20
- chia/consensus/pos_quality.py +6 -23
- chia/consensus/pot_iterations.py +17 -44
- chia/consensus/signage_point.py +4 -5
- chia/consensus/vdf_info_computation.py +2 -4
- chia/daemon/client.py +8 -8
- chia/daemon/keychain_proxy.py +31 -37
- chia/daemon/server.py +32 -33
- chia/daemon/windows_signal.py +4 -3
- chia/data_layer/data_layer.py +86 -77
- chia/data_layer/data_layer_rpc_api.py +9 -9
- chia/data_layer/data_layer_rpc_client.py +13 -15
- chia/data_layer/data_layer_server.py +3 -3
- chia/data_layer/data_layer_util.py +14 -14
- chia/data_layer/data_layer_wallet.py +94 -101
- chia/data_layer/data_store.py +50 -50
- chia/data_layer/dl_wallet_store.py +9 -12
- chia/data_layer/download_data.py +8 -9
- chia/data_layer/s3_plugin_service.py +5 -9
- chia/data_layer/start_data_layer.py +5 -5
- chia/farmer/farmer.py +31 -31
- chia/farmer/farmer_api.py +45 -33
- chia/farmer/farmer_rpc_api.py +5 -4
- chia/farmer/farmer_rpc_client.py +6 -6
- chia/farmer/start_farmer.py +6 -6
- chia/full_node/block_store.py +13 -16
- chia/full_node/check_fork_next_block.py +1 -2
- chia/full_node/coin_store.py +15 -16
- chia/full_node/eligible_coin_spends.py +3 -3
- chia/full_node/fee_estimate_store.py +2 -3
- chia/full_node/fee_tracker.py +1 -2
- chia/full_node/full_block_utils.py +4 -4
- chia/full_node/full_node.py +238 -224
- chia/full_node/full_node_api.py +193 -150
- chia/full_node/full_node_rpc_api.py +53 -31
- chia/full_node/full_node_rpc_client.py +18 -19
- chia/full_node/full_node_store.py +45 -43
- chia/full_node/hint_management.py +2 -2
- chia/full_node/mempool.py +17 -19
- chia/full_node/mempool_manager.py +89 -42
- chia/full_node/pending_tx_cache.py +2 -3
- chia/full_node/start_full_node.py +5 -5
- chia/full_node/sync_store.py +3 -4
- chia/full_node/tx_processing_queue.py +34 -13
- chia/full_node/weight_proof.py +61 -48
- chia/harvester/harvester.py +25 -24
- chia/harvester/harvester_api.py +61 -38
- chia/harvester/harvester_rpc_api.py +10 -10
- chia/harvester/start_harvester.py +4 -4
- chia/introducer/introducer.py +3 -3
- chia/introducer/introducer_api.py +6 -4
- chia/introducer/start_introducer.py +4 -4
- chia/legacy/keyring.py +3 -3
- chia/plot_sync/delta.py +1 -2
- chia/plot_sync/receiver.py +20 -17
- chia/plot_sync/sender.py +15 -10
- chia/plotters/bladebit.py +7 -7
- chia/plotters/chiapos.py +2 -2
- chia/plotters/madmax.py +4 -4
- chia/plotters/plotters.py +4 -4
- chia/plotters/plotters_util.py +3 -3
- chia/plotting/cache.py +20 -14
- chia/plotting/check_plots.py +26 -35
- chia/plotting/create_plots.py +22 -23
- chia/plotting/manager.py +21 -14
- chia/plotting/prover.py +59 -42
- chia/plotting/util.py +16 -16
- chia/pools/pool_config.py +2 -1
- chia/pools/pool_puzzles.py +11 -12
- chia/pools/pool_wallet.py +34 -57
- chia/pools/pool_wallet_info.py +39 -10
- chia/protocols/farmer_protocol.py +8 -9
- chia/protocols/fee_estimate.py +3 -4
- chia/protocols/full_node_protocol.py +3 -4
- chia/protocols/harvester_protocol.py +27 -15
- chia/protocols/outbound_message.py +3 -3
- chia/protocols/pool_protocol.py +8 -9
- chia/protocols/shared_protocol.py +1 -2
- chia/protocols/solver_protocol.py +9 -2
- chia/protocols/timelord_protocol.py +4 -7
- chia/protocols/wallet_protocol.py +11 -12
- chia/rpc/rpc_client.py +9 -9
- chia/rpc/rpc_server.py +17 -17
- chia/rpc/util.py +2 -2
- chia/seeder/crawler.py +8 -8
- chia/seeder/crawler_api.py +21 -27
- chia/seeder/crawler_rpc_api.py +2 -2
- chia/seeder/dns_server.py +21 -21
- chia/seeder/start_crawler.py +4 -4
- chia/server/address_manager.py +15 -16
- chia/server/api_protocol.py +11 -11
- chia/server/chia_policy.py +46 -26
- chia/server/introducer_peers.py +2 -3
- chia/server/node_discovery.py +19 -19
- chia/server/rate_limit_numbers.py +4 -5
- chia/server/rate_limits.py +4 -4
- chia/server/resolve_peer_info.py +4 -4
- chia/server/server.py +49 -52
- chia/server/signal_handlers.py +6 -6
- chia/server/start_service.py +17 -17
- chia/server/upnp.py +4 -6
- chia/server/ws_connection.py +52 -37
- chia/simulator/add_blocks_in_batches.py +1 -3
- chia/simulator/block_tools.py +312 -200
- chia/simulator/full_node_simulator.py +56 -35
- chia/simulator/keyring.py +2 -3
- chia/simulator/setup_services.py +15 -15
- chia/simulator/simulator_full_node_rpc_api.py +1 -2
- chia/simulator/simulator_full_node_rpc_client.py +1 -2
- chia/simulator/simulator_protocol.py +1 -2
- chia/simulator/simulator_test_tools.py +3 -3
- chia/simulator/start_simulator.py +7 -7
- chia/simulator/wallet_tools.py +10 -10
- chia/solver/solver.py +10 -10
- chia/solver/solver_api.py +10 -8
- chia/solver/solver_rpc_api.py +2 -2
- chia/solver/start_solver.py +4 -4
- chia/ssl/cacert.pem +148 -90
- chia/ssl/chia_ca.crt +14 -10
- chia/ssl/chia_ca_old.crt +19 -0
- chia/ssl/create_ssl.py +4 -4
- chia/ssl/renewedselfsignedca.conf +4 -0
- chia/ssl/ssl_check.py +1 -2
- chia/timelord/iters_from_block.py +1 -4
- chia/timelord/start_timelord.py +4 -4
- chia/timelord/timelord.py +44 -40
- chia/timelord/timelord_api.py +6 -4
- chia/timelord/timelord_launcher.py +2 -2
- chia/timelord/timelord_rpc_api.py +2 -2
- chia/timelord/timelord_state.py +11 -12
- chia/types/block_protocol.py +1 -3
- chia/types/blockchain_format/coin.py +1 -3
- chia/types/blockchain_format/program.py +11 -8
- chia/types/blockchain_format/proof_of_space.py +123 -76
- chia/types/blockchain_format/tree_hash.py +3 -3
- chia/types/blockchain_format/vdf.py +1 -2
- chia/types/coin_spend.py +3 -3
- chia/types/mempool_item.py +5 -5
- chia/types/mempool_submission_status.py +2 -3
- chia/types/peer_info.py +1 -2
- chia/types/unfinished_header_block.py +3 -4
- chia/types/validation_state.py +1 -2
- chia/util/action_scope.py +8 -8
- chia/util/async_pool.py +5 -5
- chia/util/bech32m.py +1 -2
- chia/util/beta_metrics.py +2 -2
- chia/util/block_cache.py +4 -4
- chia/util/chia_logging.py +2 -2
- chia/util/chia_version.py +1 -2
- chia/util/config.py +15 -16
- chia/util/db_wrapper.py +26 -27
- chia/util/default_root.py +1 -2
- chia/util/errors.py +3 -3
- chia/util/file_keyring.py +14 -14
- chia/util/files.py +2 -3
- chia/util/hash.py +4 -4
- chia/util/initial-config.yaml +3 -5
- chia/util/inline_executor.py +2 -1
- chia/util/ip_address.py +1 -2
- chia/util/keychain.py +25 -27
- chia/util/keyring_wrapper.py +18 -19
- chia/util/lock.py +3 -4
- chia/util/log_exceptions.py +1 -2
- chia/util/lru_cache.py +2 -2
- chia/util/network.py +6 -6
- chia/util/path.py +2 -3
- chia/util/priority_mutex.py +2 -2
- chia/util/profiler.py +1 -2
- chia/util/safe_cancel_task.py +1 -2
- chia/util/streamable.py +22 -8
- chia/util/task_referencer.py +1 -1
- chia/util/timing.py +3 -3
- chia/util/virtual_project_analysis.py +6 -5
- chia/util/ws_message.py +2 -2
- chia/wallet/cat_wallet/cat_info.py +3 -4
- chia/wallet/cat_wallet/cat_outer_puzzle.py +12 -11
- chia/wallet/cat_wallet/cat_utils.py +3 -4
- chia/wallet/cat_wallet/cat_wallet.py +61 -83
- chia/wallet/cat_wallet/lineage_store.py +3 -4
- chia/wallet/cat_wallet/r_cat_wallet.py +19 -22
- chia/wallet/coin_selection.py +9 -10
- chia/wallet/conditions.py +120 -105
- chia/wallet/db_wallet/db_wallet_puzzles.py +4 -5
- chia/wallet/derivation_record.py +1 -2
- chia/wallet/derive_keys.py +2 -4
- chia/wallet/did_wallet/did_info.py +10 -11
- chia/wallet/did_wallet/did_wallet.py +36 -82
- chia/wallet/did_wallet/did_wallet_puzzles.py +7 -8
- chia/wallet/driver_protocol.py +5 -7
- chia/wallet/lineage_proof.py +4 -4
- chia/wallet/nft_wallet/metadata_outer_puzzle.py +11 -11
- chia/wallet/nft_wallet/nft_info.py +8 -9
- chia/wallet/nft_wallet/nft_puzzle_utils.py +8 -8
- chia/wallet/nft_wallet/nft_wallet.py +79 -116
- chia/wallet/nft_wallet/ownership_outer_puzzle.py +14 -14
- chia/wallet/nft_wallet/singleton_outer_puzzle.py +12 -11
- chia/wallet/nft_wallet/transfer_program_puzzle.py +11 -11
- chia/wallet/nft_wallet/uncurry_nft.py +10 -11
- chia/wallet/notification_manager.py +3 -3
- chia/wallet/notification_store.py +44 -61
- chia/wallet/outer_puzzles.py +6 -7
- chia/wallet/puzzle_drivers.py +34 -6
- chia/wallet/puzzles/clawback/drivers.py +6 -6
- chia/wallet/puzzles/deployed_puzzle_hashes.json +1 -54
- chia/wallet/puzzles/load_clvm.py +1 -1
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +1 -2
- chia/wallet/puzzles/singleton_top_layer.py +2 -3
- chia/wallet/puzzles/singleton_top_layer_v1_1.py +3 -4
- chia/wallet/puzzles/tails.py +3 -3
- chia/wallet/singleton.py +5 -7
- chia/wallet/singleton_record.py +3 -3
- chia/wallet/start_wallet.py +5 -5
- chia/wallet/trade_manager.py +37 -58
- chia/wallet/trade_record.py +4 -4
- chia/wallet/trading/offer.py +59 -46
- chia/wallet/trading/trade_store.py +8 -9
- chia/wallet/transaction_record.py +8 -8
- chia/wallet/uncurried_puzzle.py +1 -2
- chia/wallet/util/clvm_streamable.py +12 -12
- chia/wallet/util/compute_hints.py +4 -5
- chia/wallet/util/curry_and_treehash.py +1 -2
- chia/wallet/util/merkle_tree.py +2 -3
- chia/wallet/util/peer_request_cache.py +8 -8
- chia/wallet/util/signing.py +85 -0
- chia/wallet/util/tx_config.py +15 -6
- chia/wallet/util/wallet_sync_utils.py +14 -16
- chia/wallet/util/wallet_types.py +2 -2
- chia/wallet/vc_wallet/cr_cat_drivers.py +10 -11
- chia/wallet/vc_wallet/cr_cat_wallet.py +50 -68
- chia/wallet/vc_wallet/cr_outer_puzzle.py +14 -13
- chia/wallet/vc_wallet/vc_drivers.py +27 -27
- chia/wallet/vc_wallet/vc_store.py +5 -6
- chia/wallet/vc_wallet/vc_wallet.py +33 -61
- chia/wallet/wallet.py +50 -78
- chia/wallet/wallet_action_scope.py +11 -11
- chia/wallet/wallet_blockchain.py +12 -12
- chia/wallet/wallet_coin_record.py +12 -6
- chia/wallet/wallet_coin_store.py +24 -25
- chia/wallet/wallet_interested_store.py +3 -5
- chia/wallet/wallet_nft_store.py +10 -11
- chia/wallet/wallet_node.py +53 -61
- chia/wallet/wallet_node_api.py +5 -3
- chia/wallet/wallet_protocol.py +23 -23
- chia/wallet/wallet_puzzle_store.py +15 -18
- chia/wallet/wallet_request_types.py +778 -114
- chia/wallet/wallet_retry_store.py +1 -3
- chia/wallet/wallet_rpc_api.py +572 -909
- chia/wallet/wallet_rpc_client.py +87 -279
- chia/wallet/wallet_singleton_store.py +3 -4
- chia/wallet/wallet_state_manager.py +332 -106
- chia/wallet/wallet_transaction_store.py +11 -14
- chia/wallet/wallet_user_store.py +4 -6
- chia/wallet/wallet_weight_proof_handler.py +4 -4
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/METADATA +6 -5
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/RECORD +507 -516
- chia/apis.py +0 -21
- chia/consensus/check_time_locks.py +0 -57
- chia/data_layer/puzzles/__init__.py +0 -0
- chia/data_layer/puzzles/graftroot_dl_offers.clsp +0 -100
- chia/data_layer/puzzles/graftroot_dl_offers.clsp.hex +0 -1
- chia/types/coin_record.py +0 -44
- chia/wallet/nft_wallet/puzzles/__init__.py +0 -0
- chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp +0 -6
- chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp +0 -6
- chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp +0 -30
- chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp +0 -28
- chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp +0 -100
- chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp +0 -78
- chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp +0 -74
- chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp.hex +0 -1
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/entry_points.txt +0 -0
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/licenses/LICENSE +0 -0
chia/full_node/block_store.py
CHANGED
|
@@ -4,7 +4,6 @@ import dataclasses
|
|
|
4
4
|
import logging
|
|
5
5
|
import sqlite3
|
|
6
6
|
from contextlib import AbstractAsyncContextManager
|
|
7
|
-
from typing import Optional
|
|
8
7
|
|
|
9
8
|
import aiosqlite
|
|
10
9
|
import typing_extensions
|
|
@@ -134,7 +133,7 @@ class BlockStore:
|
|
|
134
133
|
async def add_full_block(self, header_hash: bytes32, block: FullBlock, block_record: BlockRecord) -> None:
|
|
135
134
|
self.block_cache.put(header_hash, block)
|
|
136
135
|
|
|
137
|
-
ses:
|
|
136
|
+
ses: bytes | None = (
|
|
138
137
|
None if block_record.sub_epoch_summary_included is None else bytes(block_record.sub_epoch_summary_included)
|
|
139
138
|
)
|
|
140
139
|
|
|
@@ -174,8 +173,8 @@ class BlockStore:
|
|
|
174
173
|
async def get_sub_epoch_challenge_segments(
|
|
175
174
|
self,
|
|
176
175
|
ses_block_hash: bytes32,
|
|
177
|
-
) ->
|
|
178
|
-
cached:
|
|
176
|
+
) -> list[SubEpochChallengeSegment] | None:
|
|
177
|
+
cached: list[SubEpochChallengeSegment] | None = self.ses_challenge_cache.get(ses_block_hash)
|
|
179
178
|
if cached is not None:
|
|
180
179
|
return cached
|
|
181
180
|
|
|
@@ -195,7 +194,7 @@ class BlockStore:
|
|
|
195
194
|
def transaction(self) -> AbstractAsyncContextManager[aiosqlite.Connection]:
|
|
196
195
|
return self.db_wrapper.writer()
|
|
197
196
|
|
|
198
|
-
def get_block_from_cache(self, header_hash: bytes32) ->
|
|
197
|
+
def get_block_from_cache(self, header_hash: bytes32) -> FullBlock | None:
|
|
199
198
|
return self.block_cache.get(header_hash)
|
|
200
199
|
|
|
201
200
|
def rollback_cache_block(self, header_hash: bytes32) -> None:
|
|
@@ -206,8 +205,8 @@ class BlockStore:
|
|
|
206
205
|
# block to the cache yet
|
|
207
206
|
pass
|
|
208
207
|
|
|
209
|
-
async def get_full_block(self, header_hash: bytes32) ->
|
|
210
|
-
cached:
|
|
208
|
+
async def get_full_block(self, header_hash: bytes32) -> FullBlock | None:
|
|
209
|
+
cached: FullBlock | None = self.block_cache.get(header_hash)
|
|
211
210
|
if cached is not None:
|
|
212
211
|
return cached
|
|
213
212
|
async with self.db_wrapper.reader_no_transaction() as conn:
|
|
@@ -219,7 +218,7 @@ class BlockStore:
|
|
|
219
218
|
return block
|
|
220
219
|
return None
|
|
221
220
|
|
|
222
|
-
async def get_full_block_bytes(self, header_hash: bytes32) ->
|
|
221
|
+
async def get_full_block_bytes(self, header_hash: bytes32) -> bytes | None:
|
|
223
222
|
cached = self.block_cache.get(header_hash)
|
|
224
223
|
if cached is not None:
|
|
225
224
|
return bytes(cached)
|
|
@@ -247,7 +246,7 @@ class BlockStore:
|
|
|
247
246
|
ret.append(decompress(row[0]))
|
|
248
247
|
return ret
|
|
249
248
|
|
|
250
|
-
async def get_block_info(self, header_hash: bytes32) ->
|
|
249
|
+
async def get_block_info(self, header_hash: bytes32) -> GeneratorBlockInfo | None:
|
|
251
250
|
cached = self.block_cache.get(header_hash)
|
|
252
251
|
if cached is not None:
|
|
253
252
|
return GeneratorBlockInfo(
|
|
@@ -273,7 +272,7 @@ class BlockStore:
|
|
|
273
272
|
b.foliage.prev_block_hash, b.transactions_generator, b.transactions_generator_ref_list
|
|
274
273
|
)
|
|
275
274
|
|
|
276
|
-
async def get_generator(self, header_hash: bytes32) ->
|
|
275
|
+
async def get_generator(self, header_hash: bytes32) -> bytes | None:
|
|
277
276
|
cached = self.block_cache.get(header_hash)
|
|
278
277
|
if cached is not None:
|
|
279
278
|
return None if cached.transactions_generator is None else bytes(cached.transactions_generator)
|
|
@@ -429,7 +428,7 @@ class BlockStore:
|
|
|
429
428
|
ret.append(all_blocks[hh])
|
|
430
429
|
return ret
|
|
431
430
|
|
|
432
|
-
async def get_block_record(self, header_hash: bytes32) ->
|
|
431
|
+
async def get_block_record(self, header_hash: bytes32) -> BlockRecord | None:
|
|
433
432
|
async with self.db_wrapper.reader_no_transaction() as conn:
|
|
434
433
|
async with conn.execute(
|
|
435
434
|
"SELECT block_record FROM full_blocks WHERE header_hash=?",
|
|
@@ -489,7 +488,7 @@ class BlockStore:
|
|
|
489
488
|
raise ValueError(f"Some blocks in range {start}-{stop} were not found.")
|
|
490
489
|
return [decompress_blob(row[0]) for row in rows]
|
|
491
490
|
|
|
492
|
-
async def get_peak(self) ->
|
|
491
|
+
async def get_peak(self) -> tuple[bytes32, uint32] | None:
|
|
493
492
|
async with self.db_wrapper.reader_no_transaction() as conn:
|
|
494
493
|
async with conn.execute("SELECT hash FROM current_peak WHERE key = 0") as cursor:
|
|
495
494
|
peak_row = await cursor.fetchone()
|
|
@@ -502,9 +501,7 @@ class BlockStore:
|
|
|
502
501
|
return None
|
|
503
502
|
return bytes32(peak_row[0]), uint32(peak_height[0])
|
|
504
503
|
|
|
505
|
-
async def get_block_records_close_to_peak(
|
|
506
|
-
self, blocks_n: int
|
|
507
|
-
) -> tuple[dict[bytes32, BlockRecord], Optional[bytes32]]:
|
|
504
|
+
async def get_block_records_close_to_peak(self, blocks_n: int) -> tuple[dict[bytes32, BlockRecord], bytes32 | None]:
|
|
508
505
|
"""
|
|
509
506
|
Returns a dictionary with all blocks that have height >= peak height - blocks_n, as well as the
|
|
510
507
|
peak header hash. Only blocks that are part of the main chain/current peak are included.
|
|
@@ -534,7 +531,7 @@ class BlockStore:
|
|
|
534
531
|
async with self.db_wrapper.writer_maybe_transaction() as conn:
|
|
535
532
|
await conn.execute("INSERT OR REPLACE INTO current_peak VALUES(?, ?)", (0, header_hash))
|
|
536
533
|
|
|
537
|
-
async def is_fully_compactified(self, header_hash: bytes32) ->
|
|
534
|
+
async def is_fully_compactified(self, header_hash: bytes32) -> bool | None:
|
|
538
535
|
async with self.db_wrapper.writer_maybe_transaction() as conn:
|
|
539
536
|
async with conn.execute(
|
|
540
537
|
"SELECT is_fully_compactified from full_blocks WHERE header_hash=?", (header_hash,)
|
chia/full_node/coin_store.py
CHANGED
|
@@ -5,16 +5,15 @@ import logging
|
|
|
5
5
|
import sqlite3
|
|
6
6
|
import time
|
|
7
7
|
from collections.abc import Collection
|
|
8
|
-
from typing import Any, ClassVar
|
|
8
|
+
from typing import Any, ClassVar
|
|
9
9
|
|
|
10
10
|
import typing_extensions
|
|
11
11
|
from aiosqlite import Cursor
|
|
12
|
-
from chia_rs import CoinState
|
|
12
|
+
from chia_rs import CoinRecord, CoinState
|
|
13
13
|
from chia_rs.sized_bytes import bytes32
|
|
14
14
|
from chia_rs.sized_ints import uint32, uint64
|
|
15
15
|
|
|
16
16
|
from chia.types.blockchain_format.coin import Coin
|
|
17
|
-
from chia.types.coin_record import CoinRecord
|
|
18
17
|
from chia.types.mempool_item import UnspentLineageInfo
|
|
19
18
|
from chia.util.batches import to_batches
|
|
20
19
|
from chia.util.db_wrapper import SQLITE_MAX_VARIABLE_NUMBER, DBWrapper2
|
|
@@ -179,7 +178,7 @@ class CoinStore:
|
|
|
179
178
|
log.log(level, message)
|
|
180
179
|
|
|
181
180
|
# Checks DB and DiffStores for CoinRecord with coin_name and returns it
|
|
182
|
-
async def get_coin_record(self, coin_name: bytes32) ->
|
|
181
|
+
async def get_coin_record(self, coin_name: bytes32) -> CoinRecord | None:
|
|
183
182
|
async with self.db_wrapper.reader_no_transaction() as conn:
|
|
184
183
|
async with conn.execute(
|
|
185
184
|
"SELECT confirmed_index, spent_index, coinbase, puzzle_hash, "
|
|
@@ -190,7 +189,7 @@ class CoinStore:
|
|
|
190
189
|
if row is not None:
|
|
191
190
|
coin = self.row_to_coin(row)
|
|
192
191
|
spent_index = uint32(0) if row[1] <= 0 else uint32(row[1])
|
|
193
|
-
return CoinRecord(coin, row[0], spent_index, row[2], row[6])
|
|
192
|
+
return CoinRecord(coin, row[0], spent_index, row[2] != 0, row[6])
|
|
194
193
|
return None
|
|
195
194
|
|
|
196
195
|
async def get_coin_records(self, names: Collection[bytes32]) -> list[CoinRecord]:
|
|
@@ -216,7 +215,7 @@ class CoinStore:
|
|
|
216
215
|
for row in await cursor.fetchall():
|
|
217
216
|
coin = self.row_to_coin(row)
|
|
218
217
|
spent_index = uint32(0) if row[1] <= 0 else uint32(row[1])
|
|
219
|
-
record = CoinRecord(coin, row[0], spent_index, row[2], row[6])
|
|
218
|
+
record = CoinRecord(coin, row[0], spent_index, row[2] != 0, row[6])
|
|
220
219
|
coins.append(record)
|
|
221
220
|
|
|
222
221
|
return coins
|
|
@@ -233,7 +232,7 @@ class CoinStore:
|
|
|
233
232
|
for row in rows:
|
|
234
233
|
coin = self.row_to_coin(row)
|
|
235
234
|
spent_index = uint32(0) if row[1] <= 0 else uint32(row[1])
|
|
236
|
-
coins.append(CoinRecord(coin, row[0], spent_index, row[2], row[6]))
|
|
235
|
+
coins.append(CoinRecord(coin, row[0], spent_index, row[2] != 0, row[6]))
|
|
237
236
|
return coins
|
|
238
237
|
|
|
239
238
|
async def get_coins_removed_at_height(self, height: uint32) -> list[CoinRecord]:
|
|
@@ -250,7 +249,7 @@ class CoinStore:
|
|
|
250
249
|
for row in await cursor.fetchall():
|
|
251
250
|
if row[1] > 0:
|
|
252
251
|
coin = self.row_to_coin(row)
|
|
253
|
-
coin_record = CoinRecord(coin, row[0], row[1], row[2], row[6])
|
|
252
|
+
coin_record = CoinRecord(coin, row[0], row[1], row[2] != 0, row[6])
|
|
254
253
|
coins.append(coin_record)
|
|
255
254
|
return coins
|
|
256
255
|
|
|
@@ -275,7 +274,7 @@ class CoinStore:
|
|
|
275
274
|
for row in await cursor.fetchall():
|
|
276
275
|
coin = self.row_to_coin(row)
|
|
277
276
|
spent_index = uint32(0) if row[1] <= 0 else uint32(row[1])
|
|
278
|
-
coins.add(CoinRecord(coin, row[0], spent_index, row[2], row[6]))
|
|
277
|
+
coins.add(CoinRecord(coin, row[0], spent_index, row[2] != 0, row[6]))
|
|
279
278
|
return list(coins)
|
|
280
279
|
|
|
281
280
|
async def get_coin_records_by_puzzle_hashes(
|
|
@@ -304,7 +303,7 @@ class CoinStore:
|
|
|
304
303
|
for row in await cursor.fetchall():
|
|
305
304
|
coin = self.row_to_coin(row)
|
|
306
305
|
spent_index = uint32(0) if row[1] <= 0 else uint32(row[1])
|
|
307
|
-
coins.add(CoinRecord(coin, row[0], spent_index, row[2], row[6]))
|
|
306
|
+
coins.add(CoinRecord(coin, row[0], spent_index, row[2] != 0, row[6]))
|
|
308
307
|
return list(coins)
|
|
309
308
|
|
|
310
309
|
async def get_coin_records_by_names(
|
|
@@ -331,7 +330,7 @@ class CoinStore:
|
|
|
331
330
|
for row in await cursor.fetchall():
|
|
332
331
|
coin = self.row_to_coin(row)
|
|
333
332
|
spent_index = uint32(0) if row[1] <= 0 else uint32(row[1])
|
|
334
|
-
coins.add(CoinRecord(coin, row[0], spent_index, row[2], row[6]))
|
|
333
|
+
coins.add(CoinRecord(coin, row[0], spent_index, row[2] != 0, row[6]))
|
|
335
334
|
|
|
336
335
|
return list(coins)
|
|
337
336
|
|
|
@@ -402,7 +401,7 @@ class CoinStore:
|
|
|
402
401
|
async for row in cursor:
|
|
403
402
|
coin = self.row_to_coin(row)
|
|
404
403
|
spent_index = uint32(0) if row[1] <= 0 else uint32(row[1])
|
|
405
|
-
coins.add(CoinRecord(coin, row[0], spent_index, row[2], row[6]))
|
|
404
|
+
coins.add(CoinRecord(coin, row[0], spent_index, row[2] != 0, row[6]))
|
|
406
405
|
|
|
407
406
|
return list(coins)
|
|
408
407
|
|
|
@@ -454,7 +453,7 @@ class CoinStore:
|
|
|
454
453
|
include_hinted: bool = True,
|
|
455
454
|
min_amount: uint64 = uint64(0),
|
|
456
455
|
max_items: int = 50000,
|
|
457
|
-
) -> tuple[list[CoinState],
|
|
456
|
+
) -> tuple[list[CoinState], uint32 | None]:
|
|
458
457
|
"""
|
|
459
458
|
Returns the coin states, as well as the next block height (or `None` if finished).
|
|
460
459
|
You cannot exceed `CoinStore.MAX_PUZZLE_HASH_BATCH_SIZE` puzzle hashes in the query.
|
|
@@ -576,7 +575,7 @@ class CoinStore:
|
|
|
576
575
|
for row in rows:
|
|
577
576
|
coin = self.row_to_coin(row)
|
|
578
577
|
spent_index = uint32(0) if row[1] <= 0 else uint32(row[1])
|
|
579
|
-
record = CoinRecord(coin, uint32(0), spent_index, row[2], uint64(0))
|
|
578
|
+
record = CoinRecord(coin, uint32(0), spent_index, row[2] != 0, uint64(0))
|
|
580
579
|
coin_name = bytes32(row[7])
|
|
581
580
|
coin_changes[coin_name] = record
|
|
582
581
|
|
|
@@ -591,7 +590,7 @@ class CoinStore:
|
|
|
591
590
|
)
|
|
592
591
|
for row in rows:
|
|
593
592
|
coin = self.row_to_coin(row)
|
|
594
|
-
record = CoinRecord(coin, row[0], uint32(0), row[2], row[6])
|
|
593
|
+
record = CoinRecord(coin, row[0], uint32(0), row[2] != 0, row[6])
|
|
595
594
|
coin_name = bytes32(row[7])
|
|
596
595
|
if coin_name not in coin_changes:
|
|
597
596
|
coin_changes[coin_name] = record
|
|
@@ -649,7 +648,7 @@ class CoinStore:
|
|
|
649
648
|
)
|
|
650
649
|
|
|
651
650
|
# Lookup the most recent unspent lineage that matches a puzzle hash
|
|
652
|
-
async def get_unspent_lineage_info_for_puzzle_hash(self, puzzle_hash: bytes32) ->
|
|
651
|
+
async def get_unspent_lineage_info_for_puzzle_hash(self, puzzle_hash: bytes32) -> UnspentLineageInfo | None:
|
|
653
652
|
async with self.db_wrapper.reader_no_transaction() as conn:
|
|
654
653
|
async with conn.execute(
|
|
655
654
|
"SELECT unspent.coin_name, "
|
|
@@ -172,7 +172,7 @@ class SingletonFastForward:
|
|
|
172
172
|
fast_forward_spends: dict[bytes32, UnspentLineageInfo] = dataclasses.field(default_factory=dict)
|
|
173
173
|
|
|
174
174
|
def process_fast_forward_spends(
|
|
175
|
-
self, *, mempool_item: InternalMempoolItem,
|
|
175
|
+
self, *, mempool_item: InternalMempoolItem, prev_tx_height: uint32, constants: ConsensusConstants
|
|
176
176
|
) -> dict[bytes32, BundleCoinSpend]:
|
|
177
177
|
"""
|
|
178
178
|
Provides the caller with a `bundle_coin_spends` map that has a proper
|
|
@@ -182,7 +182,7 @@ class SingletonFastForward:
|
|
|
182
182
|
Args:
|
|
183
183
|
mempool_item: The internal mempool item to process
|
|
184
184
|
constants: needed in order to refresh the mempool item if needed
|
|
185
|
-
|
|
185
|
+
prev_tx_height: needed in order to refresh the mempool item if needed
|
|
186
186
|
|
|
187
187
|
Returns:
|
|
188
188
|
The resulting `bundle_coin_spends` map of coin IDs to coin spends
|
|
@@ -273,7 +273,7 @@ class SingletonFastForward:
|
|
|
273
273
|
try:
|
|
274
274
|
# Run the new spend bundle to make sure it remains valid. What we
|
|
275
275
|
# care about here is whether this call throws or not.
|
|
276
|
-
get_conditions_from_spendbundle(new_sb, mempool_item.conds.cost, constants,
|
|
276
|
+
get_conditions_from_spendbundle(new_sb, mempool_item.conds.cost, constants, prev_tx_height)
|
|
277
277
|
# get_conditions_from_spendbundle raises a ValueError with an error code
|
|
278
278
|
except ValueError as e:
|
|
279
279
|
# Convert that to a ValidationError
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import dataclasses
|
|
4
|
-
from typing import Optional
|
|
5
4
|
|
|
6
5
|
import typing_extensions
|
|
7
6
|
|
|
@@ -15,9 +14,9 @@ class FeeStore:
|
|
|
15
14
|
This object stores Fee Stats
|
|
16
15
|
"""
|
|
17
16
|
|
|
18
|
-
_backup:
|
|
17
|
+
_backup: FeeTrackerBackup | None = None
|
|
19
18
|
|
|
20
|
-
def get_stored_fee_data(self) ->
|
|
19
|
+
def get_stored_fee_data(self) -> FeeTrackerBackup | None:
|
|
21
20
|
return self._backup
|
|
22
21
|
|
|
23
22
|
def store_fee_data(self, fee_backup: FeeTrackerBackup) -> None:
|
chia/full_node/fee_tracker.py
CHANGED
|
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
|
3
3
|
import logging
|
|
4
4
|
from bisect import bisect_left
|
|
5
5
|
from dataclasses import dataclass
|
|
6
|
-
from typing import Optional
|
|
7
6
|
|
|
8
7
|
from chia_rs.sized_ints import uint8, uint32, uint64
|
|
9
8
|
|
|
@@ -454,7 +453,7 @@ class FeeTracker:
|
|
|
454
453
|
self.fee_store,
|
|
455
454
|
"long",
|
|
456
455
|
)
|
|
457
|
-
fee_backup:
|
|
456
|
+
fee_backup: FeeTrackerBackup | None = self.fee_store.get_stored_fee_data()
|
|
458
457
|
|
|
459
458
|
if fee_backup is not None:
|
|
460
459
|
self.first_recorded_height = fee_backup.first_recorded_height
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from collections.abc import Callable
|
|
3
4
|
from dataclasses import dataclass
|
|
4
|
-
from typing import Callable, Optional
|
|
5
5
|
|
|
6
6
|
from chia_rs import G1Element, G2Element, TransactionsInfo, serialized_length
|
|
7
7
|
from chia_rs.sized_bytes import bytes32
|
|
@@ -203,7 +203,7 @@ def skip_transactions_info(buf: memoryview) -> memoryview:
|
|
|
203
203
|
return skip_list(buf, skip_coin)
|
|
204
204
|
|
|
205
205
|
|
|
206
|
-
def generator_from_block(buf: memoryview) ->
|
|
206
|
+
def generator_from_block(buf: memoryview) -> bytes | None:
|
|
207
207
|
buf = skip_list(buf, skip_end_of_sub_slot_bundle) # finished_sub_slots
|
|
208
208
|
buf = skip_reward_chain_block(buf) # reward_chain_block
|
|
209
209
|
buf = skip_optional(buf, skip_vdf_proof) # challenge_chain_sp_proof
|
|
@@ -228,7 +228,7 @@ def generator_from_block(buf: memoryview) -> Optional[bytes]:
|
|
|
228
228
|
@dataclass(frozen=True)
|
|
229
229
|
class GeneratorBlockInfo:
|
|
230
230
|
prev_header_hash: bytes32
|
|
231
|
-
transactions_generator:
|
|
231
|
+
transactions_generator: SerializedProgram | None
|
|
232
232
|
transactions_generator_ref_list: list[uint32]
|
|
233
233
|
|
|
234
234
|
|
|
@@ -284,7 +284,7 @@ def header_block_from_block(
|
|
|
284
284
|
|
|
285
285
|
buf2 = skip_optional(buf2, skip_foliage_transaction_block) # foliage_transaction_block
|
|
286
286
|
|
|
287
|
-
transactions_info:
|
|
287
|
+
transactions_info: TransactionsInfo | None = None
|
|
288
288
|
# we make it optional even if it's not by default
|
|
289
289
|
# if request_filter is True it will read extra bytes and populate it properly
|
|
290
290
|
transactions_info_optional: bytes = bytes([0])
|