chia-blockchain 2.5.0rc1__py3-none-any.whl → 2.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- chia/_tests/README.md +1 -1
- chia/_tests/blockchain/blockchain_test_utils.py +24 -26
- chia/_tests/blockchain/test_augmented_chain.py +6 -8
- chia/_tests/blockchain/test_blockchain.py +409 -307
- chia/_tests/blockchain/test_blockchain_transactions.py +56 -75
- chia/_tests/blockchain/test_build_chains.py +11 -13
- chia/_tests/blockchain/test_get_block_generator.py +8 -8
- chia/_tests/blockchain/test_lookup_fork_chain.py +3 -4
- chia/_tests/build-init-files.py +3 -4
- chia/_tests/build-job-matrix.py +9 -9
- chia/_tests/check_sql_statements.py +2 -3
- chia/_tests/clvm/benchmark_costs.py +1 -1
- chia/_tests/clvm/coin_store.py +7 -5
- chia/_tests/clvm/test_chialisp_deserialization.py +8 -8
- chia/_tests/clvm/test_condition_codes.py +2 -2
- chia/_tests/clvm/test_curry_and_treehash.py +2 -4
- chia/_tests/clvm/test_message_conditions.py +184 -0
- chia/_tests/clvm/test_puzzle_compression.py +1 -2
- chia/_tests/clvm/test_puzzle_drivers.py +3 -3
- chia/_tests/clvm/test_puzzles.py +13 -18
- chia/_tests/clvm/test_singletons.py +17 -17
- chia/_tests/clvm/test_spend_sim.py +7 -7
- chia/_tests/cmds/cmd_test_utils.py +42 -45
- chia/_tests/cmds/conftest.py +2 -2
- chia/_tests/cmds/test_click_types.py +21 -16
- chia/_tests/cmds/test_cmd_framework.py +255 -35
- chia/_tests/cmds/test_cmds_util.py +2 -2
- chia/_tests/cmds/test_daemon.py +3 -3
- chia/_tests/cmds/test_dev_gh.py +131 -0
- chia/_tests/cmds/test_farm_cmd.py +1 -2
- chia/_tests/cmds/test_show.py +6 -6
- chia/_tests/cmds/test_tx_config_args.py +2 -1
- chia/_tests/cmds/wallet/test_dao.py +23 -23
- chia/_tests/cmds/wallet/test_did.py +29 -29
- chia/_tests/cmds/wallet/test_nft.py +24 -23
- chia/_tests/cmds/wallet/test_notifications.py +8 -8
- chia/_tests/cmds/wallet/test_tx_decorators.py +3 -3
- chia/_tests/cmds/wallet/test_vcs.py +97 -73
- chia/_tests/cmds/wallet/test_wallet.py +74 -75
- chia/_tests/cmds/wallet/test_wallet_check.py +5 -7
- chia/_tests/conftest.py +153 -38
- chia/_tests/connection_utils.py +7 -6
- chia/_tests/core/cmds/test_beta.py +3 -3
- chia/_tests/core/cmds/test_keys.py +6 -6
- chia/_tests/core/cmds/test_wallet.py +3 -3
- chia/_tests/core/consensus/test_block_creation.py +3 -5
- chia/_tests/core/custom_types/test_coin.py +1 -3
- chia/_tests/core/custom_types/test_spend_bundle.py +3 -4
- chia/_tests/core/daemon/test_daemon.py +58 -58
- chia/_tests/core/daemon/test_keychain_proxy.py +2 -1
- chia/_tests/core/data_layer/conftest.py +4 -3
- chia/_tests/core/data_layer/test_data_cli.py +1 -2
- chia/_tests/core/data_layer/test_data_layer.py +5 -5
- chia/_tests/core/data_layer/test_data_layer_util.py +8 -9
- chia/_tests/core/data_layer/test_data_rpc.py +75 -93
- chia/_tests/core/data_layer/test_data_store.py +38 -37
- chia/_tests/core/data_layer/test_data_store_schema.py +11 -11
- chia/_tests/core/data_layer/util.py +11 -10
- chia/_tests/core/farmer/test_farmer_api.py +6 -4
- chia/_tests/core/full_node/full_sync/test_full_sync.py +5 -10
- chia/_tests/core/full_node/ram_db.py +2 -2
- chia/_tests/core/full_node/stores/test_block_store.py +113 -11
- chia/_tests/core/full_node/stores/test_coin_store.py +37 -28
- chia/_tests/core/full_node/stores/test_full_node_store.py +34 -30
- chia/_tests/core/full_node/stores/test_hint_store.py +3 -4
- chia/_tests/core/full_node/test_address_manager.py +2 -2
- chia/_tests/core/full_node/test_block_height_map.py +1 -1
- chia/_tests/core/full_node/test_conditions.py +10 -12
- chia/_tests/core/full_node/test_full_node.py +2077 -1822
- chia/_tests/core/full_node/test_generator_tools.py +4 -4
- chia/_tests/core/full_node/test_hint_management.py +2 -2
- chia/_tests/core/full_node/test_performance.py +2 -5
- chia/_tests/core/full_node/test_subscriptions.py +4 -4
- chia/_tests/core/full_node/test_tx_processing_queue.py +5 -4
- chia/_tests/core/make_block_generator.py +5 -7
- chia/_tests/core/mempool/test_mempool.py +205 -208
- chia/_tests/core/mempool/test_mempool_fee_protocol.py +5 -5
- chia/_tests/core/mempool/test_mempool_item_queries.py +2 -4
- chia/_tests/core/mempool/test_mempool_manager.py +109 -80
- chia/_tests/core/mempool/test_mempool_performance.py +3 -4
- chia/_tests/core/mempool/test_singleton_fast_forward.py +12 -12
- chia/_tests/core/server/flood.py +6 -4
- chia/_tests/core/server/serve.py +10 -7
- chia/_tests/core/server/test_api_protocol.py +21 -0
- chia/_tests/core/server/test_capabilities.py +3 -5
- chia/_tests/core/server/test_dos.py +15 -16
- chia/_tests/core/server/test_loop.py +14 -10
- chia/_tests/core/server/test_node_discovery.py +1 -2
- chia/_tests/core/server/test_rate_limits.py +156 -44
- chia/_tests/core/server/test_server.py +8 -7
- chia/_tests/core/services/test_services.py +59 -37
- chia/_tests/core/ssl/test_ssl.py +5 -3
- chia/_tests/core/test_cost_calculation.py +5 -6
- chia/_tests/core/test_crawler.py +2 -2
- chia/_tests/core/test_db_conversion.py +5 -4
- chia/_tests/core/test_db_validation.py +6 -5
- chia/_tests/core/test_farmer_harvester_rpc.py +8 -7
- chia/_tests/core/test_filter.py +3 -5
- chia/_tests/core/test_full_node_rpc.py +64 -90
- chia/_tests/core/test_merkle_set.py +10 -10
- chia/_tests/core/test_program.py +2 -4
- chia/_tests/core/test_rpc_util.py +1 -2
- chia/_tests/core/test_seeder.py +124 -12
- chia/_tests/core/util/test_block_cache.py +5 -5
- chia/_tests/core/util/test_cached_bls.py +3 -3
- chia/_tests/core/util/test_config.py +13 -13
- chia/_tests/core/util/test_files.py +2 -2
- chia/_tests/core/util/test_jsonify.py +9 -9
- chia/_tests/core/util/test_keychain.py +13 -5
- chia/_tests/core/util/test_keyring_wrapper.py +6 -5
- chia/_tests/core/util/test_log_exceptions.py +3 -3
- chia/_tests/core/util/test_streamable.py +38 -38
- chia/_tests/db/test_db_wrapper.py +13 -12
- chia/_tests/environments/common.py +2 -2
- chia/_tests/environments/full_node.py +2 -2
- chia/_tests/environments/wallet.py +109 -48
- chia/_tests/farmer_harvester/test_farmer.py +35 -35
- chia/_tests/farmer_harvester/test_farmer_harvester.py +17 -17
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +6 -5
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +73 -46
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +8 -8
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +47 -47
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +6 -7
- chia/_tests/fee_estimation/test_mempoolitem_height_added.py +11 -11
- chia/_tests/generator/test_compression.py +13 -30
- chia/_tests/generator/test_generator_types.py +3 -3
- chia/_tests/generator/test_rom.py +7 -9
- chia/_tests/plot_sync/test_delta.py +2 -3
- chia/_tests/plot_sync/test_plot_sync.py +25 -24
- chia/_tests/plot_sync/test_receiver.py +9 -9
- chia/_tests/plot_sync/test_sender.py +1 -1
- chia/_tests/plot_sync/test_sync_simulated.py +27 -26
- chia/_tests/plot_sync/util.py +2 -1
- chia/_tests/plotting/test_plot_manager.py +54 -11
- chia/_tests/plotting/util.py +2 -3
- chia/_tests/pools/test_pool_cli_parsing.py +128 -0
- chia/_tests/pools/test_pool_cmdline.py +993 -15
- chia/_tests/pools/test_pool_config.py +3 -5
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -11
- chia/_tests/pools/test_pool_rpc.py +203 -90
- chia/_tests/pools/test_pool_wallet.py +12 -8
- chia/_tests/pools/test_wallet_pool_store.py +3 -3
- chia/_tests/process_junit.py +16 -17
- chia/_tests/rpc/test_rpc_client.py +59 -2
- chia/_tests/rpc/test_rpc_server.py +183 -0
- chia/_tests/simulation/test_simulation.py +5 -5
- chia/_tests/simulation/test_simulator.py +8 -10
- chia/_tests/simulation/test_start_simulator.py +5 -4
- chia/_tests/timelord/test_new_peak.py +19 -19
- chia/_tests/tools/test_run_block.py +1 -2
- chia/_tests/tools/test_virtual_project.py +591 -0
- chia/_tests/util/benchmark_cost.py +9 -9
- chia/_tests/util/benchmarks.py +1 -2
- chia/_tests/util/blockchain.py +12 -11
- chia/_tests/util/blockchain_mock.py +15 -15
- chia/_tests/util/build_network_protocol_files.py +12 -12
- chia/_tests/util/db_connection.py +3 -2
- chia/_tests/util/full_sync.py +14 -6
- chia/_tests/util/gen_ssl_certs.py +4 -5
- chia/_tests/util/generator_tools_testing.py +5 -7
- chia/_tests/util/get_name_puzzle_conditions.py +52 -0
- chia/_tests/util/key_tool.py +2 -3
- chia/_tests/util/misc.py +59 -106
- chia/_tests/util/network_protocol_data.py +7 -9
- chia/_tests/util/protocol_messages_json.py +112 -111
- chia/_tests/util/rpc.py +3 -0
- chia/_tests/util/run_block.py +16 -16
- chia/_tests/util/setup_nodes.py +25 -23
- chia/{clvm → _tests/util}/spend_sim.py +59 -55
- chia/_tests/util/split_managers.py +12 -9
- chia/_tests/util/temp_file.py +1 -1
- chia/_tests/util/test_action_scope.py +2 -1
- chia/_tests/util/test_async_pool.py +8 -8
- chia/_tests/util/test_build_job_matrix.py +2 -3
- chia/_tests/util/test_condition_tools.py +4 -6
- chia/_tests/util/test_config.py +5 -5
- chia/_tests/util/test_dump_keyring.py +1 -1
- chia/_tests/util/test_full_block_utils.py +19 -11
- chia/_tests/util/test_limited_semaphore.py +4 -3
- chia/_tests/util/test_logging_filter.py +2 -3
- chia/_tests/util/test_misc.py +29 -28
- chia/_tests/util/test_network.py +32 -31
- chia/_tests/util/test_network_protocol_files.py +2 -3
- chia/_tests/util/test_network_protocol_json.py +1 -0
- chia/_tests/util/test_network_protocol_test.py +18 -19
- chia/_tests/util/test_paginator.py +3 -4
- chia/_tests/util/test_pprint.py +1 -1
- chia/_tests/util/test_priority_mutex.py +18 -17
- chia/_tests/util/test_recursive_replace.py +2 -2
- chia/_tests/util/test_testnet_overrides.py +3 -3
- chia/_tests/util/test_timing.py +1 -1
- chia/_tests/util/test_trusted_peer.py +2 -2
- chia/_tests/util/time_out_assert.py +43 -6
- chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +13 -13
- chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +1 -1
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +117 -29
- chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +15 -15
- chia/_tests/wallet/cat_wallet/test_trades.py +50 -28
- chia/_tests/wallet/clawback/test_clawback_decorator.py +3 -5
- chia/_tests/wallet/clawback/test_clawback_lifecycle.py +6 -6
- chia/_tests/wallet/clawback/test_clawback_metadata.py +1 -2
- chia/_tests/wallet/conftest.py +135 -74
- chia/_tests/wallet/dao_wallet/test_dao_clvm.py +25 -17
- chia/_tests/wallet/dao_wallet/test_dao_wallets.py +75 -75
- chia/_tests/wallet/db_wallet/test_db_graftroot.py +10 -12
- chia/_tests/wallet/db_wallet/test_dl_offers.py +6 -6
- chia/_tests/wallet/db_wallet/test_dl_wallet.py +18 -18
- chia/_tests/wallet/did_wallet/test_did.py +1277 -474
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +12 -11
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +115 -105
- chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +6 -7
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +16 -16
- chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +3 -3
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +38 -12
- chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +1 -1
- chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +31 -33
- chia/_tests/wallet/rpc/test_wallet_rpc.py +218 -171
- chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +36 -37
- chia/_tests/wallet/sync/test_wallet_sync.py +241 -78
- chia/_tests/wallet/test_address_type.py +20 -20
- chia/_tests/wallet/test_clvm_streamable.py +5 -5
- chia/_tests/wallet/test_coin_management.py +354 -0
- chia/_tests/wallet/test_coin_selection.py +34 -35
- chia/_tests/wallet/test_conditions.py +28 -16
- chia/_tests/wallet/test_debug_spend_bundle.py +156 -14
- chia/_tests/wallet/test_new_wallet_protocol.py +29 -31
- chia/_tests/wallet/test_nft_store.py +1 -2
- chia/_tests/wallet/test_notifications.py +2 -2
- chia/_tests/wallet/test_offer_parsing_performance.py +1 -1
- chia/_tests/wallet/test_puzzle_store.py +2 -3
- chia/_tests/wallet/test_sign_coin_spends.py +3 -3
- chia/_tests/wallet/test_signer_protocol.py +33 -34
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +29 -29
- chia/_tests/wallet/test_taproot.py +1 -1
- chia/_tests/wallet/test_transaction_store.py +23 -19
- chia/_tests/wallet/test_util.py +36 -32
- chia/_tests/wallet/test_wallet.py +37 -37
- chia/_tests/wallet/test_wallet_action_scope.py +8 -8
- chia/_tests/wallet/test_wallet_blockchain.py +4 -6
- chia/_tests/wallet/test_wallet_coin_store.py +34 -34
- chia/_tests/wallet/test_wallet_node.py +69 -72
- chia/_tests/wallet/test_wallet_retry.py +3 -3
- chia/_tests/wallet/test_wallet_state_manager.py +12 -5
- chia/_tests/wallet/test_wallet_trade_store.py +2 -2
- chia/_tests/wallet/test_wallet_utils.py +5 -4
- chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -3
- chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +18 -18
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +69 -40
- chia/_tests/wallet/wallet_block_tools.py +27 -27
- chia/_tests/weight_proof/test_weight_proof.py +30 -30
- chia/apis.py +19 -0
- chia/cmds/beta.py +8 -7
- chia/cmds/beta_funcs.py +15 -11
- chia/cmds/check_wallet_db.py +29 -27
- chia/cmds/chia.py +17 -9
- chia/cmds/cmd_classes.py +87 -79
- chia/cmds/cmd_helpers.py +242 -0
- chia/cmds/cmds_util.py +56 -66
- chia/cmds/coin_funcs.py +168 -153
- chia/cmds/coins.py +156 -194
- chia/cmds/configure.py +4 -3
- chia/cmds/dao.py +89 -33
- chia/cmds/dao_funcs.py +55 -33
- chia/cmds/data.py +7 -6
- chia/cmds/data_funcs.py +26 -21
- chia/cmds/db.py +4 -3
- chia/cmds/db_backup_func.py +2 -2
- chia/cmds/db_upgrade_func.py +3 -3
- chia/cmds/db_validate_func.py +2 -2
- chia/cmds/dev.py +2 -0
- chia/cmds/farm.py +18 -5
- chia/cmds/farm_funcs.py +17 -24
- chia/cmds/gh.py +275 -0
- chia/cmds/init.py +4 -11
- chia/cmds/init_funcs.py +9 -9
- chia/cmds/installers.py +5 -3
- chia/cmds/keys.py +56 -39
- chia/cmds/keys_funcs.py +30 -31
- chia/cmds/netspace.py +6 -3
- chia/cmds/netspace_funcs.py +3 -2
- chia/cmds/param_types.py +16 -6
- chia/cmds/passphrase.py +8 -7
- chia/cmds/passphrase_funcs.py +7 -61
- chia/cmds/peer.py +2 -1
- chia/cmds/peer_funcs.py +5 -5
- chia/cmds/plotnft.py +207 -153
- chia/cmds/plotnft_funcs.py +205 -174
- chia/cmds/plots.py +14 -6
- chia/cmds/plotters.py +2 -1
- chia/cmds/rpc.py +48 -28
- chia/cmds/show.py +2 -1
- chia/cmds/show_funcs.py +7 -6
- chia/cmds/signer.py +50 -58
- chia/cmds/sim.py +22 -14
- chia/cmds/sim_funcs.py +11 -11
- chia/cmds/start.py +3 -3
- chia/cmds/start_funcs.py +9 -12
- chia/cmds/stop.py +4 -3
- chia/cmds/units.py +1 -3
- chia/cmds/wallet.py +252 -96
- chia/cmds/wallet_funcs.py +217 -143
- chia/consensus/block_body_validation.py +133 -86
- chia/consensus/block_creation.py +42 -21
- chia/consensus/block_header_validation.py +32 -37
- chia/consensus/block_record.py +1 -2
- chia/consensus/blockchain.py +167 -180
- chia/consensus/blockchain_interface.py +10 -10
- chia/consensus/constants.py +2 -2
- chia/consensus/default_constants.py +3 -4
- chia/consensus/difficulty_adjustment.py +5 -5
- chia/consensus/find_fork_point.py +5 -5
- chia/consensus/full_block_to_block_record.py +4 -4
- chia/consensus/get_block_challenge.py +2 -2
- chia/consensus/get_block_generator.py +4 -3
- chia/consensus/multiprocess_validation.py +207 -304
- chia/consensus/vdf_info_computation.py +3 -3
- chia/daemon/client.py +46 -27
- chia/daemon/keychain_proxy.py +10 -9
- chia/daemon/keychain_server.py +18 -18
- chia/daemon/server.py +103 -113
- chia/daemon/windows_signal.py +2 -2
- chia/data_layer/data_layer.py +64 -76
- chia/data_layer/data_layer_api.py +8 -0
- chia/data_layer/data_layer_errors.py +3 -3
- chia/data_layer/data_layer_server.py +2 -2
- chia/data_layer/data_layer_util.py +71 -71
- chia/data_layer/data_layer_wallet.py +63 -67
- chia/data_layer/data_store.py +72 -72
- chia/data_layer/dl_wallet_store.py +10 -10
- chia/data_layer/download_data.py +5 -5
- chia/data_layer/s3_plugin_service.py +9 -9
- chia/data_layer/util/benchmark.py +0 -1
- chia/data_layer/util/plugin.py +2 -3
- chia/farmer/farmer.py +46 -43
- chia/farmer/farmer_api.py +27 -21
- chia/full_node/block_height_map.py +6 -6
- chia/full_node/block_store.py +41 -35
- chia/full_node/coin_store.py +42 -41
- chia/full_node/fee_estimate.py +2 -2
- chia/full_node/fee_estimation.py +1 -2
- chia/full_node/fee_history.py +5 -6
- chia/full_node/fee_tracker.py +24 -24
- chia/full_node/full_node.py +574 -300
- chia/full_node/full_node_api.py +181 -130
- chia/full_node/full_node_store.py +43 -43
- chia/full_node/hint_management.py +4 -4
- chia/full_node/hint_store.py +9 -10
- chia/full_node/mempool.py +25 -19
- chia/full_node/mempool_check_conditions.py +11 -42
- chia/full_node/mempool_manager.py +48 -53
- chia/full_node/pending_tx_cache.py +9 -9
- chia/full_node/subscriptions.py +23 -24
- chia/full_node/sync_store.py +8 -7
- chia/full_node/tx_processing_queue.py +3 -3
- chia/full_node/util/__init__.py +0 -0
- chia/full_node/weight_proof.py +79 -78
- chia/harvester/harvester.py +9 -8
- chia/harvester/harvester_api.py +19 -13
- chia/introducer/introducer.py +7 -5
- chia/introducer/introducer_api.py +9 -3
- chia/legacy/keyring.py +6 -5
- chia/plot_sync/delta.py +8 -8
- chia/plot_sync/receiver.py +12 -11
- chia/plot_sync/sender.py +15 -12
- chia/plotters/bladebit.py +12 -12
- chia/plotters/chiapos.py +2 -2
- chia/plotters/madmax.py +8 -8
- chia/plotters/plotters.py +6 -6
- chia/plotters/plotters_util.py +6 -4
- chia/plotting/cache.py +8 -7
- chia/plotting/check_plots.py +8 -8
- chia/plotting/create_plots.py +6 -6
- chia/plotting/manager.py +22 -22
- chia/plotting/util.py +31 -19
- chia/pools/pool_config.py +7 -7
- chia/pools/pool_puzzles.py +16 -16
- chia/pools/pool_wallet.py +64 -57
- chia/pools/pool_wallet_info.py +3 -3
- chia/protocols/full_node_protocol.py +3 -3
- chia/protocols/harvester_protocol.py +12 -12
- chia/protocols/introducer_protocol.py +1 -2
- chia/protocols/protocol_message_types.py +4 -4
- chia/protocols/protocol_state_machine.py +2 -2
- chia/protocols/protocol_timing.py +1 -0
- chia/protocols/shared_protocol.py +3 -3
- chia/protocols/timelord_protocol.py +2 -2
- chia/protocols/wallet_protocol.py +33 -33
- chia/rpc/crawler_rpc_api.py +12 -7
- chia/rpc/data_layer_rpc_api.py +49 -44
- chia/rpc/data_layer_rpc_client.py +41 -41
- chia/rpc/data_layer_rpc_util.py +7 -11
- chia/rpc/farmer_rpc_api.py +32 -27
- chia/rpc/farmer_rpc_client.py +14 -14
- chia/rpc/full_node_rpc_api.py +53 -48
- chia/rpc/full_node_rpc_client.py +30 -30
- chia/rpc/harvester_rpc_api.py +16 -11
- chia/rpc/harvester_rpc_client.py +6 -6
- chia/rpc/rpc_client.py +34 -14
- chia/rpc/rpc_server.py +117 -43
- chia/rpc/timelord_rpc_api.py +9 -4
- chia/rpc/util.py +11 -211
- chia/rpc/wallet_request_types.py +276 -60
- chia/rpc/wallet_rpc_api.py +563 -399
- chia/rpc/wallet_rpc_client.py +220 -250
- chia/seeder/crawl_store.py +6 -8
- chia/seeder/crawler.py +23 -36
- chia/seeder/crawler_api.py +28 -22
- chia/seeder/dns_server.py +99 -50
- chia/seeder/start_crawler.py +13 -9
- chia/server/address_manager.py +19 -19
- chia/server/address_manager_store.py +17 -17
- chia/server/api_protocol.py +106 -1
- chia/server/capabilities.py +3 -3
- chia/server/chia_policy.py +17 -16
- chia/server/introducer_peers.py +3 -3
- chia/server/node_discovery.py +34 -38
- chia/server/rate_limit_numbers.py +26 -16
- chia/server/rate_limits.py +67 -27
- chia/server/server.py +52 -31
- chia/server/signal_handlers.py +6 -3
- chia/server/ssl_context.py +5 -5
- chia/server/start_data_layer.py +37 -23
- chia/server/start_farmer.py +28 -16
- chia/server/start_full_node.py +29 -23
- chia/server/start_harvester.py +28 -15
- chia/server/start_introducer.py +27 -15
- chia/server/start_service.py +17 -29
- chia/server/start_timelord.py +25 -18
- chia/server/start_wallet.py +22 -18
- chia/server/upnp.py +4 -3
- chia/server/ws_connection.py +68 -54
- chia/simulator/add_blocks_in_batches.py +54 -0
- chia/simulator/block_tools.py +65 -64
- chia/simulator/full_node_simulator.py +66 -74
- chia/simulator/setup_services.py +10 -9
- chia/simulator/simulator_full_node_rpc_api.py +12 -14
- chia/simulator/simulator_full_node_rpc_client.py +3 -5
- chia/simulator/simulator_test_tools.py +8 -7
- chia/simulator/socket.py +1 -4
- chia/simulator/ssl_certs.py +5 -5
- chia/simulator/ssl_certs_1.py +2 -4
- chia/simulator/ssl_certs_10.py +2 -4
- chia/simulator/ssl_certs_2.py +2 -4
- chia/simulator/ssl_certs_3.py +2 -4
- chia/simulator/ssl_certs_4.py +2 -4
- chia/simulator/ssl_certs_5.py +2 -4
- chia/simulator/ssl_certs_6.py +2 -4
- chia/simulator/ssl_certs_7.py +2 -4
- chia/simulator/ssl_certs_8.py +2 -4
- chia/simulator/ssl_certs_9.py +2 -4
- chia/simulator/start_simulator.py +14 -6
- chia/simulator/wallet_tools.py +21 -20
- chia/ssl/create_ssl.py +11 -11
- chia/timelord/iters_from_block.py +2 -2
- chia/timelord/timelord.py +57 -33
- chia/timelord/timelord_api.py +12 -6
- chia/timelord/timelord_launcher.py +10 -8
- chia/timelord/timelord_state.py +5 -5
- chia/types/block_protocol.py +2 -2
- chia/types/blockchain_format/coin.py +3 -3
- chia/types/blockchain_format/program.py +17 -18
- chia/types/blockchain_format/tree_hash.py +9 -9
- chia/types/coin_spend.py +8 -8
- chia/types/condition_with_args.py +1 -2
- chia/types/eligible_coin_spends.py +16 -15
- chia/types/generator_types.py +1 -2
- chia/types/internal_mempool_item.py +1 -2
- chia/types/mempool_item.py +7 -7
- chia/types/mempool_submission_status.py +2 -2
- chia/types/peer_info.py +1 -1
- chia/types/spend_bundle.py +1 -2
- chia/types/transaction_queue_entry.py +2 -2
- chia/types/unfinished_header_block.py +2 -2
- chia/types/validation_state.py +14 -0
- chia/types/weight_proof.py +5 -6
- chia/util/action_scope.py +8 -8
- chia/util/async_pool.py +6 -4
- chia/util/augmented_chain.py +13 -9
- chia/util/batches.py +5 -2
- chia/util/bech32m.py +14 -11
- chia/util/beta_metrics.py +5 -4
- chia/util/block_cache.py +5 -5
- chia/util/byte_types.py +2 -0
- chia/util/check_fork_next_block.py +3 -2
- chia/util/chia_logging.py +41 -21
- chia/util/collection.py +3 -3
- chia/util/condition_tools.py +18 -18
- chia/util/config.py +26 -25
- chia/util/cpu.py +2 -0
- chia/util/db_synchronous.py +2 -0
- chia/util/db_version.py +2 -0
- chia/util/db_wrapper.py +13 -10
- chia/util/default_root.py +17 -0
- chia/util/dump_keyring.py +6 -6
- chia/util/errors.py +5 -3
- chia/util/file_keyring.py +22 -33
- chia/util/files.py +2 -0
- chia/util/full_block_utils.py +31 -7
- chia/util/generator_tools.py +18 -8
- chia/util/hash.py +3 -1
- chia/util/initial-config.yaml +19 -0
- chia/util/inline_executor.py +2 -0
- chia/util/ip_address.py +39 -0
- chia/util/json_util.py +0 -4
- chia/util/keychain.py +27 -24
- chia/util/keyring_wrapper.py +65 -4
- chia/util/limited_semaphore.py +3 -1
- chia/util/lock.py +4 -2
- chia/util/log_exceptions.py +5 -2
- chia/util/logging.py +3 -1
- chia/util/lru_cache.py +2 -0
- chia/util/math.py +4 -4
- chia/util/network.py +15 -73
- chia/util/paginator.py +3 -1
- chia/util/path.py +2 -0
- chia/util/permissions.py +3 -2
- chia/util/prev_transaction_block.py +1 -3
- chia/util/priority_mutex.py +6 -3
- chia/util/profiler.py +7 -4
- chia/util/recursive_replace.py +2 -0
- chia/util/safe_cancel_task.py +2 -0
- chia/util/service_groups.py +2 -2
- chia/util/setproctitle.py +2 -0
- chia/util/significant_bits.py +2 -0
- chia/util/ssl_check.py +11 -11
- chia/util/streamable.py +44 -56
- chia/util/task_referencer.py +59 -0
- chia/util/task_timing.py +22 -18
- chia/util/timing.py +4 -1
- chia/util/vdf_prover.py +2 -3
- chia/util/virtual_project_analysis.py +540 -0
- chia/util/ws_message.py +6 -6
- chia/wallet/cat_wallet/cat_info.py +3 -3
- chia/wallet/cat_wallet/cat_outer_puzzle.py +3 -3
- chia/wallet/cat_wallet/cat_utils.py +5 -4
- chia/wallet/cat_wallet/cat_wallet.py +56 -70
- chia/wallet/cat_wallet/dao_cat_info.py +3 -3
- chia/wallet/cat_wallet/dao_cat_wallet.py +18 -18
- chia/wallet/cat_wallet/lineage_store.py +2 -2
- chia/wallet/coin_selection.py +15 -15
- chia/wallet/conditions.py +257 -71
- chia/wallet/dao_wallet/dao_info.py +4 -4
- chia/wallet/dao_wallet/dao_utils.py +43 -42
- chia/wallet/dao_wallet/dao_wallet.py +66 -68
- chia/wallet/db_wallet/db_wallet_puzzles.py +12 -8
- chia/wallet/derive_keys.py +11 -11
- chia/wallet/did_wallet/did_info.py +3 -3
- chia/wallet/did_wallet/did_wallet.py +56 -47
- chia/wallet/did_wallet/did_wallet_puzzles.py +7 -6
- chia/wallet/lineage_proof.py +4 -4
- chia/wallet/nft_wallet/metadata_outer_puzzle.py +2 -2
- chia/wallet/nft_wallet/nft_info.py +4 -4
- chia/wallet/nft_wallet/nft_puzzles.py +16 -16
- chia/wallet/nft_wallet/nft_wallet.py +90 -89
- chia/wallet/nft_wallet/ownership_outer_puzzle.py +2 -2
- chia/wallet/nft_wallet/singleton_outer_puzzle.py +2 -2
- chia/wallet/nft_wallet/transfer_program_puzzle.py +2 -2
- chia/wallet/nft_wallet/uncurry_nft.py +2 -2
- chia/wallet/notification_manager.py +5 -5
- chia/wallet/notification_store.py +6 -6
- chia/wallet/outer_puzzles.py +2 -2
- chia/wallet/payment.py +4 -5
- chia/wallet/puzzle_drivers.py +4 -4
- chia/wallet/puzzles/clawback/drivers.py +5 -5
- chia/wallet/puzzles/clawback/puzzle_decorator.py +7 -7
- chia/wallet/puzzles/load_clvm.py +2 -3
- chia/wallet/puzzles/p2_conditions.py +1 -2
- chia/wallet/puzzles/p2_delegated_conditions.py +1 -2
- chia/wallet/puzzles/p2_delegated_puzzle.py +2 -3
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +3 -4
- chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +1 -2
- chia/wallet/puzzles/p2_puzzle_hash.py +1 -2
- chia/wallet/puzzles/puzzle_utils.py +7 -7
- chia/wallet/puzzles/singleton_top_layer.py +6 -5
- chia/wallet/puzzles/singleton_top_layer_v1_1.py +6 -5
- chia/wallet/puzzles/tails.py +34 -30
- chia/wallet/signer_protocol.py +7 -8
- chia/wallet/singleton.py +4 -4
- chia/wallet/trade_manager.py +155 -141
- chia/wallet/trade_record.py +5 -5
- chia/wallet/trading/offer.py +100 -101
- chia/wallet/trading/trade_store.py +14 -14
- chia/wallet/transaction_record.py +31 -16
- chia/wallet/util/address_type.py +4 -4
- chia/wallet/util/blind_signer_tl.py +8 -12
- chia/wallet/util/clvm_streamable.py +15 -15
- chia/wallet/util/compute_hints.py +5 -5
- chia/wallet/util/compute_memos.py +4 -6
- chia/wallet/util/curry_and_treehash.py +3 -2
- chia/wallet/util/debug_spend_bundle.py +6 -8
- chia/wallet/util/merkle_tree.py +10 -10
- chia/wallet/util/merkle_utils.py +10 -10
- chia/wallet/util/new_peak_queue.py +3 -3
- chia/wallet/util/peer_request_cache.py +8 -8
- chia/{util → wallet/util}/pprint.py +2 -3
- chia/wallet/util/puzzle_compression.py +3 -4
- chia/wallet/util/puzzle_decorator.py +10 -10
- chia/wallet/util/query_filter.py +9 -10
- chia/wallet/util/tx_config.py +12 -12
- chia/wallet/util/wallet_sync_utils.py +24 -21
- chia/wallet/util/wallet_types.py +9 -2
- chia/wallet/vc_wallet/cr_cat_drivers.py +28 -27
- chia/wallet/vc_wallet/cr_cat_wallet.py +42 -40
- chia/wallet/vc_wallet/cr_outer_puzzle.py +4 -4
- chia/wallet/vc_wallet/vc_drivers.py +16 -16
- chia/wallet/vc_wallet/vc_store.py +9 -9
- chia/wallet/vc_wallet/vc_wallet.py +35 -35
- chia/wallet/wallet.py +54 -54
- chia/wallet/wallet_action_scope.py +14 -13
- chia/wallet/wallet_blockchain.py +10 -10
- chia/wallet/wallet_coin_record.py +2 -2
- chia/wallet/wallet_coin_store.py +10 -10
- chia/wallet/wallet_info.py +1 -2
- chia/wallet/wallet_interested_store.py +5 -5
- chia/wallet/wallet_nft_store.py +6 -6
- chia/wallet/wallet_node.py +72 -76
- chia/wallet/wallet_node_api.py +33 -27
- chia/wallet/wallet_pool_store.py +1 -2
- chia/wallet/wallet_protocol.py +15 -15
- chia/wallet/wallet_puzzle_store.py +35 -4
- chia/wallet/wallet_retry_store.py +2 -2
- chia/wallet/wallet_singleton_store.py +10 -9
- chia/wallet/wallet_spend_bundle.py +4 -20
- chia/wallet/wallet_state_manager.py +223 -224
- chia/wallet/wallet_transaction_store.py +44 -18
- chia/wallet/wallet_user_store.py +2 -2
- chia/wallet/wallet_weight_proof_handler.py +2 -2
- {chia_blockchain-2.5.0rc1.dist-info → chia_blockchain-2.5.1.dist-info}/LICENSE +1 -1
- {chia_blockchain-2.5.0rc1.dist-info → chia_blockchain-2.5.1.dist-info}/METADATA +67 -72
- chia_blockchain-2.5.1.dist-info/RECORD +1042 -0
- {chia_blockchain-2.5.0rc1.dist-info → chia_blockchain-2.5.1.dist-info}/WHEEL +1 -1
- mozilla-ca/cacert.pem +32 -87
- chia/_tests/cmds/wallet/test_coins.py +0 -195
- chia/consensus/block_root_validation.py +0 -46
- chia/util/api_decorators.py +0 -89
- chia_blockchain-2.5.0rc1.dist-info/RECORD +0 -1028
- {chia_blockchain-2.5.0rc1.dist-info → chia_blockchain-2.5.1.dist-info}/entry_points.txt +0 -0
chia/cmds/dao.py
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
|
-
from
|
|
4
|
+
from collections.abc import Sequence
|
|
5
|
+
from typing import Optional
|
|
5
6
|
|
|
6
7
|
import click
|
|
7
8
|
|
|
8
9
|
from chia.cmds import options
|
|
10
|
+
from chia.cmds.cmd_classes import ChiaCliContext
|
|
9
11
|
from chia.cmds.cmds_util import CMDTXConfigLoader, tx_config_args, tx_out_cmd
|
|
10
12
|
from chia.cmds.param_types import AmountParamType, Bytes32ParamType, CliAmount, TransactionFeeParamType, Uint64ParamType
|
|
11
13
|
from chia.cmds.units import units
|
|
@@ -50,16 +52,22 @@ def dao_cmd(ctx: click.Context) -> None:
|
|
|
50
52
|
default=uint64(1),
|
|
51
53
|
show_default=True,
|
|
52
54
|
)
|
|
55
|
+
@click.pass_context
|
|
53
56
|
def dao_add_cmd(
|
|
57
|
+
ctx: click.Context,
|
|
54
58
|
wallet_rpc_port: Optional[int],
|
|
55
59
|
fingerprint: int,
|
|
56
60
|
treasury_id: bytes32,
|
|
57
61
|
filter_amount: uint64,
|
|
58
62
|
name: Optional[str],
|
|
59
63
|
) -> None:
|
|
60
|
-
from .dao_funcs import add_dao_wallet
|
|
64
|
+
from chia.cmds.dao_funcs import add_dao_wallet
|
|
61
65
|
|
|
62
|
-
asyncio.run(
|
|
66
|
+
asyncio.run(
|
|
67
|
+
add_dao_wallet(
|
|
68
|
+
ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, name, treasury_id, filter_amount
|
|
69
|
+
)
|
|
70
|
+
)
|
|
63
71
|
|
|
64
72
|
|
|
65
73
|
# ----------------------------------------------------------------------------------------
|
|
@@ -147,7 +155,9 @@ def dao_add_cmd(
|
|
|
147
155
|
)
|
|
148
156
|
@tx_config_args
|
|
149
157
|
@tx_out_cmd()
|
|
158
|
+
@click.pass_context
|
|
150
159
|
def dao_create_cmd(
|
|
160
|
+
ctx: click.Context,
|
|
151
161
|
wallet_rpc_port: Optional[int],
|
|
152
162
|
fingerprint: int,
|
|
153
163
|
proposal_timelock: uint64,
|
|
@@ -169,8 +179,8 @@ def dao_create_cmd(
|
|
|
169
179
|
reuse: Optional[bool],
|
|
170
180
|
push: bool,
|
|
171
181
|
condition_valid_times: ConditionValidTimes,
|
|
172
|
-
) ->
|
|
173
|
-
from .dao_funcs import create_dao_wallet
|
|
182
|
+
) -> list[TransactionRecord]:
|
|
183
|
+
from chia.cmds.dao_funcs import create_dao_wallet
|
|
174
184
|
|
|
175
185
|
if self_destruct == proposal_timelock:
|
|
176
186
|
raise ValueError("Self Destruct and Proposal Timelock cannot be the same value")
|
|
@@ -179,6 +189,7 @@ def dao_create_cmd(
|
|
|
179
189
|
|
|
180
190
|
return asyncio.run(
|
|
181
191
|
create_dao_wallet(
|
|
192
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
182
193
|
wallet_rpc_port,
|
|
183
194
|
fingerprint,
|
|
184
195
|
fee,
|
|
@@ -220,14 +231,16 @@ def dao_create_cmd(
|
|
|
220
231
|
)
|
|
221
232
|
@click.option("-f", "--fingerprint", help="Set the fingerprint to specify which key to use", type=int)
|
|
222
233
|
@click.option("-i", "--wallet-id", help="DAO Wallet ID", type=int, required=True)
|
|
234
|
+
@click.pass_context
|
|
223
235
|
def dao_get_id_cmd(
|
|
236
|
+
ctx: click.Context,
|
|
224
237
|
wallet_rpc_port: Optional[int],
|
|
225
238
|
fingerprint: int,
|
|
226
239
|
wallet_id: int,
|
|
227
240
|
) -> None:
|
|
228
|
-
from .dao_funcs import get_treasury_id
|
|
241
|
+
from chia.cmds.dao_funcs import get_treasury_id
|
|
229
242
|
|
|
230
|
-
asyncio.run(get_treasury_id(wallet_rpc_port, fingerprint, wallet_id))
|
|
243
|
+
asyncio.run(get_treasury_id(ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, wallet_id))
|
|
231
244
|
|
|
232
245
|
|
|
233
246
|
@dao_cmd.command("add_funds", short_help="Send funds to a DAO treasury", no_args_is_help=True)
|
|
@@ -257,7 +270,9 @@ def dao_get_id_cmd(
|
|
|
257
270
|
@options.create_fee()
|
|
258
271
|
@tx_config_args
|
|
259
272
|
@tx_out_cmd()
|
|
273
|
+
@click.pass_context
|
|
260
274
|
def dao_add_funds_cmd(
|
|
275
|
+
ctx: click.Context,
|
|
261
276
|
wallet_rpc_port: Optional[int],
|
|
262
277
|
fingerprint: int,
|
|
263
278
|
wallet_id: int,
|
|
@@ -271,11 +286,12 @@ def dao_add_funds_cmd(
|
|
|
271
286
|
reuse: Optional[bool],
|
|
272
287
|
push: bool,
|
|
273
288
|
condition_valid_times: ConditionValidTimes,
|
|
274
|
-
) ->
|
|
275
|
-
from .dao_funcs import add_funds_to_treasury
|
|
289
|
+
) -> list[TransactionRecord]:
|
|
290
|
+
from chia.cmds.dao_funcs import add_funds_to_treasury
|
|
276
291
|
|
|
277
292
|
return asyncio.run(
|
|
278
293
|
add_funds_to_treasury(
|
|
294
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
279
295
|
wallet_rpc_port,
|
|
280
296
|
fingerprint,
|
|
281
297
|
wallet_id,
|
|
@@ -305,14 +321,18 @@ def dao_add_funds_cmd(
|
|
|
305
321
|
)
|
|
306
322
|
@click.option("-f", "--fingerprint", help="Set the fingerprint to specify which key to use", type=int)
|
|
307
323
|
@click.option("-i", "--wallet-id", help="Id of the wallet to use", type=int, required=True)
|
|
324
|
+
@click.pass_context
|
|
308
325
|
def dao_get_balance_cmd(
|
|
326
|
+
ctx: click.Context,
|
|
309
327
|
wallet_rpc_port: Optional[int],
|
|
310
328
|
fingerprint: int,
|
|
311
329
|
wallet_id: int,
|
|
312
330
|
) -> None:
|
|
313
|
-
from .dao_funcs import get_treasury_balance
|
|
331
|
+
from chia.cmds.dao_funcs import get_treasury_balance
|
|
314
332
|
|
|
315
|
-
asyncio.run(
|
|
333
|
+
asyncio.run(
|
|
334
|
+
get_treasury_balance(ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, wallet_id)
|
|
335
|
+
)
|
|
316
336
|
|
|
317
337
|
|
|
318
338
|
@dao_cmd.command("rules", short_help="Get the current rules governing the DAO", no_args_is_help=True)
|
|
@@ -325,14 +345,16 @@ def dao_get_balance_cmd(
|
|
|
325
345
|
)
|
|
326
346
|
@click.option("-f", "--fingerprint", help="Set the fingerprint to specify which key to use", type=int)
|
|
327
347
|
@click.option("-i", "--wallet-id", help="Id of the wallet to use", type=int, required=True)
|
|
348
|
+
@click.pass_context
|
|
328
349
|
def dao_rules_cmd(
|
|
350
|
+
ctx: click.Context,
|
|
329
351
|
wallet_rpc_port: Optional[int],
|
|
330
352
|
fingerprint: int,
|
|
331
353
|
wallet_id: int,
|
|
332
354
|
) -> None:
|
|
333
|
-
from .dao_funcs import get_rules
|
|
355
|
+
from chia.cmds.dao_funcs import get_rules
|
|
334
356
|
|
|
335
|
-
asyncio.run(get_rules(wallet_rpc_port, fingerprint, wallet_id))
|
|
357
|
+
asyncio.run(get_rules(ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, wallet_id))
|
|
336
358
|
|
|
337
359
|
|
|
338
360
|
# ----------------------------------------------------------------------------------------
|
|
@@ -355,18 +377,24 @@ def dao_rules_cmd(
|
|
|
355
377
|
help="Include previously closed proposals",
|
|
356
378
|
is_flag=True,
|
|
357
379
|
)
|
|
380
|
+
@click.pass_context
|
|
358
381
|
def dao_list_proposals_cmd(
|
|
382
|
+
ctx: click.Context,
|
|
359
383
|
wallet_rpc_port: Optional[int],
|
|
360
384
|
fingerprint: int,
|
|
361
385
|
wallet_id: int,
|
|
362
386
|
include_closed: Optional[bool],
|
|
363
387
|
) -> None:
|
|
364
|
-
from .dao_funcs import list_proposals
|
|
388
|
+
from chia.cmds.dao_funcs import list_proposals
|
|
365
389
|
|
|
366
390
|
if not include_closed:
|
|
367
391
|
include_closed = False
|
|
368
392
|
|
|
369
|
-
asyncio.run(
|
|
393
|
+
asyncio.run(
|
|
394
|
+
list_proposals(
|
|
395
|
+
ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, wallet_id, include_closed
|
|
396
|
+
)
|
|
397
|
+
)
|
|
370
398
|
|
|
371
399
|
|
|
372
400
|
@dao_cmd.command("show_proposal", short_help="Show the details of a specific proposal", no_args_is_help=True)
|
|
@@ -386,15 +414,19 @@ def dao_list_proposals_cmd(
|
|
|
386
414
|
type=str,
|
|
387
415
|
required=True,
|
|
388
416
|
)
|
|
417
|
+
@click.pass_context
|
|
389
418
|
def dao_show_proposal_cmd(
|
|
419
|
+
ctx: click.Context,
|
|
390
420
|
wallet_rpc_port: Optional[int],
|
|
391
421
|
fingerprint: int,
|
|
392
422
|
wallet_id: int,
|
|
393
423
|
proposal_id: str,
|
|
394
424
|
) -> None:
|
|
395
|
-
from .dao_funcs import show_proposal
|
|
425
|
+
from chia.cmds.dao_funcs import show_proposal
|
|
396
426
|
|
|
397
|
-
asyncio.run(
|
|
427
|
+
asyncio.run(
|
|
428
|
+
show_proposal(ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, wallet_id, proposal_id)
|
|
429
|
+
)
|
|
398
430
|
|
|
399
431
|
|
|
400
432
|
# ----------------------------------------------------------------------------------------
|
|
@@ -434,7 +466,9 @@ def dao_show_proposal_cmd(
|
|
|
434
466
|
@options.create_fee()
|
|
435
467
|
@tx_config_args
|
|
436
468
|
@tx_out_cmd()
|
|
469
|
+
@click.pass_context
|
|
437
470
|
def dao_vote_cmd(
|
|
471
|
+
ctx: click.Context,
|
|
438
472
|
wallet_rpc_port: Optional[int],
|
|
439
473
|
fingerprint: int,
|
|
440
474
|
wallet_id: int,
|
|
@@ -449,13 +483,14 @@ def dao_vote_cmd(
|
|
|
449
483
|
reuse: Optional[bool],
|
|
450
484
|
push: bool,
|
|
451
485
|
condition_valid_times: ConditionValidTimes,
|
|
452
|
-
) ->
|
|
453
|
-
from .dao_funcs import vote_on_proposal
|
|
486
|
+
) -> list[TransactionRecord]:
|
|
487
|
+
from chia.cmds.dao_funcs import vote_on_proposal
|
|
454
488
|
|
|
455
489
|
is_yes_vote = False if vote_no else True
|
|
456
490
|
|
|
457
491
|
return asyncio.run(
|
|
458
492
|
vote_on_proposal(
|
|
493
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
459
494
|
wallet_rpc_port,
|
|
460
495
|
fingerprint,
|
|
461
496
|
wallet_id,
|
|
@@ -507,7 +542,9 @@ def dao_vote_cmd(
|
|
|
507
542
|
@options.create_fee()
|
|
508
543
|
@tx_config_args
|
|
509
544
|
@tx_out_cmd()
|
|
545
|
+
@click.pass_context
|
|
510
546
|
def dao_close_proposal_cmd(
|
|
547
|
+
ctx: click.Context,
|
|
511
548
|
wallet_rpc_port: Optional[int],
|
|
512
549
|
fingerprint: int,
|
|
513
550
|
wallet_id: int,
|
|
@@ -521,11 +558,12 @@ def dao_close_proposal_cmd(
|
|
|
521
558
|
reuse: Optional[bool],
|
|
522
559
|
push: bool,
|
|
523
560
|
condition_valid_times: ConditionValidTimes,
|
|
524
|
-
) ->
|
|
525
|
-
from .dao_funcs import close_proposal
|
|
561
|
+
) -> list[TransactionRecord]:
|
|
562
|
+
from chia.cmds.dao_funcs import close_proposal
|
|
526
563
|
|
|
527
564
|
return asyncio.run(
|
|
528
565
|
close_proposal(
|
|
566
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
529
567
|
wallet_rpc_port,
|
|
530
568
|
fingerprint,
|
|
531
569
|
wallet_id,
|
|
@@ -569,7 +607,9 @@ def dao_close_proposal_cmd(
|
|
|
569
607
|
@options.create_fee()
|
|
570
608
|
@tx_config_args
|
|
571
609
|
@tx_out_cmd()
|
|
610
|
+
@click.pass_context
|
|
572
611
|
def dao_lockup_coins_cmd(
|
|
612
|
+
ctx: click.Context,
|
|
573
613
|
wallet_rpc_port: Optional[int],
|
|
574
614
|
fingerprint: int,
|
|
575
615
|
wallet_id: int,
|
|
@@ -582,11 +622,12 @@ def dao_lockup_coins_cmd(
|
|
|
582
622
|
reuse: Optional[bool],
|
|
583
623
|
push: bool,
|
|
584
624
|
condition_valid_times: ConditionValidTimes,
|
|
585
|
-
) ->
|
|
586
|
-
from .dao_funcs import lockup_coins
|
|
625
|
+
) -> list[TransactionRecord]:
|
|
626
|
+
from chia.cmds.dao_funcs import lockup_coins
|
|
587
627
|
|
|
588
628
|
return asyncio.run(
|
|
589
629
|
lockup_coins(
|
|
630
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
590
631
|
wallet_rpc_port,
|
|
591
632
|
fingerprint,
|
|
592
633
|
wallet_id,
|
|
@@ -618,7 +659,9 @@ def dao_lockup_coins_cmd(
|
|
|
618
659
|
@options.create_fee()
|
|
619
660
|
@tx_config_args
|
|
620
661
|
@tx_out_cmd()
|
|
662
|
+
@click.pass_context
|
|
621
663
|
def dao_release_coins_cmd(
|
|
664
|
+
ctx: click.Context,
|
|
622
665
|
wallet_rpc_port: Optional[int],
|
|
623
666
|
fingerprint: int,
|
|
624
667
|
wallet_id: int,
|
|
@@ -630,11 +673,12 @@ def dao_release_coins_cmd(
|
|
|
630
673
|
reuse: Optional[bool],
|
|
631
674
|
push: bool,
|
|
632
675
|
condition_valid_times: ConditionValidTimes,
|
|
633
|
-
) ->
|
|
634
|
-
from .dao_funcs import release_coins
|
|
676
|
+
) -> list[TransactionRecord]:
|
|
677
|
+
from chia.cmds.dao_funcs import release_coins
|
|
635
678
|
|
|
636
679
|
return asyncio.run(
|
|
637
680
|
release_coins(
|
|
681
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
638
682
|
wallet_rpc_port,
|
|
639
683
|
fingerprint,
|
|
640
684
|
wallet_id,
|
|
@@ -665,7 +709,9 @@ def dao_release_coins_cmd(
|
|
|
665
709
|
@options.create_fee()
|
|
666
710
|
@tx_config_args
|
|
667
711
|
@tx_out_cmd()
|
|
712
|
+
@click.pass_context
|
|
668
713
|
def dao_exit_lockup_cmd(
|
|
714
|
+
ctx: click.Context,
|
|
669
715
|
wallet_rpc_port: Optional[int],
|
|
670
716
|
fingerprint: int,
|
|
671
717
|
wallet_id: int,
|
|
@@ -677,11 +723,12 @@ def dao_exit_lockup_cmd(
|
|
|
677
723
|
reuse: Optional[bool],
|
|
678
724
|
push: bool,
|
|
679
725
|
condition_valid_times: ConditionValidTimes,
|
|
680
|
-
) ->
|
|
681
|
-
from .dao_funcs import exit_lockup
|
|
726
|
+
) -> list[TransactionRecord]:
|
|
727
|
+
from chia.cmds.dao_funcs import exit_lockup
|
|
682
728
|
|
|
683
729
|
return asyncio.run(
|
|
684
730
|
exit_lockup(
|
|
731
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
685
732
|
wallet_rpc_port,
|
|
686
733
|
fingerprint,
|
|
687
734
|
wallet_id,
|
|
@@ -761,7 +808,9 @@ def dao_proposal(ctx: click.Context) -> None:
|
|
|
761
808
|
@options.create_fee()
|
|
762
809
|
@tx_config_args
|
|
763
810
|
@tx_out_cmd()
|
|
811
|
+
@click.pass_context
|
|
764
812
|
def dao_create_spend_proposal_cmd(
|
|
813
|
+
ctx: click.Context,
|
|
765
814
|
wallet_rpc_port: Optional[int],
|
|
766
815
|
fingerprint: int,
|
|
767
816
|
wallet_id: int,
|
|
@@ -778,11 +827,12 @@ def dao_create_spend_proposal_cmd(
|
|
|
778
827
|
reuse: Optional[bool],
|
|
779
828
|
push: bool,
|
|
780
829
|
condition_valid_times: ConditionValidTimes,
|
|
781
|
-
) ->
|
|
782
|
-
from .dao_funcs import create_spend_proposal
|
|
830
|
+
) -> list[TransactionRecord]:
|
|
831
|
+
from chia.cmds.dao_funcs import create_spend_proposal
|
|
783
832
|
|
|
784
833
|
return asyncio.run(
|
|
785
834
|
create_spend_proposal(
|
|
835
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
786
836
|
wallet_rpc_port,
|
|
787
837
|
fingerprint,
|
|
788
838
|
wallet_id,
|
|
@@ -868,7 +918,9 @@ def dao_create_spend_proposal_cmd(
|
|
|
868
918
|
@options.create_fee()
|
|
869
919
|
@tx_config_args
|
|
870
920
|
@tx_out_cmd()
|
|
921
|
+
@click.pass_context
|
|
871
922
|
def dao_create_update_proposal_cmd(
|
|
923
|
+
ctx: click.Context,
|
|
872
924
|
wallet_rpc_port: Optional[int],
|
|
873
925
|
fingerprint: int,
|
|
874
926
|
wallet_id: int,
|
|
@@ -887,11 +939,12 @@ def dao_create_update_proposal_cmd(
|
|
|
887
939
|
reuse: Optional[bool],
|
|
888
940
|
push: bool,
|
|
889
941
|
condition_valid_times: ConditionValidTimes,
|
|
890
|
-
) ->
|
|
891
|
-
from .dao_funcs import create_update_proposal
|
|
942
|
+
) -> list[TransactionRecord]:
|
|
943
|
+
from chia.cmds.dao_funcs import create_update_proposal
|
|
892
944
|
|
|
893
945
|
return asyncio.run(
|
|
894
946
|
create_update_proposal(
|
|
947
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
895
948
|
wallet_rpc_port,
|
|
896
949
|
fingerprint,
|
|
897
950
|
wallet_id,
|
|
@@ -952,7 +1005,9 @@ def dao_create_update_proposal_cmd(
|
|
|
952
1005
|
@options.create_fee()
|
|
953
1006
|
@tx_config_args
|
|
954
1007
|
@tx_out_cmd()
|
|
1008
|
+
@click.pass_context
|
|
955
1009
|
def dao_create_mint_proposal_cmd(
|
|
1010
|
+
ctx: click.Context,
|
|
956
1011
|
wallet_rpc_port: Optional[int],
|
|
957
1012
|
fingerprint: int,
|
|
958
1013
|
wallet_id: int,
|
|
@@ -967,11 +1022,12 @@ def dao_create_mint_proposal_cmd(
|
|
|
967
1022
|
reuse: Optional[bool],
|
|
968
1023
|
push: bool,
|
|
969
1024
|
condition_valid_times: ConditionValidTimes,
|
|
970
|
-
) ->
|
|
971
|
-
from .dao_funcs import create_mint_proposal
|
|
1025
|
+
) -> list[TransactionRecord]:
|
|
1026
|
+
from chia.cmds.dao_funcs import create_mint_proposal
|
|
972
1027
|
|
|
973
1028
|
return asyncio.run(
|
|
974
1029
|
create_mint_proposal(
|
|
1030
|
+
ChiaCliContext.set_default(ctx).root_path,
|
|
975
1031
|
wallet_rpc_port,
|
|
976
1032
|
fingerprint,
|
|
977
1033
|
wallet_id,
|
chia/cmds/dao_funcs.py
CHANGED
|
@@ -2,9 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import json
|
|
5
|
+
import pathlib
|
|
5
6
|
import time
|
|
6
7
|
from decimal import Decimal
|
|
7
|
-
from typing import
|
|
8
|
+
from typing import Optional
|
|
8
9
|
|
|
9
10
|
from chia.cmds.cmds_util import CMDTXConfigLoader, get_wallet_client, transaction_status_msg, transaction_submitted_msg
|
|
10
11
|
from chia.cmds.param_types import CliAmount
|
|
@@ -21,12 +22,17 @@ from chia.wallet.util.wallet_types import WalletType
|
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
async def add_dao_wallet(
|
|
24
|
-
|
|
25
|
+
root_path: pathlib.Path,
|
|
26
|
+
wallet_rpc_port: Optional[int],
|
|
27
|
+
fp: int,
|
|
28
|
+
name: Optional[str],
|
|
29
|
+
treasury_id: bytes32,
|
|
30
|
+
filter_amount: uint64,
|
|
25
31
|
) -> None:
|
|
26
32
|
print(f"Adding wallet for DAO: {treasury_id}")
|
|
27
33
|
print("This may take awhile.")
|
|
28
34
|
|
|
29
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
35
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
30
36
|
res = await wallet_client.create_new_dao_wallet(
|
|
31
37
|
mode="existing",
|
|
32
38
|
tx_config=CMDTXConfigLoader(reuse_puzhash=True).to_tx_config(units["chia"], config, fingerprint),
|
|
@@ -45,6 +51,7 @@ async def add_dao_wallet(
|
|
|
45
51
|
|
|
46
52
|
|
|
47
53
|
async def create_dao_wallet(
|
|
54
|
+
root_path: pathlib.Path,
|
|
48
55
|
wallet_rpc_port: Optional[int],
|
|
49
56
|
fp: int,
|
|
50
57
|
fee: uint64,
|
|
@@ -62,7 +69,7 @@ async def create_dao_wallet(
|
|
|
62
69
|
cli_tx_config: CMDTXConfigLoader,
|
|
63
70
|
push: bool,
|
|
64
71
|
condition_valid_times: ConditionValidTimes,
|
|
65
|
-
) ->
|
|
72
|
+
) -> list[TransactionRecord]:
|
|
66
73
|
if proposal_minimum % 2 == 0:
|
|
67
74
|
proposal_minimum = uint64(1 + proposal_minimum)
|
|
68
75
|
print("Adding 1 mojo to proposal minimum amount")
|
|
@@ -77,7 +84,7 @@ async def create_dao_wallet(
|
|
|
77
84
|
"proposal_minimum_amount": proposal_minimum,
|
|
78
85
|
}
|
|
79
86
|
|
|
80
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
87
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
81
88
|
conf_coins, _, _ = await wallet_client.get_spendable_coins(
|
|
82
89
|
wallet_id=1, coin_selection_config=DEFAULT_COIN_SELECTION_CONFIG
|
|
83
90
|
)
|
|
@@ -106,15 +113,15 @@ async def create_dao_wallet(
|
|
|
106
113
|
return res.transactions
|
|
107
114
|
|
|
108
115
|
|
|
109
|
-
async def get_treasury_id(wallet_rpc_port: Optional[int], fp: int, wallet_id: int) -> None:
|
|
110
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, _, _):
|
|
116
|
+
async def get_treasury_id(root_path: pathlib.Path, wallet_rpc_port: Optional[int], fp: int, wallet_id: int) -> None:
|
|
117
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, _, _):
|
|
111
118
|
res = await wallet_client.dao_get_treasury_id(wallet_id=wallet_id)
|
|
112
119
|
treasury_id = res["treasury_id"]
|
|
113
120
|
print(f"Treasury ID: {treasury_id}")
|
|
114
121
|
|
|
115
122
|
|
|
116
|
-
async def get_rules(wallet_rpc_port: Optional[int], fp: int, wallet_id: int) -> None:
|
|
117
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, _, _):
|
|
123
|
+
async def get_rules(root_path: pathlib.Path, wallet_rpc_port: Optional[int], fp: int, wallet_id: int) -> None:
|
|
124
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, _, _):
|
|
118
125
|
res = await wallet_client.dao_get_rules(wallet_id=wallet_id)
|
|
119
126
|
rules = res["rules"]
|
|
120
127
|
for rule, val in rules.items():
|
|
@@ -122,6 +129,7 @@ async def get_rules(wallet_rpc_port: Optional[int], fp: int, wallet_id: int) ->
|
|
|
122
129
|
|
|
123
130
|
|
|
124
131
|
async def add_funds_to_treasury(
|
|
132
|
+
root_path: pathlib.Path,
|
|
125
133
|
wallet_rpc_port: Optional[int],
|
|
126
134
|
fp: int,
|
|
127
135
|
wallet_id: int,
|
|
@@ -131,8 +139,8 @@ async def add_funds_to_treasury(
|
|
|
131
139
|
cli_tx_config: CMDTXConfigLoader,
|
|
132
140
|
push: bool,
|
|
133
141
|
condition_valid_times: ConditionValidTimes,
|
|
134
|
-
) ->
|
|
135
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
142
|
+
) -> list[TransactionRecord]:
|
|
143
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
136
144
|
try:
|
|
137
145
|
typ = await get_wallet_type(wallet_id=funding_wallet_id, wallet_client=wallet_client)
|
|
138
146
|
mojo_per_unit = get_mojo_per_unit(typ)
|
|
@@ -165,8 +173,10 @@ async def add_funds_to_treasury(
|
|
|
165
173
|
return res.transactions
|
|
166
174
|
|
|
167
175
|
|
|
168
|
-
async def get_treasury_balance(
|
|
169
|
-
|
|
176
|
+
async def get_treasury_balance(
|
|
177
|
+
root_path: pathlib.Path, wallet_rpc_port: Optional[int], fp: int, wallet_id: int
|
|
178
|
+
) -> None:
|
|
179
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, _, _):
|
|
170
180
|
res = await wallet_client.dao_get_treasury_balance(wallet_id=wallet_id)
|
|
171
181
|
balances = res["balances"]
|
|
172
182
|
|
|
@@ -183,8 +193,10 @@ async def get_treasury_balance(wallet_rpc_port: Optional[int], fp: int, wallet_i
|
|
|
183
193
|
print(f"{asset_id}: {balance / cat_mojos}")
|
|
184
194
|
|
|
185
195
|
|
|
186
|
-
async def list_proposals(
|
|
187
|
-
|
|
196
|
+
async def list_proposals(
|
|
197
|
+
root_path: pathlib.Path, wallet_rpc_port: Optional[int], fp: int, wallet_id: int, include_closed: bool
|
|
198
|
+
) -> None:
|
|
199
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, _, _):
|
|
188
200
|
res = await wallet_client.dao_get_proposals(wallet_id=wallet_id, include_closed=include_closed)
|
|
189
201
|
proposals = res["proposals"]
|
|
190
202
|
soft_close_length = res["soft_close_length"]
|
|
@@ -201,8 +213,10 @@ async def list_proposals(wallet_rpc_port: Optional[int], fp: int, wallet_id: int
|
|
|
201
213
|
print("############################")
|
|
202
214
|
|
|
203
215
|
|
|
204
|
-
async def show_proposal(
|
|
205
|
-
|
|
216
|
+
async def show_proposal(
|
|
217
|
+
root_path: pathlib.Path, wallet_rpc_port: Optional[int], fp: int, wallet_id: int, proposal_id: str
|
|
218
|
+
) -> None:
|
|
219
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, _, config):
|
|
206
220
|
res = await wallet_client.dao_parse_proposal(wallet_id, proposal_id)
|
|
207
221
|
pd = res["proposal_dictionary"]
|
|
208
222
|
blocks_needed = pd["state"]["blocks_needed"]
|
|
@@ -275,6 +289,7 @@ async def show_proposal(wallet_rpc_port: Optional[int], fp: int, wallet_id: int,
|
|
|
275
289
|
|
|
276
290
|
|
|
277
291
|
async def vote_on_proposal(
|
|
292
|
+
root_path: pathlib.Path,
|
|
278
293
|
wallet_rpc_port: Optional[int],
|
|
279
294
|
fp: int,
|
|
280
295
|
wallet_id: int,
|
|
@@ -285,8 +300,8 @@ async def vote_on_proposal(
|
|
|
285
300
|
cli_tx_config: CMDTXConfigLoader,
|
|
286
301
|
push: bool,
|
|
287
302
|
condition_valid_times: ConditionValidTimes,
|
|
288
|
-
) ->
|
|
289
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
303
|
+
) -> list[TransactionRecord]:
|
|
304
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
290
305
|
res = await wallet_client.dao_vote_on_proposal(
|
|
291
306
|
wallet_id=wallet_id,
|
|
292
307
|
proposal_id=proposal_id,
|
|
@@ -313,6 +328,7 @@ async def vote_on_proposal(
|
|
|
313
328
|
|
|
314
329
|
|
|
315
330
|
async def close_proposal(
|
|
331
|
+
root_path: pathlib.Path,
|
|
316
332
|
wallet_rpc_port: Optional[int],
|
|
317
333
|
fp: int,
|
|
318
334
|
wallet_id: int,
|
|
@@ -322,8 +338,8 @@ async def close_proposal(
|
|
|
322
338
|
cli_tx_config: CMDTXConfigLoader,
|
|
323
339
|
push: bool,
|
|
324
340
|
condition_valid_times: ConditionValidTimes,
|
|
325
|
-
) ->
|
|
326
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
341
|
+
) -> list[TransactionRecord]:
|
|
342
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
327
343
|
res = await wallet_client.dao_close_proposal(
|
|
328
344
|
wallet_id=wallet_id,
|
|
329
345
|
proposal_id=proposal_id,
|
|
@@ -350,6 +366,7 @@ async def close_proposal(
|
|
|
350
366
|
|
|
351
367
|
|
|
352
368
|
async def lockup_coins(
|
|
369
|
+
root_path: pathlib.Path,
|
|
353
370
|
wallet_rpc_port: Optional[int],
|
|
354
371
|
fp: int,
|
|
355
372
|
wallet_id: int,
|
|
@@ -358,9 +375,9 @@ async def lockup_coins(
|
|
|
358
375
|
cli_tx_config: CMDTXConfigLoader,
|
|
359
376
|
push: bool,
|
|
360
377
|
condition_valid_times: ConditionValidTimes,
|
|
361
|
-
) ->
|
|
378
|
+
) -> list[TransactionRecord]:
|
|
362
379
|
final_amount: uint64 = amount.convert_amount(units["cat"])
|
|
363
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
380
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
364
381
|
res = await wallet_client.dao_send_to_lockup(
|
|
365
382
|
wallet_id=wallet_id,
|
|
366
383
|
amount=final_amount,
|
|
@@ -386,6 +403,7 @@ async def lockup_coins(
|
|
|
386
403
|
|
|
387
404
|
|
|
388
405
|
async def release_coins(
|
|
406
|
+
root_path: pathlib.Path,
|
|
389
407
|
wallet_rpc_port: Optional[int],
|
|
390
408
|
fp: int,
|
|
391
409
|
wallet_id: int,
|
|
@@ -393,8 +411,8 @@ async def release_coins(
|
|
|
393
411
|
cli_tx_config: CMDTXConfigLoader,
|
|
394
412
|
push: bool,
|
|
395
413
|
condition_valid_times: ConditionValidTimes,
|
|
396
|
-
) ->
|
|
397
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
414
|
+
) -> list[TransactionRecord]:
|
|
415
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
398
416
|
res = await wallet_client.dao_free_coins_from_finished_proposals(
|
|
399
417
|
wallet_id=wallet_id,
|
|
400
418
|
fee=fee,
|
|
@@ -418,6 +436,7 @@ async def release_coins(
|
|
|
418
436
|
|
|
419
437
|
|
|
420
438
|
async def exit_lockup(
|
|
439
|
+
root_path: pathlib.Path,
|
|
421
440
|
wallet_rpc_port: Optional[int],
|
|
422
441
|
fp: int,
|
|
423
442
|
wallet_id: int,
|
|
@@ -425,8 +444,8 @@ async def exit_lockup(
|
|
|
425
444
|
cli_tx_config: CMDTXConfigLoader,
|
|
426
445
|
push: bool,
|
|
427
446
|
condition_valid_times: ConditionValidTimes,
|
|
428
|
-
) ->
|
|
429
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
447
|
+
) -> list[TransactionRecord]:
|
|
448
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
430
449
|
res = await wallet_client.dao_exit_lockup(
|
|
431
450
|
wallet_id=wallet_id,
|
|
432
451
|
coins=[],
|
|
@@ -452,6 +471,7 @@ async def exit_lockup(
|
|
|
452
471
|
|
|
453
472
|
|
|
454
473
|
async def create_spend_proposal(
|
|
474
|
+
root_path: pathlib.Path,
|
|
455
475
|
wallet_rpc_port: Optional[int],
|
|
456
476
|
fp: int,
|
|
457
477
|
wallet_id: int,
|
|
@@ -464,7 +484,7 @@ async def create_spend_proposal(
|
|
|
464
484
|
cli_tx_config: CMDTXConfigLoader,
|
|
465
485
|
push: bool,
|
|
466
486
|
condition_valid_times: ConditionValidTimes,
|
|
467
|
-
) ->
|
|
487
|
+
) -> list[TransactionRecord]:
|
|
468
488
|
if additions_file is None and (address is None or amount is None):
|
|
469
489
|
raise ValueError("Must include a json specification or an address / amount pair.")
|
|
470
490
|
if additions_file: # pragma: no cover
|
|
@@ -477,7 +497,7 @@ async def create_spend_proposal(
|
|
|
477
497
|
additions.append(addition)
|
|
478
498
|
else:
|
|
479
499
|
additions = None
|
|
480
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
500
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
481
501
|
wallet_type = await get_wallet_type(wallet_id=wallet_id, wallet_client=wallet_client)
|
|
482
502
|
mojo_per_unit = get_mojo_per_unit(wallet_type=wallet_type)
|
|
483
503
|
final_amount: Optional[uint64] = uint64(int(Decimal(amount) * mojo_per_unit)) if amount else None
|
|
@@ -504,6 +524,7 @@ async def create_spend_proposal(
|
|
|
504
524
|
|
|
505
525
|
|
|
506
526
|
async def create_update_proposal(
|
|
527
|
+
root_path: pathlib.Path,
|
|
507
528
|
wallet_rpc_port: Optional[int],
|
|
508
529
|
fp: int,
|
|
509
530
|
wallet_id: int,
|
|
@@ -518,7 +539,7 @@ async def create_update_proposal(
|
|
|
518
539
|
cli_tx_config: CMDTXConfigLoader,
|
|
519
540
|
push: bool,
|
|
520
541
|
condition_valid_times: ConditionValidTimes,
|
|
521
|
-
) ->
|
|
542
|
+
) -> list[TransactionRecord]:
|
|
522
543
|
new_dao_rules = {
|
|
523
544
|
"proposal_timelock": proposal_timelock,
|
|
524
545
|
"soft_close_length": soft_close_length,
|
|
@@ -527,7 +548,7 @@ async def create_update_proposal(
|
|
|
527
548
|
"self_destruct_length": self_destruct_length,
|
|
528
549
|
"oracle_spend_delay": oracle_spend_delay,
|
|
529
550
|
}
|
|
530
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
551
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
531
552
|
res = await wallet_client.dao_create_proposal(
|
|
532
553
|
wallet_id=wallet_id,
|
|
533
554
|
proposal_type="update",
|
|
@@ -546,6 +567,7 @@ async def create_update_proposal(
|
|
|
546
567
|
|
|
547
568
|
|
|
548
569
|
async def create_mint_proposal(
|
|
570
|
+
root_path: pathlib.Path,
|
|
549
571
|
wallet_rpc_port: Optional[int],
|
|
550
572
|
fp: int,
|
|
551
573
|
wallet_id: int,
|
|
@@ -556,8 +578,8 @@ async def create_mint_proposal(
|
|
|
556
578
|
cli_tx_config: CMDTXConfigLoader,
|
|
557
579
|
push: bool,
|
|
558
580
|
condition_valid_times: ConditionValidTimes,
|
|
559
|
-
) ->
|
|
560
|
-
async with get_wallet_client(wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
581
|
+
) -> list[TransactionRecord]:
|
|
582
|
+
async with get_wallet_client(root_path, wallet_rpc_port, fp) as (wallet_client, fingerprint, config):
|
|
561
583
|
res = await wallet_client.dao_create_proposal(
|
|
562
584
|
wallet_id=wallet_id,
|
|
563
585
|
proposal_type="mint",
|