chia-blockchain 2.5.7rc4__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 +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 +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 +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 +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.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/METADATA +6 -5
- {chia_blockchain-2.5.7rc4.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.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/entry_points.txt +0 -0
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/licenses/LICENSE +0 -0
chia/wallet/wallet_rpc_client.py
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import Any
|
|
4
|
-
|
|
5
|
-
from chia_rs.sized_bytes import bytes32
|
|
6
|
-
from chia_rs.sized_ints import uint32, uint64
|
|
3
|
+
from typing import Any
|
|
7
4
|
|
|
8
5
|
from chia.data_layer.data_layer_util import DLProof, VerifyProofResponse
|
|
9
6
|
from chia.rpc.rpc_client import RpcClient
|
|
10
|
-
from chia.
|
|
11
|
-
from chia.wallet.conditions import Condition, ConditionValidTimes, conditions_to_json_dicts
|
|
7
|
+
from chia.wallet.conditions import Condition, ConditionValidTimes
|
|
12
8
|
from chia.wallet.puzzles.clawback.metadata import AutoClaimSettings
|
|
13
|
-
from chia.wallet.trade_record import TradeRecord
|
|
14
|
-
from chia.wallet.trading.offer import Offer
|
|
15
9
|
from chia.wallet.transaction_record import TransactionRecord
|
|
16
10
|
from chia.wallet.util.clvm_streamable import json_deserialize_with_clvm_streamable
|
|
17
11
|
from chia.wallet.util.tx_config import TXConfig
|
|
@@ -21,7 +15,9 @@ from chia.wallet.wallet_request_types import (
|
|
|
21
15
|
AddKeyResponse,
|
|
22
16
|
ApplySignatures,
|
|
23
17
|
ApplySignaturesResponse,
|
|
18
|
+
CancelOffer,
|
|
24
19
|
CancelOfferResponse,
|
|
20
|
+
CancelOffers,
|
|
25
21
|
CancelOffersResponse,
|
|
26
22
|
CATAssetIDToName,
|
|
27
23
|
CATAssetIDToNameResponse,
|
|
@@ -39,9 +35,15 @@ from chia.wallet.wallet_request_types import (
|
|
|
39
35
|
CheckOfferValidityResponse,
|
|
40
36
|
CombineCoins,
|
|
41
37
|
CombineCoinsResponse,
|
|
38
|
+
CRCATApprovePending,
|
|
39
|
+
CRCATApprovePendingResponse,
|
|
42
40
|
CreateNewDL,
|
|
43
41
|
CreateNewDLResponse,
|
|
42
|
+
CreateNewWallet,
|
|
43
|
+
CreateNewWalletResponse,
|
|
44
|
+
CreateOfferForIDs,
|
|
44
45
|
CreateOfferForIDsResponse,
|
|
46
|
+
CreateSignedTransaction,
|
|
45
47
|
CreateSignedTransactionsResponse,
|
|
46
48
|
DeleteKey,
|
|
47
49
|
DeleteNotifications,
|
|
@@ -96,17 +98,25 @@ from chia.wallet.wallet_request_types import (
|
|
|
96
98
|
GatherSigningInfo,
|
|
97
99
|
GatherSigningInfoResponse,
|
|
98
100
|
GenerateMnemonicResponse,
|
|
101
|
+
GetAllOffers,
|
|
102
|
+
GetAllOffersResponse,
|
|
99
103
|
GetCATListResponse,
|
|
100
104
|
GetCoinRecordsByNames,
|
|
101
105
|
GetCoinRecordsByNamesResponse,
|
|
102
106
|
GetCurrentDerivationIndexResponse,
|
|
107
|
+
GetFarmedAmount,
|
|
108
|
+
GetFarmedAmountResponse,
|
|
103
109
|
GetHeightInfoResponse,
|
|
104
110
|
GetLoggedInFingerprintResponse,
|
|
105
111
|
GetNextAddress,
|
|
106
112
|
GetNextAddressResponse,
|
|
107
113
|
GetNotifications,
|
|
108
114
|
GetNotificationsResponse,
|
|
115
|
+
GetOffer,
|
|
116
|
+
GetOfferResponse,
|
|
109
117
|
GetOffersCountResponse,
|
|
118
|
+
GetOfferSummary,
|
|
119
|
+
GetOfferSummaryResponse,
|
|
110
120
|
GetPrivateKey,
|
|
111
121
|
GetPrivateKeyResponse,
|
|
112
122
|
GetPublicKeysResponse,
|
|
@@ -176,6 +186,7 @@ from chia.wallet.wallet_request_types import (
|
|
|
176
186
|
SendNotification,
|
|
177
187
|
SendNotificationResponse,
|
|
178
188
|
SendTransaction,
|
|
189
|
+
SendTransactionMulti,
|
|
179
190
|
SendTransactionMultiResponse,
|
|
180
191
|
SendTransactionResponse,
|
|
181
192
|
SetWalletResyncOnStartup,
|
|
@@ -189,6 +200,7 @@ from chia.wallet.wallet_request_types import (
|
|
|
189
200
|
SplitCoinsResponse,
|
|
190
201
|
SubmitTransactions,
|
|
191
202
|
SubmitTransactionsResponse,
|
|
203
|
+
TakeOffer,
|
|
192
204
|
TakeOfferResponse,
|
|
193
205
|
VCAddProofs,
|
|
194
206
|
VCGet,
|
|
@@ -315,6 +327,20 @@ class WalletRpcClient(RpcClient):
|
|
|
315
327
|
async def get_next_address(self, request: GetNextAddress) -> GetNextAddressResponse:
|
|
316
328
|
return GetNextAddressResponse.from_json_dict(await self.fetch("get_next_address", request.to_json_dict()))
|
|
317
329
|
|
|
330
|
+
async def create_new_wallet(
|
|
331
|
+
self,
|
|
332
|
+
request: CreateNewWallet,
|
|
333
|
+
tx_config: TXConfig,
|
|
334
|
+
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
335
|
+
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
336
|
+
) -> CreateNewWalletResponse:
|
|
337
|
+
return CreateNewWalletResponse.from_json_dict(
|
|
338
|
+
await self.fetch(
|
|
339
|
+
"create_new_wallet",
|
|
340
|
+
request.json_serialize_for_transport(tx_config, extra_conditions, timelock_info),
|
|
341
|
+
)
|
|
342
|
+
)
|
|
343
|
+
|
|
318
344
|
async def send_transaction(
|
|
319
345
|
self,
|
|
320
346
|
request: SendTransaction,
|
|
@@ -331,33 +357,17 @@ class WalletRpcClient(RpcClient):
|
|
|
331
357
|
|
|
332
358
|
async def send_transaction_multi(
|
|
333
359
|
self,
|
|
334
|
-
|
|
335
|
-
additions: list[dict[str, Any]],
|
|
360
|
+
request: SendTransactionMulti,
|
|
336
361
|
tx_config: TXConfig,
|
|
337
|
-
|
|
338
|
-
fee: uint64 = uint64(0),
|
|
339
|
-
push: bool = True,
|
|
362
|
+
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
340
363
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
341
364
|
) -> SendTransactionMultiResponse:
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
request = {
|
|
349
|
-
"wallet_id": wallet_id,
|
|
350
|
-
"additions": additions_hex,
|
|
351
|
-
"fee": fee,
|
|
352
|
-
"push": push,
|
|
353
|
-
**tx_config.to_json_dict(),
|
|
354
|
-
**timelock_info.to_json_dict(),
|
|
355
|
-
}
|
|
356
|
-
if coins is not None and len(coins) > 0:
|
|
357
|
-
coins_json = [c.to_json_dict() for c in coins]
|
|
358
|
-
request["coins"] = coins_json
|
|
359
|
-
response = await self.fetch("send_transaction_multi", request)
|
|
360
|
-
return json_deserialize_with_clvm_streamable(response, SendTransactionMultiResponse)
|
|
365
|
+
return SendTransactionMultiResponse.from_json_dict(
|
|
366
|
+
await self.fetch(
|
|
367
|
+
"send_transaction_multi",
|
|
368
|
+
request.json_serialize_for_transport(tx_config, extra_conditions, timelock_info),
|
|
369
|
+
)
|
|
370
|
+
)
|
|
361
371
|
|
|
362
372
|
async def spend_clawback_coins(
|
|
363
373
|
self,
|
|
@@ -383,45 +393,22 @@ class WalletRpcClient(RpcClient):
|
|
|
383
393
|
await self.fetch("extend_derivation_index", request.to_json_dict())
|
|
384
394
|
)
|
|
385
395
|
|
|
386
|
-
async def get_farmed_amount(self,
|
|
387
|
-
return await self.fetch("get_farmed_amount",
|
|
396
|
+
async def get_farmed_amount(self, request: GetFarmedAmount) -> GetFarmedAmountResponse:
|
|
397
|
+
return GetFarmedAmountResponse.from_json_dict(await self.fetch("get_farmed_amount", request.to_json_dict()))
|
|
388
398
|
|
|
389
399
|
async def create_signed_transactions(
|
|
390
400
|
self,
|
|
391
|
-
|
|
401
|
+
request: CreateSignedTransaction,
|
|
392
402
|
tx_config: TXConfig,
|
|
393
|
-
coins: Optional[list[Coin]] = None,
|
|
394
|
-
fee: uint64 = uint64(0),
|
|
395
|
-
wallet_id: Optional[int] = None,
|
|
396
403
|
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
397
404
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
398
|
-
push: bool = False,
|
|
399
405
|
) -> CreateSignedTransactionsResponse:
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
request = {
|
|
408
|
-
"additions": additions_hex,
|
|
409
|
-
"fee": fee,
|
|
410
|
-
"extra_conditions": conditions_to_json_dicts(extra_conditions),
|
|
411
|
-
"push": push,
|
|
412
|
-
**tx_config.to_json_dict(),
|
|
413
|
-
**timelock_info.to_json_dict(),
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
if coins is not None and len(coins) > 0:
|
|
417
|
-
coins_json = [c.to_json_dict() for c in coins]
|
|
418
|
-
request["coins"] = coins_json
|
|
419
|
-
|
|
420
|
-
if wallet_id:
|
|
421
|
-
request["wallet_id"] = wallet_id
|
|
422
|
-
|
|
423
|
-
response = await self.fetch("create_signed_transaction", request)
|
|
424
|
-
return json_deserialize_with_clvm_streamable(response, CreateSignedTransactionsResponse)
|
|
406
|
+
return CreateSignedTransactionsResponse.from_json_dict(
|
|
407
|
+
await self.fetch(
|
|
408
|
+
"create_signed_transaction",
|
|
409
|
+
request.json_serialize_for_transport(tx_config, extra_conditions, timelock_info),
|
|
410
|
+
)
|
|
411
|
+
)
|
|
425
412
|
|
|
426
413
|
async def select_coins(self, request: SelectCoins) -> SelectCoinsResponse:
|
|
427
414
|
return SelectCoinsResponse.from_json_dict(await self.fetch("select_coins", request.to_json_dict()))
|
|
@@ -438,37 +425,6 @@ class WalletRpcClient(RpcClient):
|
|
|
438
425
|
)
|
|
439
426
|
|
|
440
427
|
# DID wallet
|
|
441
|
-
async def create_new_did_wallet(
|
|
442
|
-
self,
|
|
443
|
-
amount: int,
|
|
444
|
-
tx_config: TXConfig,
|
|
445
|
-
fee: int = 0,
|
|
446
|
-
name: Optional[str] = "DID Wallet",
|
|
447
|
-
backup_ids: list[str] = [],
|
|
448
|
-
required_num: int = 0,
|
|
449
|
-
type: str = "new",
|
|
450
|
-
backup_data: str = "",
|
|
451
|
-
push: bool = True,
|
|
452
|
-
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
453
|
-
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
454
|
-
) -> dict[str, Any]:
|
|
455
|
-
request = {
|
|
456
|
-
"wallet_type": "did_wallet",
|
|
457
|
-
"did_type": type,
|
|
458
|
-
"backup_dids": backup_ids,
|
|
459
|
-
"num_of_backup_ids_needed": required_num,
|
|
460
|
-
"amount": amount,
|
|
461
|
-
"fee": fee,
|
|
462
|
-
"wallet_name": name,
|
|
463
|
-
"push": push,
|
|
464
|
-
"backup_data": backup_data,
|
|
465
|
-
"extra_conditions": conditions_to_json_dicts(extra_conditions),
|
|
466
|
-
**tx_config.to_json_dict(),
|
|
467
|
-
**timelock_info.to_json_dict(),
|
|
468
|
-
}
|
|
469
|
-
response = await self.fetch("create_new_wallet", request)
|
|
470
|
-
return response
|
|
471
|
-
|
|
472
428
|
async def get_did_id(self, request: DIDGetDID) -> DIDGetDIDResponse:
|
|
473
429
|
return DIDGetDIDResponse.from_json_dict(await self.fetch("did_get_did", request.to_json_dict()))
|
|
474
430
|
|
|
@@ -547,41 +503,6 @@ class WalletRpcClient(RpcClient):
|
|
|
547
503
|
async def did_get_wallet_name(self, request: DIDGetWalletName) -> DIDGetWalletNameResponse:
|
|
548
504
|
return DIDGetWalletNameResponse.from_json_dict(await self.fetch("did_get_wallet_name", request.to_json_dict()))
|
|
549
505
|
|
|
550
|
-
# TODO: test all invocations of create_new_pool_wallet with new fee arg.
|
|
551
|
-
async def create_new_pool_wallet(
|
|
552
|
-
self,
|
|
553
|
-
target_puzzlehash: Optional[bytes32],
|
|
554
|
-
pool_url: Optional[str],
|
|
555
|
-
relative_lock_height: uint32,
|
|
556
|
-
backup_host: str,
|
|
557
|
-
mode: str,
|
|
558
|
-
state: str,
|
|
559
|
-
fee: uint64,
|
|
560
|
-
p2_singleton_delay_time: Optional[uint64] = None,
|
|
561
|
-
p2_singleton_delayed_ph: Optional[bytes32] = None,
|
|
562
|
-
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
563
|
-
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
564
|
-
) -> TransactionRecord:
|
|
565
|
-
request = {
|
|
566
|
-
"wallet_type": "pool_wallet",
|
|
567
|
-
"mode": mode,
|
|
568
|
-
"initial_target_state": {
|
|
569
|
-
"target_puzzle_hash": target_puzzlehash.hex() if target_puzzlehash else None,
|
|
570
|
-
"relative_lock_height": relative_lock_height,
|
|
571
|
-
"pool_url": pool_url,
|
|
572
|
-
"state": state,
|
|
573
|
-
},
|
|
574
|
-
"fee": fee,
|
|
575
|
-
"extra_conditions": conditions_to_json_dicts(extra_conditions),
|
|
576
|
-
**timelock_info.to_json_dict(),
|
|
577
|
-
}
|
|
578
|
-
if p2_singleton_delay_time is not None:
|
|
579
|
-
request["p2_singleton_delay_time"] = p2_singleton_delay_time
|
|
580
|
-
if p2_singleton_delayed_ph is not None:
|
|
581
|
-
request["p2_singleton_delayed_ph"] = p2_singleton_delayed_ph.hex()
|
|
582
|
-
res = await self.fetch("create_new_wallet", request)
|
|
583
|
-
return TransactionRecord.from_json_dict(res["transaction"])
|
|
584
|
-
|
|
585
506
|
async def pw_self_pool(
|
|
586
507
|
self,
|
|
587
508
|
request: PWSelfPool,
|
|
@@ -625,16 +546,6 @@ class WalletRpcClient(RpcClient):
|
|
|
625
546
|
return PWStatusResponse.from_json_dict(await self.fetch("pw_status", request.to_json_dict()))
|
|
626
547
|
|
|
627
548
|
# CATS
|
|
628
|
-
async def create_new_cat_and_wallet(
|
|
629
|
-
self, amount: uint64, fee: uint64 = uint64(0), test: bool = False
|
|
630
|
-
) -> dict[str, Any]:
|
|
631
|
-
request = {"wallet_type": "cat_wallet", "mode": "new", "amount": amount, "fee": fee, "test": test}
|
|
632
|
-
return await self.fetch("create_new_wallet", request)
|
|
633
|
-
|
|
634
|
-
async def create_wallet_for_existing_cat(self, asset_id: bytes) -> dict[str, Any]:
|
|
635
|
-
request = {"wallet_type": "cat_wallet", "asset_id": asset_id.hex(), "mode": "existing"}
|
|
636
|
-
return await self.fetch("create_new_wallet", request)
|
|
637
|
-
|
|
638
549
|
async def get_cat_asset_id(self, request: CATGetAssetID) -> CATGetAssetIDResponse:
|
|
639
550
|
return CATGetAssetIDResponse.from_json_dict(await self.fetch("cat_get_asset_id", request.to_json_dict()))
|
|
640
551
|
|
|
@@ -666,37 +577,19 @@ class WalletRpcClient(RpcClient):
|
|
|
666
577
|
# Offers
|
|
667
578
|
async def create_offer_for_ids(
|
|
668
579
|
self,
|
|
669
|
-
|
|
580
|
+
request: CreateOfferForIDs,
|
|
670
581
|
tx_config: TXConfig,
|
|
671
|
-
driver_dict: Optional[dict[str, Any]] = None,
|
|
672
|
-
solver: Optional[dict[str, Any]] = None,
|
|
673
|
-
fee: int = 0,
|
|
674
|
-
validate_only: bool = False,
|
|
675
582
|
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
676
583
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
677
584
|
) -> CreateOfferForIDsResponse:
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
**timelock_info.to_json_dict(),
|
|
687
|
-
}
|
|
688
|
-
if driver_dict is not None:
|
|
689
|
-
req["driver_dict"] = driver_dict
|
|
690
|
-
if solver is not None:
|
|
691
|
-
req["solver"] = solver
|
|
692
|
-
res = await self.fetch("create_offer_for_ids", req)
|
|
693
|
-
return json_deserialize_with_clvm_streamable(res, CreateOfferForIDsResponse)
|
|
694
|
-
|
|
695
|
-
async def get_offer_summary(
|
|
696
|
-
self, offer: Offer, advanced: bool = False
|
|
697
|
-
) -> tuple[bytes32, dict[str, dict[str, int]]]:
|
|
698
|
-
res = await self.fetch("get_offer_summary", {"offer": offer.to_bech32(), "advanced": advanced})
|
|
699
|
-
return bytes32.from_hexstr(res["id"]), res["summary"]
|
|
585
|
+
return CreateOfferForIDsResponse.from_json_dict(
|
|
586
|
+
await self.fetch(
|
|
587
|
+
"create_offer_for_ids", request.json_serialize_for_transport(tx_config, extra_conditions, timelock_info)
|
|
588
|
+
)
|
|
589
|
+
)
|
|
590
|
+
|
|
591
|
+
async def get_offer_summary(self, request: GetOfferSummary) -> GetOfferSummaryResponse:
|
|
592
|
+
return GetOfferSummaryResponse.from_json_dict(await self.fetch("get_offer_summary", request.to_json_dict()))
|
|
700
593
|
|
|
701
594
|
async def check_offer_validity(self, request: CheckOfferValidity) -> CheckOfferValidityResponse:
|
|
702
595
|
return CheckOfferValidityResponse.from_json_dict(
|
|
@@ -705,133 +598,56 @@ class WalletRpcClient(RpcClient):
|
|
|
705
598
|
|
|
706
599
|
async def take_offer(
|
|
707
600
|
self,
|
|
708
|
-
|
|
601
|
+
request: TakeOffer,
|
|
709
602
|
tx_config: TXConfig,
|
|
710
|
-
solver: Optional[dict[str, Any]] = None,
|
|
711
|
-
fee: int = 0,
|
|
712
603
|
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
713
604
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
714
|
-
push: bool = True,
|
|
715
605
|
) -> TakeOfferResponse:
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
"push": push,
|
|
721
|
-
**tx_config.to_json_dict(),
|
|
722
|
-
**timelock_info.to_json_dict(),
|
|
723
|
-
}
|
|
724
|
-
if solver is not None:
|
|
725
|
-
req["solver"] = solver
|
|
726
|
-
res = await self.fetch("take_offer", req)
|
|
727
|
-
return json_deserialize_with_clvm_streamable(res, TakeOfferResponse)
|
|
728
|
-
|
|
729
|
-
async def get_offer(self, trade_id: bytes32, file_contents: bool = False) -> TradeRecord:
|
|
730
|
-
res = await self.fetch("get_offer", {"trade_id": trade_id.hex(), "file_contents": file_contents})
|
|
731
|
-
offer_str = bytes(Offer.from_bech32(res["offer"])).hex() if file_contents else ""
|
|
732
|
-
return TradeRecord.from_json_dict_convenience(res["trade_record"], offer_str)
|
|
733
|
-
|
|
734
|
-
async def get_all_offers(
|
|
735
|
-
self,
|
|
736
|
-
start: int = 0,
|
|
737
|
-
end: int = 50,
|
|
738
|
-
sort_key: Optional[str] = None,
|
|
739
|
-
reverse: bool = False,
|
|
740
|
-
file_contents: bool = False,
|
|
741
|
-
exclude_my_offers: bool = False,
|
|
742
|
-
exclude_taken_offers: bool = False,
|
|
743
|
-
include_completed: bool = False,
|
|
744
|
-
) -> list[TradeRecord]:
|
|
745
|
-
res = await self.fetch(
|
|
746
|
-
"get_all_offers",
|
|
747
|
-
{
|
|
748
|
-
"start": start,
|
|
749
|
-
"end": end,
|
|
750
|
-
"sort_key": sort_key,
|
|
751
|
-
"reverse": reverse,
|
|
752
|
-
"file_contents": file_contents,
|
|
753
|
-
"exclude_my_offers": exclude_my_offers,
|
|
754
|
-
"exclude_taken_offers": exclude_taken_offers,
|
|
755
|
-
"include_completed": include_completed,
|
|
756
|
-
},
|
|
606
|
+
return TakeOfferResponse.from_json_dict(
|
|
607
|
+
await self.fetch(
|
|
608
|
+
"take_offer", request.json_serialize_for_transport(tx_config, extra_conditions, timelock_info)
|
|
609
|
+
)
|
|
757
610
|
)
|
|
758
611
|
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
optional_offers = [bytes(Offer.from_bech32(o)).hex() for o in res["offers"]]
|
|
762
|
-
else:
|
|
763
|
-
optional_offers = [""] * len(res["trade_records"])
|
|
764
|
-
for record, offer in zip(res["trade_records"], optional_offers):
|
|
765
|
-
records.append(TradeRecord.from_json_dict_convenience(record, offer))
|
|
612
|
+
async def get_offer(self, request: GetOffer) -> GetOfferResponse:
|
|
613
|
+
return GetOfferResponse.from_json_dict(await self.fetch("get_offer", request.to_json_dict()))
|
|
766
614
|
|
|
767
|
-
|
|
615
|
+
async def get_all_offers(self, request: GetAllOffers) -> GetAllOffersResponse:
|
|
616
|
+
return GetAllOffersResponse.from_json_dict(await self.fetch("get_all_offers", request.to_json_dict()))
|
|
768
617
|
|
|
769
618
|
async def get_offers_count(self) -> GetOffersCountResponse:
|
|
770
619
|
return GetOffersCountResponse.from_json_dict(await self.fetch("get_offers_count", {}))
|
|
771
620
|
|
|
772
621
|
async def cancel_offer(
|
|
773
622
|
self,
|
|
774
|
-
|
|
623
|
+
request: CancelOffer,
|
|
775
624
|
tx_config: TXConfig,
|
|
776
|
-
fee: int = 0,
|
|
777
|
-
secure: bool = True,
|
|
778
625
|
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
779
626
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
780
|
-
push: bool = True,
|
|
781
627
|
) -> CancelOfferResponse:
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
"secure": secure,
|
|
787
|
-
"fee": fee,
|
|
788
|
-
"extra_conditions": conditions_to_json_dicts(extra_conditions),
|
|
789
|
-
"push": push,
|
|
790
|
-
**tx_config.to_json_dict(),
|
|
791
|
-
**timelock_info.to_json_dict(),
|
|
792
|
-
},
|
|
628
|
+
return CancelOfferResponse.from_json_dict(
|
|
629
|
+
await self.fetch(
|
|
630
|
+
"cancel_offer", request.json_serialize_for_transport(tx_config, extra_conditions, timelock_info)
|
|
631
|
+
)
|
|
793
632
|
)
|
|
794
633
|
|
|
795
|
-
return json_deserialize_with_clvm_streamable(res, CancelOfferResponse)
|
|
796
|
-
|
|
797
634
|
async def cancel_offers(
|
|
798
635
|
self,
|
|
636
|
+
request: CancelOffers,
|
|
799
637
|
tx_config: TXConfig,
|
|
800
|
-
batch_fee: int = 0,
|
|
801
|
-
secure: bool = True,
|
|
802
|
-
batch_size: int = 5,
|
|
803
|
-
cancel_all: bool = False,
|
|
804
|
-
asset_id: Optional[bytes32] = None,
|
|
805
638
|
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
806
639
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
807
|
-
push: bool = True,
|
|
808
640
|
) -> CancelOffersResponse:
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
"batch_fee": batch_fee,
|
|
814
|
-
"batch_size": batch_size,
|
|
815
|
-
"cancel_all": cancel_all,
|
|
816
|
-
"asset_id": None if asset_id is None else asset_id.hex(),
|
|
817
|
-
"extra_conditions": conditions_to_json_dicts(extra_conditions),
|
|
818
|
-
"push": push,
|
|
819
|
-
**tx_config.to_json_dict(),
|
|
820
|
-
**timelock_info.to_json_dict(),
|
|
821
|
-
},
|
|
641
|
+
return CancelOffersResponse.from_json_dict(
|
|
642
|
+
await self.fetch(
|
|
643
|
+
"cancel_offers", request.json_serialize_for_transport(tx_config, extra_conditions, timelock_info)
|
|
644
|
+
)
|
|
822
645
|
)
|
|
823
646
|
|
|
824
|
-
return json_deserialize_with_clvm_streamable(res, CancelOffersResponse)
|
|
825
|
-
|
|
826
647
|
async def get_cat_list(self) -> GetCATListResponse:
|
|
827
648
|
return GetCATListResponse.from_json_dict(await self.fetch("get_cat_list", {}))
|
|
828
649
|
|
|
829
650
|
# NFT wallet
|
|
830
|
-
async def create_new_nft_wallet(self, did_id: Optional[str], name: Optional[str] = None) -> dict[str, Any]:
|
|
831
|
-
request = {"wallet_type": "nft_wallet", "did_id": did_id, "name": name}
|
|
832
|
-
response = await self.fetch("create_new_wallet", request)
|
|
833
|
-
return response
|
|
834
|
-
|
|
835
651
|
async def mint_nft(
|
|
836
652
|
self,
|
|
837
653
|
request: NFTMintNFTRequest,
|
|
@@ -1135,25 +951,17 @@ class WalletRpcClient(RpcClient):
|
|
|
1135
951
|
|
|
1136
952
|
async def crcat_approve_pending(
|
|
1137
953
|
self,
|
|
1138
|
-
|
|
1139
|
-
min_amount_to_claim: uint64,
|
|
954
|
+
request: CRCATApprovePending,
|
|
1140
955
|
tx_config: TXConfig,
|
|
1141
|
-
|
|
1142
|
-
push: bool = True,
|
|
956
|
+
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
1143
957
|
timelock_info: ConditionValidTimes = ConditionValidTimes(),
|
|
1144
|
-
) ->
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
"fee": fee,
|
|
1151
|
-
"push": push,
|
|
1152
|
-
**tx_config.to_json_dict(),
|
|
1153
|
-
**timelock_info.to_json_dict(),
|
|
1154
|
-
},
|
|
958
|
+
) -> CRCATApprovePendingResponse:
|
|
959
|
+
return CRCATApprovePendingResponse.from_json_dict(
|
|
960
|
+
await self.fetch(
|
|
961
|
+
"crcat_approve_pending",
|
|
962
|
+
request.json_serialize_for_transport(tx_config, extra_conditions, timelock_info),
|
|
963
|
+
)
|
|
1155
964
|
)
|
|
1156
|
-
return [TransactionRecord.from_json_dict(tx) for tx in response["transactions"]]
|
|
1157
965
|
|
|
1158
966
|
async def gather_signing_info(
|
|
1159
967
|
self,
|
|
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
5
|
from sqlite3 import Row
|
|
6
|
-
from typing import Optional, Union
|
|
7
6
|
|
|
8
7
|
from chia_rs import CoinSpend
|
|
9
8
|
from chia_rs.sized_bytes import bytes32
|
|
@@ -234,7 +233,7 @@ class WalletSingletonStore:
|
|
|
234
233
|
)
|
|
235
234
|
await cursor.close()
|
|
236
235
|
|
|
237
|
-
async def count(self, wallet_id:
|
|
236
|
+
async def count(self, wallet_id: uint32 | None = None) -> int:
|
|
238
237
|
sql = "SELECT COUNT(singleton_id) FROM singletons WHERE removed_height=0"
|
|
239
238
|
params: list[uint32] = []
|
|
240
239
|
if wallet_id is not None:
|
|
@@ -246,9 +245,9 @@ class WalletSingletonStore:
|
|
|
246
245
|
return int(count_row[0])
|
|
247
246
|
return -1 # pragma: no cover
|
|
248
247
|
|
|
249
|
-
async def is_empty(self, wallet_id:
|
|
248
|
+
async def is_empty(self, wallet_id: uint32 | None = None) -> bool:
|
|
250
249
|
sql = "SELECT 1 FROM singletons WHERE removed_height=0"
|
|
251
|
-
params: list[
|
|
250
|
+
params: list[uint32 | bytes32] = []
|
|
252
251
|
if wallet_id is not None:
|
|
253
252
|
sql += " AND wallet_id=?"
|
|
254
253
|
params.append(wallet_id)
|