chia-blockchain 2.5.4rc1__py3-none-any.whl → 2.5.5__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/_tests/blockchain/blockchain_test_utils.py +2 -3
- chia/_tests/blockchain/test_augmented_chain.py +2 -3
- chia/_tests/blockchain/test_blockchain.py +261 -44
- chia/_tests/blockchain/test_blockchain_transactions.py +4 -3
- chia/_tests/blockchain/test_build_chains.py +197 -1
- chia/_tests/blockchain/test_get_block_generator.py +1 -1
- chia/_tests/blockchain/test_lookup_fork_chain.py +1 -1
- chia/_tests/clvm/benchmark_costs.py +1 -1
- chia/_tests/clvm/coin_store.py +3 -4
- chia/_tests/clvm/test_message_conditions.py +2 -2
- chia/_tests/clvm/test_puzzle_compression.py +2 -3
- chia/_tests/clvm/test_puzzles.py +1 -2
- chia/_tests/clvm/test_singletons.py +2 -3
- chia/_tests/clvm/test_spend_sim.py +7 -7
- chia/_tests/cmds/cmd_test_utils.py +30 -25
- chia/_tests/cmds/test_dev_gh.py +1 -1
- chia/_tests/cmds/test_farm_cmd.py +1 -1
- chia/_tests/cmds/test_show.py +1 -2
- chia/_tests/cmds/wallet/test_did.py +101 -56
- chia/_tests/cmds/wallet/test_nft.py +109 -84
- chia/_tests/cmds/wallet/test_notifications.py +1 -1
- chia/_tests/cmds/wallet/test_offer.toffer +1 -1
- chia/_tests/cmds/wallet/test_vcs.py +8 -8
- chia/_tests/cmds/wallet/test_wallet.py +100 -46
- chia/_tests/conftest.py +31 -20
- chia/_tests/connection_utils.py +1 -1
- chia/_tests/core/consensus/stores/__init__.py +0 -0
- chia/_tests/core/consensus/stores/test_coin_store_protocol.py +40 -0
- chia/_tests/core/consensus/test_block_creation.py +2 -31
- chia/_tests/core/consensus/test_pot_iterations.py +38 -3
- chia/_tests/core/custom_types/test_proof_of_space.py +154 -26
- chia/_tests/core/custom_types/test_spend_bundle.py +2 -3
- chia/_tests/core/daemon/test_daemon.py +80 -0
- chia/_tests/core/data_layer/test_data_layer.py +1 -1
- chia/_tests/core/data_layer/test_data_layer_util.py +1 -1
- chia/_tests/core/data_layer/test_data_rpc.py +14 -10
- chia/_tests/core/data_layer/test_data_store.py +5 -5
- chia/_tests/core/farmer/test_farmer_api.py +2 -2
- chia/_tests/core/full_node/full_sync/test_full_sync.py +446 -406
- chia/_tests/core/full_node/ram_db.py +3 -1
- chia/_tests/core/full_node/stores/test_block_store.py +28 -16
- chia/_tests/core/full_node/stores/test_coin_store.py +277 -185
- chia/_tests/core/full_node/stores/test_full_node_store.py +11 -4
- chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
- chia/_tests/core/full_node/test_address_manager.py +200 -27
- chia/_tests/core/full_node/test_block_height_map.py +2 -2
- chia/_tests/core/full_node/test_conditions.py +7 -6
- chia/_tests/core/full_node/test_full_node.py +456 -40
- chia/_tests/core/full_node/test_generator_tools.py +32 -2
- chia/_tests/core/full_node/test_hint_management.py +1 -1
- chia/_tests/core/full_node/test_node_load.py +20 -21
- chia/_tests/core/full_node/test_performance.py +3 -4
- chia/_tests/core/full_node/test_prev_tx_block.py +43 -0
- chia/_tests/core/full_node/test_subscriptions.py +1 -2
- chia/_tests/core/full_node/test_transactions.py +9 -5
- chia/_tests/core/full_node/test_tx_processing_queue.py +1 -2
- chia/_tests/core/large_block.py +1 -2
- chia/_tests/core/make_block_generator.py +3 -4
- chia/_tests/core/mempool/test_mempool.py +36 -86
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +1 -1
- chia/_tests/core/mempool/test_mempool_item_queries.py +1 -3
- chia/_tests/core/mempool/test_mempool_manager.py +529 -69
- chia/_tests/core/mempool/test_mempool_performance.py +3 -2
- chia/_tests/core/mempool/test_singleton_fast_forward.py +61 -132
- chia/_tests/core/server/flood.py +1 -1
- chia/_tests/core/server/test_dos.py +1 -1
- chia/_tests/core/server/test_node_discovery.py +41 -27
- chia/_tests/core/server/test_rate_limits.py +1 -1
- chia/_tests/core/server/test_server.py +1 -1
- chia/_tests/core/services/test_services.py +5 -5
- chia/_tests/core/ssl/test_ssl.py +1 -1
- chia/_tests/core/test_cost_calculation.py +6 -6
- chia/_tests/core/test_crawler.py +2 -2
- chia/_tests/core/test_crawler_rpc.py +1 -1
- chia/_tests/core/test_db_conversion.py +3 -1
- chia/_tests/core/test_db_validation.py +5 -3
- chia/_tests/core/test_farmer_harvester_rpc.py +15 -15
- chia/_tests/core/test_filter.py +4 -1
- chia/_tests/core/test_full_node_rpc.py +99 -82
- chia/_tests/core/test_program.py +2 -2
- chia/_tests/core/util/test_block_cache.py +1 -1
- chia/_tests/core/util/test_keychain.py +2 -2
- chia/_tests/core/util/test_lockfile.py +1 -1
- chia/_tests/core/util/test_log_exceptions.py +5 -5
- chia/_tests/core/util/test_streamable.py +81 -22
- chia/_tests/db/test_db_wrapper.py +1 -3
- chia/_tests/environments/wallet.py +5 -5
- chia/_tests/farmer_harvester/test_farmer.py +9 -7
- chia/_tests/farmer_harvester/test_farmer_harvester.py +11 -4
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +6 -5
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +15 -9
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +1 -2
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +7 -5
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -1
- chia/_tests/generator/test_compression.py +1 -2
- chia/_tests/generator/test_rom.py +8 -4
- chia/_tests/plot_sync/test_plot_sync.py +3 -3
- chia/_tests/plot_sync/test_receiver.py +3 -3
- chia/_tests/plot_sync/test_sender.py +1 -1
- chia/_tests/plot_sync/test_sync_simulated.py +3 -3
- chia/_tests/plot_sync/util.py +2 -2
- chia/_tests/pools/test_pool_cmdline.py +48 -21
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +2 -3
- chia/_tests/pools/test_pool_rpc.py +237 -105
- chia/_tests/pools/test_pool_wallet.py +11 -2
- chia/_tests/pools/test_wallet_pool_store.py +5 -4
- chia/_tests/rpc/test_rpc_client.py +1 -1
- chia/_tests/simulation/test_simulation.py +13 -8
- chia/_tests/simulation/test_simulator.py +2 -2
- chia/_tests/timelord/test_new_peak.py +191 -47
- chia/_tests/timelord/test_timelord.py +1 -1
- chia/_tests/tools/test_full_sync.py +0 -2
- chia/_tests/tools/test_run_block.py +3 -1
- chia/_tests/util/benchmark_cost.py +3 -3
- chia/_tests/util/benchmarks.py +2 -2
- chia/_tests/util/blockchain.py +11 -5
- chia/_tests/util/blockchain_mock.py +1 -4
- chia/_tests/util/coin_store.py +29 -0
- chia/_tests/util/constants.py +2 -18
- chia/_tests/util/full_sync.py +3 -3
- chia/_tests/util/generator_tools_testing.py +2 -3
- chia/_tests/util/key_tool.py +2 -3
- chia/_tests/util/misc.py +33 -31
- chia/_tests/util/network_protocol_data.py +19 -17
- chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
- chia/_tests/util/protocol_messages_json.py +3 -1
- chia/_tests/util/run_block.py +2 -2
- chia/_tests/util/setup_nodes.py +7 -7
- chia/_tests/util/spend_sim.py +47 -55
- chia/_tests/util/test_condition_tools.py +5 -4
- chia/_tests/util/test_config.py +2 -2
- chia/_tests/util/test_dump_keyring.py +1 -1
- chia/_tests/util/test_full_block_utils.py +12 -14
- chia/_tests/util/test_misc.py +2 -2
- chia/_tests/util/test_paginator.py +4 -4
- chia/_tests/util/test_priority_mutex.py +2 -2
- chia/_tests/util/test_replace_str_to_bytes.py +15 -5
- chia/_tests/util/test_ssl_check.py +1 -1
- chia/_tests/util/test_testnet_overrides.py +13 -3
- chia/_tests/util/time_out_assert.py +4 -2
- chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +1 -1
- chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +1 -2
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +352 -432
- chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +3 -6
- chia/_tests/wallet/cat_wallet/test_trades.py +53 -77
- chia/_tests/wallet/clawback/test_clawback_decorator.py +3 -1
- chia/_tests/wallet/clawback/test_clawback_lifecycle.py +3 -3
- chia/_tests/wallet/clawback/test_clawback_metadata.py +4 -2
- chia/_tests/wallet/conftest.py +11 -12
- chia/_tests/wallet/db_wallet/test_db_graftroot.py +11 -4
- chia/_tests/wallet/db_wallet/test_dl_offers.py +433 -130
- chia/_tests/wallet/db_wallet/test_dl_wallet.py +3 -3
- chia/_tests/wallet/did_wallet/test_did.py +2132 -2000
- chia/_tests/wallet/nft_wallet/config.py +1 -1
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +1610 -742
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +486 -907
- chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +4 -4
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +517 -294
- chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +133 -62
- chia/_tests/wallet/rpc/test_wallet_rpc.py +495 -265
- chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +10 -6
- chia/_tests/wallet/sync/test_wallet_sync.py +89 -60
- chia/_tests/wallet/test_clvm_casts.py +88 -0
- chia/_tests/wallet/test_coin_management.py +1 -1
- chia/_tests/wallet/test_coin_selection.py +1 -1
- chia/_tests/wallet/test_conditions.py +1 -1
- chia/_tests/wallet/test_new_wallet_protocol.py +13 -11
- chia/_tests/wallet/test_notifications.py +5 -3
- chia/_tests/wallet/test_sign_coin_spends.py +6 -6
- chia/_tests/wallet/test_signer_protocol.py +13 -12
- chia/_tests/wallet/test_singleton.py +1 -1
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +5 -7
- chia/_tests/wallet/test_util.py +2 -2
- chia/_tests/wallet/test_wallet.py +108 -29
- chia/_tests/wallet/test_wallet_action_scope.py +9 -2
- chia/_tests/wallet/test_wallet_blockchain.py +2 -3
- chia/_tests/wallet/test_wallet_key_val_store.py +1 -2
- chia/_tests/wallet/test_wallet_node.py +2 -4
- chia/_tests/wallet/test_wallet_retry.py +4 -2
- chia/_tests/wallet/test_wallet_state_manager.py +191 -5
- chia/_tests/wallet/test_wallet_test_framework.py +1 -1
- chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +8 -8
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +29 -12
- chia/_tests/wallet/wallet_block_tools.py +6 -6
- chia/_tests/weight_proof/test_weight_proof.py +10 -48
- chia/apis.py +1 -1
- chia/cmds/beta.py +1 -1
- chia/cmds/chia.py +9 -9
- chia/cmds/cmd_classes.py +12 -11
- chia/cmds/cmd_helpers.py +1 -1
- chia/cmds/cmds_util.py +12 -9
- chia/cmds/coin_funcs.py +2 -2
- chia/cmds/configure.py +2 -2
- chia/cmds/data.py +0 -2
- chia/cmds/data_funcs.py +1 -1
- chia/cmds/db_validate_func.py +1 -2
- chia/cmds/dev/__init__.py +0 -0
- chia/cmds/dev/data.py +273 -0
- chia/cmds/{gh.py → dev/gh.py} +5 -5
- chia/cmds/dev/main.py +22 -0
- chia/cmds/dev/mempool.py +78 -0
- chia/cmds/dev/mempool_funcs.py +63 -0
- chia/cmds/farm_funcs.py +5 -4
- chia/cmds/init_funcs.py +11 -11
- chia/cmds/keys.py +2 -2
- chia/cmds/keys_funcs.py +4 -4
- chia/cmds/netspace_funcs.py +1 -1
- chia/cmds/peer_funcs.py +2 -2
- chia/cmds/plotnft_funcs.py +72 -26
- chia/cmds/rpc.py +1 -1
- chia/cmds/show_funcs.py +5 -5
- chia/cmds/signer.py +8 -7
- chia/cmds/sim_funcs.py +8 -9
- chia/cmds/wallet.py +2 -2
- chia/cmds/wallet_funcs.py +165 -131
- chia/{util → consensus}/augmented_chain.py +1 -2
- chia/consensus/block_body_validation.py +54 -40
- chia/consensus/block_creation.py +42 -76
- chia/consensus/block_header_validation.py +32 -26
- chia/consensus/block_record.py +0 -3
- chia/consensus/blockchain.py +23 -32
- chia/consensus/blockchain_interface.py +1 -5
- chia/consensus/check_time_locks.py +57 -0
- chia/consensus/coin_store_protocol.py +151 -0
- chia/consensus/coinbase.py +0 -6
- chia/consensus/condition_costs.py +4 -0
- chia/{util → consensus}/condition_tools.py +4 -5
- chia/consensus/cost_calculator.py +1 -1
- chia/consensus/default_constants.py +32 -9
- chia/consensus/deficit.py +1 -3
- chia/consensus/difficulty_adjustment.py +1 -2
- chia/consensus/find_fork_point.py +1 -3
- chia/consensus/full_block_to_block_record.py +1 -6
- chia/{util → consensus}/generator_tools.py +1 -3
- chia/consensus/get_block_challenge.py +30 -7
- chia/consensus/make_sub_epoch_summary.py +1 -5
- chia/consensus/multiprocess_validation.py +21 -20
- chia/consensus/pot_iterations.py +74 -13
- chia/{util → consensus}/prev_transaction_block.py +1 -1
- chia/consensus/vdf_info_computation.py +1 -3
- chia/daemon/keychain_proxy.py +5 -5
- chia/daemon/server.py +22 -5
- chia/data_layer/data_layer.py +92 -51
- chia/{rpc → data_layer}/data_layer_rpc_api.py +1 -1
- chia/{rpc → data_layer}/data_layer_rpc_util.py +3 -6
- chia/data_layer/data_layer_util.py +4 -6
- chia/data_layer/data_layer_wallet.py +42 -69
- chia/data_layer/dl_wallet_store.py +12 -6
- chia/data_layer/download_data.py +3 -3
- chia/data_layer/s3_plugin_service.py +0 -1
- chia/farmer/farmer.py +3 -4
- chia/farmer/farmer_api.py +11 -7
- chia/{rpc → farmer}/farmer_rpc_client.py +1 -1
- chia/full_node/block_height_map.py +7 -6
- chia/full_node/block_store.py +5 -7
- chia/full_node/bundle_tools.py +1 -2
- chia/full_node/coin_store.py +153 -124
- chia/{types → full_node}/eligible_coin_spends.py +39 -70
- chia/full_node/fee_estimator.py +1 -1
- chia/full_node/fee_estimator_interface.py +0 -8
- chia/full_node/fee_tracker.py +25 -25
- chia/full_node/full_node.py +70 -53
- chia/full_node/full_node_api.py +57 -40
- chia/{rpc → full_node}/full_node_rpc_api.py +87 -8
- chia/{rpc → full_node}/full_node_rpc_client.py +7 -6
- chia/full_node/full_node_store.py +23 -8
- chia/full_node/mempool.py +206 -53
- chia/full_node/mempool_check_conditions.py +20 -63
- chia/full_node/mempool_manager.py +53 -47
- chia/full_node/subscriptions.py +1 -3
- chia/full_node/tx_processing_queue.py +50 -3
- chia/full_node/weight_proof.py +46 -37
- chia/harvester/harvester.py +1 -1
- chia/harvester/harvester_api.py +22 -7
- chia/introducer/introducer.py +1 -1
- chia/introducer/introducer_api.py +1 -1
- chia/plot_sync/exceptions.py +1 -1
- chia/plot_sync/receiver.py +1 -1
- chia/plot_sync/sender.py +2 -2
- chia/pools/pool_puzzles.py +13 -18
- chia/pools/pool_wallet.py +23 -46
- chia/protocols/farmer_protocol.py +11 -3
- chia/protocols/full_node_protocol.py +1 -4
- chia/protocols/harvester_protocol.py +3 -3
- chia/protocols/pool_protocol.py +1 -2
- chia/protocols/shared_protocol.py +3 -3
- chia/protocols/timelord_protocol.py +1 -3
- chia/protocols/wallet_protocol.py +3 -3
- chia/rpc/rpc_client.py +7 -8
- chia/rpc/rpc_server.py +3 -3
- chia/rpc/util.py +3 -1
- chia/seeder/crawler.py +1 -1
- chia/seeder/crawler_api.py +1 -1
- chia/seeder/dns_server.py +2 -0
- chia/seeder/start_crawler.py +3 -3
- chia/server/address_manager.py +286 -38
- chia/server/address_manager_store.py +0 -215
- chia/{types → server}/aliases.py +7 -7
- chia/server/api_protocol.py +1 -1
- chia/server/chia_policy.py +1 -1
- chia/server/node_discovery.py +76 -113
- chia/server/rate_limits.py +1 -1
- chia/server/resolve_peer_info.py +43 -0
- chia/server/server.py +5 -5
- chia/server/start_data_layer.py +4 -4
- chia/server/start_farmer.py +5 -4
- chia/server/start_full_node.py +5 -4
- chia/server/start_harvester.py +7 -5
- chia/server/start_introducer.py +2 -2
- chia/server/start_service.py +1 -1
- chia/server/start_timelord.py +7 -5
- chia/server/start_wallet.py +7 -5
- chia/server/ws_connection.py +1 -1
- chia/simulator/add_blocks_in_batches.py +2 -2
- chia/simulator/block_tools.py +245 -201
- chia/simulator/full_node_simulator.py +38 -10
- chia/simulator/setup_services.py +12 -12
- chia/simulator/simulator_full_node_rpc_api.py +2 -2
- chia/simulator/simulator_full_node_rpc_client.py +2 -2
- chia/simulator/simulator_test_tools.py +2 -2
- chia/simulator/start_simulator.py +1 -1
- chia/simulator/wallet_tools.py +10 -18
- chia/ssl/create_ssl.py +1 -1
- chia/timelord/iters_from_block.py +14 -14
- chia/timelord/timelord.py +15 -11
- chia/timelord/timelord_api.py +14 -2
- chia/timelord/timelord_state.py +20 -14
- chia/types/blockchain_format/program.py +53 -10
- chia/types/blockchain_format/proof_of_space.py +73 -19
- chia/types/coin_spend.py +3 -56
- chia/types/generator_types.py +28 -0
- chia/types/internal_mempool_item.py +1 -2
- chia/types/mempool_item.py +12 -7
- chia/types/unfinished_header_block.py +1 -2
- chia/types/validation_state.py +1 -2
- chia/types/weight_proof.py +1 -3
- chia/util/action_scope.py +3 -3
- chia/util/block_cache.py +1 -2
- chia/util/byte_types.py +1 -1
- chia/util/casts.py +21 -0
- chia/util/config.py +0 -37
- chia/util/db_wrapper.py +8 -1
- chia/util/errors.py +3 -2
- chia/util/initial-config.yaml +21 -5
- chia/util/keychain.py +6 -7
- chia/util/keyring_wrapper.py +5 -5
- chia/util/limited_semaphore.py +1 -1
- chia/util/priority_mutex.py +1 -1
- chia/util/streamable.py +63 -5
- chia/util/task_timing.py +1 -1
- chia/util/virtual_project_analysis.py +1 -1
- chia/wallet/cat_wallet/cat_info.py +7 -3
- chia/wallet/cat_wallet/cat_outer_puzzle.py +9 -5
- chia/wallet/cat_wallet/cat_utils.py +1 -1
- chia/wallet/cat_wallet/cat_wallet.py +44 -36
- chia/wallet/cat_wallet/lineage_store.py +7 -0
- chia/wallet/cat_wallet/r_cat_wallet.py +274 -0
- chia/wallet/conditions.py +5 -10
- chia/wallet/db_wallet/db_wallet_puzzles.py +4 -4
- chia/wallet/derivation_record.py +33 -0
- chia/wallet/derive_keys.py +3 -3
- chia/wallet/did_wallet/did_info.py +12 -3
- chia/wallet/did_wallet/did_wallet.py +132 -101
- chia/wallet/did_wallet/did_wallet_puzzles.py +9 -9
- chia/wallet/driver_protocol.py +3 -1
- chia/{types/spend_bundle.py → wallet/estimate_fees.py} +2 -7
- chia/wallet/nft_wallet/metadata_outer_puzzle.py +5 -3
- chia/wallet/nft_wallet/nft_puzzle_utils.py +1 -1
- chia/wallet/nft_wallet/nft_wallet.py +69 -112
- chia/wallet/nft_wallet/ownership_outer_puzzle.py +5 -3
- chia/wallet/nft_wallet/singleton_outer_puzzle.py +6 -4
- chia/wallet/nft_wallet/transfer_program_puzzle.py +4 -2
- chia/wallet/nft_wallet/uncurry_nft.py +4 -6
- chia/wallet/notification_manager.py +2 -3
- chia/wallet/outer_puzzles.py +7 -2
- chia/wallet/puzzle_drivers.py +1 -1
- chia/wallet/puzzles/clawback/drivers.py +5 -4
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +1 -1
- chia/wallet/puzzles/singleton_top_layer.py +2 -1
- chia/wallet/puzzles/singleton_top_layer_v1_1.py +2 -1
- chia/wallet/puzzles/tails.py +1 -3
- chia/wallet/signer_protocol.py +5 -6
- chia/wallet/singleton.py +5 -4
- chia/wallet/singleton_record.py +1 -1
- chia/wallet/trade_manager.py +18 -20
- chia/wallet/trade_record.py +3 -6
- chia/wallet/trading/offer.py +12 -13
- chia/wallet/uncurried_puzzle.py +2 -2
- chia/wallet/util/compute_additions.py +58 -0
- chia/wallet/util/compute_hints.py +3 -3
- chia/wallet/util/compute_memos.py +4 -4
- chia/wallet/util/curry_and_treehash.py +2 -1
- chia/wallet/util/debug_spend_bundle.py +1 -1
- chia/wallet/util/merkle_tree.py +1 -1
- chia/wallet/util/peer_request_cache.py +1 -2
- chia/wallet/util/tx_config.py +3 -8
- chia/wallet/util/wallet_sync_utils.py +10 -5
- chia/wallet/util/wallet_types.py +1 -0
- chia/wallet/vc_wallet/cr_cat_drivers.py +17 -18
- chia/wallet/vc_wallet/cr_cat_wallet.py +30 -28
- chia/wallet/vc_wallet/cr_outer_puzzle.py +5 -3
- chia/wallet/vc_wallet/vc_drivers.py +50 -8
- chia/wallet/vc_wallet/vc_store.py +3 -5
- chia/wallet/vc_wallet/vc_wallet.py +15 -22
- chia/wallet/wallet.py +36 -46
- chia/wallet/wallet_action_scope.py +73 -4
- chia/wallet/wallet_blockchain.py +1 -3
- chia/wallet/wallet_interested_store.py +1 -1
- chia/wallet/wallet_nft_store.py +3 -3
- chia/wallet/wallet_node.py +17 -16
- chia/wallet/wallet_node_api.py +4 -5
- chia/wallet/wallet_pool_store.py +1 -1
- chia/wallet/wallet_protocol.py +2 -0
- chia/wallet/wallet_puzzle_store.py +1 -1
- chia/{rpc → wallet}/wallet_request_types.py +670 -81
- chia/{rpc → wallet}/wallet_rpc_api.py +735 -766
- chia/{rpc → wallet}/wallet_rpc_client.py +268 -420
- chia/wallet/wallet_singleton_store.py +8 -7
- chia/wallet/wallet_spend_bundle.py +4 -3
- chia/wallet/wallet_state_manager.py +320 -191
- chia/wallet/wallet_weight_proof_handler.py +1 -2
- chia/wallet/wsm_apis.py +98 -0
- {chia_blockchain-2.5.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/METADATA +7 -7
- {chia_blockchain-2.5.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/RECORD +443 -436
- mozilla-ca/cacert.pem +3 -165
- chia/_tests/fee_estimation/test_mempoolitem_height_added.py +0 -145
- chia/cmds/dev.py +0 -18
- chia/types/blockchain_format/slots.py +0 -9
- chia/types/blockchain_format/sub_epoch_summary.py +0 -5
- chia/types/end_of_slot_bundle.py +0 -5
- chia/types/full_block.py +0 -5
- chia/types/header_block.py +0 -5
- chia/types/spend_bundle_conditions.py +0 -7
- chia/types/transaction_queue_entry.py +0 -56
- chia/types/unfinished_block.py +0 -5
- /chia/cmds/{installers.py → dev/installers.py} +0 -0
- /chia/cmds/{sim.py → dev/sim.py} +0 -0
- /chia/{util → cmds}/dump_keyring.py +0 -0
- /chia/{full_node → consensus}/signage_point.py +0 -0
- /chia/{rpc → data_layer}/data_layer_rpc_client.py +0 -0
- /chia/{rpc → farmer}/farmer_rpc_api.py +0 -0
- /chia/{util → full_node}/full_block_utils.py +0 -0
- /chia/{rpc → harvester}/harvester_rpc_api.py +0 -0
- /chia/{rpc → harvester}/harvester_rpc_client.py +0 -0
- /chia/{full_node → protocols}/fee_estimate.py +0 -0
- /chia/{server → protocols}/outbound_message.py +0 -0
- /chia/{rpc → seeder}/crawler_rpc_api.py +0 -0
- /chia/{util → simulator}/vdf_prover.py +0 -0
- /chia/{util → ssl}/ssl_check.py +0 -0
- /chia/{rpc → timelord}/timelord_rpc_api.py +0 -0
- {chia_blockchain-2.5.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/LICENSE +0 -0
- {chia_blockchain-2.5.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/entry_points.txt +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import dataclasses
|
|
4
|
-
from typing import Optional,
|
|
4
|
+
from typing import Optional, Union
|
|
5
5
|
|
|
6
6
|
from aiosqlite import Row
|
|
7
7
|
from chia_rs.sized_bytes import bytes32
|
|
8
8
|
from chia_rs.sized_ints import uint16, uint32, uint64
|
|
9
|
+
from typing_extensions import Self
|
|
9
10
|
|
|
10
11
|
from chia.data_layer.data_layer_wallet import Mirror
|
|
11
12
|
from chia.data_layer.singleton_record import SingletonRecord
|
|
@@ -13,8 +14,6 @@ from chia.types.blockchain_format.coin import Coin
|
|
|
13
14
|
from chia.util.db_wrapper import DBWrapper2, execute_fetchone
|
|
14
15
|
from chia.wallet.lineage_proof import LineageProof
|
|
15
16
|
|
|
16
|
-
_T_DataLayerStore = TypeVar("_T_DataLayerStore", bound="DataLayerStore")
|
|
17
|
-
|
|
18
17
|
|
|
19
18
|
def _row_to_singleton_record(row: Row) -> SingletonRecord:
|
|
20
19
|
return SingletonRecord(
|
|
@@ -38,7 +37,14 @@ def _row_to_mirror(row: Row, confirmed_at_height: Optional[uint32]) -> Mirror:
|
|
|
38
37
|
url = byte_list[2 : length + 2]
|
|
39
38
|
byte_list = byte_list[length + 2 :]
|
|
40
39
|
urls.append(url)
|
|
41
|
-
return Mirror(
|
|
40
|
+
return Mirror(
|
|
41
|
+
bytes32(row[0]),
|
|
42
|
+
bytes32(row[1]),
|
|
43
|
+
uint64.from_bytes(row[2]),
|
|
44
|
+
Mirror.decode_urls(urls),
|
|
45
|
+
bool(row[4]),
|
|
46
|
+
confirmed_at_height,
|
|
47
|
+
)
|
|
42
48
|
|
|
43
49
|
|
|
44
50
|
class DataLayerStore:
|
|
@@ -49,7 +55,7 @@ class DataLayerStore:
|
|
|
49
55
|
db_wrapper: DBWrapper2
|
|
50
56
|
|
|
51
57
|
@classmethod
|
|
52
|
-
async def create(cls
|
|
58
|
+
async def create(cls, db_wrapper: DBWrapper2) -> Self:
|
|
53
59
|
self = cls()
|
|
54
60
|
|
|
55
61
|
self.db_wrapper = db_wrapper
|
|
@@ -315,7 +321,7 @@ class DataLayerStore:
|
|
|
315
321
|
mirror.launcher_id,
|
|
316
322
|
mirror.amount.stream_to_bytes(),
|
|
317
323
|
b"".join(
|
|
318
|
-
[uint16(len(url)).stream_to_bytes() + url for url in mirror.urls]
|
|
324
|
+
[uint16(len(url)).stream_to_bytes() + url for url in Mirror.encode_urls(mirror.urls)]
|
|
319
325
|
), # prefix each item with a length
|
|
320
326
|
1 if mirror.ours else 0,
|
|
321
327
|
),
|
chia/data_layer/download_data.py
CHANGED
|
@@ -187,7 +187,7 @@ async def download_file(
|
|
|
187
187
|
root_hash: bytes32,
|
|
188
188
|
generation: int,
|
|
189
189
|
server_info: ServerInfo,
|
|
190
|
-
proxy_url: str,
|
|
190
|
+
proxy_url: Optional[str],
|
|
191
191
|
downloader: Optional[PluginRemote],
|
|
192
192
|
timeout: aiohttp.ClientTimeout,
|
|
193
193
|
client_foldername: Path,
|
|
@@ -242,7 +242,7 @@ async def insert_from_delta_file(
|
|
|
242
242
|
client_foldername: Path,
|
|
243
243
|
timeout: aiohttp.ClientTimeout,
|
|
244
244
|
log: logging.Logger,
|
|
245
|
-
proxy_url: str,
|
|
245
|
+
proxy_url: Optional[str],
|
|
246
246
|
downloader: Optional[PluginRemote],
|
|
247
247
|
group_files_by_store: bool = False,
|
|
248
248
|
maximum_full_file_count: int = 1,
|
|
@@ -357,7 +357,7 @@ def delete_full_file_if_exists(foldername: Path, store_id: bytes32, root: Root)
|
|
|
357
357
|
async def http_download(
|
|
358
358
|
target_filename_path: Path,
|
|
359
359
|
filename: str,
|
|
360
|
-
proxy_url: str,
|
|
360
|
+
proxy_url: Optional[str],
|
|
361
361
|
server_info: ServerInfo,
|
|
362
362
|
timeout: aiohttp.ClientTimeout,
|
|
363
363
|
log: logging.Logger,
|
chia/farmer/farmer.py
CHANGED
|
@@ -14,7 +14,7 @@ from pathlib import Path
|
|
|
14
14
|
from typing import TYPE_CHECKING, Any, ClassVar, Optional, Union, cast
|
|
15
15
|
|
|
16
16
|
import aiohttp
|
|
17
|
-
from chia_rs import AugSchemeMPL, ConsensusConstants, G1Element, G2Element, PrivateKey
|
|
17
|
+
from chia_rs import AugSchemeMPL, ConsensusConstants, G1Element, G2Element, PrivateKey, ProofOfSpace
|
|
18
18
|
from chia_rs.sized_bytes import bytes32
|
|
19
19
|
from chia_rs.sized_ints import uint8, uint16, uint32, uint64
|
|
20
20
|
|
|
@@ -23,6 +23,7 @@ from chia.plot_sync.delta import Delta
|
|
|
23
23
|
from chia.plot_sync.receiver import Receiver
|
|
24
24
|
from chia.pools.pool_config import PoolWalletConfig, load_pool_config, update_pool_url
|
|
25
25
|
from chia.protocols import farmer_protocol, harvester_protocol
|
|
26
|
+
from chia.protocols.outbound_message import NodeType, make_msg
|
|
26
27
|
from chia.protocols.pool_protocol import (
|
|
27
28
|
AuthenticationPayload,
|
|
28
29
|
ErrorResponse,
|
|
@@ -36,11 +37,9 @@ from chia.protocols.pool_protocol import (
|
|
|
36
37
|
)
|
|
37
38
|
from chia.protocols.protocol_message_types import ProtocolMessageTypes
|
|
38
39
|
from chia.rpc.rpc_server import StateChangedProtocol, default_get_connections
|
|
39
|
-
from chia.server.outbound_message import NodeType, make_msg
|
|
40
40
|
from chia.server.server import ChiaServer, ssl_context_for_root
|
|
41
41
|
from chia.server.ws_connection import WSChiaConnection
|
|
42
42
|
from chia.ssl.create_ssl import get_mozilla_ca_crt
|
|
43
|
-
from chia.types.blockchain_format.proof_of_space import ProofOfSpace
|
|
44
43
|
from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
|
|
45
44
|
from chia.util.byte_types import hexstr_to_bytes
|
|
46
45
|
from chia.util.config import config_path_for_filename, load_config, lock_and_load_config, save_config
|
|
@@ -227,7 +226,7 @@ class Farmer:
|
|
|
227
226
|
else:
|
|
228
227
|
self.keychain_proxy = await connect_to_keychain_and_validate(self._root_path, self.log)
|
|
229
228
|
if not self.keychain_proxy:
|
|
230
|
-
raise KeychainProxyConnectionFailure
|
|
229
|
+
raise KeychainProxyConnectionFailure
|
|
231
230
|
return self.keychain_proxy
|
|
232
231
|
|
|
233
232
|
async def get_all_private_keys(self) -> list[tuple[PrivateKey, bytes]]:
|
chia/farmer/farmer_api.py
CHANGED
|
@@ -25,6 +25,7 @@ from chia.protocols.harvester_protocol import (
|
|
|
25
25
|
SignatureRequestSourceData,
|
|
26
26
|
SigningDataKind,
|
|
27
27
|
)
|
|
28
|
+
from chia.protocols.outbound_message import Message, NodeType, make_msg
|
|
28
29
|
from chia.protocols.pool_protocol import (
|
|
29
30
|
PoolErrorCode,
|
|
30
31
|
PostPartialPayload,
|
|
@@ -33,12 +34,10 @@ from chia.protocols.pool_protocol import (
|
|
|
33
34
|
)
|
|
34
35
|
from chia.protocols.protocol_message_types import ProtocolMessageTypes
|
|
35
36
|
from chia.server.api_protocol import ApiMetadata
|
|
36
|
-
from chia.server.outbound_message import Message, NodeType, make_msg
|
|
37
37
|
from chia.server.server import ssl_context_for_root
|
|
38
38
|
from chia.server.ws_connection import WSChiaConnection
|
|
39
39
|
from chia.ssl.create_ssl import get_mozilla_ca_crt
|
|
40
40
|
from chia.types.blockchain_format.proof_of_space import (
|
|
41
|
-
calculate_prefix_bits,
|
|
42
41
|
generate_plot_public_key,
|
|
43
42
|
generate_taproot_sk,
|
|
44
43
|
get_plot_id,
|
|
@@ -110,11 +109,13 @@ class FarmerAPI:
|
|
|
110
109
|
self.farmer.number_of_responses[new_proof_of_space.sp_hash] += 1
|
|
111
110
|
|
|
112
111
|
required_iters: uint64 = calculate_iterations_quality(
|
|
113
|
-
self.farmer.constants
|
|
112
|
+
self.farmer.constants,
|
|
114
113
|
computed_quality_string,
|
|
115
|
-
new_proof_of_space.proof.size,
|
|
114
|
+
new_proof_of_space.proof.size(),
|
|
116
115
|
sp.difficulty,
|
|
117
116
|
new_proof_of_space.sp_hash,
|
|
117
|
+
sp.sub_slot_iters,
|
|
118
|
+
sp.last_tx_height,
|
|
118
119
|
)
|
|
119
120
|
|
|
120
121
|
# If the iters are good enough to make a block, proceed with the block making flow
|
|
@@ -217,11 +218,13 @@ class FarmerAPI:
|
|
|
217
218
|
return
|
|
218
219
|
|
|
219
220
|
required_iters = calculate_iterations_quality(
|
|
220
|
-
self.farmer.constants
|
|
221
|
+
self.farmer.constants,
|
|
221
222
|
computed_quality_string,
|
|
222
|
-
new_proof_of_space.proof.size,
|
|
223
|
+
new_proof_of_space.proof.size(),
|
|
223
224
|
pool_state_dict["current_difficulty"],
|
|
224
225
|
new_proof_of_space.sp_hash,
|
|
226
|
+
sp.sub_slot_iters,
|
|
227
|
+
sp.last_tx_height,
|
|
225
228
|
)
|
|
226
229
|
if required_iters >= calculate_sp_interval_iters(
|
|
227
230
|
self.farmer.constants, self.farmer.constants.POOL_SUB_SLOT_ITERS
|
|
@@ -532,7 +535,8 @@ class FarmerAPI:
|
|
|
532
535
|
new_signage_point.signage_point_index,
|
|
533
536
|
new_signage_point.challenge_chain_sp,
|
|
534
537
|
pool_difficulties,
|
|
535
|
-
|
|
538
|
+
new_signage_point.peak_height,
|
|
539
|
+
new_signage_point.last_tx_height,
|
|
536
540
|
)
|
|
537
541
|
|
|
538
542
|
msg = make_msg(ProtocolMessageTypes.new_signage_point_harvester, message)
|
|
@@ -4,7 +4,7 @@ from typing import Any, Optional, cast
|
|
|
4
4
|
|
|
5
5
|
from chia_rs.sized_bytes import bytes32
|
|
6
6
|
|
|
7
|
-
from chia.
|
|
7
|
+
from chia.farmer.farmer_rpc_api import PlotInfoRequestData, PlotPathRequestData
|
|
8
8
|
from chia.rpc.rpc_client import RpcClient
|
|
9
9
|
from chia.util.streamable import recurse_jsonify
|
|
10
10
|
|
|
@@ -6,10 +6,10 @@ from pathlib import Path
|
|
|
6
6
|
from typing import Optional
|
|
7
7
|
|
|
8
8
|
import aiofiles
|
|
9
|
+
from chia_rs import SubEpochSummary
|
|
9
10
|
from chia_rs.sized_bytes import bytes32
|
|
10
11
|
from chia_rs.sized_ints import uint32
|
|
11
12
|
|
|
12
|
-
from chia.types.blockchain_format.sub_epoch_summary import SubEpochSummary
|
|
13
13
|
from chia.util.db_wrapper import DBWrapper2
|
|
14
14
|
from chia.util.files import write_file_async
|
|
15
15
|
from chia.util.streamable import Streamable, streamable
|
|
@@ -56,7 +56,9 @@ class BlockHeightMap:
|
|
|
56
56
|
__ses_filename: Path
|
|
57
57
|
|
|
58
58
|
@classmethod
|
|
59
|
-
async def create(
|
|
59
|
+
async def create(
|
|
60
|
+
cls, blockchain_dir: Path, db: DBWrapper2, selected_network: Optional[str] = None
|
|
61
|
+
) -> BlockHeightMap:
|
|
60
62
|
if db.db_version != 2:
|
|
61
63
|
raise RuntimeError(f"BlockHeightMap does not support database schema v{db.db_version}")
|
|
62
64
|
self = BlockHeightMap()
|
|
@@ -66,8 +68,9 @@ class BlockHeightMap:
|
|
|
66
68
|
self.__first_dirty = 0
|
|
67
69
|
self.__height_to_hash = bytearray()
|
|
68
70
|
self.__sub_epoch_summaries = {}
|
|
69
|
-
|
|
70
|
-
self.
|
|
71
|
+
suffix = "" if (selected_network is None or selected_network == "mainnet") else f"-{selected_network}"
|
|
72
|
+
self.__height_to_hash_filename = blockchain_dir / f"height-to-hash{suffix}"
|
|
73
|
+
self.__ses_filename = blockchain_dir / f"sub-epoch-summaries{suffix}"
|
|
71
74
|
|
|
72
75
|
async with self.db.reader_no_transaction() as conn:
|
|
73
76
|
async with conn.execute("SELECT hash FROM current_peak WHERE key = 0") as cursor:
|
|
@@ -91,7 +94,6 @@ class BlockHeightMap:
|
|
|
91
94
|
except Exception as e:
|
|
92
95
|
# it's OK if this file doesn't exist, we can rebuild it
|
|
93
96
|
log.info(f"Failed to load height-to-hash: {e}")
|
|
94
|
-
pass
|
|
95
97
|
|
|
96
98
|
try:
|
|
97
99
|
async with aiofiles.open(self.__ses_filename, "rb") as f:
|
|
@@ -99,7 +101,6 @@ class BlockHeightMap:
|
|
|
99
101
|
except Exception as e:
|
|
100
102
|
# it's OK if this file doesn't exist, we can rebuild it
|
|
101
103
|
log.info(f"Failed to load sub-epoch-summaries: {e}")
|
|
102
|
-
pass
|
|
103
104
|
|
|
104
105
|
peak: bytes32 = row[0]
|
|
105
106
|
prev_hash: bytes32 = row[1]
|
chia/full_node/block_store.py
CHANGED
|
@@ -7,15 +7,13 @@ from typing import Optional
|
|
|
7
7
|
|
|
8
8
|
import typing_extensions
|
|
9
9
|
import zstd
|
|
10
|
-
from chia_rs import SubEpochChallengeSegment, SubEpochSegments
|
|
10
|
+
from chia_rs import BlockRecord, FullBlock, SubEpochChallengeSegment, SubEpochSegments
|
|
11
11
|
from chia_rs.sized_bytes import bytes32
|
|
12
12
|
from chia_rs.sized_ints import uint32
|
|
13
13
|
|
|
14
|
-
from chia.
|
|
15
|
-
from chia.types.full_block import FullBlock
|
|
14
|
+
from chia.full_node.full_block_utils import GeneratorBlockInfo, block_info_from_block, generator_from_block
|
|
16
15
|
from chia.util.db_wrapper import DBWrapper2, execute_fetchone
|
|
17
16
|
from chia.util.errors import Err
|
|
18
|
-
from chia.util.full_block_utils import GeneratorBlockInfo, block_info_from_block, generator_from_block
|
|
19
17
|
from chia.util.lru_cache import LRUCache
|
|
20
18
|
|
|
21
19
|
log = logging.getLogger(__name__)
|
|
@@ -252,7 +250,7 @@ class BlockStore:
|
|
|
252
250
|
row = await execute_fetchone(conn, formatted_str, (header_hash,))
|
|
253
251
|
if row is None:
|
|
254
252
|
return None
|
|
255
|
-
block_bytes = zstd.decompress(row[0])
|
|
253
|
+
block_bytes = memoryview(zstd.decompress(row[0]))
|
|
256
254
|
|
|
257
255
|
try:
|
|
258
256
|
return block_info_from_block(block_bytes)
|
|
@@ -276,7 +274,7 @@ class BlockStore:
|
|
|
276
274
|
row = await execute_fetchone(conn, formatted_str, (header_hash,))
|
|
277
275
|
if row is None:
|
|
278
276
|
return None
|
|
279
|
-
block_bytes = zstd.decompress(row[0])
|
|
277
|
+
block_bytes = memoryview(zstd.decompress(row[0]))
|
|
280
278
|
|
|
281
279
|
try:
|
|
282
280
|
return generator_from_block(block_bytes)
|
|
@@ -299,7 +297,7 @@ class BlockStore:
|
|
|
299
297
|
async with self.db_wrapper.reader_no_transaction() as conn:
|
|
300
298
|
async with conn.execute(formatted_str, list(heights)) as cursor:
|
|
301
299
|
async for row in cursor:
|
|
302
|
-
block_bytes = zstd.decompress(row[0])
|
|
300
|
+
block_bytes = memoryview(zstd.decompress(row[0]))
|
|
303
301
|
|
|
304
302
|
try:
|
|
305
303
|
gen = generator_from_block(block_bytes)
|
chia/full_node/bundle_tools.py
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from chia_rs import solution_generator, solution_generator_backrefs
|
|
3
|
+
from chia_rs import SpendBundle, solution_generator, solution_generator_backrefs
|
|
4
4
|
|
|
5
5
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
6
6
|
from chia.types.generator_types import BlockGenerator
|
|
7
|
-
from chia.types.spend_bundle import SpendBundle
|
|
8
7
|
|
|
9
8
|
|
|
10
9
|
def simple_solution_generator(bundle: SpendBundle) -> BlockGenerator:
|