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
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
3
5
|
import pytest
|
|
6
|
+
from chia_rs import Coin, ConsensusConstants, FullBlock, additions_and_removals, get_flags_for_height_and_constants
|
|
7
|
+
from chia_rs.sized_ints import uint64
|
|
4
8
|
|
|
5
|
-
from chia.
|
|
9
|
+
from chia.simulator.block_tools import BlockTools
|
|
6
10
|
|
|
7
11
|
# These test targets are used to trigger a build of the test chains.
|
|
8
12
|
# On CI we clone the test-cache repository to load the chains from, so they
|
|
@@ -57,3 +61,195 @@ def test_trigger_default_2000_compact(default_2000_blocks_compact: list[FullBloc
|
|
|
57
61
|
@pytest.mark.build_test_chains
|
|
58
62
|
def test_trigger_default_10000_compact(default_10000_blocks_compact: list[FullBlock]) -> None:
|
|
59
63
|
pass
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def validate_coins(constants: ConsensusConstants, blocks: list[FullBlock]) -> None:
|
|
67
|
+
unspent_coins: set[Coin] = set()
|
|
68
|
+
for block in blocks:
|
|
69
|
+
rewards = block.get_included_reward_coins()
|
|
70
|
+
|
|
71
|
+
if block.transactions_generator is not None:
|
|
72
|
+
flags = get_flags_for_height_and_constants(block.height, constants)
|
|
73
|
+
additions, removals = additions_and_removals(
|
|
74
|
+
bytes(block.transactions_generator),
|
|
75
|
+
[],
|
|
76
|
+
flags,
|
|
77
|
+
constants,
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
for _, rem in removals:
|
|
81
|
+
try:
|
|
82
|
+
unspent_coins.remove(rem)
|
|
83
|
+
except KeyError: # pragma: no cover
|
|
84
|
+
print(f"at height: {block.height} removal: {rem} does not exist")
|
|
85
|
+
print("coinset: ", unspent_coins)
|
|
86
|
+
raise
|
|
87
|
+
|
|
88
|
+
for add, _ in additions:
|
|
89
|
+
unspent_coins.add(add)
|
|
90
|
+
|
|
91
|
+
for add in rewards:
|
|
92
|
+
unspent_coins.add(add)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def validate_chain(
|
|
96
|
+
bt: BlockTools,
|
|
97
|
+
blocks: list[FullBlock],
|
|
98
|
+
*,
|
|
99
|
+
seed: bytes = b"",
|
|
100
|
+
empty_sub_slots: int = 0,
|
|
101
|
+
normalized_to_identity_cc_eos: bool = False,
|
|
102
|
+
normalized_to_identity_icc_eos: bool = False,
|
|
103
|
+
normalized_to_identity_cc_sp: bool = False,
|
|
104
|
+
normalized_to_identity_cc_ip: bool = False,
|
|
105
|
+
block_list_input: Optional[list[FullBlock]] = None,
|
|
106
|
+
time_per_block: Optional[float] = None,
|
|
107
|
+
dummy_block_references: bool = False,
|
|
108
|
+
include_transactions: bool = False,
|
|
109
|
+
) -> None:
|
|
110
|
+
validate_coins(bt.constants, blocks)
|
|
111
|
+
|
|
112
|
+
# make sure that the blocks we found on-disk are consistent with
|
|
113
|
+
# the ones we would have generated
|
|
114
|
+
input_length = len(block_list_input) if block_list_input else 0
|
|
115
|
+
|
|
116
|
+
# 80 blocks is a balance between capturing all features of the
|
|
117
|
+
# chains (such as block references) versus the cost of
|
|
118
|
+
# generating and comparing blocks.
|
|
119
|
+
request_length = min(80, len(blocks) - input_length)
|
|
120
|
+
|
|
121
|
+
expected_blocks: list[FullBlock] = bt.get_consecutive_blocks(
|
|
122
|
+
request_length,
|
|
123
|
+
block_list_input=block_list_input,
|
|
124
|
+
time_per_block=time_per_block,
|
|
125
|
+
seed=seed,
|
|
126
|
+
skip_slots=empty_sub_slots,
|
|
127
|
+
normalized_to_identity_cc_eos=normalized_to_identity_cc_eos,
|
|
128
|
+
normalized_to_identity_icc_eos=normalized_to_identity_icc_eos,
|
|
129
|
+
normalized_to_identity_cc_sp=normalized_to_identity_cc_sp,
|
|
130
|
+
normalized_to_identity_cc_ip=normalized_to_identity_cc_ip,
|
|
131
|
+
dummy_block_references=dummy_block_references,
|
|
132
|
+
include_transactions=include_transactions,
|
|
133
|
+
genesis_timestamp=uint64(1234567890),
|
|
134
|
+
)
|
|
135
|
+
assert len(expected_blocks) - request_length == input_length
|
|
136
|
+
# if this assert fails, and changing the test chains was
|
|
137
|
+
# intentional, please also update the test chain cache.
|
|
138
|
+
# run: pytest -m build_test_chains
|
|
139
|
+
for i in range(input_length, len(expected_blocks)):
|
|
140
|
+
print(f"i: {i}")
|
|
141
|
+
if blocks[i] != expected_blocks[i]: # pragma: no cover
|
|
142
|
+
print(
|
|
143
|
+
f"Block {i} in the block cache on disk differs "
|
|
144
|
+
"from what BlockTools generated. Please make sure "
|
|
145
|
+
"your test blocks are up-to-date"
|
|
146
|
+
)
|
|
147
|
+
print(f"disk:\n{blocks[i]}")
|
|
148
|
+
print(f"block-tools:\n{expected_blocks[i]}")
|
|
149
|
+
assert blocks[i] == expected_blocks[i]
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def test_validate_default_400(bt: BlockTools, default_400_blocks: list[FullBlock]) -> None:
|
|
153
|
+
validate_chain(bt, default_400_blocks, seed=b"400")
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def test_validate_default_1000(bt: BlockTools, default_1000_blocks: list[FullBlock]) -> None:
|
|
157
|
+
validate_chain(bt, default_1000_blocks, seed=b"1000")
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def test_validate_pre_genesis_empty_1000(bt: BlockTools, pre_genesis_empty_slots_1000_blocks: list[FullBlock]) -> None:
|
|
161
|
+
validate_chain(bt, pre_genesis_empty_slots_1000_blocks, seed=b"empty_slots", empty_sub_slots=1)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def test_validate_default_1500(bt: BlockTools, default_1500_blocks: list[FullBlock]) -> None:
|
|
165
|
+
validate_chain(bt, default_1500_blocks, seed=b"1500")
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
def test_validate_default_10000(
|
|
169
|
+
bt: BlockTools,
|
|
170
|
+
default_10000_blocks: list[FullBlock],
|
|
171
|
+
) -> None:
|
|
172
|
+
validate_chain(
|
|
173
|
+
bt,
|
|
174
|
+
default_10000_blocks,
|
|
175
|
+
seed=b"10000",
|
|
176
|
+
dummy_block_references=True,
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def test_validate_default_2000_compact(bt: BlockTools, default_2000_blocks_compact: list[FullBlock]) -> None:
|
|
181
|
+
validate_chain(
|
|
182
|
+
bt,
|
|
183
|
+
default_2000_blocks_compact,
|
|
184
|
+
normalized_to_identity_cc_eos=True,
|
|
185
|
+
normalized_to_identity_icc_eos=True,
|
|
186
|
+
normalized_to_identity_cc_ip=True,
|
|
187
|
+
normalized_to_identity_cc_sp=True,
|
|
188
|
+
seed=b"2000_compact",
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
def test_validate_default_10000_compact(bt: BlockTools, default_10000_blocks_compact: list[FullBlock]) -> None:
|
|
193
|
+
validate_chain(
|
|
194
|
+
bt,
|
|
195
|
+
default_10000_blocks_compact,
|
|
196
|
+
normalized_to_identity_cc_eos=True,
|
|
197
|
+
normalized_to_identity_icc_eos=True,
|
|
198
|
+
normalized_to_identity_cc_ip=True,
|
|
199
|
+
normalized_to_identity_cc_sp=True,
|
|
200
|
+
seed=b"1000_compact",
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def test_validate_long_reorg_blocks(
|
|
205
|
+
bt: BlockTools, test_long_reorg_blocks: list[FullBlock], default_10000_blocks: list[FullBlock]
|
|
206
|
+
) -> None:
|
|
207
|
+
validate_chain(
|
|
208
|
+
bt,
|
|
209
|
+
test_long_reorg_blocks,
|
|
210
|
+
block_list_input=default_10000_blocks[:500],
|
|
211
|
+
seed=b"reorg_blocks",
|
|
212
|
+
time_per_block=8,
|
|
213
|
+
dummy_block_references=True,
|
|
214
|
+
include_transactions=True,
|
|
215
|
+
)
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
def test_validate_long_reorg_blocks_light(
|
|
219
|
+
bt: BlockTools, test_long_reorg_blocks_light: list[FullBlock], default_10000_blocks: list[FullBlock]
|
|
220
|
+
) -> None:
|
|
221
|
+
validate_chain(
|
|
222
|
+
bt,
|
|
223
|
+
test_long_reorg_blocks_light,
|
|
224
|
+
block_list_input=default_10000_blocks[:500],
|
|
225
|
+
seed=b"reorg_blocks2",
|
|
226
|
+
dummy_block_references=True,
|
|
227
|
+
include_transactions=True,
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
def test_validate_long_reorg_1500_blocks(
|
|
232
|
+
bt: BlockTools, test_long_reorg_1500_blocks: list[FullBlock], default_10000_blocks: list[FullBlock]
|
|
233
|
+
) -> None:
|
|
234
|
+
validate_chain(
|
|
235
|
+
bt,
|
|
236
|
+
test_long_reorg_1500_blocks,
|
|
237
|
+
block_list_input=default_10000_blocks[:1500],
|
|
238
|
+
seed=b"reorg_blocks",
|
|
239
|
+
time_per_block=8,
|
|
240
|
+
dummy_block_references=True,
|
|
241
|
+
include_transactions=True,
|
|
242
|
+
)
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
def test_validate_long_reorg_1500_blocks_light(
|
|
246
|
+
bt: BlockTools, test_long_reorg_1500_blocks_light: list[FullBlock], default_10000_blocks: list[FullBlock]
|
|
247
|
+
) -> None:
|
|
248
|
+
validate_chain(
|
|
249
|
+
bt,
|
|
250
|
+
test_long_reorg_1500_blocks_light,
|
|
251
|
+
block_list_input=default_10000_blocks[:1500],
|
|
252
|
+
seed=b"reorg_blocks2",
|
|
253
|
+
dummy_block_references=True,
|
|
254
|
+
include_transactions=True,
|
|
255
|
+
)
|
|
@@ -6,11 +6,11 @@ from typing import Optional
|
|
|
6
6
|
import pytest
|
|
7
7
|
from chia_rs.sized_bytes import bytes32
|
|
8
8
|
from chia_rs.sized_ints import uint32
|
|
9
|
-
from clvm.casts import int_to_bytes
|
|
10
9
|
|
|
11
10
|
from chia.consensus.get_block_generator import get_block_generator
|
|
12
11
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
13
12
|
from chia.types.generator_types import BlockGenerator
|
|
13
|
+
from chia.util.casts import int_to_bytes
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
@dataclass(frozen=True)
|
|
@@ -3,11 +3,11 @@ from __future__ import annotations
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
|
|
5
5
|
import pytest
|
|
6
|
+
from chia_rs import BlockRecord
|
|
6
7
|
from chia_rs.sized_bytes import bytes32
|
|
7
8
|
from chia_rs.sized_ints import uint32
|
|
8
9
|
|
|
9
10
|
from chia._tests.util.benchmarks import rand_hash
|
|
10
|
-
from chia.consensus.block_record import BlockRecord
|
|
11
11
|
from chia.consensus.blockchain_interface import BlockRecordsProtocol
|
|
12
12
|
from chia.consensus.find_fork_point import find_fork_point_in_chain, lookup_fork_chain
|
|
13
13
|
from chia.simulator.block_tools import test_constants
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from chia_rs import SpendBundle
|
|
3
4
|
from chia_rs.sized_ints import uint64
|
|
4
5
|
|
|
5
6
|
from chia._tests.util.get_name_puzzle_conditions import get_name_puzzle_conditions
|
|
@@ -8,7 +9,6 @@ from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
|
8
9
|
from chia.full_node.bundle_tools import simple_solution_generator
|
|
9
10
|
from chia.types.blockchain_format.program import INFINITE_COST
|
|
10
11
|
from chia.types.generator_types import BlockGenerator
|
|
11
|
-
from chia.types.spend_bundle import SpendBundle
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def cost_of_spend_bundle(spend_bundle: SpendBundle) -> int:
|
chia/_tests/clvm/coin_store.py
CHANGED
|
@@ -5,17 +5,16 @@ from collections.abc import Iterator
|
|
|
5
5
|
from dataclasses import dataclass, replace
|
|
6
6
|
from typing import Optional
|
|
7
7
|
|
|
8
|
-
from chia_rs import ConsensusConstants
|
|
8
|
+
from chia_rs import ConsensusConstants, SpendBundle
|
|
9
9
|
from chia_rs.sized_bytes import bytes32
|
|
10
10
|
from chia_rs.sized_ints import uint32, uint64
|
|
11
11
|
|
|
12
12
|
from chia._tests.util.get_name_puzzle_conditions import get_name_puzzle_conditions
|
|
13
|
+
from chia.consensus.check_time_locks import check_time_locks
|
|
13
14
|
from chia.consensus.cost_calculator import NPCResult
|
|
14
15
|
from chia.full_node.bundle_tools import simple_solution_generator
|
|
15
|
-
from chia.full_node.mempool_check_conditions import mempool_check_time_locks
|
|
16
16
|
from chia.types.blockchain_format.coin import Coin
|
|
17
17
|
from chia.types.coin_record import CoinRecord
|
|
18
|
-
from chia.types.spend_bundle import SpendBundle
|
|
19
18
|
from chia.util.errors import Err
|
|
20
19
|
|
|
21
20
|
MAX_COST = 11000000000
|
|
@@ -84,7 +83,7 @@ class CoinStore:
|
|
|
84
83
|
uint64(now.seconds),
|
|
85
84
|
)
|
|
86
85
|
|
|
87
|
-
err =
|
|
86
|
+
err = check_time_locks(
|
|
88
87
|
ephemeral_db,
|
|
89
88
|
result.conds,
|
|
90
89
|
# TODO: this is technically not right, it's supposed to be the
|
|
@@ -129,13 +129,13 @@ def test_message_error_conditions() -> None:
|
|
|
129
129
|
mode_integer=uint8(0b111),
|
|
130
130
|
).necessary_args
|
|
131
131
|
|
|
132
|
-
with pytest.raises(ValueError, match="Must specify either mode_integer or both sender and
|
|
132
|
+
with pytest.raises(ValueError, match="Must specify either mode_integer or both sender and receiver"):
|
|
133
133
|
SendMessage(
|
|
134
134
|
msg=b"foo",
|
|
135
135
|
sender=MessageParticipant(coin_id_committed=test_coin.name()),
|
|
136
136
|
)
|
|
137
137
|
|
|
138
|
-
with pytest.raises(ValueError, match="Must specify either mode_integer or both sender and
|
|
138
|
+
with pytest.raises(ValueError, match="Must specify either mode_integer or both sender and receiver"):
|
|
139
139
|
SendMessage(
|
|
140
140
|
msg=b"foo",
|
|
141
141
|
receiver=MessageParticipant(coin_id_committed=test_coin.name()),
|
|
@@ -5,14 +5,13 @@ from dataclasses import dataclass
|
|
|
5
5
|
from typing import Callable, SupportsBytes
|
|
6
6
|
|
|
7
7
|
import pytest
|
|
8
|
-
from chia_rs import G1Element, G2Element
|
|
8
|
+
from chia_rs import CoinSpend, G1Element, G2Element, SpendBundle
|
|
9
9
|
from chia_rs.sized_bytes import bytes32
|
|
10
10
|
from chia_rs.sized_ints import uint64
|
|
11
11
|
|
|
12
12
|
from chia.types.blockchain_format.coin import Coin
|
|
13
13
|
from chia.types.blockchain_format.program import Program
|
|
14
|
-
from chia.types.coin_spend import
|
|
15
|
-
from chia.types.spend_bundle import SpendBundle
|
|
14
|
+
from chia.types.coin_spend import make_spend
|
|
16
15
|
from chia.wallet.cat_wallet.cat_utils import CAT_MOD, construct_cat_puzzle
|
|
17
16
|
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_for_pk
|
|
18
17
|
from chia.wallet.trading.offer import OFFER_MOD
|
chia/_tests/clvm/test_puzzles.py
CHANGED
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from collections.abc import Iterable
|
|
4
4
|
|
|
5
|
-
from chia_rs import AugSchemeMPL, G1Element
|
|
5
|
+
from chia_rs import AugSchemeMPL, G1Element, SpendBundle
|
|
6
6
|
from chia_rs.sized_bytes import bytes32
|
|
7
7
|
from chia_rs.sized_ints import uint32, uint64
|
|
8
8
|
|
|
@@ -12,7 +12,6 @@ from chia._tests.util.key_tool import KeyTool
|
|
|
12
12
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
13
13
|
from chia.types.blockchain_format.program import Program
|
|
14
14
|
from chia.types.coin_spend import make_spend
|
|
15
|
-
from chia.types.spend_bundle import SpendBundle
|
|
16
15
|
from chia.util.hash import std_hash
|
|
17
16
|
from chia.wallet.puzzles import (
|
|
18
17
|
p2_conditions,
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from typing import Optional
|
|
4
4
|
|
|
5
5
|
import pytest
|
|
6
|
-
from chia_rs import AugSchemeMPL, G1Element, G2Element, PrivateKey
|
|
6
|
+
from chia_rs import AugSchemeMPL, CoinSpend, G1Element, G2Element, PrivateKey, SpendBundle
|
|
7
7
|
from chia_rs.sized_bytes import bytes32
|
|
8
8
|
from chia_rs.sized_ints import uint64
|
|
9
9
|
|
|
@@ -13,9 +13,8 @@ from chia._tests.util.spend_sim import CostLogger, SimClient, SpendSim, sim_and_
|
|
|
13
13
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
14
14
|
from chia.types.blockchain_format.coin import Coin
|
|
15
15
|
from chia.types.blockchain_format.program import Program
|
|
16
|
-
from chia.types.coin_spend import
|
|
16
|
+
from chia.types.coin_spend import make_spend
|
|
17
17
|
from chia.types.condition_opcodes import ConditionOpcode
|
|
18
|
-
from chia.types.spend_bundle import SpendBundle
|
|
19
18
|
from chia.util.errors import Err
|
|
20
19
|
from chia.wallet.lineage_proof import LineageProof
|
|
21
20
|
from chia.wallet.puzzles import p2_conditions, p2_delegated_puzzle_or_hidden_puzzle
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
|
-
from chia_rs import G2Element
|
|
4
|
+
from chia_rs import G2Element, SpendBundle
|
|
5
5
|
from chia_rs.sized_bytes import bytes32
|
|
6
6
|
|
|
7
7
|
from chia._tests.util.spend_sim import sim_and_client
|
|
8
8
|
from chia.types.blockchain_format.program import Program
|
|
9
|
-
from chia.types.coin_spend import
|
|
9
|
+
from chia.types.coin_spend import make_spend
|
|
10
10
|
from chia.types.condition_opcodes import ConditionOpcode
|
|
11
|
-
from chia.
|
|
11
|
+
from chia.wallet.util.compute_additions import compute_additions
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
@pytest.mark.anyio
|
|
15
15
|
async def test_farming():
|
|
16
16
|
async with sim_and_client(pass_prefarm=False) as (sim, _):
|
|
17
|
-
for i in range(
|
|
17
|
+
for i in range(5):
|
|
18
18
|
await sim.farm_block()
|
|
19
19
|
|
|
20
20
|
assert len(sim.blocks) == 5
|
|
@@ -25,7 +25,7 @@ async def test_farming():
|
|
|
25
25
|
@pytest.mark.anyio
|
|
26
26
|
async def test_rewind():
|
|
27
27
|
async with sim_and_client() as (sim, _):
|
|
28
|
-
for i in range(
|
|
28
|
+
for i in range(5):
|
|
29
29
|
await sim.farm_block()
|
|
30
30
|
|
|
31
31
|
save_height = sim.get_height()
|
|
@@ -39,11 +39,11 @@ async def test_rewind():
|
|
|
39
39
|
@pytest.mark.anyio
|
|
40
40
|
async def test_all_endpoints():
|
|
41
41
|
async with sim_and_client() as (sim, sim_client):
|
|
42
|
-
for i in range(
|
|
42
|
+
for i in range(5):
|
|
43
43
|
await sim.farm_block()
|
|
44
44
|
await sim.farm_block(bytes32.zeros)
|
|
45
45
|
await sim.farm_block(bytes32([1] * 32))
|
|
46
|
-
for i in range(
|
|
46
|
+
for i in range(5):
|
|
47
47
|
await sim.farm_block()
|
|
48
48
|
|
|
49
49
|
# get_coin_records_by_hint
|
|
@@ -7,23 +7,20 @@ from dataclasses import dataclass, field
|
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from typing import Any, Optional, Union, cast
|
|
9
9
|
|
|
10
|
-
from chia_rs import Coin, G2Element
|
|
10
|
+
from chia_rs import BlockRecord, Coin, G2Element
|
|
11
11
|
from chia_rs.sized_bytes import bytes32
|
|
12
12
|
from chia_rs.sized_ints import uint8, uint16, uint32, uint64
|
|
13
13
|
|
|
14
14
|
import chia.cmds.wallet_funcs
|
|
15
15
|
from chia._tests.cmds.testing_classes import create_test_block_record
|
|
16
|
-
from chia._tests.cmds.wallet.test_consts import STD_TX, STD_UTX
|
|
16
|
+
from chia._tests.cmds.wallet.test_consts import STD_TX, STD_UTX, get_bytes32
|
|
17
17
|
from chia.cmds.chia import cli as chia_cli
|
|
18
18
|
from chia.cmds.cmds_util import _T_RpcClient, node_config_section_names
|
|
19
|
-
from chia.consensus.block_record import BlockRecord
|
|
20
19
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
21
|
-
from chia.
|
|
22
|
-
from chia.
|
|
23
|
-
from chia.
|
|
20
|
+
from chia.data_layer.data_layer_rpc_client import DataLayerRpcClient
|
|
21
|
+
from chia.farmer.farmer_rpc_client import FarmerRpcClient
|
|
22
|
+
from chia.full_node.full_node_rpc_client import FullNodeRpcClient
|
|
24
23
|
from chia.rpc.rpc_client import RpcClient
|
|
25
|
-
from chia.rpc.wallet_request_types import GetSyncStatusResponse, SendTransactionMultiResponse
|
|
26
|
-
from chia.rpc.wallet_rpc_client import WalletRpcClient
|
|
27
24
|
from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
|
|
28
25
|
from chia.types.coin_record import CoinRecord
|
|
29
26
|
from chia.types.signing_mode import SigningMode
|
|
@@ -36,6 +33,15 @@ from chia.wallet.transaction_record import TransactionRecord
|
|
|
36
33
|
from chia.wallet.util.transaction_type import TransactionType
|
|
37
34
|
from chia.wallet.util.tx_config import CoinSelectionConfig, TXConfig
|
|
38
35
|
from chia.wallet.util.wallet_types import WalletType
|
|
36
|
+
from chia.wallet.wallet_request_types import (
|
|
37
|
+
GetSyncStatusResponse,
|
|
38
|
+
NFTCalculateRoyalties,
|
|
39
|
+
NFTCalculateRoyaltiesResponse,
|
|
40
|
+
NFTGetInfo,
|
|
41
|
+
NFTGetInfoResponse,
|
|
42
|
+
SendTransactionMultiResponse,
|
|
43
|
+
)
|
|
44
|
+
from chia.wallet.wallet_rpc_client import WalletRpcClient
|
|
39
45
|
from chia.wallet.wallet_spend_bundle import WalletSpendBundle
|
|
40
46
|
|
|
41
47
|
# Any functions that are the same for every command being tested should be below.
|
|
@@ -151,16 +157,14 @@ class TestWalletRpcClient(TestRpcClient):
|
|
|
151
157
|
if bytes32([1] * 32), return (uint32(2), "test1"), if bytes32([1] * 32), return (uint32(3), "test2")
|
|
152
158
|
"""
|
|
153
159
|
self.add_to_log("cat_asset_id_to_name", (asset_id,))
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
else:
|
|
159
|
-
return None
|
|
160
|
+
for i in range(256):
|
|
161
|
+
if asset_id == get_bytes32(i):
|
|
162
|
+
return uint32(i + 1), "test" + str(i)
|
|
163
|
+
return None
|
|
160
164
|
|
|
161
|
-
async def get_nft_info(self,
|
|
162
|
-
self.add_to_log("get_nft_info", (coin_id, latest))
|
|
163
|
-
coin_id_bytes = bytes32.fromhex(coin_id)
|
|
165
|
+
async def get_nft_info(self, request: NFTGetInfo) -> NFTGetInfoResponse:
|
|
166
|
+
self.add_to_log("get_nft_info", (request.coin_id, request.latest))
|
|
167
|
+
coin_id_bytes = bytes32.fromhex(request.coin_id)
|
|
164
168
|
nft_info = NFTInfo(
|
|
165
169
|
nft_id=encode_puzzle_hash(coin_id_bytes, "nft"),
|
|
166
170
|
launcher_id=bytes32([1] * 32),
|
|
@@ -183,17 +187,18 @@ class TestWalletRpcClient(TestRpcClient):
|
|
|
183
187
|
supports_did=True,
|
|
184
188
|
p2_address=bytes32([8] * 32),
|
|
185
189
|
)
|
|
186
|
-
return
|
|
190
|
+
return NFTGetInfoResponse(nft_info)
|
|
187
191
|
|
|
188
192
|
async def nft_calculate_royalties(
|
|
189
193
|
self,
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
194
|
+
request: NFTCalculateRoyalties,
|
|
195
|
+
) -> NFTCalculateRoyaltiesResponse:
|
|
196
|
+
self.add_to_log("nft_calculate_royalties", (request,))
|
|
197
|
+
return NFTCalculateRoyaltiesResponse.from_json_dict(
|
|
198
|
+
NFTWallet.royalty_calculation(
|
|
199
|
+
{asset.asset: (asset.royalty_address, asset.royalty_percentage) for asset in request.royalty_assets},
|
|
200
|
+
{asset.asset: asset.amount for asset in request.fungible_assets},
|
|
201
|
+
)
|
|
197
202
|
)
|
|
198
203
|
|
|
199
204
|
async def get_spendable_coins(
|
chia/_tests/cmds/test_dev_gh.py
CHANGED
|
@@ -14,7 +14,7 @@ from _pytest.capture import CaptureFixture
|
|
|
14
14
|
|
|
15
15
|
import chia._tests
|
|
16
16
|
from chia._tests.util.misc import Marks, datacases
|
|
17
|
-
from chia.cmds.gh import Per, TestCMD, get_gh_token
|
|
17
|
+
from chia.cmds.dev.gh import Per, TestCMD, get_gh_token
|
|
18
18
|
|
|
19
19
|
test_root = Path(chia._tests.__file__).parent
|
|
20
20
|
|
|
@@ -9,9 +9,9 @@ from chia._tests.util.time_out_assert import time_out_assert
|
|
|
9
9
|
from chia.cmds.farm_funcs import summary
|
|
10
10
|
from chia.farmer.farmer import Farmer
|
|
11
11
|
from chia.harvester.harvester import Harvester
|
|
12
|
+
from chia.server.aliases import FarmerService, HarvesterService, WalletService
|
|
12
13
|
from chia.simulator.block_tools import BlockTools
|
|
13
14
|
from chia.simulator.start_simulator import SimulatorFullNodeService
|
|
14
|
-
from chia.types.aliases import FarmerService, HarvesterService, WalletService
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
@pytest.mark.anyio
|
chia/_tests/cmds/test_show.py
CHANGED
|
@@ -4,7 +4,7 @@ from dataclasses import dataclass
|
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from typing import Any, Optional
|
|
6
6
|
|
|
7
|
-
from chia_rs import FoliageTransactionBlock
|
|
7
|
+
from chia_rs import FoliageTransactionBlock, FullBlock
|
|
8
8
|
from chia_rs.sized_bytes import bytes32
|
|
9
9
|
from chia_rs.sized_ints import uint32, uint64
|
|
10
10
|
|
|
@@ -12,7 +12,6 @@ from chia._tests.cmds.cmd_test_utils import TestFullNodeRpcClient, TestRpcClient
|
|
|
12
12
|
from chia._tests.cmds.testing_classes import hash_to_height, height_hash
|
|
13
13
|
from chia._tests.util.test_full_block_utils import get_foliage, get_reward_chain_block, get_transactions_info, vdf_proof
|
|
14
14
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
15
|
-
from chia.types.full_block import FullBlock
|
|
16
15
|
|
|
17
16
|
|
|
18
17
|
@dataclass
|