chia-blockchain 2.5.4rc2__py3-none-any.whl → 2.5.5rc2__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 +421 -69
- chia/_tests/core/mempool/test_mempool_performance.py +3 -2
- chia/_tests/core/mempool/test_singleton_fast_forward.py +60 -131
- 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 +143 -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 +26 -40
- 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.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/METADATA +7 -7
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.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.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/LICENSE +0 -0
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/entry_points.txt +0 -0
chia/cmds/farm_funcs.py
CHANGED
|
@@ -5,14 +5,15 @@ import traceback
|
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
from typing import Any, Optional
|
|
7
7
|
|
|
8
|
+
from chia_rs import BlockRecord
|
|
9
|
+
|
|
8
10
|
from chia.cmds.cmds_util import format_bytes, format_minutes, get_any_service_client
|
|
9
11
|
from chia.cmds.units import units
|
|
10
|
-
from chia.
|
|
11
|
-
from chia.
|
|
12
|
-
from chia.rpc.full_node_rpc_client import FullNodeRpcClient
|
|
13
|
-
from chia.rpc.wallet_rpc_client import WalletRpcClient
|
|
12
|
+
from chia.farmer.farmer_rpc_client import FarmerRpcClient
|
|
13
|
+
from chia.full_node.full_node_rpc_client import FullNodeRpcClient
|
|
14
14
|
from chia.util.errors import CliRpcConnectionError
|
|
15
15
|
from chia.util.network import is_localhost
|
|
16
|
+
from chia.wallet.wallet_rpc_client import WalletRpcClient
|
|
16
17
|
|
|
17
18
|
SECONDS_PER_BLOCK = (24 * 3600) / 4608
|
|
18
19
|
|
chia/cmds/init_funcs.py
CHANGED
|
@@ -9,8 +9,15 @@ from typing import Any, Optional
|
|
|
9
9
|
import yaml
|
|
10
10
|
|
|
11
11
|
from chia.cmds.configure import configure
|
|
12
|
-
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
|
13
12
|
from chia.ssl.create_ssl import create_all_ssl
|
|
13
|
+
from chia.ssl.ssl_check import (
|
|
14
|
+
DEFAULT_PERMISSIONS_CERT_FILE,
|
|
15
|
+
DEFAULT_PERMISSIONS_KEY_FILE,
|
|
16
|
+
RESTRICT_MASK_CERT_FILE,
|
|
17
|
+
RESTRICT_MASK_KEY_FILE,
|
|
18
|
+
check_and_fix_permissions_for_ssl_file,
|
|
19
|
+
fix_ssl,
|
|
20
|
+
)
|
|
14
21
|
from chia.util.bech32m import encode_puzzle_hash
|
|
15
22
|
from chia.util.config import (
|
|
16
23
|
create_default_chia_config,
|
|
@@ -23,14 +30,6 @@ from chia.util.config import (
|
|
|
23
30
|
from chia.util.db_version import set_db_version
|
|
24
31
|
from chia.util.keychain import Keychain
|
|
25
32
|
from chia.util.path import path_from_root
|
|
26
|
-
from chia.util.ssl_check import (
|
|
27
|
-
DEFAULT_PERMISSIONS_CERT_FILE,
|
|
28
|
-
DEFAULT_PERMISSIONS_KEY_FILE,
|
|
29
|
-
RESTRICT_MASK_CERT_FILE,
|
|
30
|
-
RESTRICT_MASK_KEY_FILE,
|
|
31
|
-
check_and_fix_permissions_for_ssl_file,
|
|
32
|
-
fix_ssl,
|
|
33
|
-
)
|
|
34
33
|
from chia.wallet.derive_keys import (
|
|
35
34
|
_derive_path,
|
|
36
35
|
_derive_path_unhardened,
|
|
@@ -38,6 +37,7 @@ from chia.wallet.derive_keys import (
|
|
|
38
37
|
master_sk_to_wallet_sk_intermediate,
|
|
39
38
|
master_sk_to_wallet_sk_unhardened_intermediate,
|
|
40
39
|
)
|
|
40
|
+
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
def dict_add_new_default(updated: dict[str, Any], default: dict[str, Any], do_not_migrate_keys: dict[str, Any]) -> None:
|
|
@@ -94,11 +94,11 @@ def check_keys(new_root: Path, keychain: Optional[Keychain] = None) -> None:
|
|
|
94
94
|
|
|
95
95
|
all_targets.append(
|
|
96
96
|
encode_puzzle_hash(
|
|
97
|
-
|
|
97
|
+
puzzle_hash_for_pk(_derive_path_unhardened(intermediate_o, [i]).get_g1()), prefix
|
|
98
98
|
)
|
|
99
99
|
)
|
|
100
100
|
all_targets.append(
|
|
101
|
-
encode_puzzle_hash(
|
|
101
|
+
encode_puzzle_hash(puzzle_hash_for_pk(_derive_path(intermediate_n, [i]).get_g1()), prefix)
|
|
102
102
|
)
|
|
103
103
|
if all_targets[-1] == config["farmer"].get("xch_target_address") or all_targets[-2] == config[
|
|
104
104
|
"farmer"
|
chia/cmds/keys.py
CHANGED
|
@@ -379,11 +379,11 @@ def _resolve_fingerprint_and_sk(
|
|
|
379
379
|
|
|
380
380
|
if non_observer_derivation and resolved_sk is None:
|
|
381
381
|
print("Could not resolve private key for non-observer derivation")
|
|
382
|
-
raise ResolutionError
|
|
382
|
+
raise ResolutionError
|
|
383
383
|
|
|
384
384
|
if reolved_fp is None:
|
|
385
385
|
print("A fingerprint of a root key to derive from is required")
|
|
386
|
-
raise ResolutionError
|
|
386
|
+
raise ResolutionError
|
|
387
387
|
|
|
388
388
|
return reolved_fp, resolved_sk
|
|
389
389
|
|
chia/cmds/keys_funcs.py
CHANGED
|
@@ -10,7 +10,6 @@ from typing import Any, Optional, Union
|
|
|
10
10
|
from chia_rs import AugSchemeMPL, G1Element, G2Element, PrivateKey
|
|
11
11
|
from chia_rs.sized_ints import uint32
|
|
12
12
|
|
|
13
|
-
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
|
14
13
|
from chia.types.signing_mode import SigningMode
|
|
15
14
|
from chia.util.bech32m import bech32_encode, convertbits, encode_puzzle_hash
|
|
16
15
|
from chia.util.config import load_config
|
|
@@ -31,6 +30,7 @@ from chia.wallet.derive_keys import (
|
|
|
31
30
|
master_sk_to_pool_sk,
|
|
32
31
|
master_sk_to_wallet_sk,
|
|
33
32
|
)
|
|
33
|
+
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def unlock_keyring() -> None:
|
|
@@ -197,7 +197,7 @@ def show_keys(
|
|
|
197
197
|
first_wallet_pk = master_pk_to_wallet_pk_unhardened(key_data.public_key, uint32(0))
|
|
198
198
|
|
|
199
199
|
if first_wallet_pk is not None:
|
|
200
|
-
wallet_address: str = encode_puzzle_hash(
|
|
200
|
+
wallet_address: str = encode_puzzle_hash(puzzle_hash_for_pk(first_wallet_pk), prefix)
|
|
201
201
|
key["wallet_address"] = wallet_address
|
|
202
202
|
else:
|
|
203
203
|
key["wallet_address"] = None
|
|
@@ -423,7 +423,7 @@ def _search_derived(
|
|
|
423
423
|
# Generate a wallet address using the standard p2_delegated_puzzle_or_hidden_puzzle puzzle
|
|
424
424
|
assert child_pk is not None
|
|
425
425
|
# TODO: consider generating addresses using other puzzles
|
|
426
|
-
address = encode_puzzle_hash(
|
|
426
|
+
address = encode_puzzle_hash(puzzle_hash_for_pk(child_pk), prefix)
|
|
427
427
|
|
|
428
428
|
for term in remaining_search_terms:
|
|
429
429
|
found_item: Any = None
|
|
@@ -682,7 +682,7 @@ def derive_wallet_address(
|
|
|
682
682
|
pubkey = master_pk_to_wallet_pk_unhardened(pk, uint32(i))
|
|
683
683
|
# Generate a wallet address using the standard p2_delegated_puzzle_or_hidden_puzzle puzzle
|
|
684
684
|
# TODO: consider generating addresses using other puzzles
|
|
685
|
-
address = encode_puzzle_hash(
|
|
685
|
+
address = encode_puzzle_hash(puzzle_hash_for_pk(pubkey), prefix)
|
|
686
686
|
if show_hd_path:
|
|
687
687
|
print(
|
|
688
688
|
f"Wallet address {i} "
|
chia/cmds/netspace_funcs.py
CHANGED
|
@@ -6,7 +6,7 @@ from typing import Optional
|
|
|
6
6
|
from chia_rs.sized_bytes import bytes32
|
|
7
7
|
|
|
8
8
|
from chia.cmds.cmds_util import format_bytes, get_any_service_client
|
|
9
|
-
from chia.
|
|
9
|
+
from chia.full_node.full_node_rpc_client import FullNodeRpcClient
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
async def netstorge_async(root_path: Path, rpc_port: Optional[int], delta_block_height: str, start: str) -> None:
|
chia/cmds/peer_funcs.py
CHANGED
|
@@ -26,7 +26,7 @@ async def add_node_connection(rpc_client: RpcClient, add_connection: str) -> Non
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
async def remove_node_connection(rpc_client: RpcClient, remove_connection: str) -> None:
|
|
29
|
-
from chia.
|
|
29
|
+
from chia.protocols.outbound_message import NodeType
|
|
30
30
|
|
|
31
31
|
result_txt = ""
|
|
32
32
|
if len(remove_connection) != 8:
|
|
@@ -52,7 +52,7 @@ async def remove_node_connection(rpc_client: RpcClient, remove_connection: str)
|
|
|
52
52
|
async def print_connections(rpc_client: RpcClient, trusted_peers: dict[str, Any], trusted_cidrs: list[str]) -> None:
|
|
53
53
|
import time
|
|
54
54
|
|
|
55
|
-
from chia.
|
|
55
|
+
from chia.protocols.outbound_message import NodeType
|
|
56
56
|
from chia.util.network import is_trusted_peer
|
|
57
57
|
|
|
58
58
|
connections = await rpc_client.get_connections()
|
chia/cmds/plotnft_funcs.py
CHANGED
|
@@ -11,6 +11,7 @@ from pprint import pprint
|
|
|
11
11
|
from typing import Any, Callable, Optional
|
|
12
12
|
|
|
13
13
|
import aiohttp
|
|
14
|
+
import click
|
|
14
15
|
from chia_rs.sized_bytes import bytes32
|
|
15
16
|
from chia_rs.sized_ints import uint32, uint64
|
|
16
17
|
|
|
@@ -23,11 +24,15 @@ from chia.cmds.cmds_util import (
|
|
|
23
24
|
)
|
|
24
25
|
from chia.cmds.param_types import CliAddress
|
|
25
26
|
from chia.cmds.wallet_funcs import print_balance, wallet_coin_unit
|
|
26
|
-
from chia.
|
|
27
|
+
from chia.farmer.farmer_rpc_client import FarmerRpcClient
|
|
28
|
+
from chia.pools.pool_config import (
|
|
29
|
+
PoolWalletConfig,
|
|
30
|
+
load_pool_config,
|
|
31
|
+
update_pool_config,
|
|
32
|
+
)
|
|
27
33
|
from chia.pools.pool_wallet_info import PoolSingletonState, PoolWalletInfo
|
|
28
34
|
from chia.protocols.pool_protocol import POOL_PROTOCOL_VERSION
|
|
29
|
-
from chia.rpc.
|
|
30
|
-
from chia.rpc.wallet_rpc_client import WalletRpcClient
|
|
35
|
+
from chia.rpc.rpc_client import ResponseFailureError
|
|
31
36
|
from chia.server.server import ssl_context_for_root
|
|
32
37
|
from chia.ssl.create_ssl import get_mozilla_ca_crt
|
|
33
38
|
from chia.util.bech32m import encode_puzzle_hash
|
|
@@ -35,7 +40,16 @@ from chia.util.default_root import DEFAULT_ROOT_PATH
|
|
|
35
40
|
from chia.util.errors import CliRpcConnectionError
|
|
36
41
|
from chia.wallet.transaction_record import TransactionRecord
|
|
37
42
|
from chia.wallet.util.address_type import AddressType
|
|
43
|
+
from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG
|
|
38
44
|
from chia.wallet.util.wallet_types import WalletType
|
|
45
|
+
from chia.wallet.wallet_request_types import (
|
|
46
|
+
PWAbsorbRewards,
|
|
47
|
+
PWJoinPool,
|
|
48
|
+
PWSelfPool,
|
|
49
|
+
PWStatus,
|
|
50
|
+
TransactionEndpointResponse,
|
|
51
|
+
)
|
|
52
|
+
from chia.wallet.wallet_rpc_client import WalletRpcClient
|
|
39
53
|
|
|
40
54
|
|
|
41
55
|
async def create_pool_args(pool_url: str) -> dict[str, Any]:
|
|
@@ -190,7 +204,7 @@ async def pprint_all_pool_wallet_state(
|
|
|
190
204
|
pool_wallet_id = wallet_info["id"]
|
|
191
205
|
typ = WalletType(int(wallet_info["type"]))
|
|
192
206
|
if typ == WalletType.POOLING_WALLET:
|
|
193
|
-
pool_wallet_info
|
|
207
|
+
pool_wallet_info = (await wallet_client.pw_status(PWStatus(uint32(pool_wallet_id)))).state
|
|
194
208
|
await pprint_pool_wallet_state(
|
|
195
209
|
wallet_client,
|
|
196
210
|
pool_wallet_id,
|
|
@@ -223,7 +237,7 @@ async def show(
|
|
|
223
237
|
for pool_state_item in pool_state_list
|
|
224
238
|
}
|
|
225
239
|
if wallet_id_passed_in is not None:
|
|
226
|
-
pool_wallet_info
|
|
240
|
+
pool_wallet_info = (await wallet_info.client.pw_status(PWStatus(uint32(wallet_id_passed_in)))).state
|
|
227
241
|
await pprint_pool_wallet_state(
|
|
228
242
|
wallet_info.client,
|
|
229
243
|
wallet_id_passed_in,
|
|
@@ -251,7 +265,7 @@ async def get_login_link(launcher_id: bytes32, root_path: Path) -> None:
|
|
|
251
265
|
async def submit_tx_with_confirmation(
|
|
252
266
|
message: str,
|
|
253
267
|
prompt: bool,
|
|
254
|
-
func: Callable[[], Awaitable[
|
|
268
|
+
func: Callable[[], Awaitable[TransactionEndpointResponse]],
|
|
255
269
|
wallet_client: WalletRpcClient,
|
|
256
270
|
fingerprint: int,
|
|
257
271
|
wallet_id: int,
|
|
@@ -261,15 +275,19 @@ async def submit_tx_with_confirmation(
|
|
|
261
275
|
cli_confirm("Confirm (y/n): ", "Aborting.")
|
|
262
276
|
try:
|
|
263
277
|
result = await func()
|
|
264
|
-
tx_record: TransactionRecord = result["transaction"]
|
|
265
278
|
start = time.time()
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
279
|
+
for tx_record in result.transactions:
|
|
280
|
+
if tx_record.spend_bundle is None:
|
|
281
|
+
continue
|
|
282
|
+
while time.time() - start < 10:
|
|
283
|
+
await asyncio.sleep(0.1)
|
|
284
|
+
tx = await wallet_client.get_transaction(tx_record.name)
|
|
285
|
+
if len(tx.sent_to) > 0:
|
|
286
|
+
print(transaction_submitted_msg(tx))
|
|
287
|
+
print(transaction_status_msg(fingerprint, tx_record.name))
|
|
288
|
+
return
|
|
289
|
+
except ResponseFailureError:
|
|
290
|
+
raise
|
|
273
291
|
except Exception as e:
|
|
274
292
|
print(f"Error performing operation on Plot NFT -f {fingerprint} wallet id: {wallet_id}: {e}")
|
|
275
293
|
|
|
@@ -307,6 +325,17 @@ async def join_pool(
|
|
|
307
325
|
) -> None:
|
|
308
326
|
selected_wallet_id = await wallet_id_lookup_and_check(wallet_info.client, wallet_id)
|
|
309
327
|
|
|
328
|
+
sync_status = await wallet_info.client.get_sync_status()
|
|
329
|
+
if not sync_status.synced:
|
|
330
|
+
raise click.ClickException("Wallet must be synced before joining a pool.")
|
|
331
|
+
|
|
332
|
+
pool_wallet_info = (await wallet_info.client.pw_status(PWStatus(uint32(selected_wallet_id)))).state
|
|
333
|
+
if (
|
|
334
|
+
pool_wallet_info.current.state == PoolSingletonState.FARMING_TO_POOL.value
|
|
335
|
+
and pool_wallet_info.current.pool_url == pool_url
|
|
336
|
+
):
|
|
337
|
+
raise click.ClickException(f"Wallet id: {wallet_id} is already farming to pool {pool_url}")
|
|
338
|
+
|
|
310
339
|
enforce_https = wallet_info.config["selected_network"] == "mainnet"
|
|
311
340
|
|
|
312
341
|
if enforce_https and not pool_url.startswith("https://"):
|
|
@@ -333,15 +362,24 @@ async def join_pool(
|
|
|
333
362
|
msg = f"\nWill join pool: {pool_url} with Plot NFT {wallet_info.fingerprint}."
|
|
334
363
|
func = functools.partial(
|
|
335
364
|
wallet_info.client.pw_join_pool,
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
365
|
+
PWJoinPool(
|
|
366
|
+
wallet_id=uint32(selected_wallet_id),
|
|
367
|
+
target_puzzlehash=bytes32.from_hexstr(json_dict["target_puzzle_hash"]),
|
|
368
|
+
pool_url=pool_url,
|
|
369
|
+
relative_lock_height=json_dict["relative_lock_height"],
|
|
370
|
+
fee=fee,
|
|
371
|
+
push=True,
|
|
372
|
+
),
|
|
373
|
+
DEFAULT_TX_CONFIG,
|
|
341
374
|
)
|
|
342
375
|
|
|
343
376
|
await submit_tx_with_confirmation(
|
|
344
|
-
msg,
|
|
377
|
+
msg,
|
|
378
|
+
prompt,
|
|
379
|
+
func,
|
|
380
|
+
wallet_info.client,
|
|
381
|
+
wallet_info.fingerprint,
|
|
382
|
+
selected_wallet_id,
|
|
345
383
|
)
|
|
346
384
|
|
|
347
385
|
|
|
@@ -351,7 +389,11 @@ async def self_pool(*, wallet_info: WalletClientInfo, fee: uint64, wallet_id: Op
|
|
|
351
389
|
"Will start self-farming with Plot NFT on wallet id "
|
|
352
390
|
f"{selected_wallet_id} fingerprint {wallet_info.fingerprint}."
|
|
353
391
|
)
|
|
354
|
-
func = functools.partial(
|
|
392
|
+
func = functools.partial(
|
|
393
|
+
wallet_info.client.pw_self_pool,
|
|
394
|
+
PWSelfPool(wallet_id=uint32(selected_wallet_id), fee=fee, push=True),
|
|
395
|
+
DEFAULT_TX_CONFIG,
|
|
396
|
+
)
|
|
355
397
|
await submit_tx_with_confirmation(
|
|
356
398
|
msg, prompt, func, wallet_info.client, wallet_info.fingerprint, selected_wallet_id
|
|
357
399
|
)
|
|
@@ -359,13 +401,13 @@ async def self_pool(*, wallet_info: WalletClientInfo, fee: uint64, wallet_id: Op
|
|
|
359
401
|
|
|
360
402
|
async def inspect_cmd(wallet_info: WalletClientInfo, wallet_id: Optional[int]) -> None:
|
|
361
403
|
selected_wallet_id = await wallet_id_lookup_and_check(wallet_info.client, wallet_id)
|
|
362
|
-
|
|
404
|
+
res = await wallet_info.client.pw_status(PWStatus(uint32(selected_wallet_id)))
|
|
363
405
|
print(
|
|
364
406
|
json.dumps(
|
|
365
407
|
{
|
|
366
|
-
"pool_wallet_info":
|
|
408
|
+
"pool_wallet_info": res.state.to_json_dict(),
|
|
367
409
|
"unconfirmed_transactions": [
|
|
368
|
-
{"sent_to": tx.sent_to, "transaction_id": tx.name.hex()} for tx in unconfirmed_transactions
|
|
410
|
+
{"sent_to": tx.sent_to, "transaction_id": tx.name.hex()} for tx in res.unconfirmed_transactions
|
|
369
411
|
],
|
|
370
412
|
}
|
|
371
413
|
)
|
|
@@ -377,8 +419,12 @@ async def claim_cmd(*, wallet_info: WalletClientInfo, fee: uint64, wallet_id: Op
|
|
|
377
419
|
msg = f"\nWill claim rewards for wallet ID: {selected_wallet_id}."
|
|
378
420
|
func = functools.partial(
|
|
379
421
|
wallet_info.client.pw_absorb_rewards,
|
|
380
|
-
|
|
381
|
-
|
|
422
|
+
PWAbsorbRewards(
|
|
423
|
+
wallet_id=uint32(selected_wallet_id),
|
|
424
|
+
fee=fee,
|
|
425
|
+
push=True,
|
|
426
|
+
),
|
|
427
|
+
DEFAULT_TX_CONFIG,
|
|
382
428
|
)
|
|
383
429
|
await submit_tx_with_confirmation(msg, False, func, wallet_info.client, wallet_info.fingerprint, selected_wallet_id)
|
|
384
430
|
|
chia/cmds/rpc.py
CHANGED
|
@@ -131,7 +131,7 @@ def status_cmd(ctx: click.Context, json_output: bool) -> None:
|
|
|
131
131
|
status = "ACTIVE"
|
|
132
132
|
try:
|
|
133
133
|
if not get_routes(service, config, root_path=root_path, quiet=True)["success"]:
|
|
134
|
-
raise Exception
|
|
134
|
+
raise Exception
|
|
135
135
|
except Exception:
|
|
136
136
|
status = "INACTIVE"
|
|
137
137
|
status_data[service] = status
|
chia/cmds/show_funcs.py
CHANGED
|
@@ -6,16 +6,16 @@ from typing import Any, Optional, Union
|
|
|
6
6
|
|
|
7
7
|
from chia_rs.sized_bytes import bytes32
|
|
8
8
|
|
|
9
|
-
from chia.
|
|
9
|
+
from chia.full_node.full_node_rpc_client import FullNodeRpcClient
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
async def print_blockchain_state(node_client: FullNodeRpcClient, config: dict[str, Any]) -> bool:
|
|
13
13
|
import time
|
|
14
14
|
|
|
15
|
+
from chia_rs import BlockRecord
|
|
15
16
|
from chia_rs.sized_ints import uint64
|
|
16
17
|
|
|
17
18
|
from chia.cmds.cmds_util import format_bytes
|
|
18
|
-
from chia.consensus.block_record import BlockRecord
|
|
19
19
|
|
|
20
20
|
blockchain_state = await node_client.get_blockchain_state()
|
|
21
21
|
if blockchain_state is None:
|
|
@@ -99,10 +99,9 @@ async def print_block_from_hash(
|
|
|
99
99
|
) -> None:
|
|
100
100
|
import time
|
|
101
101
|
|
|
102
|
+
from chia_rs import BlockRecord, FullBlock
|
|
102
103
|
from chia_rs.sized_bytes import bytes32
|
|
103
104
|
|
|
104
|
-
from chia.consensus.block_record import BlockRecord
|
|
105
|
-
from chia.types.full_block import FullBlock
|
|
106
105
|
from chia.util.bech32m import encode_puzzle_hash
|
|
107
106
|
|
|
108
107
|
block: Optional[BlockRecord] = await node_client.get_block_record(bytes32.from_hexstr(block_by_header_hash))
|
|
@@ -153,7 +152,8 @@ async def print_block_from_hash(
|
|
|
153
152
|
f"Total VDF Iterations {block.total_iters}\n"
|
|
154
153
|
f"Is a Transaction Block?{block.is_transaction_block}\n"
|
|
155
154
|
f"Deficit {block.deficit}\n"
|
|
156
|
-
f"PoSpace 'k' Size
|
|
155
|
+
f"PoSpace 'k' Size (v1) {full_block.reward_chain_block.proof_of_space.size().size_v1}\n"
|
|
156
|
+
f"PoSpace 'k' Size (v2) {full_block.reward_chain_block.proof_of_space.size().size_v2}\n"
|
|
157
157
|
f"Plot Public Key 0x{full_block.reward_chain_block.proof_of_space.plot_public_key}\n"
|
|
158
158
|
f"Pool Public Key {pool_pk}\n"
|
|
159
159
|
f"Tx Filter Hash {tx_filter_hash}\n"
|
chia/cmds/signer.py
CHANGED
|
@@ -17,23 +17,24 @@ from segno import QRCode, make_qr
|
|
|
17
17
|
from chia.cmds.cmd_classes import chia_command, command_helper, option
|
|
18
18
|
from chia.cmds.cmd_helpers import NeedsWalletRPC, TransactionsIn, TransactionsOut
|
|
19
19
|
from chia.rpc.util import ALL_TRANSLATION_LAYERS
|
|
20
|
-
from chia.rpc.wallet_request_types import (
|
|
21
|
-
ApplySignatures,
|
|
22
|
-
ExecuteSigningInstructions,
|
|
23
|
-
GatherSigningInfo,
|
|
24
|
-
PushTransactions,
|
|
25
|
-
)
|
|
26
20
|
from chia.util.streamable import Streamable
|
|
27
21
|
from chia.wallet.signer_protocol import SignedTransaction, SigningInstructions, SigningResponse, Spend
|
|
28
22
|
from chia.wallet.transaction_record import TransactionRecord
|
|
29
23
|
from chia.wallet.util.clvm_streamable import byte_deserialize_clvm_streamable, byte_serialize_clvm_streamable
|
|
30
24
|
from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG
|
|
25
|
+
from chia.wallet.wallet_request_types import (
|
|
26
|
+
ApplySignatures,
|
|
27
|
+
ExecuteSigningInstructions,
|
|
28
|
+
GatherSigningInfo,
|
|
29
|
+
PushTransactions,
|
|
30
|
+
)
|
|
31
31
|
from chia.wallet.wallet_spend_bundle import WalletSpendBundle
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
def _clear_screen() -> None:
|
|
35
35
|
# Cross-platform screen clear
|
|
36
|
-
|
|
36
|
+
# TODO: consider if not-nt anyways could avoid os.system()
|
|
37
|
+
os.system("cls" if os.name == "nt" else "clear") # noqa: S605
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
@click.group("signer", help="Get information for an external signer")
|
chia/cmds/sim_funcs.py
CHANGED
|
@@ -14,12 +14,12 @@ from chia_rs.sized_ints import uint32
|
|
|
14
14
|
|
|
15
15
|
from chia.cmds.cmds_util import get_any_service_client
|
|
16
16
|
from chia.cmds.start_funcs import async_start
|
|
17
|
-
from chia.
|
|
18
|
-
from chia.server.
|
|
17
|
+
from chia.protocols.outbound_message import NodeType
|
|
18
|
+
from chia.server.resolve_peer_info import set_peer_info
|
|
19
19
|
from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
|
|
20
20
|
from chia.types.coin_record import CoinRecord
|
|
21
21
|
from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
|
|
22
|
-
from chia.util.config import load_config, save_config
|
|
22
|
+
from chia.util.config import load_config, save_config
|
|
23
23
|
from chia.util.errors import KeychainFingerprintExists
|
|
24
24
|
from chia.util.keychain import Keychain, bytes_to_mnemonic
|
|
25
25
|
from chia.wallet.derive_keys import (
|
|
@@ -28,6 +28,7 @@ from chia.wallet.derive_keys import (
|
|
|
28
28
|
master_sk_to_wallet_sk,
|
|
29
29
|
master_sk_to_wallet_sk_unhardened,
|
|
30
30
|
)
|
|
31
|
+
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
def get_ph_from_fingerprint(fingerprint: int, key_id: int = 1) -> bytes32:
|
|
@@ -36,7 +37,7 @@ def get_ph_from_fingerprint(fingerprint: int, key_id: int = 1) -> bytes32:
|
|
|
36
37
|
raise Exception("Fingerprint not found")
|
|
37
38
|
private_key = priv_key_and_entropy[0]
|
|
38
39
|
sk_for_wallet_id: PrivateKey = master_sk_to_wallet_sk(private_key, uint32(key_id))
|
|
39
|
-
puzzle_hash: bytes32 =
|
|
40
|
+
puzzle_hash: bytes32 = puzzle_hash_for_pk(sk_for_wallet_id.get_g1())
|
|
40
41
|
return puzzle_hash
|
|
41
42
|
|
|
42
43
|
|
|
@@ -76,6 +77,7 @@ def create_chia_directory(
|
|
|
76
77
|
config["network_overrides"]["config"]["simulator0"] = config["network_overrides"]["config"]["testnet0"].copy()
|
|
77
78
|
sim_genesis = "eb8c4d20b322be8d9fddbf9412016bdffe9a2901d7edb0e364e94266d0e095f7"
|
|
78
79
|
config["network_overrides"]["constants"]["simulator0"]["GENESIS_CHALLENGE"] = sim_genesis
|
|
80
|
+
config["network_overrides"]["constants"]["simulator0"]["AGG_SIG_ME_ADDITIONAL_DATA"] = sim_genesis
|
|
79
81
|
# tell services to use simulator0
|
|
80
82
|
config["selected_network"] = "simulator0"
|
|
81
83
|
config["wallet"]["selected_network"] = "simulator0"
|
|
@@ -130,10 +132,7 @@ def create_chia_directory(
|
|
|
130
132
|
# get fork heights then write back to config
|
|
131
133
|
if "HARD_FORK_HEIGHT" not in sim_config: # this meh code is done so that we also write to the config file.
|
|
132
134
|
sim_config["HARD_FORK_HEIGHT"] = 0
|
|
133
|
-
if "SOFT_FORK6_HEIGHT" not in sim_config:
|
|
134
|
-
sim_config["SOFT_FORK6_HEIGHT"] = 0
|
|
135
135
|
simulator_consts["HARD_FORK_HEIGHT"] = sim_config["HARD_FORK_HEIGHT"]
|
|
136
|
-
simulator_consts["SOFT_FORK6_HEIGHT"] = sim_config["SOFT_FORK6_HEIGHT"]
|
|
137
136
|
|
|
138
137
|
# save config and return the config
|
|
139
138
|
save_config(chia_root, "config.yaml", config)
|
|
@@ -155,7 +154,7 @@ def display_key_info(fingerprint: int, prefix: str) -> None:
|
|
|
155
154
|
print("Farmer public key (m/12381/8444/0/0):", master_sk_to_farmer_sk(sk).get_g1())
|
|
156
155
|
print("Pool public key (m/12381/8444/1/0):", master_sk_to_pool_sk(sk).get_g1())
|
|
157
156
|
first_wallet_sk: PrivateKey = master_sk_to_wallet_sk_unhardened(sk, uint32(0))
|
|
158
|
-
wallet_address: str = encode_puzzle_hash(
|
|
157
|
+
wallet_address: str = encode_puzzle_hash(puzzle_hash_for_pk(first_wallet_sk.get_g1()), prefix)
|
|
159
158
|
print(f"First wallet address: {wallet_address}")
|
|
160
159
|
assert seed is not None
|
|
161
160
|
print("Master private key (m):", bytes(sk).hex())
|
|
@@ -364,7 +363,7 @@ async def print_coin_records(
|
|
|
364
363
|
num_per_screen = 5 if paginate else len(coin_records)
|
|
365
364
|
# ripped from cmds/wallet_funcs.
|
|
366
365
|
for i in range(0, len(coin_records), num_per_screen):
|
|
367
|
-
for j in range(
|
|
366
|
+
for j in range(num_per_screen):
|
|
368
367
|
if i + j >= len(coin_records):
|
|
369
368
|
break
|
|
370
369
|
print_coin_record(
|
chia/cmds/wallet.py
CHANGED
|
@@ -1171,9 +1171,9 @@ def nft_sign_message(
|
|
|
1171
1171
|
@click.option("--no-did-ownership", help="Disable DID ownership support", is_flag=True, default=False)
|
|
1172
1172
|
@click.option("-nh", "--hash", help="NFT content hash", type=str, required=True)
|
|
1173
1173
|
@click.option("-u", "--uris", help="Comma separated list of URIs", type=str, required=True)
|
|
1174
|
-
@click.option("-mh", "--metadata-hash", help="NFT metadata hash", type=str, default=
|
|
1174
|
+
@click.option("-mh", "--metadata-hash", help="NFT metadata hash", type=str, default=None)
|
|
1175
1175
|
@click.option("-mu", "--metadata-uris", help="Comma separated list of metadata URIs", type=str)
|
|
1176
|
-
@click.option("-lh", "--license-hash", help="NFT license hash", type=str, default=
|
|
1176
|
+
@click.option("-lh", "--license-hash", help="NFT license hash", type=str, default=None)
|
|
1177
1177
|
@click.option("-lu", "--license-uris", help="Comma separated list of license URIs", type=str)
|
|
1178
1178
|
@click.option("-et", "--edition-total", help="NFT edition total", type=int, show_default=True, default=1)
|
|
1179
1179
|
@click.option("-en", "--edition-number", help="NFT edition number", show_default=True, default=1, type=int)
|