chia-blockchain 2.5.4rc2__py3-none-any.whl → 2.5.5__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/blockchain/blockchain_test_utils.py +2 -3
- chia/_tests/blockchain/test_augmented_chain.py +2 -3
- chia/_tests/blockchain/test_blockchain.py +261 -44
- chia/_tests/blockchain/test_blockchain_transactions.py +4 -3
- chia/_tests/blockchain/test_build_chains.py +197 -1
- chia/_tests/blockchain/test_get_block_generator.py +1 -1
- chia/_tests/blockchain/test_lookup_fork_chain.py +1 -1
- chia/_tests/clvm/benchmark_costs.py +1 -1
- chia/_tests/clvm/coin_store.py +3 -4
- chia/_tests/clvm/test_message_conditions.py +2 -2
- chia/_tests/clvm/test_puzzle_compression.py +2 -3
- chia/_tests/clvm/test_puzzles.py +1 -2
- chia/_tests/clvm/test_singletons.py +2 -3
- chia/_tests/clvm/test_spend_sim.py +7 -7
- chia/_tests/cmds/cmd_test_utils.py +30 -25
- chia/_tests/cmds/test_dev_gh.py +1 -1
- chia/_tests/cmds/test_farm_cmd.py +1 -1
- chia/_tests/cmds/test_show.py +1 -2
- chia/_tests/cmds/wallet/test_did.py +101 -56
- chia/_tests/cmds/wallet/test_nft.py +109 -84
- chia/_tests/cmds/wallet/test_notifications.py +1 -1
- chia/_tests/cmds/wallet/test_offer.toffer +1 -1
- chia/_tests/cmds/wallet/test_vcs.py +8 -8
- chia/_tests/cmds/wallet/test_wallet.py +100 -46
- chia/_tests/conftest.py +31 -20
- chia/_tests/connection_utils.py +1 -1
- chia/_tests/core/consensus/stores/__init__.py +0 -0
- chia/_tests/core/consensus/stores/test_coin_store_protocol.py +40 -0
- chia/_tests/core/consensus/test_block_creation.py +2 -31
- chia/_tests/core/consensus/test_pot_iterations.py +38 -3
- chia/_tests/core/custom_types/test_proof_of_space.py +154 -26
- chia/_tests/core/custom_types/test_spend_bundle.py +2 -3
- chia/_tests/core/daemon/test_daemon.py +80 -0
- chia/_tests/core/data_layer/test_data_layer.py +1 -1
- chia/_tests/core/data_layer/test_data_layer_util.py +1 -1
- chia/_tests/core/data_layer/test_data_rpc.py +14 -10
- chia/_tests/core/data_layer/test_data_store.py +5 -5
- chia/_tests/core/farmer/test_farmer_api.py +2 -2
- chia/_tests/core/full_node/full_sync/test_full_sync.py +446 -406
- chia/_tests/core/full_node/ram_db.py +3 -1
- chia/_tests/core/full_node/stores/test_block_store.py +28 -16
- chia/_tests/core/full_node/stores/test_coin_store.py +277 -185
- chia/_tests/core/full_node/stores/test_full_node_store.py +11 -4
- chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
- chia/_tests/core/full_node/test_address_manager.py +200 -27
- chia/_tests/core/full_node/test_block_height_map.py +2 -2
- chia/_tests/core/full_node/test_conditions.py +7 -6
- chia/_tests/core/full_node/test_full_node.py +456 -40
- chia/_tests/core/full_node/test_generator_tools.py +32 -2
- chia/_tests/core/full_node/test_hint_management.py +1 -1
- chia/_tests/core/full_node/test_node_load.py +20 -21
- chia/_tests/core/full_node/test_performance.py +3 -4
- chia/_tests/core/full_node/test_prev_tx_block.py +43 -0
- chia/_tests/core/full_node/test_subscriptions.py +1 -2
- chia/_tests/core/full_node/test_transactions.py +9 -5
- chia/_tests/core/full_node/test_tx_processing_queue.py +1 -2
- chia/_tests/core/large_block.py +1 -2
- chia/_tests/core/make_block_generator.py +3 -4
- chia/_tests/core/mempool/test_mempool.py +36 -86
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +1 -1
- chia/_tests/core/mempool/test_mempool_item_queries.py +1 -3
- chia/_tests/core/mempool/test_mempool_manager.py +529 -69
- chia/_tests/core/mempool/test_mempool_performance.py +3 -2
- chia/_tests/core/mempool/test_singleton_fast_forward.py +61 -132
- chia/_tests/core/server/flood.py +1 -1
- chia/_tests/core/server/test_dos.py +1 -1
- chia/_tests/core/server/test_node_discovery.py +41 -27
- chia/_tests/core/server/test_rate_limits.py +1 -1
- chia/_tests/core/server/test_server.py +1 -1
- chia/_tests/core/services/test_services.py +5 -5
- chia/_tests/core/ssl/test_ssl.py +1 -1
- chia/_tests/core/test_cost_calculation.py +6 -6
- chia/_tests/core/test_crawler.py +2 -2
- chia/_tests/core/test_crawler_rpc.py +1 -1
- chia/_tests/core/test_db_conversion.py +3 -1
- chia/_tests/core/test_db_validation.py +5 -3
- chia/_tests/core/test_farmer_harvester_rpc.py +15 -15
- chia/_tests/core/test_filter.py +4 -1
- chia/_tests/core/test_full_node_rpc.py +99 -82
- chia/_tests/core/test_program.py +2 -2
- chia/_tests/core/util/test_block_cache.py +1 -1
- chia/_tests/core/util/test_keychain.py +2 -2
- chia/_tests/core/util/test_lockfile.py +1 -1
- chia/_tests/core/util/test_log_exceptions.py +5 -5
- chia/_tests/core/util/test_streamable.py +81 -22
- chia/_tests/db/test_db_wrapper.py +1 -3
- chia/_tests/environments/wallet.py +5 -5
- chia/_tests/farmer_harvester/test_farmer.py +9 -7
- chia/_tests/farmer_harvester/test_farmer_harvester.py +11 -4
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +6 -5
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +15 -9
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +1 -2
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +7 -5
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -1
- chia/_tests/generator/test_compression.py +1 -2
- chia/_tests/generator/test_rom.py +8 -4
- chia/_tests/plot_sync/test_plot_sync.py +3 -3
- chia/_tests/plot_sync/test_receiver.py +3 -3
- chia/_tests/plot_sync/test_sender.py +1 -1
- chia/_tests/plot_sync/test_sync_simulated.py +3 -3
- chia/_tests/plot_sync/util.py +2 -2
- chia/_tests/pools/test_pool_cmdline.py +48 -21
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +2 -3
- chia/_tests/pools/test_pool_rpc.py +237 -105
- chia/_tests/pools/test_pool_wallet.py +11 -2
- chia/_tests/pools/test_wallet_pool_store.py +5 -4
- chia/_tests/rpc/test_rpc_client.py +1 -1
- chia/_tests/simulation/test_simulation.py +13 -8
- chia/_tests/simulation/test_simulator.py +2 -2
- chia/_tests/timelord/test_new_peak.py +191 -47
- chia/_tests/timelord/test_timelord.py +1 -1
- chia/_tests/tools/test_full_sync.py +0 -2
- chia/_tests/tools/test_run_block.py +3 -1
- chia/_tests/util/benchmark_cost.py +3 -3
- chia/_tests/util/benchmarks.py +2 -2
- chia/_tests/util/blockchain.py +11 -5
- chia/_tests/util/blockchain_mock.py +1 -4
- chia/_tests/util/coin_store.py +29 -0
- chia/_tests/util/constants.py +2 -18
- chia/_tests/util/full_sync.py +3 -3
- chia/_tests/util/generator_tools_testing.py +2 -3
- chia/_tests/util/key_tool.py +2 -3
- chia/_tests/util/misc.py +33 -31
- chia/_tests/util/network_protocol_data.py +19 -17
- chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
- chia/_tests/util/protocol_messages_json.py +3 -1
- chia/_tests/util/run_block.py +2 -2
- chia/_tests/util/setup_nodes.py +7 -7
- chia/_tests/util/spend_sim.py +47 -55
- chia/_tests/util/test_condition_tools.py +5 -4
- chia/_tests/util/test_config.py +2 -2
- chia/_tests/util/test_dump_keyring.py +1 -1
- chia/_tests/util/test_full_block_utils.py +12 -14
- chia/_tests/util/test_misc.py +2 -2
- chia/_tests/util/test_paginator.py +4 -4
- chia/_tests/util/test_priority_mutex.py +2 -2
- chia/_tests/util/test_replace_str_to_bytes.py +15 -5
- chia/_tests/util/test_ssl_check.py +1 -1
- chia/_tests/util/test_testnet_overrides.py +13 -3
- chia/_tests/util/time_out_assert.py +4 -2
- chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +1 -1
- chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +1 -2
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +352 -432
- chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +3 -6
- chia/_tests/wallet/cat_wallet/test_trades.py +53 -77
- chia/_tests/wallet/clawback/test_clawback_decorator.py +3 -1
- chia/_tests/wallet/clawback/test_clawback_lifecycle.py +3 -3
- chia/_tests/wallet/clawback/test_clawback_metadata.py +4 -2
- chia/_tests/wallet/conftest.py +11 -12
- chia/_tests/wallet/db_wallet/test_db_graftroot.py +11 -4
- chia/_tests/wallet/db_wallet/test_dl_offers.py +433 -130
- chia/_tests/wallet/db_wallet/test_dl_wallet.py +3 -3
- chia/_tests/wallet/did_wallet/test_did.py +2132 -2000
- chia/_tests/wallet/nft_wallet/config.py +1 -1
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +1610 -742
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +486 -907
- chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +4 -4
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +517 -294
- chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +133 -62
- chia/_tests/wallet/rpc/test_wallet_rpc.py +495 -265
- chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +10 -6
- chia/_tests/wallet/sync/test_wallet_sync.py +89 -60
- chia/_tests/wallet/test_clvm_casts.py +88 -0
- chia/_tests/wallet/test_coin_management.py +1 -1
- chia/_tests/wallet/test_coin_selection.py +1 -1
- chia/_tests/wallet/test_conditions.py +1 -1
- chia/_tests/wallet/test_new_wallet_protocol.py +13 -11
- chia/_tests/wallet/test_notifications.py +5 -3
- chia/_tests/wallet/test_sign_coin_spends.py +6 -6
- chia/_tests/wallet/test_signer_protocol.py +13 -12
- chia/_tests/wallet/test_singleton.py +1 -1
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +5 -7
- chia/_tests/wallet/test_util.py +2 -2
- chia/_tests/wallet/test_wallet.py +108 -29
- chia/_tests/wallet/test_wallet_action_scope.py +9 -2
- chia/_tests/wallet/test_wallet_blockchain.py +2 -3
- chia/_tests/wallet/test_wallet_key_val_store.py +1 -2
- chia/_tests/wallet/test_wallet_node.py +2 -4
- chia/_tests/wallet/test_wallet_retry.py +4 -2
- chia/_tests/wallet/test_wallet_state_manager.py +191 -5
- chia/_tests/wallet/test_wallet_test_framework.py +1 -1
- chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +8 -8
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +29 -12
- chia/_tests/wallet/wallet_block_tools.py +6 -6
- chia/_tests/weight_proof/test_weight_proof.py +10 -48
- chia/apis.py +1 -1
- chia/cmds/beta.py +1 -1
- chia/cmds/chia.py +9 -9
- chia/cmds/cmd_classes.py +12 -11
- chia/cmds/cmd_helpers.py +1 -1
- chia/cmds/cmds_util.py +12 -9
- chia/cmds/coin_funcs.py +2 -2
- chia/cmds/configure.py +2 -2
- chia/cmds/data.py +0 -2
- chia/cmds/data_funcs.py +1 -1
- chia/cmds/db_validate_func.py +1 -2
- chia/cmds/dev/__init__.py +0 -0
- chia/cmds/dev/data.py +273 -0
- chia/cmds/{gh.py → dev/gh.py} +5 -5
- chia/cmds/dev/main.py +22 -0
- chia/cmds/dev/mempool.py +78 -0
- chia/cmds/dev/mempool_funcs.py +63 -0
- chia/cmds/farm_funcs.py +5 -4
- chia/cmds/init_funcs.py +11 -11
- chia/cmds/keys.py +2 -2
- chia/cmds/keys_funcs.py +4 -4
- chia/cmds/netspace_funcs.py +1 -1
- chia/cmds/peer_funcs.py +2 -2
- chia/cmds/plotnft_funcs.py +72 -26
- chia/cmds/rpc.py +1 -1
- chia/cmds/show_funcs.py +5 -5
- chia/cmds/signer.py +8 -7
- chia/cmds/sim_funcs.py +8 -9
- chia/cmds/wallet.py +2 -2
- chia/cmds/wallet_funcs.py +165 -131
- chia/{util → consensus}/augmented_chain.py +1 -2
- chia/consensus/block_body_validation.py +54 -40
- chia/consensus/block_creation.py +42 -76
- chia/consensus/block_header_validation.py +32 -26
- chia/consensus/block_record.py +0 -3
- chia/consensus/blockchain.py +23 -32
- chia/consensus/blockchain_interface.py +1 -5
- chia/consensus/check_time_locks.py +57 -0
- chia/consensus/coin_store_protocol.py +151 -0
- chia/consensus/coinbase.py +0 -6
- chia/consensus/condition_costs.py +4 -0
- chia/{util → consensus}/condition_tools.py +4 -5
- chia/consensus/cost_calculator.py +1 -1
- chia/consensus/default_constants.py +32 -9
- chia/consensus/deficit.py +1 -3
- chia/consensus/difficulty_adjustment.py +1 -2
- chia/consensus/find_fork_point.py +1 -3
- chia/consensus/full_block_to_block_record.py +1 -6
- chia/{util → consensus}/generator_tools.py +1 -3
- chia/consensus/get_block_challenge.py +30 -7
- chia/consensus/make_sub_epoch_summary.py +1 -5
- chia/consensus/multiprocess_validation.py +21 -20
- chia/consensus/pot_iterations.py +74 -13
- chia/{util → consensus}/prev_transaction_block.py +1 -1
- chia/consensus/vdf_info_computation.py +1 -3
- chia/daemon/keychain_proxy.py +5 -5
- chia/daemon/server.py +22 -5
- chia/data_layer/data_layer.py +92 -51
- chia/{rpc → data_layer}/data_layer_rpc_api.py +1 -1
- chia/{rpc → data_layer}/data_layer_rpc_util.py +3 -6
- chia/data_layer/data_layer_util.py +4 -6
- chia/data_layer/data_layer_wallet.py +42 -69
- chia/data_layer/dl_wallet_store.py +12 -6
- chia/data_layer/download_data.py +3 -3
- chia/data_layer/s3_plugin_service.py +0 -1
- chia/farmer/farmer.py +3 -4
- chia/farmer/farmer_api.py +11 -7
- chia/{rpc → farmer}/farmer_rpc_client.py +1 -1
- chia/full_node/block_height_map.py +7 -6
- chia/full_node/block_store.py +5 -7
- chia/full_node/bundle_tools.py +1 -2
- chia/full_node/coin_store.py +153 -124
- chia/{types → full_node}/eligible_coin_spends.py +39 -70
- chia/full_node/fee_estimator.py +1 -1
- chia/full_node/fee_estimator_interface.py +0 -8
- chia/full_node/fee_tracker.py +25 -25
- chia/full_node/full_node.py +70 -53
- chia/full_node/full_node_api.py +57 -40
- chia/{rpc → full_node}/full_node_rpc_api.py +87 -8
- chia/{rpc → full_node}/full_node_rpc_client.py +7 -6
- chia/full_node/full_node_store.py +23 -8
- chia/full_node/mempool.py +206 -53
- chia/full_node/mempool_check_conditions.py +20 -63
- chia/full_node/mempool_manager.py +47 -45
- chia/full_node/subscriptions.py +1 -3
- chia/full_node/tx_processing_queue.py +50 -3
- chia/full_node/weight_proof.py +46 -37
- chia/harvester/harvester.py +1 -1
- chia/harvester/harvester_api.py +22 -7
- chia/introducer/introducer.py +1 -1
- chia/introducer/introducer_api.py +1 -1
- chia/plot_sync/exceptions.py +1 -1
- chia/plot_sync/receiver.py +1 -1
- chia/plot_sync/sender.py +2 -2
- chia/pools/pool_puzzles.py +13 -18
- chia/pools/pool_wallet.py +23 -46
- chia/protocols/farmer_protocol.py +11 -3
- chia/protocols/full_node_protocol.py +1 -4
- chia/protocols/harvester_protocol.py +3 -3
- chia/protocols/pool_protocol.py +1 -2
- chia/protocols/shared_protocol.py +3 -3
- chia/protocols/timelord_protocol.py +1 -3
- chia/protocols/wallet_protocol.py +3 -3
- chia/rpc/rpc_client.py +7 -8
- chia/rpc/rpc_server.py +3 -3
- chia/rpc/util.py +3 -1
- chia/seeder/crawler.py +1 -1
- chia/seeder/crawler_api.py +1 -1
- chia/seeder/dns_server.py +2 -0
- chia/seeder/start_crawler.py +3 -3
- chia/server/address_manager.py +286 -38
- chia/server/address_manager_store.py +0 -215
- chia/{types → server}/aliases.py +7 -7
- chia/server/api_protocol.py +1 -1
- chia/server/chia_policy.py +1 -1
- chia/server/node_discovery.py +76 -113
- chia/server/rate_limits.py +1 -1
- chia/server/resolve_peer_info.py +43 -0
- chia/server/server.py +5 -5
- chia/server/start_data_layer.py +4 -4
- chia/server/start_farmer.py +5 -4
- chia/server/start_full_node.py +5 -4
- chia/server/start_harvester.py +7 -5
- chia/server/start_introducer.py +2 -2
- chia/server/start_service.py +1 -1
- chia/server/start_timelord.py +7 -5
- chia/server/start_wallet.py +7 -5
- chia/server/ws_connection.py +1 -1
- chia/simulator/add_blocks_in_batches.py +2 -2
- chia/simulator/block_tools.py +245 -201
- chia/simulator/full_node_simulator.py +38 -10
- chia/simulator/setup_services.py +12 -12
- chia/simulator/simulator_full_node_rpc_api.py +2 -2
- chia/simulator/simulator_full_node_rpc_client.py +2 -2
- chia/simulator/simulator_test_tools.py +2 -2
- chia/simulator/start_simulator.py +1 -1
- chia/simulator/wallet_tools.py +10 -18
- chia/ssl/create_ssl.py +1 -1
- chia/timelord/iters_from_block.py +14 -14
- chia/timelord/timelord.py +15 -11
- chia/timelord/timelord_api.py +14 -2
- chia/timelord/timelord_state.py +20 -14
- chia/types/blockchain_format/program.py +53 -10
- chia/types/blockchain_format/proof_of_space.py +73 -19
- chia/types/coin_spend.py +3 -56
- chia/types/generator_types.py +28 -0
- chia/types/internal_mempool_item.py +1 -2
- chia/types/mempool_item.py +12 -7
- chia/types/unfinished_header_block.py +1 -2
- chia/types/validation_state.py +1 -2
- chia/types/weight_proof.py +1 -3
- chia/util/action_scope.py +3 -3
- chia/util/block_cache.py +1 -2
- chia/util/byte_types.py +1 -1
- chia/util/casts.py +21 -0
- chia/util/config.py +0 -37
- chia/util/db_wrapper.py +8 -1
- chia/util/errors.py +3 -2
- chia/util/initial-config.yaml +21 -5
- chia/util/keychain.py +6 -7
- chia/util/keyring_wrapper.py +5 -5
- chia/util/limited_semaphore.py +1 -1
- chia/util/priority_mutex.py +1 -1
- chia/util/streamable.py +63 -5
- chia/util/task_timing.py +1 -1
- chia/util/virtual_project_analysis.py +1 -1
- chia/wallet/cat_wallet/cat_info.py +7 -3
- chia/wallet/cat_wallet/cat_outer_puzzle.py +9 -5
- chia/wallet/cat_wallet/cat_utils.py +1 -1
- chia/wallet/cat_wallet/cat_wallet.py +44 -36
- chia/wallet/cat_wallet/lineage_store.py +7 -0
- chia/wallet/cat_wallet/r_cat_wallet.py +274 -0
- chia/wallet/conditions.py +5 -10
- chia/wallet/db_wallet/db_wallet_puzzles.py +4 -4
- chia/wallet/derivation_record.py +33 -0
- chia/wallet/derive_keys.py +3 -3
- chia/wallet/did_wallet/did_info.py +12 -3
- chia/wallet/did_wallet/did_wallet.py +132 -101
- chia/wallet/did_wallet/did_wallet_puzzles.py +9 -9
- chia/wallet/driver_protocol.py +3 -1
- chia/{types/spend_bundle.py → wallet/estimate_fees.py} +2 -7
- chia/wallet/nft_wallet/metadata_outer_puzzle.py +5 -3
- chia/wallet/nft_wallet/nft_puzzle_utils.py +1 -1
- chia/wallet/nft_wallet/nft_wallet.py +69 -112
- chia/wallet/nft_wallet/ownership_outer_puzzle.py +5 -3
- chia/wallet/nft_wallet/singleton_outer_puzzle.py +6 -4
- chia/wallet/nft_wallet/transfer_program_puzzle.py +4 -2
- chia/wallet/nft_wallet/uncurry_nft.py +4 -6
- chia/wallet/notification_manager.py +2 -3
- chia/wallet/outer_puzzles.py +7 -2
- chia/wallet/puzzle_drivers.py +1 -1
- chia/wallet/puzzles/clawback/drivers.py +5 -4
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +1 -1
- chia/wallet/puzzles/singleton_top_layer.py +2 -1
- chia/wallet/puzzles/singleton_top_layer_v1_1.py +2 -1
- chia/wallet/puzzles/tails.py +1 -3
- chia/wallet/signer_protocol.py +5 -6
- chia/wallet/singleton.py +5 -4
- chia/wallet/singleton_record.py +1 -1
- chia/wallet/trade_manager.py +18 -20
- chia/wallet/trade_record.py +3 -6
- chia/wallet/trading/offer.py +12 -13
- chia/wallet/uncurried_puzzle.py +2 -2
- chia/wallet/util/compute_additions.py +58 -0
- chia/wallet/util/compute_hints.py +3 -3
- chia/wallet/util/compute_memos.py +4 -4
- chia/wallet/util/curry_and_treehash.py +2 -1
- chia/wallet/util/debug_spend_bundle.py +1 -1
- chia/wallet/util/merkle_tree.py +1 -1
- chia/wallet/util/peer_request_cache.py +1 -2
- chia/wallet/util/tx_config.py +3 -8
- chia/wallet/util/wallet_sync_utils.py +10 -5
- chia/wallet/util/wallet_types.py +1 -0
- chia/wallet/vc_wallet/cr_cat_drivers.py +17 -18
- chia/wallet/vc_wallet/cr_cat_wallet.py +30 -28
- chia/wallet/vc_wallet/cr_outer_puzzle.py +5 -3
- chia/wallet/vc_wallet/vc_drivers.py +50 -8
- chia/wallet/vc_wallet/vc_store.py +3 -5
- chia/wallet/vc_wallet/vc_wallet.py +15 -22
- chia/wallet/wallet.py +36 -46
- chia/wallet/wallet_action_scope.py +73 -4
- chia/wallet/wallet_blockchain.py +1 -3
- chia/wallet/wallet_interested_store.py +1 -1
- chia/wallet/wallet_nft_store.py +3 -3
- chia/wallet/wallet_node.py +17 -16
- chia/wallet/wallet_node_api.py +4 -5
- chia/wallet/wallet_pool_store.py +1 -1
- chia/wallet/wallet_protocol.py +2 -0
- chia/wallet/wallet_puzzle_store.py +1 -1
- chia/{rpc → wallet}/wallet_request_types.py +670 -81
- chia/{rpc → wallet}/wallet_rpc_api.py +735 -766
- chia/{rpc → wallet}/wallet_rpc_client.py +268 -420
- chia/wallet/wallet_singleton_store.py +8 -7
- chia/wallet/wallet_spend_bundle.py +4 -3
- chia/wallet/wallet_state_manager.py +320 -191
- chia/wallet/wallet_weight_proof_handler.py +1 -2
- chia/wallet/wsm_apis.py +98 -0
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5.dist-info}/METADATA +7 -7
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5.dist-info}/RECORD +443 -436
- mozilla-ca/cacert.pem +3 -165
- chia/_tests/fee_estimation/test_mempoolitem_height_added.py +0 -145
- chia/cmds/dev.py +0 -18
- chia/types/blockchain_format/slots.py +0 -9
- chia/types/blockchain_format/sub_epoch_summary.py +0 -5
- chia/types/end_of_slot_bundle.py +0 -5
- chia/types/full_block.py +0 -5
- chia/types/header_block.py +0 -5
- chia/types/spend_bundle_conditions.py +0 -7
- chia/types/transaction_queue_entry.py +0 -56
- chia/types/unfinished_block.py +0 -5
- /chia/cmds/{installers.py → dev/installers.py} +0 -0
- /chia/cmds/{sim.py → dev/sim.py} +0 -0
- /chia/{util → cmds}/dump_keyring.py +0 -0
- /chia/{full_node → consensus}/signage_point.py +0 -0
- /chia/{rpc → data_layer}/data_layer_rpc_client.py +0 -0
- /chia/{rpc → farmer}/farmer_rpc_api.py +0 -0
- /chia/{util → full_node}/full_block_utils.py +0 -0
- /chia/{rpc → harvester}/harvester_rpc_api.py +0 -0
- /chia/{rpc → harvester}/harvester_rpc_client.py +0 -0
- /chia/{full_node → protocols}/fee_estimate.py +0 -0
- /chia/{server → protocols}/outbound_message.py +0 -0
- /chia/{rpc → seeder}/crawler_rpc_api.py +0 -0
- /chia/{util → simulator}/vdf_prover.py +0 -0
- /chia/{util → ssl}/ssl_check.py +0 -0
- /chia/{rpc → timelord}/timelord_rpc_api.py +0 -0
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5.dist-info}/LICENSE +0 -0
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5.dist-info}/entry_points.txt +0 -0
|
@@ -14,10 +14,27 @@ from chia._tests.util.time_out_assert import time_out_assert
|
|
|
14
14
|
from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
|
|
15
15
|
from chia.data_layer.data_layer_util import DLProof, HashOnlyProof, ProofLayer, StoreProofsHashes
|
|
16
16
|
from chia.data_layer.data_layer_wallet import Mirror
|
|
17
|
-
from chia.rpc.wallet_rpc_client import WalletRpcClient
|
|
18
17
|
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
|
|
19
18
|
from chia.types.peer_info import PeerInfo
|
|
20
19
|
from chia.wallet.db_wallet.db_wallet_puzzles import create_mirror_puzzle
|
|
20
|
+
from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG
|
|
21
|
+
from chia.wallet.wallet_request_types import (
|
|
22
|
+
CreateNewDL,
|
|
23
|
+
DLDeleteMirror,
|
|
24
|
+
DLGetMirrors,
|
|
25
|
+
DLGetMirrorsResponse,
|
|
26
|
+
DLHistory,
|
|
27
|
+
DLLatestSingleton,
|
|
28
|
+
DLNewMirror,
|
|
29
|
+
DLSingletonsByRoot,
|
|
30
|
+
DLStopTracking,
|
|
31
|
+
DLTrackNew,
|
|
32
|
+
DLUpdateMultiple,
|
|
33
|
+
DLUpdateMultipleUpdates,
|
|
34
|
+
DLUpdateRoot,
|
|
35
|
+
LauncherRootPair,
|
|
36
|
+
)
|
|
37
|
+
from chia.wallet.wallet_rpc_client import WalletRpcClient
|
|
21
38
|
|
|
22
39
|
log = logging.getLogger(__name__)
|
|
23
40
|
|
|
@@ -37,7 +54,8 @@ class TestWalletRpc:
|
|
|
37
54
|
wallet_node_2 = wallet_services[1]._node
|
|
38
55
|
server_3 = wallet_node_2.server
|
|
39
56
|
wallet = wallet_node.wallet_state_manager.main_wallet
|
|
40
|
-
|
|
57
|
+
async with wallet.wallet_state_manager.new_action_scope(DEFAULT_TX_CONFIG, push=True) as action_scope:
|
|
58
|
+
ph = await action_scope.get_puzzle_hash(wallet.wallet_state_manager)
|
|
41
59
|
|
|
42
60
|
if trusted:
|
|
43
61
|
wallet_node.config["trusted_peers"] = {full_node_server.node_id.hex(): full_node_server.node_id.hex()}
|
|
@@ -49,7 +67,7 @@ class TestWalletRpc:
|
|
|
49
67
|
await server_2.start_client(PeerInfo(self_hostname, full_node_server.get_port()), None)
|
|
50
68
|
await server_3.start_client(PeerInfo(self_hostname, full_node_server.get_port()), None)
|
|
51
69
|
|
|
52
|
-
for i in range(
|
|
70
|
+
for i in range(num_blocks):
|
|
53
71
|
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(ph))
|
|
54
72
|
|
|
55
73
|
initial_funds = sum(
|
|
@@ -83,46 +101,50 @@ class TestWalletRpc:
|
|
|
83
101
|
await validate_get_routes(client_2, wallet_services[1].rpc_server.rpc_api)
|
|
84
102
|
|
|
85
103
|
merkle_root: bytes32 = bytes32.zeros
|
|
86
|
-
|
|
104
|
+
launcher_id = (
|
|
105
|
+
await client.create_new_dl(CreateNewDL(root=merkle_root, fee=uint64(50), push=True), DEFAULT_TX_CONFIG)
|
|
106
|
+
).launcher_id
|
|
87
107
|
|
|
88
|
-
for i in range(
|
|
108
|
+
for i in range(5):
|
|
89
109
|
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
90
110
|
await asyncio.sleep(0.5)
|
|
91
111
|
|
|
92
112
|
async def is_singleton_confirmed(rpc_client: WalletRpcClient, lid: bytes32) -> bool:
|
|
93
|
-
rec = await rpc_client.dl_latest_singleton(lid)
|
|
113
|
+
rec = (await rpc_client.dl_latest_singleton(DLLatestSingleton(lid))).singleton
|
|
94
114
|
if rec is None:
|
|
95
115
|
return False
|
|
96
116
|
return rec.confirmed
|
|
97
117
|
|
|
98
118
|
await time_out_assert(15, is_singleton_confirmed, True, client, launcher_id)
|
|
99
|
-
singleton_record = await client.dl_latest_singleton(launcher_id)
|
|
119
|
+
singleton_record = (await client.dl_latest_singleton(DLLatestSingleton(launcher_id))).singleton
|
|
100
120
|
assert singleton_record is not None
|
|
101
121
|
assert singleton_record.root == merkle_root
|
|
102
122
|
|
|
103
123
|
new_root: bytes32 = bytes32([1] * 32)
|
|
104
|
-
await client.dl_update_root(
|
|
124
|
+
await client.dl_update_root(
|
|
125
|
+
DLUpdateRoot(launcher_id=launcher_id, new_root=new_root, fee=uint64(100), push=True), DEFAULT_TX_CONFIG
|
|
126
|
+
)
|
|
105
127
|
|
|
106
|
-
for i in range(
|
|
128
|
+
for i in range(5):
|
|
107
129
|
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
108
130
|
await asyncio.sleep(0.5)
|
|
109
131
|
|
|
110
|
-
new_singleton_record = await client.dl_latest_singleton(launcher_id)
|
|
132
|
+
new_singleton_record = (await client.dl_latest_singleton(DLLatestSingleton(launcher_id))).singleton
|
|
111
133
|
assert new_singleton_record is not None
|
|
112
134
|
assert new_singleton_record.root == new_root
|
|
113
135
|
assert new_singleton_record.confirmed
|
|
114
136
|
|
|
115
|
-
assert await client.dl_history(launcher_id) == [new_singleton_record, singleton_record]
|
|
137
|
+
assert (await client.dl_history(DLHistory(launcher_id))).history == [new_singleton_record, singleton_record]
|
|
116
138
|
|
|
117
139
|
# Test tracking a launcher id that does not exist
|
|
118
140
|
with pytest.raises(ValueError):
|
|
119
|
-
await client_2.dl_track_new(bytes32([1] * 32))
|
|
141
|
+
await client_2.dl_track_new(DLTrackNew(bytes32([1] * 32)))
|
|
120
142
|
|
|
121
|
-
await client_2.dl_track_new(launcher_id)
|
|
143
|
+
await client_2.dl_track_new(DLTrackNew(launcher_id))
|
|
122
144
|
|
|
123
145
|
async def is_singleton_generation(rpc_client: WalletRpcClient, lid: bytes32, generation: int) -> bool:
|
|
124
146
|
if await is_singleton_confirmed(rpc_client, lid):
|
|
125
|
-
rec = await rpc_client.dl_latest_singleton(lid)
|
|
147
|
+
rec = (await rpc_client.dl_latest_singleton(DLLatestSingleton(lid))).singleton
|
|
126
148
|
if rec is None:
|
|
127
149
|
raise Exception(f"No latest singleton for: {lid!r}")
|
|
128
150
|
return rec.generation == generation
|
|
@@ -131,43 +153,74 @@ class TestWalletRpc:
|
|
|
131
153
|
|
|
132
154
|
await time_out_assert(15, is_singleton_generation, True, client_2, launcher_id, 1)
|
|
133
155
|
|
|
134
|
-
assert await client_2.dl_history(launcher_id) == [
|
|
156
|
+
assert (await client_2.dl_history(DLHistory(launcher_id))).history == [
|
|
157
|
+
new_singleton_record,
|
|
158
|
+
singleton_record,
|
|
159
|
+
]
|
|
135
160
|
|
|
136
|
-
assert await client.dl_history(launcher_id, min_generation=uint32(1)) == [
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
assert await client.dl_history(launcher_id,
|
|
161
|
+
assert (await client.dl_history(DLHistory(launcher_id, min_generation=uint32(1)))).history == [
|
|
162
|
+
new_singleton_record
|
|
163
|
+
]
|
|
164
|
+
assert (await client.dl_history(DLHistory(launcher_id, max_generation=uint32(0)))).history == [
|
|
165
|
+
singleton_record
|
|
166
|
+
]
|
|
167
|
+
assert (await client.dl_history(DLHistory(launcher_id, num_results=uint32(1)))).history == [
|
|
168
|
+
new_singleton_record
|
|
169
|
+
]
|
|
170
|
+
assert (await client.dl_history(DLHistory(launcher_id, num_results=uint32(2)))).history == [
|
|
140
171
|
new_singleton_record,
|
|
141
172
|
singleton_record,
|
|
142
173
|
]
|
|
143
|
-
assert
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
174
|
+
assert (
|
|
175
|
+
await client.dl_history(
|
|
176
|
+
DLHistory(
|
|
177
|
+
launcher_id,
|
|
178
|
+
min_generation=uint32(1),
|
|
179
|
+
max_generation=uint32(1),
|
|
180
|
+
)
|
|
181
|
+
)
|
|
182
|
+
).history == [new_singleton_record]
|
|
183
|
+
assert (
|
|
184
|
+
await client.dl_history(
|
|
185
|
+
DLHistory(
|
|
186
|
+
launcher_id,
|
|
187
|
+
max_generation=uint32(0),
|
|
188
|
+
num_results=uint32(1),
|
|
189
|
+
)
|
|
190
|
+
)
|
|
191
|
+
).history == [singleton_record]
|
|
192
|
+
assert (
|
|
193
|
+
await client.dl_history(
|
|
194
|
+
DLHistory(
|
|
195
|
+
launcher_id,
|
|
196
|
+
min_generation=uint32(1),
|
|
197
|
+
num_results=uint32(1),
|
|
198
|
+
)
|
|
199
|
+
)
|
|
200
|
+
).history == [new_singleton_record]
|
|
201
|
+
assert (
|
|
202
|
+
await client.dl_history(
|
|
203
|
+
DLHistory(
|
|
204
|
+
launcher_id,
|
|
205
|
+
min_generation=uint32(1),
|
|
206
|
+
max_generation=uint32(1),
|
|
207
|
+
num_results=uint32(1),
|
|
208
|
+
)
|
|
209
|
+
)
|
|
210
|
+
).history == [new_singleton_record]
|
|
164
211
|
|
|
165
|
-
assert await client.dl_singletons_by_root(launcher_id, new_root) == [
|
|
212
|
+
assert (await client.dl_singletons_by_root(DLSingletonsByRoot(launcher_id, new_root))).singletons == [
|
|
213
|
+
new_singleton_record
|
|
214
|
+
]
|
|
166
215
|
|
|
167
|
-
|
|
168
|
-
|
|
216
|
+
launcher_id_2 = (
|
|
217
|
+
await client.create_new_dl(CreateNewDL(root=merkle_root, fee=uint64(50), push=True), DEFAULT_TX_CONFIG)
|
|
218
|
+
).launcher_id
|
|
219
|
+
launcher_id_3 = (
|
|
220
|
+
await client.create_new_dl(CreateNewDL(root=merkle_root, fee=uint64(50), push=True), DEFAULT_TX_CONFIG)
|
|
221
|
+
).launcher_id
|
|
169
222
|
|
|
170
|
-
for i in range(
|
|
223
|
+
for i in range(5):
|
|
171
224
|
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
172
225
|
await asyncio.sleep(0.5)
|
|
173
226
|
|
|
@@ -176,15 +229,20 @@ class TestWalletRpc:
|
|
|
176
229
|
|
|
177
230
|
next_root = bytes32([2] * 32)
|
|
178
231
|
await client.dl_update_multiple(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
232
|
+
DLUpdateMultiple(
|
|
233
|
+
updates=DLUpdateMultipleUpdates(
|
|
234
|
+
[
|
|
235
|
+
LauncherRootPair(launcher_id, next_root),
|
|
236
|
+
LauncherRootPair(launcher_id_2, next_root),
|
|
237
|
+
LauncherRootPair(launcher_id_3, next_root),
|
|
238
|
+
]
|
|
239
|
+
),
|
|
240
|
+
fee=uint64(0),
|
|
241
|
+
),
|
|
242
|
+
DEFAULT_TX_CONFIG,
|
|
185
243
|
)
|
|
186
244
|
|
|
187
|
-
for i in range(
|
|
245
|
+
for i in range(5):
|
|
188
246
|
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
189
247
|
await asyncio.sleep(0.5)
|
|
190
248
|
|
|
@@ -193,22 +251,33 @@ class TestWalletRpc:
|
|
|
193
251
|
await time_out_assert(15, is_singleton_confirmed, True, client, launcher_id_3)
|
|
194
252
|
|
|
195
253
|
for lid in [launcher_id, launcher_id_2, launcher_id_3]:
|
|
196
|
-
rec = await client.dl_latest_singleton(lid)
|
|
254
|
+
rec = (await client.dl_latest_singleton(DLLatestSingleton(lid))).singleton
|
|
197
255
|
assert rec is not None
|
|
198
256
|
assert rec.root == next_root
|
|
199
257
|
|
|
200
|
-
await client_2.dl_stop_tracking(launcher_id)
|
|
201
|
-
assert await client_2.dl_latest_singleton(lid) is None
|
|
258
|
+
await client_2.dl_stop_tracking(DLStopTracking(launcher_id))
|
|
259
|
+
assert (await client_2.dl_latest_singleton(DLLatestSingleton(lid))).singleton is None
|
|
202
260
|
|
|
203
|
-
owned_singletons = await client.dl_owned_singletons()
|
|
261
|
+
owned_singletons = (await client.dl_owned_singletons()).singletons
|
|
204
262
|
owned_launcher_ids = sorted(singleton.launcher_id for singleton in owned_singletons)
|
|
205
263
|
assert owned_launcher_ids == sorted([launcher_id, launcher_id_2, launcher_id_3])
|
|
206
264
|
|
|
207
|
-
txs =
|
|
265
|
+
txs = (
|
|
266
|
+
await client.dl_new_mirror(
|
|
267
|
+
DLNewMirror(
|
|
268
|
+
launcher_id=launcher_id,
|
|
269
|
+
amount=uint64(1000),
|
|
270
|
+
urls=["foo", "bar"],
|
|
271
|
+
fee=uint64(2000000000000),
|
|
272
|
+
push=True,
|
|
273
|
+
),
|
|
274
|
+
DEFAULT_TX_CONFIG,
|
|
275
|
+
)
|
|
276
|
+
).transactions
|
|
208
277
|
await full_node_api.wait_transaction_records_entered_mempool(txs)
|
|
209
278
|
height = full_node_api.full_node.blockchain.get_peak_height()
|
|
210
279
|
assert height is not None
|
|
211
|
-
for i in range(
|
|
280
|
+
for i in range(5):
|
|
212
281
|
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
213
282
|
await asyncio.sleep(0.5)
|
|
214
283
|
additions = []
|
|
@@ -220,16 +289,18 @@ class TestWalletRpc:
|
|
|
220
289
|
mirror_coin.name(),
|
|
221
290
|
launcher_id,
|
|
222
291
|
uint64(1000),
|
|
223
|
-
[
|
|
292
|
+
["foo", "bar"],
|
|
224
293
|
True,
|
|
225
294
|
uint32(height + 1),
|
|
226
295
|
)
|
|
227
|
-
await time_out_assert(15, client.dl_get_mirrors, [mirror], launcher_id)
|
|
228
|
-
await client.dl_delete_mirror(
|
|
229
|
-
|
|
296
|
+
await time_out_assert(15, client.dl_get_mirrors, DLGetMirrorsResponse([mirror]), DLGetMirrors(launcher_id))
|
|
297
|
+
await client.dl_delete_mirror(
|
|
298
|
+
DLDeleteMirror(coin_id=mirror_coin.name(), fee=uint64(2000000000000), push=True), DEFAULT_TX_CONFIG
|
|
299
|
+
)
|
|
300
|
+
for i in range(5):
|
|
230
301
|
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32.zeros))
|
|
231
302
|
await asyncio.sleep(0.5)
|
|
232
|
-
await time_out_assert(15, client.dl_get_mirrors, [], launcher_id)
|
|
303
|
+
await time_out_assert(15, client.dl_get_mirrors, DLGetMirrorsResponse([]), DLGetMirrors(launcher_id))
|
|
233
304
|
|
|
234
305
|
@pytest.mark.parametrize("trusted", [True, False])
|
|
235
306
|
@pytest.mark.anyio
|