chia-blockchain 2.5.7rc4__py3-none-any.whl → 2.6.0rc2__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_blockchain_transactions.py +5 -2
- 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 +66 -31
- 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 +273 -70
- chia/_tests/core/full_node/test_hard_fork_utils.py +92 -0
- 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 +198 -30
- chia/_tests/core/mempool/test_mempool.py +54 -50
- 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 +988 -854
- 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 +9 -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 +63 -60
- 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 +17 -17
- 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 +16 -15
- 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 +374 -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 +19 -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 +50 -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 +6 -6
- 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 +239 -223
- chia/full_node/full_node_api.py +197 -152
- chia/full_node/full_node_rpc_api.py +34 -32
- chia/full_node/full_node_rpc_client.py +18 -19
- chia/full_node/full_node_store.py +45 -43
- chia/full_node/hard_fork_utils.py +44 -0
- 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 +120 -36
- 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 +15 -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 +4 -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 +24 -10
- 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 +142 -106
- 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.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/METADATA +6 -5
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/RECORD +510 -517
- 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.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/entry_points.txt +0 -0
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.6.0rc2.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]:
|
|
@@ -195,12 +208,14 @@ def get_keychain():
|
|
|
195
208
|
class ConsensusMode(ComparableEnum):
|
|
196
209
|
PLAIN = 0
|
|
197
210
|
HARD_FORK_2_0 = 1
|
|
198
|
-
|
|
211
|
+
SOFT_FORK_2_6 = 2
|
|
212
|
+
HARD_FORK_3_0 = 3
|
|
199
213
|
|
|
200
214
|
|
|
201
215
|
@pytest.fixture(
|
|
202
216
|
scope="session",
|
|
203
|
-
|
|
217
|
+
# TODO: todo_v2_plots add HARD_FORK_3_0 mode as well as after phase-out
|
|
218
|
+
params=[ConsensusMode.PLAIN, ConsensusMode.HARD_FORK_2_0, ConsensusMode.SOFT_FORK_2_6],
|
|
204
219
|
)
|
|
205
220
|
def consensus_mode(request):
|
|
206
221
|
return request.param
|
|
@@ -217,6 +232,11 @@ def blockchain_constants(consensus_mode: ConsensusMode) -> ConsensusConstants:
|
|
|
217
232
|
PLOT_FILTER_32_HEIGHT=uint32(20),
|
|
218
233
|
)
|
|
219
234
|
|
|
235
|
+
if consensus_mode >= ConsensusMode.SOFT_FORK_2_6:
|
|
236
|
+
ret = ret.replace(
|
|
237
|
+
SOFT_FORK8_HEIGHT=uint32(2),
|
|
238
|
+
)
|
|
239
|
+
|
|
220
240
|
if consensus_mode >= ConsensusMode.HARD_FORK_3_0:
|
|
221
241
|
ret = ret.replace(
|
|
222
242
|
HARD_FORK_HEIGHT=uint32(2),
|
|
@@ -230,10 +250,14 @@ def blockchain_constants(consensus_mode: ConsensusMode) -> ConsensusConstants:
|
|
|
230
250
|
|
|
231
251
|
|
|
232
252
|
@pytest.fixture(scope="session", name="bt")
|
|
233
|
-
async def block_tools_fixture(
|
|
253
|
+
async def block_tools_fixture(
|
|
254
|
+
get_keychain, blockchain_constants, anyio_backend, testrun_uid: str
|
|
255
|
+
) -> AsyncIterator[BlockTools]:
|
|
234
256
|
# Note that this causes a lot of CPU and disk traffic - disk, DB, ports, process creation ...
|
|
235
|
-
|
|
236
|
-
|
|
257
|
+
async with create_block_tools_async(
|
|
258
|
+
constants=blockchain_constants, keychain=get_keychain, testrun_uid=testrun_uid
|
|
259
|
+
) as shared_block_tools:
|
|
260
|
+
yield shared_block_tools
|
|
237
261
|
|
|
238
262
|
|
|
239
263
|
# if you have a system that has an unusual hostname for localhost and you want
|
|
@@ -797,7 +821,7 @@ async def one_node(
|
|
|
797
821
|
@pytest.fixture(scope="function")
|
|
798
822
|
async def one_node_one_block(
|
|
799
823
|
blockchain_constants: ConsensusConstants,
|
|
800
|
-
) -> AsyncIterator[tuple[
|
|
824
|
+
) -> AsyncIterator[tuple[FullNodeAPI | FullNodeSimulator, ChiaServer, BlockTools]]:
|
|
801
825
|
async with setup_simulators_and_wallets(1, 0, blockchain_constants) as new:
|
|
802
826
|
(nodes, _, bt) = make_old_setup_simulators_and_wallets(new=new)
|
|
803
827
|
full_node_1 = nodes[0]
|
|
@@ -809,7 +833,6 @@ async def one_node_one_block(
|
|
|
809
833
|
1,
|
|
810
834
|
guarantee_transaction_block=True,
|
|
811
835
|
farmer_reward_puzzle_hash=reward_ph,
|
|
812
|
-
pool_reward_puzzle_hash=reward_ph,
|
|
813
836
|
genesis_timestamp=uint64(10000),
|
|
814
837
|
time_per_block=10,
|
|
815
838
|
)
|
|
@@ -838,7 +861,6 @@ async def two_nodes_one_block(blockchain_constants: ConsensusConstants):
|
|
|
838
861
|
1,
|
|
839
862
|
guarantee_transaction_block=True,
|
|
840
863
|
farmer_reward_puzzle_hash=reward_ph,
|
|
841
|
-
pool_reward_puzzle_hash=reward_ph,
|
|
842
864
|
genesis_timestamp=uint64(10000),
|
|
843
865
|
time_per_block=10,
|
|
844
866
|
)
|
|
@@ -950,16 +972,21 @@ def get_temp_keyring():
|
|
|
950
972
|
|
|
951
973
|
|
|
952
974
|
@pytest.fixture(scope="function")
|
|
953
|
-
async def get_b_tools_1(get_temp_keyring):
|
|
954
|
-
|
|
975
|
+
async def get_b_tools_1(get_temp_keyring, testrun_uid: str):
|
|
976
|
+
async with create_block_tools_async(
|
|
977
|
+
constants=test_constants_modified, keychain=get_temp_keyring, testrun_uid=testrun_uid
|
|
978
|
+
) as bt:
|
|
979
|
+
yield bt
|
|
955
980
|
|
|
956
981
|
|
|
957
982
|
@pytest.fixture(scope="function")
|
|
958
|
-
async def get_b_tools(get_temp_keyring):
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
local_b_tools
|
|
962
|
-
|
|
983
|
+
async def get_b_tools(get_temp_keyring, testrun_uid):
|
|
984
|
+
async with create_block_tools_async(
|
|
985
|
+
constants=test_constants_modified, keychain=get_temp_keyring, testrun_uid=testrun_uid
|
|
986
|
+
) as local_b_tools:
|
|
987
|
+
new_config = local_b_tools._config
|
|
988
|
+
local_b_tools.change_config(new_config)
|
|
989
|
+
yield local_b_tools
|
|
963
990
|
|
|
964
991
|
|
|
965
992
|
@pytest.fixture(scope="function")
|
|
@@ -1258,13 +1285,15 @@ def populated_temp_file_keyring_fixture() -> Iterator[TempKeyring]:
|
|
|
1258
1285
|
|
|
1259
1286
|
@pytest.fixture(scope="function")
|
|
1260
1287
|
async def farmer_harvester_2_simulators_zero_bits_plot_filter(
|
|
1261
|
-
tmp_path: Path,
|
|
1288
|
+
tmp_path: Path,
|
|
1289
|
+
get_temp_keyring: Keychain,
|
|
1290
|
+
testrun_uid,
|
|
1262
1291
|
) -> AsyncIterator[
|
|
1263
1292
|
tuple[
|
|
1264
1293
|
FarmerService,
|
|
1265
1294
|
HarvesterService,
|
|
1266
|
-
|
|
1267
|
-
|
|
1295
|
+
FullNodeService | SimulatorFullNodeService,
|
|
1296
|
+
FullNodeService | SimulatorFullNodeService,
|
|
1268
1297
|
BlockTools,
|
|
1269
1298
|
]
|
|
1270
1299
|
]:
|
|
@@ -1274,21 +1303,27 @@ async def farmer_harvester_2_simulators_zero_bits_plot_filter(
|
|
|
1274
1303
|
)
|
|
1275
1304
|
|
|
1276
1305
|
async with AsyncExitStack() as async_exit_stack:
|
|
1277
|
-
bt = await
|
|
1278
|
-
|
|
1279
|
-
|
|
1306
|
+
bt = await async_exit_stack.enter_async_context(
|
|
1307
|
+
create_block_tools_async(
|
|
1308
|
+
zero_bit_plot_filter_consts,
|
|
1309
|
+
keychain=get_temp_keyring,
|
|
1310
|
+
testrun_uid=testrun_uid,
|
|
1311
|
+
)
|
|
1280
1312
|
)
|
|
1281
1313
|
|
|
1282
1314
|
config_overrides: dict[str, int] = {"full_node.max_sync_wait": 0}
|
|
1283
1315
|
|
|
1284
1316
|
bts = [
|
|
1285
|
-
await
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1317
|
+
await async_exit_stack.enter_async_context(
|
|
1318
|
+
create_block_tools_async(
|
|
1319
|
+
zero_bit_plot_filter_consts,
|
|
1320
|
+
keychain=get_temp_keyring,
|
|
1321
|
+
num_og_plots=0,
|
|
1322
|
+
num_pool_plots=0,
|
|
1323
|
+
num_non_keychain_plots=0,
|
|
1324
|
+
config_overrides=config_overrides,
|
|
1325
|
+
testrun_uid=testrun_uid,
|
|
1326
|
+
)
|
|
1292
1327
|
)
|
|
1293
1328
|
for _ in range(2)
|
|
1294
1329
|
]
|
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:
|