chia-blockchain 2.5.0rc2__py3-none-any.whl → 2.5.1rc2__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/README.md +1 -1
- chia/_tests/blockchain/blockchain_test_utils.py +24 -26
- chia/_tests/blockchain/test_augmented_chain.py +6 -8
- chia/_tests/blockchain/test_blockchain.py +409 -307
- chia/_tests/blockchain/test_blockchain_transactions.py +56 -75
- chia/_tests/blockchain/test_build_chains.py +11 -13
- chia/_tests/blockchain/test_get_block_generator.py +8 -8
- chia/_tests/blockchain/test_lookup_fork_chain.py +3 -4
- chia/_tests/build-init-files.py +3 -4
- chia/_tests/build-job-matrix.py +9 -9
- chia/_tests/check_sql_statements.py +2 -3
- chia/_tests/clvm/benchmark_costs.py +1 -1
- chia/_tests/clvm/coin_store.py +7 -5
- chia/_tests/clvm/test_chialisp_deserialization.py +8 -8
- chia/_tests/clvm/test_condition_codes.py +2 -2
- chia/_tests/clvm/test_curry_and_treehash.py +2 -4
- chia/_tests/clvm/test_message_conditions.py +184 -0
- chia/_tests/clvm/test_puzzle_compression.py +1 -2
- chia/_tests/clvm/test_puzzle_drivers.py +3 -3
- chia/_tests/clvm/test_puzzles.py +13 -18
- chia/_tests/clvm/test_singletons.py +17 -17
- chia/_tests/clvm/test_spend_sim.py +7 -7
- chia/_tests/cmds/cmd_test_utils.py +42 -45
- chia/_tests/cmds/conftest.py +2 -2
- chia/_tests/cmds/test_click_types.py +21 -16
- chia/_tests/cmds/test_cmd_framework.py +255 -35
- chia/_tests/cmds/test_cmds_util.py +2 -2
- chia/_tests/cmds/test_daemon.py +3 -3
- chia/_tests/cmds/test_dev_gh.py +131 -0
- chia/_tests/cmds/test_farm_cmd.py +1 -2
- chia/_tests/cmds/test_show.py +6 -6
- chia/_tests/cmds/test_tx_config_args.py +2 -1
- chia/_tests/cmds/wallet/test_dao.py +23 -23
- chia/_tests/cmds/wallet/test_did.py +29 -29
- chia/_tests/cmds/wallet/test_nft.py +24 -23
- chia/_tests/cmds/wallet/test_notifications.py +8 -8
- chia/_tests/cmds/wallet/test_tx_decorators.py +3 -3
- chia/_tests/cmds/wallet/test_vcs.py +97 -73
- chia/_tests/cmds/wallet/test_wallet.py +74 -75
- chia/_tests/cmds/wallet/test_wallet_check.py +5 -7
- chia/_tests/conftest.py +153 -38
- chia/_tests/connection_utils.py +7 -6
- chia/_tests/core/cmds/test_beta.py +3 -3
- chia/_tests/core/cmds/test_keys.py +6 -6
- chia/_tests/core/cmds/test_wallet.py +3 -3
- chia/_tests/core/consensus/test_block_creation.py +3 -5
- chia/_tests/core/custom_types/test_coin.py +1 -3
- chia/_tests/core/custom_types/test_spend_bundle.py +3 -4
- chia/_tests/core/daemon/test_daemon.py +58 -58
- chia/_tests/core/daemon/test_keychain_proxy.py +2 -1
- chia/_tests/core/data_layer/conftest.py +4 -3
- chia/_tests/core/data_layer/test_data_cli.py +1 -2
- chia/_tests/core/data_layer/test_data_layer.py +5 -5
- chia/_tests/core/data_layer/test_data_layer_util.py +8 -9
- chia/_tests/core/data_layer/test_data_rpc.py +75 -93
- chia/_tests/core/data_layer/test_data_store.py +38 -37
- chia/_tests/core/data_layer/test_data_store_schema.py +11 -11
- chia/_tests/core/data_layer/util.py +11 -10
- chia/_tests/core/farmer/test_farmer_api.py +6 -4
- chia/_tests/core/full_node/full_sync/test_full_sync.py +5 -10
- chia/_tests/core/full_node/ram_db.py +2 -2
- chia/_tests/core/full_node/stores/test_block_store.py +113 -11
- chia/_tests/core/full_node/stores/test_coin_store.py +37 -28
- chia/_tests/core/full_node/stores/test_full_node_store.py +34 -30
- chia/_tests/core/full_node/stores/test_hint_store.py +3 -4
- chia/_tests/core/full_node/test_address_manager.py +2 -2
- chia/_tests/core/full_node/test_block_height_map.py +1 -1
- chia/_tests/core/full_node/test_conditions.py +10 -12
- chia/_tests/core/full_node/test_full_node.py +2077 -1822
- chia/_tests/core/full_node/test_generator_tools.py +4 -4
- chia/_tests/core/full_node/test_hint_management.py +2 -2
- chia/_tests/core/full_node/test_performance.py +2 -5
- chia/_tests/core/full_node/test_subscriptions.py +4 -4
- chia/_tests/core/full_node/test_tx_processing_queue.py +5 -4
- chia/_tests/core/make_block_generator.py +5 -7
- chia/_tests/core/mempool/test_mempool.py +205 -208
- chia/_tests/core/mempool/test_mempool_fee_protocol.py +5 -5
- chia/_tests/core/mempool/test_mempool_item_queries.py +2 -4
- chia/_tests/core/mempool/test_mempool_manager.py +109 -80
- chia/_tests/core/mempool/test_mempool_performance.py +3 -4
- chia/_tests/core/mempool/test_singleton_fast_forward.py +12 -12
- chia/_tests/core/server/flood.py +6 -4
- chia/_tests/core/server/serve.py +10 -7
- chia/_tests/core/server/test_api_protocol.py +21 -0
- chia/_tests/core/server/test_capabilities.py +3 -5
- chia/_tests/core/server/test_dos.py +15 -16
- chia/_tests/core/server/test_loop.py +14 -10
- chia/_tests/core/server/test_node_discovery.py +1 -2
- chia/_tests/core/server/test_rate_limits.py +156 -44
- chia/_tests/core/server/test_server.py +8 -7
- chia/_tests/core/services/test_services.py +59 -37
- chia/_tests/core/ssl/test_ssl.py +5 -3
- chia/_tests/core/test_cost_calculation.py +5 -6
- chia/_tests/core/test_crawler.py +2 -2
- chia/_tests/core/test_db_conversion.py +5 -4
- chia/_tests/core/test_db_validation.py +6 -5
- chia/_tests/core/test_farmer_harvester_rpc.py +8 -7
- chia/_tests/core/test_filter.py +3 -5
- chia/_tests/core/test_full_node_rpc.py +64 -90
- chia/_tests/core/test_merkle_set.py +10 -10
- chia/_tests/core/test_program.py +2 -4
- chia/_tests/core/test_rpc_util.py +1 -2
- chia/_tests/core/test_seeder.py +124 -12
- chia/_tests/core/util/test_block_cache.py +5 -5
- chia/_tests/core/util/test_cached_bls.py +3 -3
- chia/_tests/core/util/test_config.py +13 -13
- chia/_tests/core/util/test_files.py +2 -2
- chia/_tests/core/util/test_jsonify.py +9 -9
- chia/_tests/core/util/test_keychain.py +13 -5
- chia/_tests/core/util/test_keyring_wrapper.py +6 -5
- chia/_tests/core/util/test_log_exceptions.py +3 -3
- chia/_tests/core/util/test_streamable.py +38 -38
- chia/_tests/db/test_db_wrapper.py +13 -12
- chia/_tests/environments/common.py +2 -2
- chia/_tests/environments/full_node.py +2 -2
- chia/_tests/environments/wallet.py +109 -48
- chia/_tests/farmer_harvester/test_farmer.py +35 -35
- chia/_tests/farmer_harvester/test_farmer_harvester.py +17 -17
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +6 -5
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +73 -46
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +8 -8
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +47 -47
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +6 -7
- chia/_tests/fee_estimation/test_mempoolitem_height_added.py +11 -11
- chia/_tests/generator/test_compression.py +13 -30
- chia/_tests/generator/test_generator_types.py +3 -3
- chia/_tests/generator/test_rom.py +7 -9
- chia/_tests/plot_sync/test_delta.py +2 -3
- chia/_tests/plot_sync/test_plot_sync.py +25 -24
- chia/_tests/plot_sync/test_receiver.py +9 -9
- chia/_tests/plot_sync/test_sender.py +1 -1
- chia/_tests/plot_sync/test_sync_simulated.py +27 -26
- chia/_tests/plot_sync/util.py +2 -1
- chia/_tests/plotting/test_plot_manager.py +54 -11
- chia/_tests/plotting/util.py +2 -3
- chia/_tests/pools/test_pool_cli_parsing.py +128 -0
- chia/_tests/pools/test_pool_cmdline.py +993 -15
- chia/_tests/pools/test_pool_config.py +3 -5
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -11
- chia/_tests/pools/test_pool_rpc.py +203 -90
- chia/_tests/pools/test_pool_wallet.py +12 -8
- chia/_tests/pools/test_wallet_pool_store.py +3 -3
- chia/_tests/process_junit.py +16 -17
- chia/_tests/rpc/test_rpc_client.py +59 -2
- chia/_tests/rpc/test_rpc_server.py +183 -0
- chia/_tests/simulation/test_simulation.py +5 -5
- chia/_tests/simulation/test_simulator.py +8 -10
- chia/_tests/simulation/test_start_simulator.py +5 -4
- chia/_tests/timelord/test_new_peak.py +19 -19
- chia/_tests/tools/test_run_block.py +1 -2
- chia/_tests/tools/test_virtual_project.py +591 -0
- chia/_tests/util/benchmark_cost.py +9 -9
- chia/_tests/util/benchmarks.py +1 -2
- chia/_tests/util/blockchain.py +12 -11
- chia/_tests/util/blockchain_mock.py +15 -15
- chia/_tests/util/build_network_protocol_files.py +12 -12
- chia/_tests/util/db_connection.py +3 -2
- chia/_tests/util/full_sync.py +14 -6
- chia/_tests/util/gen_ssl_certs.py +4 -5
- chia/_tests/util/generator_tools_testing.py +5 -7
- chia/_tests/util/get_name_puzzle_conditions.py +52 -0
- chia/_tests/util/key_tool.py +2 -3
- chia/_tests/util/misc.py +59 -106
- chia/_tests/util/network_protocol_data.py +7 -9
- chia/_tests/util/protocol_messages_json.py +112 -111
- chia/_tests/util/rpc.py +3 -0
- chia/_tests/util/run_block.py +16 -16
- chia/_tests/util/setup_nodes.py +25 -23
- chia/{clvm → _tests/util}/spend_sim.py +59 -55
- chia/_tests/util/split_managers.py +12 -9
- chia/_tests/util/temp_file.py +1 -1
- chia/_tests/util/test_action_scope.py +2 -1
- chia/_tests/util/test_async_pool.py +8 -8
- chia/_tests/util/test_build_job_matrix.py +2 -3
- chia/_tests/util/test_condition_tools.py +4 -6
- chia/_tests/util/test_config.py +5 -5
- chia/_tests/util/test_dump_keyring.py +1 -1
- chia/_tests/util/test_full_block_utils.py +19 -11
- chia/_tests/util/test_limited_semaphore.py +4 -3
- chia/_tests/util/test_logging_filter.py +2 -3
- chia/_tests/util/test_misc.py +29 -28
- chia/_tests/util/test_network.py +32 -31
- chia/_tests/util/test_network_protocol_files.py +2 -3
- chia/_tests/util/test_network_protocol_json.py +1 -0
- chia/_tests/util/test_network_protocol_test.py +18 -19
- chia/_tests/util/test_paginator.py +3 -4
- chia/_tests/util/test_pprint.py +1 -1
- chia/_tests/util/test_priority_mutex.py +18 -17
- chia/_tests/util/test_recursive_replace.py +2 -2
- chia/_tests/util/test_testnet_overrides.py +3 -3
- chia/_tests/util/test_timing.py +1 -1
- chia/_tests/util/test_trusted_peer.py +2 -2
- chia/_tests/util/time_out_assert.py +43 -6
- chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +13 -13
- chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +1 -1
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +117 -29
- chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +15 -15
- chia/_tests/wallet/cat_wallet/test_trades.py +50 -28
- chia/_tests/wallet/clawback/test_clawback_decorator.py +3 -5
- chia/_tests/wallet/clawback/test_clawback_lifecycle.py +6 -6
- chia/_tests/wallet/clawback/test_clawback_metadata.py +1 -2
- chia/_tests/wallet/conftest.py +135 -74
- chia/_tests/wallet/dao_wallet/test_dao_clvm.py +25 -17
- chia/_tests/wallet/dao_wallet/test_dao_wallets.py +75 -75
- chia/_tests/wallet/db_wallet/test_db_graftroot.py +10 -12
- chia/_tests/wallet/db_wallet/test_dl_offers.py +6 -6
- chia/_tests/wallet/db_wallet/test_dl_wallet.py +18 -18
- chia/_tests/wallet/did_wallet/test_did.py +1277 -474
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +12 -11
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +115 -105
- chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +6 -7
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +16 -16
- chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +3 -3
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +38 -12
- chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +1 -1
- chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +31 -33
- chia/_tests/wallet/rpc/test_wallet_rpc.py +218 -171
- chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +36 -37
- chia/_tests/wallet/sync/test_wallet_sync.py +241 -78
- chia/_tests/wallet/test_address_type.py +20 -20
- chia/_tests/wallet/test_clvm_streamable.py +5 -5
- chia/_tests/wallet/test_coin_management.py +354 -0
- chia/_tests/wallet/test_coin_selection.py +34 -35
- chia/_tests/wallet/test_conditions.py +28 -16
- chia/_tests/wallet/test_debug_spend_bundle.py +156 -14
- chia/_tests/wallet/test_new_wallet_protocol.py +29 -31
- chia/_tests/wallet/test_nft_store.py +1 -2
- chia/_tests/wallet/test_notifications.py +2 -2
- chia/_tests/wallet/test_offer_parsing_performance.py +1 -1
- chia/_tests/wallet/test_puzzle_store.py +2 -3
- chia/_tests/wallet/test_sign_coin_spends.py +3 -3
- chia/_tests/wallet/test_signer_protocol.py +33 -34
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +29 -29
- chia/_tests/wallet/test_taproot.py +1 -1
- chia/_tests/wallet/test_transaction_store.py +23 -19
- chia/_tests/wallet/test_util.py +36 -32
- chia/_tests/wallet/test_wallet.py +37 -37
- chia/_tests/wallet/test_wallet_action_scope.py +8 -8
- chia/_tests/wallet/test_wallet_blockchain.py +4 -6
- chia/_tests/wallet/test_wallet_coin_store.py +34 -34
- chia/_tests/wallet/test_wallet_node.py +69 -72
- chia/_tests/wallet/test_wallet_retry.py +3 -3
- chia/_tests/wallet/test_wallet_state_manager.py +12 -5
- chia/_tests/wallet/test_wallet_trade_store.py +2 -2
- chia/_tests/wallet/test_wallet_utils.py +5 -4
- chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -3
- chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +18 -18
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +69 -40
- chia/_tests/wallet/wallet_block_tools.py +27 -27
- chia/_tests/weight_proof/test_weight_proof.py +30 -30
- chia/apis.py +19 -0
- chia/cmds/beta.py +8 -7
- chia/cmds/beta_funcs.py +15 -11
- chia/cmds/check_wallet_db.py +29 -27
- chia/cmds/chia.py +17 -9
- chia/cmds/cmd_classes.py +87 -79
- chia/cmds/cmd_helpers.py +242 -0
- chia/cmds/cmds_util.py +56 -66
- chia/cmds/coin_funcs.py +168 -153
- chia/cmds/coins.py +156 -194
- chia/cmds/configure.py +4 -3
- chia/cmds/dao.py +89 -33
- chia/cmds/dao_funcs.py +55 -33
- chia/cmds/data.py +7 -6
- chia/cmds/data_funcs.py +26 -21
- chia/cmds/db.py +4 -3
- 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.py +2 -0
- chia/cmds/farm.py +18 -5
- chia/cmds/farm_funcs.py +17 -24
- chia/cmds/gh.py +275 -0
- chia/cmds/init.py +4 -11
- chia/cmds/init_funcs.py +9 -9
- chia/cmds/installers.py +5 -3
- chia/cmds/keys.py +56 -39
- chia/cmds/keys_funcs.py +30 -31
- chia/cmds/netspace.py +6 -3
- chia/cmds/netspace_funcs.py +3 -2
- chia/cmds/param_types.py +16 -6
- chia/cmds/passphrase.py +8 -7
- chia/cmds/passphrase_funcs.py +7 -61
- chia/cmds/peer.py +2 -1
- chia/cmds/peer_funcs.py +5 -5
- chia/cmds/plotnft.py +207 -153
- chia/cmds/plotnft_funcs.py +205 -174
- chia/cmds/plots.py +14 -6
- chia/cmds/plotters.py +2 -1
- chia/cmds/rpc.py +48 -28
- chia/cmds/show.py +2 -1
- chia/cmds/show_funcs.py +7 -6
- chia/cmds/signer.py +50 -58
- chia/cmds/sim.py +22 -14
- chia/cmds/sim_funcs.py +11 -11
- chia/cmds/start.py +3 -3
- chia/cmds/start_funcs.py +9 -12
- chia/cmds/stop.py +4 -3
- chia/cmds/units.py +1 -3
- chia/cmds/wallet.py +252 -96
- chia/cmds/wallet_funcs.py +217 -143
- chia/consensus/block_body_validation.py +133 -86
- chia/consensus/block_creation.py +42 -21
- chia/consensus/block_header_validation.py +32 -37
- chia/consensus/block_record.py +1 -2
- chia/consensus/blockchain.py +167 -180
- chia/consensus/blockchain_interface.py +10 -10
- chia/consensus/constants.py +2 -2
- chia/consensus/default_constants.py +3 -4
- chia/consensus/difficulty_adjustment.py +5 -5
- chia/consensus/find_fork_point.py +5 -5
- chia/consensus/full_block_to_block_record.py +4 -4
- chia/consensus/get_block_challenge.py +2 -2
- chia/consensus/get_block_generator.py +4 -3
- chia/consensus/multiprocess_validation.py +207 -304
- chia/consensus/vdf_info_computation.py +3 -3
- chia/daemon/client.py +46 -27
- chia/daemon/keychain_proxy.py +10 -9
- chia/daemon/keychain_server.py +18 -18
- chia/daemon/server.py +103 -113
- chia/daemon/windows_signal.py +2 -2
- chia/data_layer/data_layer.py +64 -76
- chia/data_layer/data_layer_api.py +8 -0
- chia/data_layer/data_layer_errors.py +3 -3
- chia/data_layer/data_layer_server.py +2 -2
- chia/data_layer/data_layer_util.py +71 -71
- chia/data_layer/data_layer_wallet.py +63 -67
- chia/data_layer/data_store.py +72 -72
- chia/data_layer/dl_wallet_store.py +10 -10
- chia/data_layer/download_data.py +5 -5
- chia/data_layer/s3_plugin_service.py +9 -9
- chia/data_layer/util/benchmark.py +0 -1
- chia/data_layer/util/plugin.py +2 -3
- chia/farmer/farmer.py +46 -43
- chia/farmer/farmer_api.py +27 -21
- chia/full_node/block_height_map.py +6 -6
- chia/full_node/block_store.py +41 -35
- chia/full_node/coin_store.py +42 -41
- chia/full_node/fee_estimate.py +2 -2
- chia/full_node/fee_estimation.py +1 -2
- chia/full_node/fee_history.py +5 -6
- chia/full_node/fee_tracker.py +24 -24
- chia/full_node/full_node.py +574 -300
- chia/full_node/full_node_api.py +181 -130
- chia/full_node/full_node_store.py +43 -43
- chia/full_node/hint_management.py +4 -4
- chia/full_node/hint_store.py +9 -10
- chia/full_node/mempool.py +25 -19
- chia/full_node/mempool_check_conditions.py +11 -42
- chia/full_node/mempool_manager.py +48 -53
- chia/full_node/pending_tx_cache.py +9 -9
- chia/full_node/subscriptions.py +23 -24
- chia/full_node/sync_store.py +8 -7
- chia/full_node/tx_processing_queue.py +3 -3
- chia/full_node/util/__init__.py +0 -0
- chia/full_node/weight_proof.py +79 -78
- chia/harvester/harvester.py +9 -8
- chia/harvester/harvester_api.py +19 -13
- chia/introducer/introducer.py +7 -5
- chia/introducer/introducer_api.py +9 -3
- chia/legacy/keyring.py +6 -5
- chia/plot_sync/delta.py +8 -8
- chia/plot_sync/receiver.py +12 -11
- chia/plot_sync/sender.py +15 -12
- chia/plotters/bladebit.py +12 -12
- chia/plotters/chiapos.py +2 -2
- chia/plotters/madmax.py +8 -8
- chia/plotters/plotters.py +6 -6
- chia/plotters/plotters_util.py +6 -4
- chia/plotting/cache.py +8 -7
- chia/plotting/check_plots.py +8 -8
- chia/plotting/create_plots.py +6 -6
- chia/plotting/manager.py +22 -22
- chia/plotting/util.py +31 -19
- chia/pools/pool_config.py +7 -7
- chia/pools/pool_puzzles.py +16 -16
- chia/pools/pool_wallet.py +64 -57
- chia/pools/pool_wallet_info.py +3 -3
- chia/protocols/full_node_protocol.py +3 -3
- chia/protocols/harvester_protocol.py +12 -12
- chia/protocols/introducer_protocol.py +1 -2
- chia/protocols/protocol_message_types.py +4 -4
- chia/protocols/protocol_state_machine.py +2 -2
- chia/protocols/protocol_timing.py +1 -0
- chia/protocols/shared_protocol.py +3 -3
- chia/protocols/timelord_protocol.py +2 -2
- chia/protocols/wallet_protocol.py +33 -33
- chia/rpc/crawler_rpc_api.py +12 -7
- chia/rpc/data_layer_rpc_api.py +49 -44
- chia/rpc/data_layer_rpc_client.py +41 -41
- chia/rpc/data_layer_rpc_util.py +7 -11
- chia/rpc/farmer_rpc_api.py +32 -27
- chia/rpc/farmer_rpc_client.py +14 -14
- chia/rpc/full_node_rpc_api.py +53 -48
- chia/rpc/full_node_rpc_client.py +30 -30
- chia/rpc/harvester_rpc_api.py +16 -11
- chia/rpc/harvester_rpc_client.py +6 -6
- chia/rpc/rpc_client.py +34 -14
- chia/rpc/rpc_server.py +117 -43
- chia/rpc/timelord_rpc_api.py +9 -4
- chia/rpc/util.py +11 -211
- chia/rpc/wallet_request_types.py +276 -60
- chia/rpc/wallet_rpc_api.py +563 -399
- chia/rpc/wallet_rpc_client.py +220 -250
- chia/seeder/crawl_store.py +6 -8
- chia/seeder/crawler.py +23 -36
- chia/seeder/crawler_api.py +28 -22
- chia/seeder/dns_server.py +99 -50
- chia/seeder/start_crawler.py +13 -9
- chia/server/address_manager.py +19 -19
- chia/server/address_manager_store.py +17 -17
- chia/server/api_protocol.py +106 -1
- chia/server/capabilities.py +3 -3
- chia/server/chia_policy.py +17 -16
- chia/server/introducer_peers.py +3 -3
- chia/server/node_discovery.py +34 -38
- chia/server/rate_limit_numbers.py +26 -16
- chia/server/rate_limits.py +67 -27
- chia/server/server.py +52 -31
- chia/server/signal_handlers.py +6 -3
- chia/server/ssl_context.py +5 -5
- chia/server/start_data_layer.py +37 -23
- chia/server/start_farmer.py +28 -16
- chia/server/start_full_node.py +29 -23
- chia/server/start_harvester.py +28 -15
- chia/server/start_introducer.py +27 -15
- chia/server/start_service.py +17 -29
- chia/server/start_timelord.py +25 -18
- chia/server/start_wallet.py +22 -18
- chia/server/upnp.py +4 -3
- chia/server/ws_connection.py +68 -54
- chia/simulator/add_blocks_in_batches.py +54 -0
- chia/simulator/block_tools.py +65 -64
- chia/simulator/full_node_simulator.py +66 -74
- chia/simulator/setup_services.py +10 -9
- chia/simulator/simulator_full_node_rpc_api.py +12 -14
- chia/simulator/simulator_full_node_rpc_client.py +3 -5
- chia/simulator/simulator_test_tools.py +8 -7
- chia/simulator/socket.py +1 -4
- chia/simulator/ssl_certs.py +5 -5
- chia/simulator/ssl_certs_1.py +2 -4
- chia/simulator/ssl_certs_10.py +2 -4
- chia/simulator/ssl_certs_2.py +2 -4
- chia/simulator/ssl_certs_3.py +2 -4
- chia/simulator/ssl_certs_4.py +2 -4
- chia/simulator/ssl_certs_5.py +2 -4
- chia/simulator/ssl_certs_6.py +2 -4
- chia/simulator/ssl_certs_7.py +2 -4
- chia/simulator/ssl_certs_8.py +2 -4
- chia/simulator/ssl_certs_9.py +2 -4
- chia/simulator/start_simulator.py +14 -6
- chia/simulator/wallet_tools.py +21 -20
- chia/ssl/create_ssl.py +11 -11
- chia/timelord/iters_from_block.py +2 -2
- chia/timelord/timelord.py +57 -33
- chia/timelord/timelord_api.py +12 -6
- chia/timelord/timelord_launcher.py +10 -8
- chia/timelord/timelord_state.py +5 -5
- chia/types/block_protocol.py +2 -2
- chia/types/blockchain_format/coin.py +3 -3
- chia/types/blockchain_format/program.py +17 -18
- chia/types/blockchain_format/tree_hash.py +9 -9
- chia/types/coin_spend.py +8 -8
- chia/types/condition_with_args.py +1 -2
- chia/types/eligible_coin_spends.py +16 -15
- chia/types/generator_types.py +1 -2
- chia/types/internal_mempool_item.py +1 -2
- chia/types/mempool_item.py +7 -7
- chia/types/mempool_submission_status.py +2 -2
- chia/types/peer_info.py +1 -1
- chia/types/spend_bundle.py +1 -2
- chia/types/transaction_queue_entry.py +2 -2
- chia/types/unfinished_header_block.py +2 -2
- chia/types/validation_state.py +14 -0
- chia/types/weight_proof.py +5 -6
- chia/util/action_scope.py +8 -8
- chia/util/async_pool.py +6 -4
- chia/util/augmented_chain.py +13 -9
- chia/util/batches.py +5 -2
- chia/util/bech32m.py +14 -11
- chia/util/beta_metrics.py +5 -4
- chia/util/block_cache.py +5 -5
- chia/util/byte_types.py +2 -0
- chia/util/check_fork_next_block.py +3 -2
- chia/util/chia_logging.py +41 -21
- chia/util/collection.py +3 -3
- chia/util/condition_tools.py +18 -18
- chia/util/config.py +26 -25
- chia/util/cpu.py +2 -0
- chia/util/db_synchronous.py +2 -0
- chia/util/db_version.py +2 -0
- chia/util/db_wrapper.py +13 -10
- chia/util/default_root.py +17 -0
- chia/util/dump_keyring.py +6 -6
- chia/util/errors.py +5 -3
- chia/util/file_keyring.py +22 -33
- chia/util/files.py +2 -0
- chia/util/full_block_utils.py +31 -7
- chia/util/generator_tools.py +18 -8
- chia/util/hash.py +3 -1
- chia/util/initial-config.yaml +19 -0
- chia/util/inline_executor.py +2 -0
- chia/util/ip_address.py +39 -0
- chia/util/json_util.py +0 -4
- chia/util/keychain.py +27 -24
- chia/util/keyring_wrapper.py +65 -4
- chia/util/limited_semaphore.py +3 -1
- chia/util/lock.py +4 -2
- chia/util/log_exceptions.py +5 -2
- chia/util/logging.py +3 -1
- chia/util/lru_cache.py +2 -0
- chia/util/math.py +4 -4
- chia/util/network.py +15 -73
- chia/util/paginator.py +3 -1
- chia/util/path.py +2 -0
- chia/util/permissions.py +3 -2
- chia/util/prev_transaction_block.py +1 -3
- chia/util/priority_mutex.py +6 -3
- chia/util/profiler.py +7 -4
- chia/util/recursive_replace.py +2 -0
- chia/util/safe_cancel_task.py +2 -0
- chia/util/service_groups.py +2 -2
- chia/util/setproctitle.py +2 -0
- chia/util/significant_bits.py +2 -0
- chia/util/ssl_check.py +11 -11
- chia/util/streamable.py +44 -56
- chia/util/task_referencer.py +59 -0
- chia/util/task_timing.py +22 -18
- chia/util/timing.py +4 -1
- chia/util/vdf_prover.py +2 -3
- chia/util/virtual_project_analysis.py +540 -0
- chia/util/ws_message.py +6 -6
- chia/wallet/cat_wallet/cat_info.py +3 -3
- chia/wallet/cat_wallet/cat_outer_puzzle.py +3 -3
- chia/wallet/cat_wallet/cat_utils.py +5 -4
- chia/wallet/cat_wallet/cat_wallet.py +56 -70
- chia/wallet/cat_wallet/dao_cat_info.py +3 -3
- chia/wallet/cat_wallet/dao_cat_wallet.py +18 -18
- chia/wallet/cat_wallet/lineage_store.py +2 -2
- chia/wallet/coin_selection.py +15 -15
- chia/wallet/conditions.py +257 -71
- chia/wallet/dao_wallet/dao_info.py +4 -4
- chia/wallet/dao_wallet/dao_utils.py +43 -42
- chia/wallet/dao_wallet/dao_wallet.py +66 -68
- chia/wallet/db_wallet/db_wallet_puzzles.py +12 -8
- chia/wallet/derive_keys.py +11 -11
- chia/wallet/did_wallet/did_info.py +3 -3
- chia/wallet/did_wallet/did_wallet.py +56 -47
- chia/wallet/did_wallet/did_wallet_puzzles.py +7 -6
- chia/wallet/lineage_proof.py +4 -4
- chia/wallet/nft_wallet/metadata_outer_puzzle.py +2 -2
- chia/wallet/nft_wallet/nft_info.py +4 -4
- chia/wallet/nft_wallet/nft_puzzles.py +16 -16
- chia/wallet/nft_wallet/nft_wallet.py +90 -89
- chia/wallet/nft_wallet/ownership_outer_puzzle.py +2 -2
- chia/wallet/nft_wallet/singleton_outer_puzzle.py +2 -2
- chia/wallet/nft_wallet/transfer_program_puzzle.py +2 -2
- chia/wallet/nft_wallet/uncurry_nft.py +2 -2
- chia/wallet/notification_manager.py +5 -5
- chia/wallet/notification_store.py +6 -6
- chia/wallet/outer_puzzles.py +2 -2
- chia/wallet/payment.py +4 -5
- chia/wallet/puzzle_drivers.py +4 -4
- chia/wallet/puzzles/clawback/drivers.py +5 -5
- chia/wallet/puzzles/clawback/puzzle_decorator.py +7 -7
- chia/wallet/puzzles/load_clvm.py +2 -3
- chia/wallet/puzzles/p2_conditions.py +1 -2
- chia/wallet/puzzles/p2_delegated_conditions.py +1 -2
- chia/wallet/puzzles/p2_delegated_puzzle.py +2 -3
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +3 -4
- chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +1 -2
- chia/wallet/puzzles/p2_puzzle_hash.py +1 -2
- chia/wallet/puzzles/puzzle_utils.py +7 -7
- chia/wallet/puzzles/singleton_top_layer.py +6 -5
- chia/wallet/puzzles/singleton_top_layer_v1_1.py +6 -5
- chia/wallet/puzzles/tails.py +34 -30
- chia/wallet/signer_protocol.py +7 -8
- chia/wallet/singleton.py +4 -4
- chia/wallet/trade_manager.py +155 -141
- chia/wallet/trade_record.py +5 -5
- chia/wallet/trading/offer.py +100 -101
- chia/wallet/trading/trade_store.py +14 -14
- chia/wallet/transaction_record.py +31 -16
- chia/wallet/util/address_type.py +4 -4
- chia/wallet/util/blind_signer_tl.py +8 -12
- chia/wallet/util/clvm_streamable.py +15 -15
- chia/wallet/util/compute_hints.py +5 -5
- chia/wallet/util/compute_memos.py +4 -6
- chia/wallet/util/curry_and_treehash.py +3 -2
- chia/wallet/util/debug_spend_bundle.py +6 -8
- chia/wallet/util/merkle_tree.py +10 -10
- chia/wallet/util/merkle_utils.py +10 -10
- chia/wallet/util/new_peak_queue.py +3 -3
- chia/wallet/util/peer_request_cache.py +8 -8
- chia/{util → wallet/util}/pprint.py +2 -3
- chia/wallet/util/puzzle_compression.py +3 -4
- chia/wallet/util/puzzle_decorator.py +10 -10
- chia/wallet/util/query_filter.py +9 -10
- chia/wallet/util/tx_config.py +12 -12
- chia/wallet/util/wallet_sync_utils.py +24 -21
- chia/wallet/util/wallet_types.py +9 -2
- chia/wallet/vc_wallet/cr_cat_drivers.py +28 -27
- chia/wallet/vc_wallet/cr_cat_wallet.py +42 -40
- chia/wallet/vc_wallet/cr_outer_puzzle.py +4 -4
- chia/wallet/vc_wallet/vc_drivers.py +16 -16
- chia/wallet/vc_wallet/vc_store.py +9 -9
- chia/wallet/vc_wallet/vc_wallet.py +35 -35
- chia/wallet/wallet.py +54 -54
- chia/wallet/wallet_action_scope.py +14 -13
- chia/wallet/wallet_blockchain.py +10 -10
- chia/wallet/wallet_coin_record.py +2 -2
- chia/wallet/wallet_coin_store.py +10 -10
- chia/wallet/wallet_info.py +1 -2
- chia/wallet/wallet_interested_store.py +5 -5
- chia/wallet/wallet_nft_store.py +6 -6
- chia/wallet/wallet_node.py +72 -76
- chia/wallet/wallet_node_api.py +33 -27
- chia/wallet/wallet_pool_store.py +1 -2
- chia/wallet/wallet_protocol.py +15 -15
- chia/wallet/wallet_puzzle_store.py +35 -4
- chia/wallet/wallet_retry_store.py +2 -2
- chia/wallet/wallet_singleton_store.py +10 -9
- chia/wallet/wallet_spend_bundle.py +4 -20
- chia/wallet/wallet_state_manager.py +223 -224
- chia/wallet/wallet_transaction_store.py +44 -18
- chia/wallet/wallet_user_store.py +2 -2
- chia/wallet/wallet_weight_proof_handler.py +2 -2
- {chia_blockchain-2.5.0rc2.dist-info → chia_blockchain-2.5.1rc2.dist-info}/LICENSE +1 -1
- {chia_blockchain-2.5.0rc2.dist-info → chia_blockchain-2.5.1rc2.dist-info}/METADATA +67 -72
- chia_blockchain-2.5.1rc2.dist-info/RECORD +1042 -0
- {chia_blockchain-2.5.0rc2.dist-info → chia_blockchain-2.5.1rc2.dist-info}/WHEEL +1 -1
- mozilla-ca/cacert.pem +32 -87
- chia/_tests/cmds/wallet/test_coins.py +0 -195
- chia/consensus/block_root_validation.py +0 -46
- chia/util/api_decorators.py +0 -89
- chia_blockchain-2.5.0rc2.dist-info/RECORD +0 -1028
- {chia_blockchain-2.5.0rc2.dist-info → chia_blockchain-2.5.1rc2.dist-info}/entry_points.txt +0 -0
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import time
|
|
5
|
-
from typing import Any, Callable
|
|
5
|
+
from typing import Any, Callable
|
|
6
6
|
|
|
7
7
|
import pytest
|
|
8
8
|
from chia_rs import AugSchemeMPL, G1Element, G2Element
|
|
@@ -49,9 +49,9 @@ async def get_wallet_number(manager: WalletStateManager) -> int:
|
|
|
49
49
|
async def wait_rpc_state_condition(
|
|
50
50
|
timeout: float,
|
|
51
51
|
async_function: Any,
|
|
52
|
-
params:
|
|
53
|
-
condition_func: Callable[[
|
|
54
|
-
) ->
|
|
52
|
+
params: list[Any],
|
|
53
|
+
condition_func: Callable[[dict[str, Any]], bool],
|
|
54
|
+
) -> dict[str, Any]:
|
|
55
55
|
__tracebackhide__ = True
|
|
56
56
|
|
|
57
57
|
timeout = adjusted_timeout(timeout=timeout)
|
|
@@ -298,10 +298,11 @@ async def test_nft_wallet_creation_and_transfer(wallet_environments: WalletTestF
|
|
|
298
298
|
height = full_node_api.full_node.blockchain.get_peak_height()
|
|
299
299
|
assert height is not None
|
|
300
300
|
await full_node_api.reorg_from_index_to_new_index(
|
|
301
|
-
ReorgProtocol(uint32(height - 1), uint32(height + 1), bytes32
|
|
301
|
+
ReorgProtocol(uint32(height - 1), uint32(height + 1), bytes32.zeros, None)
|
|
302
302
|
)
|
|
303
303
|
await time_out_assert(60, full_node_api.full_node.blockchain.get_peak_height, height + 1)
|
|
304
|
-
await full_node_api.wait_for_wallet_synced(wallet_node=wallet_node_0)
|
|
304
|
+
await full_node_api.wait_for_wallet_synced(wallet_node=wallet_node_0, peak_height=uint32(height + 1), timeout=10)
|
|
305
|
+
await full_node_api.wait_for_wallet_synced(wallet_node=wallet_node_1, peak_height=uint32(height + 1), timeout=10)
|
|
305
306
|
await env_0.change_balances(
|
|
306
307
|
{
|
|
307
308
|
"xch": {
|
|
@@ -477,7 +478,7 @@ async def test_nft_wallet_creation_and_transfer(wallet_environments: WalletTestF
|
|
|
477
478
|
height = full_node_api.full_node.blockchain.get_peak_height()
|
|
478
479
|
assert height is not None
|
|
479
480
|
await full_node_api.reorg_from_index_to_new_index(
|
|
480
|
-
ReorgProtocol(uint32(height - 1), uint32(height + 2), bytes32
|
|
481
|
+
ReorgProtocol(uint32(height - 1), uint32(height + 2), bytes32.zeros, None)
|
|
481
482
|
)
|
|
482
483
|
|
|
483
484
|
await full_node_api.wait_for_self_synced()
|
|
@@ -595,7 +596,7 @@ async def test_nft_wallet_rpc_creation_and_list(wallet_environments: WalletTestF
|
|
|
595
596
|
["nft_get_nfts", dict(wallet_id=env.wallet_aliases["nft"])],
|
|
596
597
|
lambda x: x["success"] and len(x["nft_list"]) == 2,
|
|
597
598
|
)
|
|
598
|
-
coins:
|
|
599
|
+
coins: list[NFTInfo] = [NFTInfo.from_json_dict(d) for d in coins_response["nft_list"]]
|
|
599
600
|
uris = []
|
|
600
601
|
for coin in coins:
|
|
601
602
|
assert not coin.supports_did
|
|
@@ -670,7 +671,7 @@ async def test_nft_wallet_rpc_update_metadata(wallet_environments: WalletTestFra
|
|
|
670
671
|
]
|
|
671
672
|
)
|
|
672
673
|
|
|
673
|
-
coins:
|
|
674
|
+
coins: list[dict[str, Any]] = (await env.rpc_client.list_nfts(nft_wallet.id(), start_index=0, num=1))["nft_list"]
|
|
674
675
|
coin = coins[0]
|
|
675
676
|
assert coin["mint_height"] > 0
|
|
676
677
|
assert coin["data_hash"] == "0xd4584ad463139fa8c0d9f68f4b59f185"
|
|
@@ -876,6 +877,7 @@ async def test_nft_with_did_wallet_creation(wallet_environments: WalletTestFrame
|
|
|
876
877
|
"spendable_balance": -1,
|
|
877
878
|
"pending_change": 1,
|
|
878
879
|
"pending_coin_removal_count": 1,
|
|
880
|
+
"max_send_amount": -1,
|
|
879
881
|
},
|
|
880
882
|
"nft_w_did": {"pending_coin_removal_count": 1},
|
|
881
883
|
},
|
|
@@ -885,6 +887,7 @@ async def test_nft_with_did_wallet_creation(wallet_environments: WalletTestFrame
|
|
|
885
887
|
"spendable_balance": 1,
|
|
886
888
|
"pending_change": -1,
|
|
887
889
|
"pending_coin_removal_count": -1,
|
|
890
|
+
"max_send_amount": 1,
|
|
888
891
|
},
|
|
889
892
|
"nft_w_did": {"pending_coin_removal_count": -1, "unspent_coin_count": 1},
|
|
890
893
|
},
|
|
@@ -927,7 +930,7 @@ async def test_nft_with_did_wallet_creation(wallet_environments: WalletTestFrame
|
|
|
927
930
|
]
|
|
928
931
|
)
|
|
929
932
|
# Check DID NFT
|
|
930
|
-
coins:
|
|
933
|
+
coins: list[dict[str, Any]] = (await env.rpc_client.list_nfts(nft_wallet.id(), start_index=0, num=1))["nft_list"]
|
|
931
934
|
assert len(coins) == 1
|
|
932
935
|
did_nft = coins[0]
|
|
933
936
|
assert did_nft["mint_height"] > 0
|
|
@@ -1042,6 +1045,7 @@ async def test_nft_rpc_mint(wallet_environments: WalletTestFramework) -> None:
|
|
|
1042
1045
|
"spendable_balance": -1,
|
|
1043
1046
|
"pending_change": 1,
|
|
1044
1047
|
"pending_coin_removal_count": 1,
|
|
1048
|
+
"max_send_amount": -1,
|
|
1045
1049
|
},
|
|
1046
1050
|
"nft_w_did": {"pending_coin_removal_count": 1},
|
|
1047
1051
|
},
|
|
@@ -1051,6 +1055,7 @@ async def test_nft_rpc_mint(wallet_environments: WalletTestFramework) -> None:
|
|
|
1051
1055
|
"spendable_balance": 1,
|
|
1052
1056
|
"pending_change": -1,
|
|
1053
1057
|
"pending_coin_removal_count": -1,
|
|
1058
|
+
"max_send_amount": 1,
|
|
1054
1059
|
},
|
|
1055
1060
|
"nft_w_did": {"pending_coin_removal_count": -1, "unspent_coin_count": 1},
|
|
1056
1061
|
},
|
|
@@ -1058,7 +1063,7 @@ async def test_nft_rpc_mint(wallet_environments: WalletTestFramework) -> None:
|
|
|
1058
1063
|
]
|
|
1059
1064
|
)
|
|
1060
1065
|
|
|
1061
|
-
coins:
|
|
1066
|
+
coins: list[dict[str, Any]] = (
|
|
1062
1067
|
await env.rpc_client.list_nfts(env.wallet_aliases["nft_w_did"], start_index=0, num=1)
|
|
1063
1068
|
)["nft_list"]
|
|
1064
1069
|
assert len(coins) == 1
|
|
@@ -1169,6 +1174,7 @@ async def test_nft_transfer_nft_with_did(wallet_environments: WalletTestFramewor
|
|
|
1169
1174
|
"spendable_balance": -1,
|
|
1170
1175
|
"pending_change": 1,
|
|
1171
1176
|
"pending_coin_removal_count": 1,
|
|
1177
|
+
"max_send_amount": -1,
|
|
1172
1178
|
},
|
|
1173
1179
|
"nft": {"pending_coin_removal_count": 1},
|
|
1174
1180
|
},
|
|
@@ -1184,6 +1190,7 @@ async def test_nft_transfer_nft_with_did(wallet_environments: WalletTestFramewor
|
|
|
1184
1190
|
"spendable_balance": 1,
|
|
1185
1191
|
"pending_change": -1,
|
|
1186
1192
|
"pending_coin_removal_count": -1,
|
|
1193
|
+
"max_send_amount": 1,
|
|
1187
1194
|
},
|
|
1188
1195
|
"nft": {"pending_coin_removal_count": -1, "unspent_coin_count": 1},
|
|
1189
1196
|
},
|
|
@@ -1193,7 +1200,7 @@ async def test_nft_transfer_nft_with_did(wallet_environments: WalletTestFramewor
|
|
|
1193
1200
|
)
|
|
1194
1201
|
|
|
1195
1202
|
# Check DID NFT
|
|
1196
|
-
coins:
|
|
1203
|
+
coins: list[dict[str, Any]] = (await env_0.rpc_client.list_nfts(env_0.wallet_aliases["nft"], start_index=0, num=1))[
|
|
1197
1204
|
"nft_list"
|
|
1198
1205
|
]
|
|
1199
1206
|
assert len(coins) == 1
|
|
@@ -1218,6 +1225,7 @@ async def test_nft_transfer_nft_with_did(wallet_environments: WalletTestFramewor
|
|
|
1218
1225
|
"unconfirmed_wallet_balance": -1,
|
|
1219
1226
|
"spendable_balance": -1,
|
|
1220
1227
|
"pending_coin_removal_count": 1,
|
|
1228
|
+
"max_send_amount": -1,
|
|
1221
1229
|
}
|
|
1222
1230
|
},
|
|
1223
1231
|
post_block_balance_updates={}, # DID wallet is deleted
|
|
@@ -1313,6 +1321,7 @@ async def test_nft_transfer_nft_with_did(wallet_environments: WalletTestFramewor
|
|
|
1313
1321
|
"spendable_balance": -1,
|
|
1314
1322
|
"pending_change": 1,
|
|
1315
1323
|
"pending_coin_removal_count": 1,
|
|
1324
|
+
"max_send_amount": -1,
|
|
1316
1325
|
},
|
|
1317
1326
|
"nft": {"pending_coin_removal_count": 1},
|
|
1318
1327
|
},
|
|
@@ -1328,6 +1337,7 @@ async def test_nft_transfer_nft_with_did(wallet_environments: WalletTestFramewor
|
|
|
1328
1337
|
"spendable_balance": 1,
|
|
1329
1338
|
"pending_change": -1,
|
|
1330
1339
|
"pending_coin_removal_count": -1,
|
|
1340
|
+
"max_send_amount": 1,
|
|
1331
1341
|
},
|
|
1332
1342
|
"nft": {"pending_coin_removal_count": -1, "unspent_coin_count": -1},
|
|
1333
1343
|
"nft_w_did": {"init": True, "unspent_coin_count": 1},
|
|
@@ -1430,6 +1440,7 @@ async def test_update_metadata_for_nft_did(wallet_environments: WalletTestFramew
|
|
|
1430
1440
|
"spendable_balance": -1,
|
|
1431
1441
|
"pending_change": 1,
|
|
1432
1442
|
"pending_coin_removal_count": 1,
|
|
1443
|
+
"max_send_amount": -1,
|
|
1433
1444
|
},
|
|
1434
1445
|
"nft": {"pending_coin_removal_count": 1},
|
|
1435
1446
|
},
|
|
@@ -1445,6 +1456,7 @@ async def test_update_metadata_for_nft_did(wallet_environments: WalletTestFramew
|
|
|
1445
1456
|
"spendable_balance": 1,
|
|
1446
1457
|
"pending_change": -1,
|
|
1447
1458
|
"pending_coin_removal_count": -1,
|
|
1459
|
+
"max_send_amount": 1,
|
|
1448
1460
|
},
|
|
1449
1461
|
"nft": {"pending_coin_removal_count": -1, "unspent_coin_count": 1},
|
|
1450
1462
|
},
|
|
@@ -1604,6 +1616,7 @@ async def test_nft_bulk_set_did(wallet_environments: WalletTestFramework) -> Non
|
|
|
1604
1616
|
"spendable_balance": -1,
|
|
1605
1617
|
"pending_change": 1,
|
|
1606
1618
|
"pending_coin_removal_count": 1,
|
|
1619
|
+
"max_send_amount": -1,
|
|
1607
1620
|
},
|
|
1608
1621
|
"nft_w_did": {"pending_coin_removal_count": 1},
|
|
1609
1622
|
},
|
|
@@ -1619,6 +1632,7 @@ async def test_nft_bulk_set_did(wallet_environments: WalletTestFramework) -> Non
|
|
|
1619
1632
|
"spendable_balance": 1,
|
|
1620
1633
|
"pending_change": -1,
|
|
1621
1634
|
"pending_coin_removal_count": -1,
|
|
1635
|
+
"max_send_amount": 1,
|
|
1622
1636
|
},
|
|
1623
1637
|
"nft_w_did": {"pending_coin_removal_count": -1, "unspent_coin_count": 1},
|
|
1624
1638
|
},
|
|
@@ -1694,6 +1708,7 @@ async def test_nft_bulk_set_did(wallet_environments: WalletTestFramework) -> Non
|
|
|
1694
1708
|
"spendable_balance": -1,
|
|
1695
1709
|
"pending_change": 1,
|
|
1696
1710
|
"pending_coin_removal_count": 1,
|
|
1711
|
+
"max_send_amount": -1,
|
|
1697
1712
|
},
|
|
1698
1713
|
"nft_w_did": {"pending_coin_removal_count": 1},
|
|
1699
1714
|
},
|
|
@@ -1709,6 +1724,7 @@ async def test_nft_bulk_set_did(wallet_environments: WalletTestFramework) -> Non
|
|
|
1709
1724
|
"spendable_balance": 1,
|
|
1710
1725
|
"pending_change": -1,
|
|
1711
1726
|
"pending_coin_removal_count": -1,
|
|
1727
|
+
"max_send_amount": 1,
|
|
1712
1728
|
},
|
|
1713
1729
|
"nft_w_did": {"pending_coin_removal_count": -1, "unspent_coin_count": 1},
|
|
1714
1730
|
},
|
|
@@ -1761,6 +1777,7 @@ async def test_nft_bulk_set_did(wallet_environments: WalletTestFramework) -> Non
|
|
|
1761
1777
|
"spendable_balance": -1,
|
|
1762
1778
|
"pending_change": 1,
|
|
1763
1779
|
"pending_coin_removal_count": 1,
|
|
1780
|
+
"max_send_amount": -1,
|
|
1764
1781
|
},
|
|
1765
1782
|
"nft_w_did": {"pending_coin_removal_count": 2},
|
|
1766
1783
|
"nft_no_did": {"pending_coin_removal_count": 1},
|
|
@@ -1777,6 +1794,7 @@ async def test_nft_bulk_set_did(wallet_environments: WalletTestFramework) -> Non
|
|
|
1777
1794
|
"spendable_balance": 1,
|
|
1778
1795
|
"pending_change": -1,
|
|
1779
1796
|
"pending_coin_removal_count": -1,
|
|
1797
|
+
"max_send_amount": 1,
|
|
1780
1798
|
},
|
|
1781
1799
|
"nft_w_did": {"pending_coin_removal_count": -2, "unspent_coin_count": 1},
|
|
1782
1800
|
"nft_no_did": {"pending_coin_removal_count": -1, "unspent_coin_count": -1},
|
|
@@ -1900,6 +1918,7 @@ async def test_nft_bulk_transfer(wallet_environments: WalletTestFramework) -> No
|
|
|
1900
1918
|
"spendable_balance": -1,
|
|
1901
1919
|
"pending_change": 1,
|
|
1902
1920
|
"pending_coin_removal_count": 1,
|
|
1921
|
+
"max_send_amount": -1,
|
|
1903
1922
|
},
|
|
1904
1923
|
"nft_w_did": {"pending_coin_removal_count": 1},
|
|
1905
1924
|
},
|
|
@@ -1915,6 +1934,7 @@ async def test_nft_bulk_transfer(wallet_environments: WalletTestFramework) -> No
|
|
|
1915
1934
|
"spendable_balance": 1,
|
|
1916
1935
|
"pending_change": -1,
|
|
1917
1936
|
"pending_coin_removal_count": -1,
|
|
1937
|
+
"max_send_amount": 1,
|
|
1918
1938
|
},
|
|
1919
1939
|
"nft_w_did": {"pending_coin_removal_count": -1, "unspent_coin_count": 1},
|
|
1920
1940
|
},
|
|
@@ -1990,6 +2010,7 @@ async def test_nft_bulk_transfer(wallet_environments: WalletTestFramework) -> No
|
|
|
1990
2010
|
"spendable_balance": -1,
|
|
1991
2011
|
"pending_change": 1,
|
|
1992
2012
|
"pending_coin_removal_count": 1,
|
|
2013
|
+
"max_send_amount": -1,
|
|
1993
2014
|
},
|
|
1994
2015
|
"nft_w_did": {"pending_coin_removal_count": 1},
|
|
1995
2016
|
},
|
|
@@ -2005,6 +2026,7 @@ async def test_nft_bulk_transfer(wallet_environments: WalletTestFramework) -> No
|
|
|
2005
2026
|
"spendable_balance": 1,
|
|
2006
2027
|
"pending_change": -1,
|
|
2007
2028
|
"pending_coin_removal_count": -1,
|
|
2029
|
+
"max_send_amount": 1,
|
|
2008
2030
|
},
|
|
2009
2031
|
"nft_w_did": {"pending_coin_removal_count": -1, "unspent_coin_count": 1},
|
|
2010
2032
|
},
|
|
@@ -2226,6 +2248,7 @@ async def test_nft_set_did(wallet_environments: WalletTestFramework) -> None:
|
|
|
2226
2248
|
"spendable_balance": -1,
|
|
2227
2249
|
"pending_change": 1,
|
|
2228
2250
|
"pending_coin_removal_count": 1,
|
|
2251
|
+
"max_send_amount": -1,
|
|
2229
2252
|
},
|
|
2230
2253
|
"nft_no_did": {"pending_coin_removal_count": 1},
|
|
2231
2254
|
},
|
|
@@ -2235,6 +2258,7 @@ async def test_nft_set_did(wallet_environments: WalletTestFramework) -> None:
|
|
|
2235
2258
|
"spendable_balance": 1,
|
|
2236
2259
|
"pending_change": -1,
|
|
2237
2260
|
"pending_coin_removal_count": -1,
|
|
2261
|
+
"max_send_amount": 1,
|
|
2238
2262
|
},
|
|
2239
2263
|
"nft_no_did": {"pending_coin_removal_count": -1, "unspent_coin_count": -1},
|
|
2240
2264
|
"nft_w_did1": {"unspent_coin_count": 1},
|
|
@@ -2278,6 +2302,7 @@ async def test_nft_set_did(wallet_environments: WalletTestFramework) -> None:
|
|
|
2278
2302
|
"spendable_balance": -1,
|
|
2279
2303
|
"pending_change": 1,
|
|
2280
2304
|
"pending_coin_removal_count": 1,
|
|
2305
|
+
"max_send_amount": -1,
|
|
2281
2306
|
},
|
|
2282
2307
|
"nft_w_did1": {"pending_coin_removal_count": 1},
|
|
2283
2308
|
},
|
|
@@ -2287,6 +2312,7 @@ async def test_nft_set_did(wallet_environments: WalletTestFramework) -> None:
|
|
|
2287
2312
|
"spendable_balance": 1,
|
|
2288
2313
|
"pending_change": -1,
|
|
2289
2314
|
"pending_coin_removal_count": -1,
|
|
2315
|
+
"max_send_amount": 1,
|
|
2290
2316
|
},
|
|
2291
2317
|
"nft_w_did1": {"pending_coin_removal_count": -1, "unspent_coin_count": -1},
|
|
2292
2318
|
"nft_w_did2": {"init": True, "unspent_coin_count": 1},
|
|
@@ -17,7 +17,7 @@ from chia.wallet.uncurried_puzzle import uncurry_puzzle
|
|
|
17
17
|
def test_ownership_outer_puzzle() -> None:
|
|
18
18
|
ACS = Program.to(1)
|
|
19
19
|
NIL = Program.to([])
|
|
20
|
-
owner = bytes32
|
|
20
|
+
owner = bytes32.zeros
|
|
21
21
|
# (mod (current_owner conditions solution)
|
|
22
22
|
# (list current_owner () conditions)
|
|
23
23
|
# )
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
|
+
import contextlib
|
|
4
5
|
import logging
|
|
5
6
|
|
|
6
7
|
import pytest
|
|
@@ -28,7 +29,7 @@ class TestWalletRpc:
|
|
|
28
29
|
self, two_wallet_nodes_services: SimulatorsAndWalletsServices, trusted: bool, self_hostname: str
|
|
29
30
|
) -> None:
|
|
30
31
|
num_blocks = 5
|
|
31
|
-
[full_node_service], wallet_services,
|
|
32
|
+
[full_node_service], wallet_services, _bt = two_wallet_nodes_services
|
|
32
33
|
full_node_api = full_node_service._api
|
|
33
34
|
full_node_server = full_node_api.full_node.server
|
|
34
35
|
wallet_node = wallet_services[0]._node
|
|
@@ -61,27 +62,31 @@ class TestWalletRpc:
|
|
|
61
62
|
assert wallet_services[0].rpc_server is not None
|
|
62
63
|
assert wallet_services[1].rpc_server is not None
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
wallet_services[
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
65
|
+
async with contextlib.AsyncExitStack() as exit_stack:
|
|
66
|
+
client = await exit_stack.enter_async_context(
|
|
67
|
+
WalletRpcClient.create_as_context(
|
|
68
|
+
self_hostname,
|
|
69
|
+
wallet_services[0].rpc_server.listen_port,
|
|
70
|
+
wallet_services[0].root_path,
|
|
71
|
+
wallet_services[0].config,
|
|
72
|
+
)
|
|
73
|
+
)
|
|
74
|
+
await validate_get_routes(client, wallet_services[0].rpc_server.rpc_api)
|
|
75
|
+
client_2 = await exit_stack.enter_async_context(
|
|
76
|
+
WalletRpcClient.create_as_context(
|
|
77
|
+
self_hostname,
|
|
78
|
+
wallet_services[1].rpc_server.listen_port,
|
|
79
|
+
wallet_services[1].root_path,
|
|
80
|
+
wallet_services[1].config,
|
|
81
|
+
)
|
|
82
|
+
)
|
|
83
|
+
await validate_get_routes(client_2, wallet_services[1].rpc_server.rpc_api)
|
|
78
84
|
|
|
79
|
-
|
|
80
|
-
merkle_root: bytes32 = bytes32([0] * 32)
|
|
85
|
+
merkle_root: bytes32 = bytes32.zeros
|
|
81
86
|
txs, launcher_id = await client.create_new_dl(merkle_root, uint64(50))
|
|
82
87
|
|
|
83
88
|
for i in range(0, 5):
|
|
84
|
-
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32
|
|
89
|
+
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
85
90
|
await asyncio.sleep(0.5)
|
|
86
91
|
|
|
87
92
|
async def is_singleton_confirmed(rpc_client: WalletRpcClient, lid: bytes32) -> bool:
|
|
@@ -99,7 +104,7 @@ class TestWalletRpc:
|
|
|
99
104
|
await client.dl_update_root(launcher_id, new_root, uint64(100))
|
|
100
105
|
|
|
101
106
|
for i in range(0, 5):
|
|
102
|
-
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32
|
|
107
|
+
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
103
108
|
await asyncio.sleep(0.5)
|
|
104
109
|
|
|
105
110
|
new_singleton_record = await client.dl_latest_singleton(launcher_id)
|
|
@@ -119,7 +124,7 @@ class TestWalletRpc:
|
|
|
119
124
|
if await is_singleton_confirmed(rpc_client, lid):
|
|
120
125
|
rec = await rpc_client.dl_latest_singleton(lid)
|
|
121
126
|
if rec is None:
|
|
122
|
-
raise Exception("No latest singleton for: {lid!r}")
|
|
127
|
+
raise Exception(f"No latest singleton for: {lid!r}")
|
|
123
128
|
return rec.generation == generation
|
|
124
129
|
else:
|
|
125
130
|
return False
|
|
@@ -163,7 +168,7 @@ class TestWalletRpc:
|
|
|
163
168
|
txs, launcher_id_3 = await client.create_new_dl(merkle_root, uint64(50))
|
|
164
169
|
|
|
165
170
|
for i in range(0, 5):
|
|
166
|
-
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32
|
|
171
|
+
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
167
172
|
await asyncio.sleep(0.5)
|
|
168
173
|
|
|
169
174
|
await time_out_assert(15, is_singleton_confirmed, True, client, launcher_id_2)
|
|
@@ -180,7 +185,7 @@ class TestWalletRpc:
|
|
|
180
185
|
)
|
|
181
186
|
|
|
182
187
|
for i in range(0, 5):
|
|
183
|
-
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32
|
|
188
|
+
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
184
189
|
await asyncio.sleep(0.5)
|
|
185
190
|
|
|
186
191
|
await time_out_assert(15, is_singleton_confirmed, True, client, launcher_id)
|
|
@@ -204,13 +209,13 @@ class TestWalletRpc:
|
|
|
204
209
|
height = full_node_api.full_node.blockchain.get_peak_height()
|
|
205
210
|
assert height is not None
|
|
206
211
|
for i in range(0, 5):
|
|
207
|
-
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32
|
|
212
|
+
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
208
213
|
await asyncio.sleep(0.5)
|
|
209
214
|
additions = []
|
|
210
215
|
for tx in txs:
|
|
211
216
|
if tx.spend_bundle is not None:
|
|
212
217
|
additions.extend(tx.spend_bundle.additions())
|
|
213
|
-
mirror_coin =
|
|
218
|
+
mirror_coin = next(c for c in additions if c.puzzle_hash == create_mirror_puzzle().get_tree_hash())
|
|
214
219
|
mirror = Mirror(
|
|
215
220
|
mirror_coin.name(),
|
|
216
221
|
launcher_id,
|
|
@@ -222,23 +227,16 @@ class TestWalletRpc:
|
|
|
222
227
|
await time_out_assert(15, client.dl_get_mirrors, [mirror], launcher_id)
|
|
223
228
|
await client.dl_delete_mirror(mirror_coin.name(), fee=uint64(2000000000000))
|
|
224
229
|
for i in range(0, 5):
|
|
225
|
-
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32
|
|
230
|
+
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
226
231
|
await asyncio.sleep(0.5)
|
|
227
232
|
await time_out_assert(15, client.dl_get_mirrors, [], launcher_id)
|
|
228
233
|
|
|
229
|
-
finally:
|
|
230
|
-
# Checks that the RPC manages to stop the node
|
|
231
|
-
client.close()
|
|
232
|
-
client_2.close()
|
|
233
|
-
await client.await_closed()
|
|
234
|
-
await client_2.await_closed()
|
|
235
|
-
|
|
236
234
|
@pytest.mark.parametrize("trusted", [True, False])
|
|
237
235
|
@pytest.mark.anyio
|
|
238
236
|
async def test_wallet_dl_verify_proof(
|
|
239
237
|
self, one_wallet_and_one_simulator_services: SimulatorsAndWalletsServices, trusted: bool, self_hostname: str
|
|
240
238
|
) -> None:
|
|
241
|
-
[full_node_service], [wallet_service],
|
|
239
|
+
[full_node_service], [wallet_service], _bt = one_wallet_and_one_simulator_services
|
|
242
240
|
full_node_api = full_node_service._api
|
|
243
241
|
full_node_server = full_node_api.full_node.server
|
|
244
242
|
wallet_node = wallet_service._node
|