chia-blockchain 2.5.7rc3__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 +12 -7
- 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 +16 -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.7rc3.dist-info → chia_blockchain-2.5.8rc1.dist-info}/METADATA +6 -5
- {chia_blockchain-2.5.7rc3.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.7rc3.dist-info → chia_blockchain-2.5.8rc1.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.7rc3.dist-info → chia_blockchain-2.5.8rc1.dist-info}/entry_points.txt +0 -0
- {chia_blockchain-2.5.7rc3.dist-info → chia_blockchain-2.5.8rc1.dist-info}/licenses/LICENSE +0 -0
|
@@ -6,6 +6,7 @@ import pytest
|
|
|
6
6
|
from chia_rs.sized_bytes import bytes32
|
|
7
7
|
from chia_rs.sized_ints import uint64
|
|
8
8
|
|
|
9
|
+
from chia._tests.core.full_node.test_full_node import find_reward_coin
|
|
9
10
|
from chia._tests.util.db_connection import DBConnection
|
|
10
11
|
from chia.full_node.hint_store import HintStore
|
|
11
12
|
from chia.server.server import ChiaServer
|
|
@@ -151,7 +152,6 @@ async def test_hints_in_blockchain(
|
|
|
151
152
|
block_list_input=[],
|
|
152
153
|
guarantee_transaction_block=True,
|
|
153
154
|
farmer_reward_puzzle_hash=bt.pool_ph,
|
|
154
|
-
pool_reward_puzzle_hash=bt.pool_ph,
|
|
155
155
|
)
|
|
156
156
|
for block in blocks:
|
|
157
157
|
await full_node_1.full_node.add_block(block, None)
|
|
@@ -160,7 +160,7 @@ async def test_hints_in_blockchain(
|
|
|
160
160
|
puzzle_hash = bytes32(32 * b"\0")
|
|
161
161
|
amount = int_to_bytes(1)
|
|
162
162
|
hint = bytes32(32 * b"\5")
|
|
163
|
-
coin_spent = blocks[-1].
|
|
163
|
+
coin_spent = find_reward_coin(blocks[-1], bt.pool_ph)
|
|
164
164
|
condition_dict = {
|
|
165
165
|
ConditionOpcode.CREATE_COIN: [ConditionWithArgs(ConditionOpcode.CREATE_COIN, [puzzle_hash, amount, hint])]
|
|
166
166
|
}
|
|
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
|
3
3
|
import os
|
|
4
4
|
import struct
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import Optional
|
|
7
6
|
|
|
8
7
|
import pytest
|
|
9
8
|
from chia_rs import SubEpochSummary
|
|
@@ -23,11 +22,11 @@ def gen_block_hash(height: int) -> bytes32:
|
|
|
23
22
|
def gen_ses(height: int) -> SubEpochSummary:
|
|
24
23
|
prev_ses = gen_block_hash(height + 0xFA0000)
|
|
25
24
|
reward_chain_hash = gen_block_hash(height + 0xFC0000)
|
|
26
|
-
return SubEpochSummary(prev_ses, reward_chain_hash, uint8(0), None, None)
|
|
25
|
+
return SubEpochSummary(prev_ses, reward_chain_hash, uint8(0), None, None, None)
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
async def new_block(
|
|
30
|
-
db: DBWrapper2, block_hash: bytes32, parent: bytes32, height: int, is_peak: bool, ses:
|
|
29
|
+
db: DBWrapper2, block_hash: bytes32, parent: bytes32, height: int, is_peak: bool, ses: SubEpochSummary | None
|
|
31
30
|
) -> None:
|
|
32
31
|
async with db.writer_maybe_transaction() as conn:
|
|
33
32
|
cursor = await conn.execute(
|
|
@@ -67,7 +66,7 @@ async def setup_db(db: DBWrapper2) -> None:
|
|
|
67
66
|
# and the chain_id will be mixed in to the hashes, to form a separate chain at
|
|
68
67
|
# the same heights as the main chain
|
|
69
68
|
async def setup_chain(
|
|
70
|
-
db: DBWrapper2, length: int, *, chain_id: int = 0, ses_every:
|
|
69
|
+
db: DBWrapper2, length: int, *, chain_id: int = 0, ses_every: int | None = None, start_height: int = 0
|
|
71
70
|
) -> None:
|
|
72
71
|
height = start_height
|
|
73
72
|
peak_hash = gen_block_hash(height + chain_id * 65536)
|
|
@@ -6,22 +6,21 @@ or that they're failing for the right reason when they're invalid.
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
import logging
|
|
9
|
-
from typing import Optional
|
|
10
9
|
|
|
11
10
|
import pytest
|
|
12
|
-
from chia_rs import AugSchemeMPL, FullBlock, G2Element, SpendBundle
|
|
11
|
+
from chia_rs import AugSchemeMPL, CoinRecord, FullBlock, G2Element, SpendBundle
|
|
13
12
|
from chia_rs.sized_ints import uint32, uint64
|
|
14
13
|
from clvm_tools.binutils import assemble
|
|
15
14
|
|
|
16
15
|
from chia._tests.blockchain.blockchain_test_utils import _validate_and_add_block
|
|
17
16
|
from chia._tests.conftest import ConsensusMode
|
|
18
17
|
from chia._tests.core.full_node.ram_db import create_ram_blockchain
|
|
18
|
+
from chia._tests.core.full_node.test_full_node import find_reward_coin
|
|
19
19
|
from chia.consensus.condition_tools import agg_sig_additional_data
|
|
20
20
|
from chia.simulator.block_tools import BlockTools
|
|
21
21
|
from chia.simulator.keyring import TempKeyring
|
|
22
22
|
from chia.types.blockchain_format.program import Program
|
|
23
23
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
24
|
-
from chia.types.coin_record import CoinRecord
|
|
25
24
|
from chia.types.coin_spend import make_spend
|
|
26
25
|
from chia.types.condition_opcodes import ConditionOpcode
|
|
27
26
|
from chia.util.casts import int_to_bytes
|
|
@@ -48,7 +47,6 @@ async def initial_blocks(bt: BlockTools, block_count: int = 4) -> list[FullBlock
|
|
|
48
47
|
block_count,
|
|
49
48
|
guarantee_transaction_block=True,
|
|
50
49
|
farmer_reward_puzzle_hash=EASY_PUZZLE_HASH,
|
|
51
|
-
pool_reward_puzzle_hash=EASY_PUZZLE_HASH,
|
|
52
50
|
genesis_timestamp=uint64(10000),
|
|
53
51
|
time_per_block=10,
|
|
54
52
|
)
|
|
@@ -59,7 +57,7 @@ async def check_spend_bundle_validity(
|
|
|
59
57
|
bt: BlockTools,
|
|
60
58
|
blocks: list[FullBlock],
|
|
61
59
|
spend_bundle: SpendBundle,
|
|
62
|
-
expected_err:
|
|
60
|
+
expected_err: Err | None = None,
|
|
63
61
|
) -> tuple[list[CoinRecord], list[CoinRecord], FullBlock]:
|
|
64
62
|
"""
|
|
65
63
|
This test helper create an extra block after the given blocks that contains the given
|
|
@@ -96,13 +94,13 @@ async def check_spend_bundle_validity(
|
|
|
96
94
|
async def check_conditions(
|
|
97
95
|
bt: BlockTools,
|
|
98
96
|
condition_solution: Program,
|
|
99
|
-
expected_err:
|
|
97
|
+
expected_err: Err | None = None,
|
|
100
98
|
spend_reward_index: int = -2,
|
|
101
99
|
*,
|
|
102
100
|
aggsig: G2Element = G2Element(),
|
|
103
101
|
) -> tuple[list[CoinRecord], list[CoinRecord], FullBlock]:
|
|
104
102
|
blocks = await initial_blocks(bt)
|
|
105
|
-
coin = blocks[spend_reward_index]
|
|
103
|
+
coin = find_reward_coin(blocks[spend_reward_index], EASY_PUZZLE_HASH)
|
|
106
104
|
|
|
107
105
|
coin_spend = make_spend(coin, EASY_PUZZLE, condition_solution)
|
|
108
106
|
spend_bundle = SpendBundle([coin_spend], aggsig)
|
|
@@ -144,9 +142,9 @@ class TestConditions:
|
|
|
144
142
|
# once the hard fork activates, blocks no longer pay the cost of the ROM
|
|
145
143
|
# generator (which includes hashing all puzzles).
|
|
146
144
|
if consensus_mode >= ConsensusMode.HARD_FORK_2_0:
|
|
147
|
-
block_base_cost = 756064
|
|
145
|
+
block_base_cost = 756064 - 12000
|
|
148
146
|
else:
|
|
149
|
-
block_base_cost = 761056
|
|
147
|
+
block_base_cost = 761056 - 12000
|
|
150
148
|
assert new_block.transactions_info is not None
|
|
151
149
|
assert new_block.transactions_info.cost - block_base_cost == expected_cost
|
|
152
150
|
|
|
@@ -165,11 +163,11 @@ class TestConditions:
|
|
|
165
163
|
_additions, _removals, new_block = await check_conditions(bt, conditions)
|
|
166
164
|
|
|
167
165
|
if consensus_mode < ConsensusMode.HARD_FORK_2_0:
|
|
168
|
-
block_base_cost = 737056
|
|
166
|
+
block_base_cost = 737056 - 12000
|
|
169
167
|
else:
|
|
170
168
|
# once the hard fork activates, blocks no longer pay the cost of the ROM
|
|
171
169
|
# generator (which includes hashing all puzzles).
|
|
172
|
-
block_base_cost = 732064
|
|
170
|
+
block_base_cost = 732064 - 12000
|
|
173
171
|
|
|
174
172
|
# the block_base_cost includes the cost of the bytes for the condition
|
|
175
173
|
# with 2 bytes argument. This test works as long as the conditions it's
|
|
@@ -268,7 +266,7 @@ class TestConditions:
|
|
|
268
266
|
@pytest.mark.anyio
|
|
269
267
|
async def test_invalid_my_id(self, bt: BlockTools) -> None:
|
|
270
268
|
blocks = await initial_blocks(bt)
|
|
271
|
-
coin = blocks[-2]
|
|
269
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
272
270
|
wrong_name = bytearray(coin.name())
|
|
273
271
|
wrong_name[-1] ^= 1
|
|
274
272
|
conditions = Program.to(assemble(f"(({ConditionOpcode.ASSERT_MY_COIN_ID[0]} 0x{wrong_name.hex()}))"))
|
|
@@ -277,14 +275,14 @@ class TestConditions:
|
|
|
277
275
|
@pytest.mark.anyio
|
|
278
276
|
async def test_valid_my_id(self, bt: BlockTools) -> None:
|
|
279
277
|
blocks = await initial_blocks(bt)
|
|
280
|
-
coin = blocks[-2]
|
|
278
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
281
279
|
conditions = Program.to(assemble(f"(({ConditionOpcode.ASSERT_MY_COIN_ID[0]} 0x{coin.name().hex()}))"))
|
|
282
280
|
await check_conditions(bt, conditions)
|
|
283
281
|
|
|
284
282
|
@pytest.mark.anyio
|
|
285
283
|
async def test_invalid_coin_announcement(self, bt: BlockTools) -> None:
|
|
286
284
|
blocks = await initial_blocks(bt)
|
|
287
|
-
coin = blocks[-2]
|
|
285
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
288
286
|
announce = AssertCoinAnnouncement(asserted_id=coin.name(), asserted_msg=b"test_bad")
|
|
289
287
|
conditions = Program.to(
|
|
290
288
|
assemble(
|
|
@@ -297,7 +295,7 @@ class TestConditions:
|
|
|
297
295
|
@pytest.mark.anyio
|
|
298
296
|
async def test_valid_coin_announcement(self, bt: BlockTools) -> None:
|
|
299
297
|
blocks = await initial_blocks(bt)
|
|
300
|
-
coin = blocks[-2]
|
|
298
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
301
299
|
announce = AssertCoinAnnouncement(asserted_id=coin.name(), asserted_msg=b"test")
|
|
302
300
|
conditions = Program.to(
|
|
303
301
|
assemble(
|
|
@@ -366,7 +364,7 @@ class TestConditions:
|
|
|
366
364
|
condition1: str,
|
|
367
365
|
condition2: str,
|
|
368
366
|
num: int,
|
|
369
|
-
expect_err:
|
|
367
|
+
expect_err: Err | None,
|
|
370
368
|
bt: BlockTools,
|
|
371
369
|
) -> None:
|
|
372
370
|
"""
|
|
@@ -375,7 +373,7 @@ class TestConditions:
|
|
|
375
373
|
"""
|
|
376
374
|
|
|
377
375
|
blocks = await initial_blocks(bt)
|
|
378
|
-
coin = blocks[-2]
|
|
376
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
379
377
|
coin_announcement = AssertCoinAnnouncement(asserted_id=coin.name(), asserted_msg=b"test")
|
|
380
378
|
puzzle_announcement = AssertPuzzleAnnouncement(asserted_ph=EASY_PUZZLE_HASH, asserted_msg=b"test")
|
|
381
379
|
|
|
@@ -405,7 +403,7 @@ class TestConditions:
|
|
|
405
403
|
@pytest.mark.anyio
|
|
406
404
|
async def test_coin_messages(self, bt: BlockTools, consensus_mode: ConsensusMode) -> None:
|
|
407
405
|
blocks = await initial_blocks(bt)
|
|
408
|
-
coin = blocks[-2]
|
|
406
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
409
407
|
conditions = Program.to(
|
|
410
408
|
assemble(
|
|
411
409
|
f"(({ConditionOpcode.SEND_MESSAGE[0]} 0x3f 'test' 0x{coin.name().hex()})"
|
|
@@ -417,7 +415,7 @@ class TestConditions:
|
|
|
417
415
|
@pytest.mark.anyio
|
|
418
416
|
async def test_parent_messages(self, bt: BlockTools, consensus_mode: ConsensusMode) -> None:
|
|
419
417
|
blocks = await initial_blocks(bt)
|
|
420
|
-
coin = blocks[-2]
|
|
418
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
421
419
|
conditions = Program.to(
|
|
422
420
|
assemble(
|
|
423
421
|
f"(({ConditionOpcode.SEND_MESSAGE[0]} 0x24 'test' 0x{coin.parent_coin_info})"
|
|
@@ -438,7 +436,7 @@ class TestConditions:
|
|
|
438
436
|
('(66 0x27 "foo" {coin}) (67 0x3f "foo" {coin})', Err.MESSAGE_NOT_SENT_OR_RECEIVED),
|
|
439
437
|
('(66 0 "foo") (67 0 "foo")', None),
|
|
440
438
|
('(66 0 "foobar") (67 0 "foo")', Err.MESSAGE_NOT_SENT_OR_RECEIVED),
|
|
441
|
-
('(66 0x09 "foo"
|
|
439
|
+
('(66 0x09 "foo" 250000000000) (67 0x09 "foo" 250000000000)', None),
|
|
442
440
|
('(66 -1 "foo")', Err.INVALID_MESSAGE_MODE),
|
|
443
441
|
('(67 -1 "foo")', Err.INVALID_MESSAGE_MODE),
|
|
444
442
|
('(66 0x40 "foo")', Err.INVALID_MESSAGE_MODE),
|
|
@@ -446,10 +444,10 @@ class TestConditions:
|
|
|
446
444
|
],
|
|
447
445
|
)
|
|
448
446
|
async def test_message_conditions(
|
|
449
|
-
self, bt: BlockTools, consensus_mode: ConsensusMode, conds: str, expected:
|
|
447
|
+
self, bt: BlockTools, consensus_mode: ConsensusMode, conds: str, expected: Err | None
|
|
450
448
|
) -> None:
|
|
451
449
|
blocks = await initial_blocks(bt)
|
|
452
|
-
coin = blocks[-2]
|
|
450
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
453
451
|
conditions = Program.to(assemble("(" + conds.format(coin="0x" + coin.name().hex()) + ")"))
|
|
454
452
|
|
|
455
453
|
await check_conditions(bt, conditions, expected_err=expected)
|
|
@@ -522,7 +520,7 @@ class TestConditions:
|
|
|
522
520
|
|
|
523
521
|
sk = AugSchemeMPL.key_gen(b"8" * 32)
|
|
524
522
|
pubkey = sk.get_g1()
|
|
525
|
-
coin = blocks[-2]
|
|
523
|
+
coin = find_reward_coin(blocks[-2], EASY_PUZZLE_HASH)
|
|
526
524
|
for msg in [
|
|
527
525
|
c.AGG_SIG_ME_ADDITIONAL_DATA,
|
|
528
526
|
c.AGG_SIG_PARENT_ADDITIONAL_DATA,
|