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
|
@@ -9,13 +9,14 @@ from chia_rs.sized_ints import uint32, uint64
|
|
|
9
9
|
from chia._tests.cmds.cmd_test_utils import TestRpcClients, TestWalletRpcClient, logType, run_cli_command_and_assert
|
|
10
10
|
from chia._tests.cmds.wallet.test_consts import FINGERPRINT_ARG, STD_TX, STD_UTX, get_bytes32
|
|
11
11
|
from chia.util.bech32m import encode_puzzle_hash
|
|
12
|
-
from chia.wallet.conditions import ConditionValidTimes
|
|
12
|
+
from chia.wallet.conditions import Condition, ConditionValidTimes
|
|
13
13
|
from chia.wallet.lineage_proof import LineageProof
|
|
14
|
-
from chia.wallet.transaction_record import TransactionRecord
|
|
15
14
|
from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG, TXConfig
|
|
16
15
|
from chia.wallet.vc_wallet.vc_drivers import VCLineageProof, VerifiedCredential
|
|
17
16
|
from chia.wallet.vc_wallet.vc_store import VCRecord
|
|
18
17
|
from chia.wallet.wallet_request_types import (
|
|
18
|
+
CRCATApprovePending,
|
|
19
|
+
CRCATApprovePendingResponse,
|
|
19
20
|
GetWallets,
|
|
20
21
|
VCAddProofs,
|
|
21
22
|
VCGet,
|
|
@@ -335,25 +336,23 @@ def test_vcs_approve_r_cats(capsys: object, get_test_cli_clients: tuple[TestRpcC
|
|
|
335
336
|
class VcsApproveRCATSRpcClient(TestWalletRpcClient):
|
|
336
337
|
async def crcat_approve_pending(
|
|
337
338
|
self,
|
|
338
|
-
|
|
339
|
-
min_amount_to_claim: uint64,
|
|
339
|
+
request: CRCATApprovePending,
|
|
340
340
|
tx_config: TXConfig,
|
|
341
|
-
|
|
342
|
-
push: bool = True,
|
|
341
|
+
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
343
342
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
344
|
-
) ->
|
|
343
|
+
) -> CRCATApprovePendingResponse:
|
|
345
344
|
self.add_to_log(
|
|
346
345
|
"crcat_approve_pending",
|
|
347
346
|
(
|
|
348
|
-
wallet_id,
|
|
349
|
-
min_amount_to_claim,
|
|
347
|
+
request.wallet_id,
|
|
348
|
+
request.min_amount_to_claim,
|
|
350
349
|
tx_config,
|
|
351
|
-
fee,
|
|
352
|
-
push,
|
|
350
|
+
request.fee,
|
|
351
|
+
request.push,
|
|
353
352
|
timelock_info,
|
|
354
353
|
),
|
|
355
354
|
)
|
|
356
|
-
return [STD_TX]
|
|
355
|
+
return CRCATApprovePendingResponse([STD_UTX], [STD_TX])
|
|
357
356
|
|
|
358
357
|
inst_rpc_client = VcsApproveRCATSRpcClient()
|
|
359
358
|
test_rpc_clients.wallet_rpc_client = inst_rpc_client
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import datetime
|
|
4
4
|
import os
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import Any
|
|
6
|
+
from typing import Any
|
|
7
7
|
|
|
8
8
|
import importlib_resources
|
|
9
9
|
import pytest
|
|
@@ -29,6 +29,7 @@ from chia.protocols.outbound_message import NodeType
|
|
|
29
29
|
from chia.types.signing_mode import SigningMode
|
|
30
30
|
from chia.util.bech32m import encode_puzzle_hash
|
|
31
31
|
from chia.wallet.conditions import Condition, ConditionValidTimes
|
|
32
|
+
from chia.wallet.puzzle_drivers import PuzzleInfo
|
|
32
33
|
from chia.wallet.trade_record import TradeRecord
|
|
33
34
|
from chia.wallet.trading.offer import Offer
|
|
34
35
|
from chia.wallet.trading.trade_status import TradeStatus
|
|
@@ -41,6 +42,7 @@ from chia.wallet.util.wallet_types import WalletType
|
|
|
41
42
|
from chia.wallet.wallet_coin_store import GetCoinRecords
|
|
42
43
|
from chia.wallet.wallet_request_types import (
|
|
43
44
|
BalanceResponse,
|
|
45
|
+
CancelOffer,
|
|
44
46
|
CancelOfferResponse,
|
|
45
47
|
CATAssetIDToName,
|
|
46
48
|
CATAssetIDToNameResponse,
|
|
@@ -49,15 +51,22 @@ from chia.wallet.wallet_request_types import (
|
|
|
49
51
|
CATSpend,
|
|
50
52
|
CATSpendResponse,
|
|
51
53
|
ClawbackPuzzleDecoratorOverride,
|
|
54
|
+
CreateNewWallet,
|
|
55
|
+
CreateNewWalletType,
|
|
56
|
+
CreateOfferForIDs,
|
|
52
57
|
CreateOfferForIDsResponse,
|
|
53
58
|
DeleteUnconfirmedTransactions,
|
|
54
59
|
ExtendDerivationIndex,
|
|
55
60
|
ExtendDerivationIndexResponse,
|
|
56
61
|
FungibleAsset,
|
|
62
|
+
GetAllOffers,
|
|
63
|
+
GetAllOffersResponse,
|
|
57
64
|
GetCurrentDerivationIndexResponse,
|
|
58
65
|
GetHeightInfoResponse,
|
|
59
66
|
GetNextAddress,
|
|
60
67
|
GetNextAddressResponse,
|
|
68
|
+
GetOffer,
|
|
69
|
+
GetOfferResponse,
|
|
61
70
|
GetTransaction,
|
|
62
71
|
GetTransactions,
|
|
63
72
|
GetTransactionsResponse,
|
|
@@ -73,12 +82,37 @@ from chia.wallet.wallet_request_types import (
|
|
|
73
82
|
SendTransactionResponse,
|
|
74
83
|
SpendClawbackCoins,
|
|
75
84
|
SpendClawbackCoinsResponse,
|
|
85
|
+
TakeOffer,
|
|
76
86
|
TakeOfferResponse,
|
|
77
87
|
TransactionRecordWithMetadata,
|
|
88
|
+
WalletCreationMode,
|
|
78
89
|
WalletInfoResponse,
|
|
79
90
|
)
|
|
80
91
|
from chia.wallet.wallet_spend_bundle import WalletSpendBundle
|
|
81
92
|
|
|
93
|
+
TEMP = PuzzleInfo(
|
|
94
|
+
{
|
|
95
|
+
"type": "singleton",
|
|
96
|
+
"launcher_id": "0x0101010101010101010101010101010101010101010101010101010101010101",
|
|
97
|
+
"launcher_ph": "0xeff07522495060c066f66f32acc2a77e3a3e737aca8baea4d1a64ea4cdc13da9",
|
|
98
|
+
"also": {
|
|
99
|
+
"type": "metadata",
|
|
100
|
+
"metadata": "",
|
|
101
|
+
"updater_hash": "0x0707070707070707070707070707070707070707070707070707070707070707",
|
|
102
|
+
"also": {
|
|
103
|
+
"type": "ownership",
|
|
104
|
+
"owner": "()",
|
|
105
|
+
"transfer_program": {
|
|
106
|
+
"type": "royalty transfer program",
|
|
107
|
+
"launcher_id": "0x0101010101010101010101010101010101010101010101010101010101010101",
|
|
108
|
+
"royalty_address": "0x0303030303030303030303030303030303030303030303030303030303030303",
|
|
109
|
+
"royalty_percentage": "1000",
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
}
|
|
114
|
+
)
|
|
115
|
+
|
|
82
116
|
test_offer_file_path = importlib_resources.files(__name__.rpartition(".")[0]).joinpath("test_offer.toffer")
|
|
83
117
|
test_offer_file_bech32 = test_offer_file_path.read_text(encoding="utf-8")
|
|
84
118
|
test_offer_id: str = "0xdfb7e8643376820ec995b0bcdb3fc1f764c16b814df5e074631263fcf1e00839"
|
|
@@ -208,8 +242,8 @@ def test_get_transactions(capsys: object, get_test_cli_clients: tuple[TestRpcCli
|
|
|
208
242
|
expected_calls: logType = {
|
|
209
243
|
"get_wallets": [(GetWallets(type=None, include_data=True),)] * 2,
|
|
210
244
|
"get_transactions": [
|
|
211
|
-
(GetTransactions(uint32(1),
|
|
212
|
-
(GetTransactions(uint32(1),
|
|
245
|
+
(GetTransactions(uint32(1), uint32(2), uint32(4), SortKey.RELEVANCE.name, True, None, None, None),),
|
|
246
|
+
(GetTransactions(uint32(1), uint32(2), uint32(4), SortKey.RELEVANCE.name, True, None, None, None),),
|
|
213
247
|
],
|
|
214
248
|
"get_coin_records": [
|
|
215
249
|
(GetCoinRecords(coin_id_filter=HashFilter.include([expected_coin_id])),),
|
|
@@ -276,8 +310,8 @@ def test_show(capsys: object, get_test_cli_clients: tuple[TestRpcClients, Path])
|
|
|
276
310
|
return NFTGetWalletDIDResponse("did:chia:1qgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpq4msw0c")
|
|
277
311
|
|
|
278
312
|
async def get_connections(
|
|
279
|
-
self, node_type:
|
|
280
|
-
) -> list[dict[str,
|
|
313
|
+
self, node_type: NodeType | None = None
|
|
314
|
+
) -> list[dict[str, str | int | float | bytes32]]:
|
|
281
315
|
self.add_to_log("get_connections", (node_type,))
|
|
282
316
|
return [
|
|
283
317
|
{
|
|
@@ -676,10 +710,6 @@ def test_add_token(capsys: object, get_test_cli_clients: tuple[TestRpcClients, P
|
|
|
676
710
|
|
|
677
711
|
# set RPC Client
|
|
678
712
|
class AddTokenRpcClient(TestWalletRpcClient):
|
|
679
|
-
async def create_wallet_for_existing_cat(self, asset_id: bytes) -> dict[str, int]:
|
|
680
|
-
self.add_to_log("create_wallet_for_existing_cat", (asset_id,))
|
|
681
|
-
return {"wallet_id": 3}
|
|
682
|
-
|
|
683
713
|
async def set_cat_name(self, request: CATSetName) -> CATSetNameResponse:
|
|
684
714
|
self.add_to_log("set_cat_name", (request.wallet_id, request.name))
|
|
685
715
|
return CATSetNameResponse(wallet_id=request.wallet_id)
|
|
@@ -697,7 +727,19 @@ def test_add_token(capsys: object, get_test_cli_clients: tuple[TestRpcClients, P
|
|
|
697
727
|
|
|
698
728
|
expected_calls: logType = {
|
|
699
729
|
"cat_asset_id_to_name": [(get_bytes32(1),), (bytes32([1, 2] * 16),)],
|
|
700
|
-
"
|
|
730
|
+
"create_new_wallet": [
|
|
731
|
+
(
|
|
732
|
+
CreateNewWallet(
|
|
733
|
+
wallet_type=CreateNewWalletType.CAT_WALLET,
|
|
734
|
+
mode=WalletCreationMode.EXISTING,
|
|
735
|
+
asset_id=bytes32([1, 2] * 16),
|
|
736
|
+
push=True,
|
|
737
|
+
),
|
|
738
|
+
DEFAULT_TX_CONFIG,
|
|
739
|
+
tuple(),
|
|
740
|
+
ConditionValidTimes(),
|
|
741
|
+
)
|
|
742
|
+
],
|
|
701
743
|
"set_cat_name": [(2, "examplecat"), (3, "examplecat")],
|
|
702
744
|
}
|
|
703
745
|
test_rpc_clients.wallet_rpc_client.check_log(expected_calls)
|
|
@@ -763,17 +805,22 @@ def test_make_offer(capsys: object, get_test_cli_clients: tuple[TestRpcClients,
|
|
|
763
805
|
class MakeOfferRpcClient(TestWalletRpcClient):
|
|
764
806
|
async def create_offer_for_ids(
|
|
765
807
|
self,
|
|
766
|
-
|
|
808
|
+
request: CreateOfferForIDs,
|
|
767
809
|
tx_config: TXConfig,
|
|
768
|
-
|
|
769
|
-
solver: Optional[dict[str, Any]] = None,
|
|
770
|
-
fee: uint64 = uint64(0),
|
|
771
|
-
validate_only: bool = False,
|
|
810
|
+
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
772
811
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
773
812
|
) -> CreateOfferForIDsResponse:
|
|
774
813
|
self.add_to_log(
|
|
775
814
|
"create_offer_for_ids",
|
|
776
|
-
(
|
|
815
|
+
(
|
|
816
|
+
request.offer,
|
|
817
|
+
tx_config,
|
|
818
|
+
request.driver_dict,
|
|
819
|
+
request.solver,
|
|
820
|
+
request.fee,
|
|
821
|
+
request.validate_only,
|
|
822
|
+
timelock_info,
|
|
823
|
+
),
|
|
777
824
|
)
|
|
778
825
|
|
|
779
826
|
created_offer = Offer({}, WalletSpendBundle([], G2Element()), {})
|
|
@@ -866,35 +913,39 @@ def test_make_offer(capsys: object, get_test_cli_clients: tuple[TestRpcClients,
|
|
|
866
913
|
"create_offer_for_ids": [
|
|
867
914
|
(
|
|
868
915
|
{
|
|
869
|
-
1: -10000000000000,
|
|
870
|
-
3: -100000,
|
|
871
|
-
"0404040404040404040404040404040404040404040404040404040404040404": -100000,
|
|
872
|
-
"0202020202020202020202020202020202020202020202020202020202020202": 10000,
|
|
873
|
-
"0101010101010101010101010101010101010101010101010101010101010101": 1,
|
|
916
|
+
"1": "-10000000000000",
|
|
917
|
+
"3": "-100000",
|
|
918
|
+
"0404040404040404040404040404040404040404040404040404040404040404": "-100000",
|
|
919
|
+
"0202020202020202020202020202020202020202020202020202020202020202": "10000",
|
|
920
|
+
"0101010101010101010101010101010101010101010101010101010101010101": "1",
|
|
874
921
|
},
|
|
875
922
|
DEFAULT_TX_CONFIG.override(reuse_puzhash=True),
|
|
876
923
|
{
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
"type": "metadata",
|
|
883
|
-
"metadata": "",
|
|
884
|
-
"updater_hash": "0x0707070707070707070707070707070707070707070707070707070707070707",
|
|
924
|
+
bytes32([1] * 32): PuzzleInfo(
|
|
925
|
+
{
|
|
926
|
+
"type": "singleton",
|
|
927
|
+
"launcher_id": "0x0101010101010101010101010101010101010101010101010101010101010101",
|
|
928
|
+
"launcher_ph": "0xeff07522495060c066f66f32acc2a77e3a3e737aca8baea4d1a64ea4cdc13da9",
|
|
885
929
|
"also": {
|
|
886
|
-
"type": "
|
|
887
|
-
"
|
|
888
|
-
"
|
|
889
|
-
|
|
890
|
-
"
|
|
891
|
-
"
|
|
892
|
-
"
|
|
893
|
-
|
|
930
|
+
"type": "metadata",
|
|
931
|
+
"metadata": "",
|
|
932
|
+
"updater_hash": "0x0707070707070707070707070707070707070707070707070707070707070707",
|
|
933
|
+
"also": {
|
|
934
|
+
"type": "ownership",
|
|
935
|
+
"owner": "()",
|
|
936
|
+
"transfer_program": {
|
|
937
|
+
"type": "royalty transfer program",
|
|
938
|
+
"launcher_id": (
|
|
939
|
+
"0x0101010101010101010101010101010101010101010101010101010101010101"
|
|
940
|
+
),
|
|
941
|
+
"royalty_address": "0x0303030303030303030303030303030303030303030"
|
|
942
|
+
"303030303030303030303",
|
|
943
|
+
"royalty_percentage": "1000",
|
|
944
|
+
},
|
|
894
945
|
},
|
|
895
946
|
},
|
|
896
|
-
}
|
|
897
|
-
|
|
947
|
+
}
|
|
948
|
+
)
|
|
898
949
|
},
|
|
899
950
|
None,
|
|
900
951
|
500000000000,
|
|
@@ -911,32 +962,22 @@ def test_get_offers(capsys: object, get_test_cli_clients: tuple[TestRpcClients,
|
|
|
911
962
|
|
|
912
963
|
# set RPC Client
|
|
913
964
|
class GetOffersRpcClient(TestWalletRpcClient):
|
|
914
|
-
async def get_all_offers(
|
|
915
|
-
self,
|
|
916
|
-
start: int = 0,
|
|
917
|
-
end: int = 50,
|
|
918
|
-
sort_key: Optional[str] = None,
|
|
919
|
-
reverse: bool = False,
|
|
920
|
-
file_contents: bool = False,
|
|
921
|
-
exclude_my_offers: bool = False,
|
|
922
|
-
exclude_taken_offers: bool = False,
|
|
923
|
-
include_completed: bool = False,
|
|
924
|
-
) -> list[TradeRecord]:
|
|
965
|
+
async def get_all_offers(self, request: GetAllOffers) -> GetAllOffersResponse:
|
|
925
966
|
self.add_to_log(
|
|
926
967
|
"get_all_offers",
|
|
927
968
|
(
|
|
928
|
-
start,
|
|
929
|
-
end,
|
|
930
|
-
sort_key,
|
|
931
|
-
reverse,
|
|
932
|
-
file_contents,
|
|
933
|
-
exclude_my_offers,
|
|
934
|
-
exclude_taken_offers,
|
|
935
|
-
include_completed,
|
|
969
|
+
request.start,
|
|
970
|
+
request.end,
|
|
971
|
+
request.sort_key,
|
|
972
|
+
request.reverse,
|
|
973
|
+
request.file_contents,
|
|
974
|
+
request.exclude_my_offers,
|
|
975
|
+
request.exclude_taken_offers,
|
|
976
|
+
request.include_completed,
|
|
936
977
|
),
|
|
937
978
|
)
|
|
938
979
|
records: list[TradeRecord] = []
|
|
939
|
-
for i in reversed(range(start, end - 1)): # reversed to match the sort order
|
|
980
|
+
for i in reversed(range(request.start, request.end - 1)): # reversed to match the sort order
|
|
940
981
|
trade_offer = TradeRecord(
|
|
941
982
|
confirmed_at_index=uint32(0),
|
|
942
983
|
accepted_at_time=None,
|
|
@@ -960,7 +1001,7 @@ def test_get_offers(capsys: object, get_test_cli_clients: tuple[TestRpcClients,
|
|
|
960
1001
|
),
|
|
961
1002
|
)
|
|
962
1003
|
records.append(trade_offer)
|
|
963
|
-
return records
|
|
1004
|
+
return GetAllOffersResponse([], records)
|
|
964
1005
|
|
|
965
1006
|
inst_rpc_client = GetOffersRpcClient()
|
|
966
1007
|
test_rpc_clients.wallet_rpc_client = inst_rpc_client
|
|
@@ -1021,18 +1062,19 @@ def test_take_offer(capsys: object, get_test_cli_clients: tuple[TestRpcClients,
|
|
|
1021
1062
|
class TakeOfferRpcClient(TestWalletRpcClient):
|
|
1022
1063
|
async def take_offer(
|
|
1023
1064
|
self,
|
|
1024
|
-
|
|
1065
|
+
request: TakeOffer,
|
|
1025
1066
|
tx_config: TXConfig,
|
|
1026
|
-
|
|
1027
|
-
fee: uint64 = uint64(0),
|
|
1028
|
-
push: bool = True,
|
|
1067
|
+
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
1029
1068
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
1030
1069
|
) -> TakeOfferResponse:
|
|
1031
|
-
self.add_to_log(
|
|
1070
|
+
self.add_to_log(
|
|
1071
|
+
"take_offer",
|
|
1072
|
+
(request.parsed_offer, tx_config, request.solver, request.fee, request.push, timelock_info),
|
|
1073
|
+
)
|
|
1032
1074
|
return TakeOfferResponse(
|
|
1033
1075
|
[STD_UTX],
|
|
1034
1076
|
[STD_TX],
|
|
1035
|
-
|
|
1077
|
+
request.parsed_offer,
|
|
1036
1078
|
TradeRecord(
|
|
1037
1079
|
confirmed_at_index=uint32(0),
|
|
1038
1080
|
accepted_at_time=uint64(123456789),
|
|
@@ -1040,10 +1082,10 @@ def test_take_offer(capsys: object, get_test_cli_clients: tuple[TestRpcClients,
|
|
|
1040
1082
|
is_my_offer=False,
|
|
1041
1083
|
sent=uint32(1),
|
|
1042
1084
|
sent_to=[("aaaaa", uint8(1), None)],
|
|
1043
|
-
offer=bytes(
|
|
1085
|
+
offer=bytes(request.parsed_offer),
|
|
1044
1086
|
taken_offer=None,
|
|
1045
|
-
coins_of_interest=
|
|
1046
|
-
trade_id=
|
|
1087
|
+
coins_of_interest=request.parsed_offer.get_involved_coins(),
|
|
1088
|
+
trade_id=request.parsed_offer.name(),
|
|
1047
1089
|
status=uint32(TradeStatus.PENDING_ACCEPT.value),
|
|
1048
1090
|
valid_times=ConditionValidTimes(),
|
|
1049
1091
|
),
|
|
@@ -1127,34 +1169,37 @@ def test_cancel_offer(capsys: object, get_test_cli_clients: tuple[TestRpcClients
|
|
|
1127
1169
|
|
|
1128
1170
|
# set RPC Client
|
|
1129
1171
|
class CancelOfferRpcClient(TestWalletRpcClient):
|
|
1130
|
-
async def get_offer(self,
|
|
1131
|
-
self.add_to_log("get_offer", (trade_id, file_contents))
|
|
1172
|
+
async def get_offer(self, request: GetOffer) -> GetOfferResponse:
|
|
1173
|
+
self.add_to_log("get_offer", (request.trade_id, request.file_contents))
|
|
1132
1174
|
offer = Offer.from_bech32(test_offer_file_bech32)
|
|
1133
|
-
return
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1175
|
+
return GetOfferResponse(
|
|
1176
|
+
test_offer_file_bech32,
|
|
1177
|
+
TradeRecord(
|
|
1178
|
+
confirmed_at_index=uint32(0),
|
|
1179
|
+
accepted_at_time=uint64(0),
|
|
1180
|
+
created_at_time=uint64(12345678),
|
|
1181
|
+
is_my_offer=True,
|
|
1182
|
+
sent=uint32(0),
|
|
1183
|
+
sent_to=[],
|
|
1184
|
+
offer=bytes(offer),
|
|
1185
|
+
taken_offer=None,
|
|
1186
|
+
coins_of_interest=offer.get_involved_coins(),
|
|
1187
|
+
trade_id=offer.name(),
|
|
1188
|
+
status=uint32(TradeStatus.PENDING_ACCEPT.value),
|
|
1189
|
+
valid_times=ConditionValidTimes(),
|
|
1190
|
+
),
|
|
1146
1191
|
)
|
|
1147
1192
|
|
|
1148
1193
|
async def cancel_offer(
|
|
1149
1194
|
self,
|
|
1150
|
-
|
|
1195
|
+
request: CancelOffer,
|
|
1151
1196
|
tx_config: TXConfig,
|
|
1152
|
-
|
|
1153
|
-
secure: bool = True,
|
|
1154
|
-
push: bool = True,
|
|
1197
|
+
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
1155
1198
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
1156
1199
|
) -> CancelOfferResponse:
|
|
1157
|
-
self.add_to_log(
|
|
1200
|
+
self.add_to_log(
|
|
1201
|
+
"cancel_offer", (request.trade_id, tx_config, request.fee, request.secure, request.push, timelock_info)
|
|
1202
|
+
)
|
|
1158
1203
|
return CancelOfferResponse([STD_UTX], [STD_TX])
|
|
1159
1204
|
|
|
1160
1205
|
inst_rpc_client = CancelOfferRpcClient()
|
chia/_tests/conftest.py
CHANGED
|
@@ -12,9 +12,9 @@ import os
|
|
|
12
12
|
import random
|
|
13
13
|
import sysconfig
|
|
14
14
|
import tempfile
|
|
15
|
-
from collections.abc import AsyncIterator, Iterator
|
|
15
|
+
from collections.abc import AsyncIterator, Callable, Iterator
|
|
16
16
|
from contextlib import AsyncExitStack
|
|
17
|
-
from typing import Any
|
|
17
|
+
from typing import Any
|
|
18
18
|
|
|
19
19
|
import aiohttp
|
|
20
20
|
import pytest
|
|
@@ -28,7 +28,6 @@ from pytest import MonkeyPatch
|
|
|
28
28
|
from chia._tests import ether
|
|
29
29
|
from chia._tests.core.data_layer.util import ChiaRoot
|
|
30
30
|
from chia._tests.core.node_height import node_height_at_least
|
|
31
|
-
from chia._tests.simulation.test_simulation import test_constants_modified
|
|
32
31
|
from chia._tests.util.misc import (
|
|
33
32
|
BenchmarkRunner,
|
|
34
33
|
ComparableEnum,
|
|
@@ -100,6 +99,20 @@ from chia.util.keyring_wrapper import KeyringWrapper
|
|
|
100
99
|
from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG, TXConfig
|
|
101
100
|
from chia.wallet.wallet_node import Balance
|
|
102
101
|
|
|
102
|
+
test_constants_modified = test_constants.replace(
|
|
103
|
+
DIFFICULTY_STARTING=uint64(2**8),
|
|
104
|
+
DISCRIMINANT_SIZE_BITS=uint16(1024),
|
|
105
|
+
SUB_EPOCH_BLOCKS=uint32(140),
|
|
106
|
+
WEIGHT_PROOF_THRESHOLD=uint8(2),
|
|
107
|
+
WEIGHT_PROOF_RECENT_BLOCKS=uint32(350),
|
|
108
|
+
MAX_SUB_SLOT_BLOCKS=uint32(50),
|
|
109
|
+
NUM_SPS_SUB_SLOT=uint8(32), # Must be a power of 2
|
|
110
|
+
EPOCH_BLOCKS=uint32(280),
|
|
111
|
+
SUB_SLOT_ITERS_STARTING=uint64(2**20),
|
|
112
|
+
NUMBER_ZERO_BITS_PLOT_FILTER_V1=uint8(5),
|
|
113
|
+
NUMBER_ZERO_BITS_PLOT_FILTER_V2=uint8(5),
|
|
114
|
+
)
|
|
115
|
+
|
|
103
116
|
|
|
104
117
|
@pytest.fixture(name="ether_setup", autouse=True)
|
|
105
118
|
def ether_setup_fixture(request: SubRequest, record_property: Callable[[str, object], None]) -> Iterator[None]:
|
|
@@ -200,7 +213,8 @@ class ConsensusMode(ComparableEnum):
|
|
|
200
213
|
|
|
201
214
|
@pytest.fixture(
|
|
202
215
|
scope="session",
|
|
203
|
-
|
|
216
|
+
# TODO: todo_v2_plots add HARD_FORK_3_0 mode as well as after phase-out
|
|
217
|
+
params=[ConsensusMode.PLAIN, ConsensusMode.HARD_FORK_2_0],
|
|
204
218
|
)
|
|
205
219
|
def consensus_mode(request):
|
|
206
220
|
return request.param
|
|
@@ -230,10 +244,14 @@ def blockchain_constants(consensus_mode: ConsensusMode) -> ConsensusConstants:
|
|
|
230
244
|
|
|
231
245
|
|
|
232
246
|
@pytest.fixture(scope="session", name="bt")
|
|
233
|
-
async def block_tools_fixture(
|
|
247
|
+
async def block_tools_fixture(
|
|
248
|
+
get_keychain, blockchain_constants, anyio_backend, testrun_uid: str
|
|
249
|
+
) -> AsyncIterator[BlockTools]:
|
|
234
250
|
# Note that this causes a lot of CPU and disk traffic - disk, DB, ports, process creation ...
|
|
235
|
-
|
|
236
|
-
|
|
251
|
+
async with create_block_tools_async(
|
|
252
|
+
constants=blockchain_constants, keychain=get_keychain, testrun_uid=testrun_uid
|
|
253
|
+
) as shared_block_tools:
|
|
254
|
+
yield shared_block_tools
|
|
237
255
|
|
|
238
256
|
|
|
239
257
|
# if you have a system that has an unusual hostname for localhost and you want
|
|
@@ -797,7 +815,7 @@ async def one_node(
|
|
|
797
815
|
@pytest.fixture(scope="function")
|
|
798
816
|
async def one_node_one_block(
|
|
799
817
|
blockchain_constants: ConsensusConstants,
|
|
800
|
-
) -> AsyncIterator[tuple[
|
|
818
|
+
) -> AsyncIterator[tuple[FullNodeAPI | FullNodeSimulator, ChiaServer, BlockTools]]:
|
|
801
819
|
async with setup_simulators_and_wallets(1, 0, blockchain_constants) as new:
|
|
802
820
|
(nodes, _, bt) = make_old_setup_simulators_and_wallets(new=new)
|
|
803
821
|
full_node_1 = nodes[0]
|
|
@@ -809,7 +827,6 @@ async def one_node_one_block(
|
|
|
809
827
|
1,
|
|
810
828
|
guarantee_transaction_block=True,
|
|
811
829
|
farmer_reward_puzzle_hash=reward_ph,
|
|
812
|
-
pool_reward_puzzle_hash=reward_ph,
|
|
813
830
|
genesis_timestamp=uint64(10000),
|
|
814
831
|
time_per_block=10,
|
|
815
832
|
)
|
|
@@ -838,7 +855,6 @@ async def two_nodes_one_block(blockchain_constants: ConsensusConstants):
|
|
|
838
855
|
1,
|
|
839
856
|
guarantee_transaction_block=True,
|
|
840
857
|
farmer_reward_puzzle_hash=reward_ph,
|
|
841
|
-
pool_reward_puzzle_hash=reward_ph,
|
|
842
858
|
genesis_timestamp=uint64(10000),
|
|
843
859
|
time_per_block=10,
|
|
844
860
|
)
|
|
@@ -950,16 +966,21 @@ def get_temp_keyring():
|
|
|
950
966
|
|
|
951
967
|
|
|
952
968
|
@pytest.fixture(scope="function")
|
|
953
|
-
async def get_b_tools_1(get_temp_keyring):
|
|
954
|
-
|
|
969
|
+
async def get_b_tools_1(get_temp_keyring, testrun_uid: str):
|
|
970
|
+
async with create_block_tools_async(
|
|
971
|
+
constants=test_constants_modified, keychain=get_temp_keyring, testrun_uid=testrun_uid
|
|
972
|
+
) as bt:
|
|
973
|
+
yield bt
|
|
955
974
|
|
|
956
975
|
|
|
957
976
|
@pytest.fixture(scope="function")
|
|
958
|
-
async def get_b_tools(get_temp_keyring):
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
local_b_tools
|
|
962
|
-
|
|
977
|
+
async def get_b_tools(get_temp_keyring, testrun_uid):
|
|
978
|
+
async with create_block_tools_async(
|
|
979
|
+
constants=test_constants_modified, keychain=get_temp_keyring, testrun_uid=testrun_uid
|
|
980
|
+
) as local_b_tools:
|
|
981
|
+
new_config = local_b_tools._config
|
|
982
|
+
local_b_tools.change_config(new_config)
|
|
983
|
+
yield local_b_tools
|
|
963
984
|
|
|
964
985
|
|
|
965
986
|
@pytest.fixture(scope="function")
|
|
@@ -1258,13 +1279,15 @@ def populated_temp_file_keyring_fixture() -> Iterator[TempKeyring]:
|
|
|
1258
1279
|
|
|
1259
1280
|
@pytest.fixture(scope="function")
|
|
1260
1281
|
async def farmer_harvester_2_simulators_zero_bits_plot_filter(
|
|
1261
|
-
tmp_path: Path,
|
|
1282
|
+
tmp_path: Path,
|
|
1283
|
+
get_temp_keyring: Keychain,
|
|
1284
|
+
testrun_uid,
|
|
1262
1285
|
) -> AsyncIterator[
|
|
1263
1286
|
tuple[
|
|
1264
1287
|
FarmerService,
|
|
1265
1288
|
HarvesterService,
|
|
1266
|
-
|
|
1267
|
-
|
|
1289
|
+
FullNodeService | SimulatorFullNodeService,
|
|
1290
|
+
FullNodeService | SimulatorFullNodeService,
|
|
1268
1291
|
BlockTools,
|
|
1269
1292
|
]
|
|
1270
1293
|
]:
|
|
@@ -1274,21 +1297,27 @@ async def farmer_harvester_2_simulators_zero_bits_plot_filter(
|
|
|
1274
1297
|
)
|
|
1275
1298
|
|
|
1276
1299
|
async with AsyncExitStack() as async_exit_stack:
|
|
1277
|
-
bt = await
|
|
1278
|
-
|
|
1279
|
-
|
|
1300
|
+
bt = await async_exit_stack.enter_async_context(
|
|
1301
|
+
create_block_tools_async(
|
|
1302
|
+
zero_bit_plot_filter_consts,
|
|
1303
|
+
keychain=get_temp_keyring,
|
|
1304
|
+
testrun_uid=testrun_uid,
|
|
1305
|
+
)
|
|
1280
1306
|
)
|
|
1281
1307
|
|
|
1282
1308
|
config_overrides: dict[str, int] = {"full_node.max_sync_wait": 0}
|
|
1283
1309
|
|
|
1284
1310
|
bts = [
|
|
1285
|
-
await
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1311
|
+
await async_exit_stack.enter_async_context(
|
|
1312
|
+
create_block_tools_async(
|
|
1313
|
+
zero_bit_plot_filter_consts,
|
|
1314
|
+
keychain=get_temp_keyring,
|
|
1315
|
+
num_og_plots=0,
|
|
1316
|
+
num_pool_plots=0,
|
|
1317
|
+
num_non_keychain_plots=0,
|
|
1318
|
+
config_overrides=config_overrides,
|
|
1319
|
+
testrun_uid=testrun_uid,
|
|
1320
|
+
)
|
|
1292
1321
|
)
|
|
1293
1322
|
for _ in range(2)
|
|
1294
1323
|
]
|
chia/_tests/connection_utils.py
CHANGED
|
@@ -12,7 +12,7 @@ from cryptography.hazmat.backends import default_backend
|
|
|
12
12
|
from cryptography.hazmat.primitives import hashes, serialization
|
|
13
13
|
|
|
14
14
|
from chia._tests.util.time_out_assert import time_out_assert
|
|
15
|
-
from chia.apis import
|
|
15
|
+
from chia.apis import StubMetadataRegistry
|
|
16
16
|
from chia.protocols.outbound_message import NodeType
|
|
17
17
|
from chia.protocols.shared_protocol import default_capabilities
|
|
18
18
|
from chia.server.server import ChiaServer, ssl_context_for_client
|
|
@@ -98,7 +98,7 @@ async def add_dummy_connection_wsc(
|
|
|
98
98
|
100,
|
|
99
99
|
30,
|
|
100
100
|
local_capabilities_for_handshake=default_capabilities[type] + additional_capabilities,
|
|
101
|
-
|
|
101
|
+
stub_metadata_for_type=StubMetadataRegistry,
|
|
102
102
|
)
|
|
103
103
|
await wsc.perform_handshake(server._network_id, dummy_port, type)
|
|
104
104
|
if wsc.incoming_message_task is not None:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import zipfile
|
|
4
|
+
from collections.abc import Callable
|
|
4
5
|
from pathlib import Path
|
|
5
|
-
from typing import Callable, Optional
|
|
6
6
|
|
|
7
7
|
import pytest
|
|
8
8
|
from click.testing import CliRunner, Result
|
|
@@ -26,7 +26,7 @@ def configure(root_path: Path, *args: str) -> Result:
|
|
|
26
26
|
)
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
def configure_interactive(root_path: Path, user_input:
|
|
29
|
+
def configure_interactive(root_path: Path, user_input: str | None = None) -> Result:
|
|
30
30
|
return CliRunner().invoke(
|
|
31
31
|
cli,
|
|
32
32
|
[
|
|
@@ -53,7 +53,7 @@ def enable(root_path: Path, *args: str) -> Result:
|
|
|
53
53
|
)
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
def enable_interactive(root_path: Path, user_input:
|
|
56
|
+
def enable_interactive(root_path: Path, user_input: str | None = None) -> Result:
|
|
57
57
|
return CliRunner().invoke(
|
|
58
58
|
cli,
|
|
59
59
|
[
|
|
@@ -66,7 +66,7 @@ def enable_interactive(root_path: Path, user_input: Optional[str] = None) -> Res
|
|
|
66
66
|
)
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
def prepare_submission(root_path: Path, user_input:
|
|
69
|
+
def prepare_submission(root_path: Path, user_input: str | None = None) -> Result:
|
|
70
70
|
return CliRunner().invoke(
|
|
71
71
|
cli,
|
|
72
72
|
[
|