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
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import dataclasses
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import Any,
|
|
5
|
+
from typing import Any, Optional
|
|
6
6
|
|
|
7
7
|
import pytest
|
|
8
8
|
from chia_rs import AugSchemeMPL, G1Element, G2Element
|
|
@@ -78,7 +78,7 @@ class TestWalletSimulator:
|
|
|
78
78
|
async with wallet.wallet_state_manager.new_action_scope(DEFAULT_TX_CONFIG, push=True) as action_scope:
|
|
79
79
|
await wallet.generate_signed_transaction(
|
|
80
80
|
uint64(tx_amount),
|
|
81
|
-
bytes32
|
|
81
|
+
bytes32.zeros,
|
|
82
82
|
action_scope,
|
|
83
83
|
uint64(0),
|
|
84
84
|
)
|
|
@@ -112,7 +112,7 @@ class TestWalletSimulator:
|
|
|
112
112
|
async with wallet.wallet_state_manager.new_action_scope(
|
|
113
113
|
wallet_environments.tx_config, push=False
|
|
114
114
|
) as action_scope:
|
|
115
|
-
selected_coin =
|
|
115
|
+
selected_coin = next(iter(await wallet.select_coins(uint64(0), action_scope)))
|
|
116
116
|
assert await wallet.match_hinted_coin(selected_coin, selected_coin.puzzle_hash)
|
|
117
117
|
|
|
118
118
|
@pytest.mark.parametrize(
|
|
@@ -133,7 +133,7 @@ class TestWalletSimulator:
|
|
|
133
133
|
) as action_scope:
|
|
134
134
|
await wallet.generate_signed_transaction(
|
|
135
135
|
uint64(tx_amount),
|
|
136
|
-
bytes32
|
|
136
|
+
bytes32.zeros,
|
|
137
137
|
action_scope,
|
|
138
138
|
uint64(0),
|
|
139
139
|
)
|
|
@@ -577,7 +577,7 @@ class TestWalletSimulator:
|
|
|
577
577
|
assert txs["transactions"][0]["confirmed"]
|
|
578
578
|
assert txs["transactions"][1]["confirmed"]
|
|
579
579
|
assert txs["transactions"][0]["memos"] != txs["transactions"][1]["memos"]
|
|
580
|
-
assert
|
|
580
|
+
assert next(iter(txs["transactions"][0]["memos"].values())) == b"Test".hex()
|
|
581
581
|
|
|
582
582
|
@pytest.mark.parametrize(
|
|
583
583
|
"wallet_environments",
|
|
@@ -777,7 +777,7 @@ class TestWalletSimulator:
|
|
|
777
777
|
height = full_node_api.full_node.blockchain.get_peak_height()
|
|
778
778
|
assert height is not None
|
|
779
779
|
await full_node_api.reorg_from_index_to_new_index(
|
|
780
|
-
ReorgProtocol(uint32(height - 2), uint32(height + 1), bytes32
|
|
780
|
+
ReorgProtocol(uint32(height - 2), uint32(height + 1), bytes32.zeros, None)
|
|
781
781
|
)
|
|
782
782
|
|
|
783
783
|
await time_out_assert(20, wsm.coin_store.count_small_unspent, 0, 1000, CoinType.CLAWBACK)
|
|
@@ -859,7 +859,7 @@ class TestWalletSimulator:
|
|
|
859
859
|
height = full_node_api.full_node.blockchain.get_peak_height()
|
|
860
860
|
assert height is not None
|
|
861
861
|
await full_node_api.reorg_from_index_to_new_index(
|
|
862
|
-
ReorgProtocol(uint32(height - 1), uint32(height + 1), bytes32
|
|
862
|
+
ReorgProtocol(uint32(height - 1), uint32(height + 1), bytes32.zeros, None)
|
|
863
863
|
)
|
|
864
864
|
|
|
865
865
|
await time_out_assert(20, wsm.coin_store.count_small_unspent, 1, 1000, CoinType.CLAWBACK)
|
|
@@ -916,7 +916,7 @@ class TestWalletSimulator:
|
|
|
916
916
|
async with wallet.wallet_state_manager.new_action_scope(DEFAULT_TX_CONFIG, push=True) as action_scope:
|
|
917
917
|
await wallet.generate_signed_transaction(
|
|
918
918
|
uint64(tx_amount),
|
|
919
|
-
bytes32
|
|
919
|
+
bytes32.zeros,
|
|
920
920
|
action_scope,
|
|
921
921
|
uint64(0),
|
|
922
922
|
puzzle_decorator_override=[{"decorator": "CLAWBACK", "clawback_timelock": 500}],
|
|
@@ -1112,11 +1112,11 @@ class TestWalletSimulator:
|
|
|
1112
1112
|
await time_out_assert(20, wsm_1.coin_store.count_small_unspent, 0, 1000, CoinType.CLAWBACK)
|
|
1113
1113
|
await time_out_assert(20, wsm_2.coin_store.count_small_unspent, 0, 1000, CoinType.CLAWBACK)
|
|
1114
1114
|
|
|
1115
|
-
before_txs:
|
|
1116
|
-
before_txs["sender"][
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
)
|
|
1115
|
+
before_txs: dict[str, dict[TransactionType, int]] = {"sender": {}, "recipient": {}}
|
|
1116
|
+
before_txs["sender"][
|
|
1117
|
+
TransactionType.INCOMING_CLAWBACK_SEND
|
|
1118
|
+
] = await wsm_1.tx_store.get_transaction_count_for_wallet(
|
|
1119
|
+
1, type_filter=TransactionTypeFilter.include([TransactionType.INCOMING_CLAWBACK_SEND])
|
|
1120
1120
|
)
|
|
1121
1121
|
before_txs["sender"][TransactionType.OUTGOING_CLAWBACK] = await wsm_1.tx_store.get_transaction_count_for_wallet(
|
|
1122
1122
|
1, type_filter=TransactionTypeFilter.include([TransactionType.OUTGOING_CLAWBACK])
|
|
@@ -1130,10 +1130,10 @@ class TestWalletSimulator:
|
|
|
1130
1130
|
before_txs["sender"][TransactionType.COINBASE_REWARD] = await wsm_1.tx_store.get_transaction_count_for_wallet(
|
|
1131
1131
|
1, type_filter=TransactionTypeFilter.include([TransactionType.COINBASE_REWARD])
|
|
1132
1132
|
)
|
|
1133
|
-
before_txs["recipient"][
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
)
|
|
1133
|
+
before_txs["recipient"][
|
|
1134
|
+
TransactionType.INCOMING_CLAWBACK_RECEIVE
|
|
1135
|
+
] = await wsm_2.tx_store.get_transaction_count_for_wallet(
|
|
1136
|
+
1, type_filter=TransactionTypeFilter.include([TransactionType.INCOMING_CLAWBACK_RECEIVE])
|
|
1137
1137
|
)
|
|
1138
1138
|
# Resync start
|
|
1139
1139
|
env_1.node._close()
|
|
@@ -1159,11 +1159,11 @@ class TestWalletSimulator:
|
|
|
1159
1159
|
wsm_1 = env_1.node.wallet_state_manager
|
|
1160
1160
|
wsm_2 = env_2.node.wallet_state_manager
|
|
1161
1161
|
|
|
1162
|
-
after_txs:
|
|
1163
|
-
after_txs["sender"][
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
)
|
|
1162
|
+
after_txs: dict[str, dict[TransactionType, int]] = {"sender": {}, "recipient": {}}
|
|
1163
|
+
after_txs["sender"][
|
|
1164
|
+
TransactionType.INCOMING_CLAWBACK_SEND
|
|
1165
|
+
] = await wsm_1.tx_store.get_transaction_count_for_wallet(
|
|
1166
|
+
1, type_filter=TransactionTypeFilter.include([TransactionType.INCOMING_CLAWBACK_SEND])
|
|
1167
1167
|
)
|
|
1168
1168
|
after_txs["sender"][TransactionType.OUTGOING_CLAWBACK] = await wsm_1.tx_store.get_transaction_count_for_wallet(
|
|
1169
1169
|
1, type_filter=TransactionTypeFilter.include([TransactionType.OUTGOING_CLAWBACK])
|
|
@@ -1177,10 +1177,10 @@ class TestWalletSimulator:
|
|
|
1177
1177
|
after_txs["sender"][TransactionType.COINBASE_REWARD] = await wsm_1.tx_store.get_transaction_count_for_wallet(
|
|
1178
1178
|
1, type_filter=TransactionTypeFilter.include([TransactionType.COINBASE_REWARD])
|
|
1179
1179
|
)
|
|
1180
|
-
after_txs["recipient"][
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
)
|
|
1180
|
+
after_txs["recipient"][
|
|
1181
|
+
TransactionType.INCOMING_CLAWBACK_RECEIVE
|
|
1182
|
+
] = await wsm_2.tx_store.get_transaction_count_for_wallet(
|
|
1183
|
+
1, type_filter=TransactionTypeFilter.include([TransactionType.INCOMING_CLAWBACK_RECEIVE])
|
|
1184
1184
|
)
|
|
1185
1185
|
# Check clawback
|
|
1186
1186
|
clawback_tx_1 = await wsm_1.tx_store.get_transaction_record(clawback_coin_id_1)
|
|
@@ -1260,7 +1260,7 @@ class TestWalletSimulator:
|
|
|
1260
1260
|
@pytest.mark.anyio
|
|
1261
1261
|
async def test_wallet_send_to_three_peers(
|
|
1262
1262
|
self,
|
|
1263
|
-
three_sim_two_wallets:
|
|
1263
|
+
three_sim_two_wallets: tuple[list[FullNodeSimulator], list[tuple[WalletNode, ChiaServer]], BlockTools],
|
|
1264
1264
|
trusted: bool,
|
|
1265
1265
|
self_hostname: str,
|
|
1266
1266
|
) -> None:
|
|
@@ -1666,7 +1666,7 @@ class TestWalletSimulator:
|
|
|
1666
1666
|
async with wallet.wallet_state_manager.new_action_scope(DEFAULT_TX_CONFIG, push=False) as action_scope:
|
|
1667
1667
|
await wallet.generate_signed_transaction(
|
|
1668
1668
|
uint64(tx_amount),
|
|
1669
|
-
bytes32
|
|
1669
|
+
bytes32.zeros,
|
|
1670
1670
|
action_scope,
|
|
1671
1671
|
uint64(tx_fee),
|
|
1672
1672
|
)
|
|
@@ -2042,7 +2042,7 @@ class TestWalletSimulator:
|
|
|
2042
2042
|
coin_list = list(coins)
|
|
2043
2043
|
await wallet.generate_signed_transaction(
|
|
2044
2044
|
uint64(AMOUNT_TO_SEND),
|
|
2045
|
-
bytes32
|
|
2045
|
+
bytes32.zeros,
|
|
2046
2046
|
action_scope,
|
|
2047
2047
|
uint64(0),
|
|
2048
2048
|
coins=coins,
|
|
@@ -2050,7 +2050,7 @@ class TestWalletSimulator:
|
|
|
2050
2050
|
)
|
|
2051
2051
|
[tx] = action_scope.side_effects.transactions
|
|
2052
2052
|
assert tx.spend_bundle is not None
|
|
2053
|
-
paid_coin =
|
|
2053
|
+
paid_coin = next(coin for coin in tx.spend_bundle.additions() if coin.amount == AMOUNT_TO_SEND)
|
|
2054
2054
|
assert paid_coin.parent_coin_info == coin_list[2].name()
|
|
2055
2055
|
[tx] = await wallet.wallet_state_manager.add_pending_transactions([tx])
|
|
2056
2056
|
|
|
@@ -2083,7 +2083,7 @@ class TestWalletSimulator:
|
|
|
2083
2083
|
|
|
2084
2084
|
def test_get_wallet_db_path_v2_r1() -> None:
|
|
2085
2085
|
root_path: Path = Path("/x/y/z/.chia/mainnet").resolve()
|
|
2086
|
-
config:
|
|
2086
|
+
config: dict[str, Any] = {
|
|
2087
2087
|
"database_path": "wallet/db/blockchain_wallet_v2_r1_CHALLENGE_KEY.sqlite",
|
|
2088
2088
|
"selected_network": "mainnet",
|
|
2089
2089
|
}
|
|
@@ -2095,7 +2095,7 @@ def test_get_wallet_db_path_v2_r1() -> None:
|
|
|
2095
2095
|
|
|
2096
2096
|
def test_get_wallet_db_path_v2() -> None:
|
|
2097
2097
|
root_path: Path = Path("/x/y/z/.chia/mainnet").resolve()
|
|
2098
|
-
config:
|
|
2098
|
+
config: dict[str, Any] = {
|
|
2099
2099
|
"database_path": "wallet/db/blockchain_wallet_v2_CHALLENGE_KEY.sqlite",
|
|
2100
2100
|
"selected_network": "mainnet",
|
|
2101
2101
|
}
|
|
@@ -2107,7 +2107,7 @@ def test_get_wallet_db_path_v2() -> None:
|
|
|
2107
2107
|
|
|
2108
2108
|
def test_get_wallet_db_path_v1() -> None:
|
|
2109
2109
|
root_path: Path = Path("/x/y/z/.chia/mainnet").resolve()
|
|
2110
|
-
config:
|
|
2110
|
+
config: dict[str, Any] = {
|
|
2111
2111
|
"database_path": "wallet/db/blockchain_wallet_v1_CHALLENGE_KEY.sqlite",
|
|
2112
2112
|
"selected_network": "mainnet",
|
|
2113
2113
|
}
|
|
@@ -2119,7 +2119,7 @@ def test_get_wallet_db_path_v1() -> None:
|
|
|
2119
2119
|
|
|
2120
2120
|
def test_get_wallet_db_path_testnet() -> None:
|
|
2121
2121
|
root_path: Path = Path("/x/y/z/.chia/testnet").resolve()
|
|
2122
|
-
config:
|
|
2122
|
+
config: dict[str, Any] = {
|
|
2123
2123
|
"database_path": "wallet/db/blockchain_wallet_v2_CHALLENGE_KEY.sqlite",
|
|
2124
2124
|
"selected_network": "testnet",
|
|
2125
2125
|
}
|
|
@@ -2131,9 +2131,9 @@ def test_get_wallet_db_path_testnet() -> None:
|
|
|
2131
2131
|
|
|
2132
2132
|
@pytest.mark.anyio
|
|
2133
2133
|
async def test_wallet_has_no_server(
|
|
2134
|
-
simulator_and_wallet:
|
|
2134
|
+
simulator_and_wallet: tuple[list[FullNodeSimulator], list[tuple[WalletNode, ChiaServer]], BlockTools],
|
|
2135
2135
|
) -> None:
|
|
2136
|
-
|
|
2137
|
-
|
|
2136
|
+
_full_nodes, wallets, _bt = simulator_and_wallet
|
|
2137
|
+
_wallet_node, wallet_server = wallets[0]
|
|
2138
2138
|
|
|
2139
2139
|
assert wallet_server.webserver is None
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
|
-
from typing import
|
|
4
|
+
from typing import Optional
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
7
|
from chia_rs import G2Element
|
|
@@ -17,9 +17,9 @@ from chia.wallet.wallet_action_scope import WalletSideEffects
|
|
|
17
17
|
from chia.wallet.wallet_spend_bundle import WalletSpendBundle
|
|
18
18
|
from chia.wallet.wallet_state_manager import WalletStateManager
|
|
19
19
|
|
|
20
|
-
MOCK_SR = SigningResponse(b"hey", bytes32
|
|
20
|
+
MOCK_SR = SigningResponse(b"hey", bytes32.zeros)
|
|
21
21
|
MOCK_SB = WalletSpendBundle([], G2Element())
|
|
22
|
-
MOCK_COIN = Coin(bytes32
|
|
22
|
+
MOCK_COIN = Coin(bytes32.zeros, bytes32.zeros, uint64(0))
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
def test_back_and_forth_serialization() -> None:
|
|
@@ -36,18 +36,18 @@ def test_back_and_forth_serialization() -> None:
|
|
|
36
36
|
@dataclass
|
|
37
37
|
class MockWalletStateManager:
|
|
38
38
|
most_recent_call: Optional[
|
|
39
|
-
|
|
39
|
+
tuple[list[TransactionRecord], bool, bool, bool, list[SigningResponse], list[WalletSpendBundle]]
|
|
40
40
|
] = None
|
|
41
41
|
|
|
42
42
|
async def add_pending_transactions(
|
|
43
43
|
self,
|
|
44
|
-
txs:
|
|
44
|
+
txs: list[TransactionRecord],
|
|
45
45
|
push: bool,
|
|
46
46
|
merge_spends: bool,
|
|
47
47
|
sign: bool,
|
|
48
|
-
additional_signing_responses:
|
|
49
|
-
extra_spends:
|
|
50
|
-
) ->
|
|
48
|
+
additional_signing_responses: list[SigningResponse],
|
|
49
|
+
extra_spends: list[WalletSpendBundle],
|
|
50
|
+
) -> list[TransactionRecord]:
|
|
51
51
|
self.most_recent_call = (txs, push, merge_spends, sign, additional_signing_responses, extra_spends)
|
|
52
52
|
return txs
|
|
53
53
|
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import List
|
|
4
|
-
|
|
5
3
|
import pytest
|
|
6
4
|
|
|
7
5
|
from chia._tests.util.db_connection import DBConnection
|
|
8
|
-
from chia._tests.util.misc import add_blocks_in_batches
|
|
9
6
|
from chia._tests.util.setup_nodes import OldSimulatorsAndWallets
|
|
10
7
|
from chia.consensus.blockchain import AddBlockResult
|
|
11
8
|
from chia.protocols import full_node_protocol
|
|
9
|
+
from chia.simulator.add_blocks_in_batches import add_blocks_in_batches
|
|
12
10
|
from chia.types.blockchain_format.vdf import VDFProof
|
|
13
11
|
from chia.types.full_block import FullBlock
|
|
14
12
|
from chia.types.header_block import HeaderBlock
|
|
@@ -21,7 +19,7 @@ from chia.wallet.wallet_blockchain import WalletBlockchain
|
|
|
21
19
|
@pytest.mark.anyio
|
|
22
20
|
@pytest.mark.standard_block_tools
|
|
23
21
|
async def test_wallet_blockchain(
|
|
24
|
-
simulator_and_wallet: OldSimulatorsAndWallets, default_1000_blocks:
|
|
22
|
+
simulator_and_wallet: OldSimulatorsAndWallets, default_1000_blocks: list[FullBlock]
|
|
25
23
|
) -> None:
|
|
26
24
|
[full_node_api], [(wallet_node, _)], bt = simulator_and_wallet
|
|
27
25
|
|
|
@@ -75,9 +73,9 @@ async def test_wallet_blockchain(
|
|
|
75
73
|
assert peak_block is not None
|
|
76
74
|
assert peak_block.height == 505
|
|
77
75
|
|
|
78
|
-
header_blocks:
|
|
76
|
+
header_blocks: list[HeaderBlock] = []
|
|
79
77
|
for block in default_1000_blocks:
|
|
80
|
-
header_block = get_block_header(block
|
|
78
|
+
header_block = get_block_header(block)
|
|
81
79
|
header_blocks.append(header_block)
|
|
82
80
|
|
|
83
81
|
res, err = await chain.add_block(header_blocks[50])
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import random
|
|
4
4
|
from dataclasses import dataclass, field, replace
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import Optional
|
|
6
6
|
|
|
7
7
|
import pytest
|
|
8
8
|
|
|
@@ -118,7 +118,7 @@ def get_dummy_record(wallet_id: int, seeded_random: random.Random) -> WalletCoin
|
|
|
118
118
|
@dataclass
|
|
119
119
|
class DummyWalletCoinRecords:
|
|
120
120
|
seeded_random: random.Random
|
|
121
|
-
records_per_wallet:
|
|
121
|
+
records_per_wallet: dict[int, list[WalletCoinRecord]] = field(default_factory=dict)
|
|
122
122
|
|
|
123
123
|
def generate(self, wallet_id: int, count: int) -> None:
|
|
124
124
|
records = self.records_per_wallet.setdefault(wallet_id, [])
|
|
@@ -367,7 +367,7 @@ async def test_delete_coin_record() -> None:
|
|
|
367
367
|
).records == [record_2, record_3, record_4, record_5, record_6, record_7]
|
|
368
368
|
|
|
369
369
|
|
|
370
|
-
get_coin_records_offset_limit_tests:
|
|
370
|
+
get_coin_records_offset_limit_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
371
371
|
(GetCoinRecords(offset=uint32(0), limit=uint32(0)), []),
|
|
372
372
|
(GetCoinRecords(offset=uint32(10), limit=uint32(0)), []),
|
|
373
373
|
(GetCoinRecords(offset=uint32(0), limit=uint32(1)), [record_8]),
|
|
@@ -379,7 +379,7 @@ get_coin_records_offset_limit_tests: List[Tuple[GetCoinRecords, List[WalletCoinR
|
|
|
379
379
|
(GetCoinRecords(coin_type=uint8(CoinType.CLAWBACK), offset=uint32(5), limit=uint32(1)), []),
|
|
380
380
|
]
|
|
381
381
|
|
|
382
|
-
get_coin_records_wallet_id_tests:
|
|
382
|
+
get_coin_records_wallet_id_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
383
383
|
(
|
|
384
384
|
GetCoinRecords(),
|
|
385
385
|
[record_8, record_9, record_1, record_2, record_3, record_4, record_5, record_6, record_7],
|
|
@@ -389,13 +389,13 @@ get_coin_records_wallet_id_tests: List[Tuple[GetCoinRecords, List[WalletCoinReco
|
|
|
389
389
|
(GetCoinRecords(wallet_id=uint32(2)), [record_9, record_6, record_7]),
|
|
390
390
|
]
|
|
391
391
|
|
|
392
|
-
get_coin_records_wallet_type_tests:
|
|
392
|
+
get_coin_records_wallet_type_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
393
393
|
(GetCoinRecords(wallet_id=uint32(2), wallet_type=uint8(WalletType.STANDARD_WALLET)), [record_9, record_6]),
|
|
394
394
|
(GetCoinRecords(wallet_type=uint8(WalletType.POOLING_WALLET)), [record_7]),
|
|
395
395
|
(GetCoinRecords(wallet_type=uint8(WalletType.NFT)), []),
|
|
396
396
|
]
|
|
397
397
|
|
|
398
|
-
get_coin_records_coin_type_tests:
|
|
398
|
+
get_coin_records_coin_type_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
399
399
|
(GetCoinRecords(wallet_id=uint32(0), coin_type=uint8(CoinType.NORMAL)), [record_1, record_2, record_3, record_4]),
|
|
400
400
|
(GetCoinRecords(wallet_id=uint32(0), coin_type=uint8(CoinType.CLAWBACK)), []),
|
|
401
401
|
(GetCoinRecords(wallet_id=uint32(1), coin_type=uint8(CoinType.NORMAL)), [record_5]),
|
|
@@ -403,7 +403,7 @@ get_coin_records_coin_type_tests: List[Tuple[GetCoinRecords, List[WalletCoinReco
|
|
|
403
403
|
(GetCoinRecords(coin_type=uint8(CoinType.CLAWBACK)), [record_8, record_9]),
|
|
404
404
|
]
|
|
405
405
|
|
|
406
|
-
get_coin_records_coin_id_filter_tests:
|
|
406
|
+
get_coin_records_coin_id_filter_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
407
407
|
(GetCoinRecords(coin_id_filter=HashFilter.include([])), []),
|
|
408
408
|
(GetCoinRecords(coin_id_filter=HashFilter.include([coin_1.name(), coin_4.name()])), [record_1, record_4]),
|
|
409
409
|
(GetCoinRecords(coin_id_filter=HashFilter.include([coin_1.name(), coin_4.puzzle_hash])), [record_1]),
|
|
@@ -416,7 +416,7 @@ get_coin_records_coin_id_filter_tests: List[Tuple[GetCoinRecords, List[WalletCoi
|
|
|
416
416
|
]
|
|
417
417
|
|
|
418
418
|
|
|
419
|
-
get_coin_records_puzzle_hash_filter_tests:
|
|
419
|
+
get_coin_records_puzzle_hash_filter_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
420
420
|
(GetCoinRecords(puzzle_hash_filter=HashFilter.include([])), []),
|
|
421
421
|
(
|
|
422
422
|
GetCoinRecords(puzzle_hash_filter=HashFilter.include([coin_1.puzzle_hash, coin_4.puzzle_hash])),
|
|
@@ -439,7 +439,7 @@ get_coin_records_puzzle_hash_filter_tests: List[Tuple[GetCoinRecords, List[Walle
|
|
|
439
439
|
),
|
|
440
440
|
]
|
|
441
441
|
|
|
442
|
-
get_coin_records_parent_coin_id_filter_tests:
|
|
442
|
+
get_coin_records_parent_coin_id_filter_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
443
443
|
(GetCoinRecords(parent_coin_id_filter=HashFilter.include([])), []),
|
|
444
444
|
(
|
|
445
445
|
GetCoinRecords(parent_coin_id_filter=HashFilter.include([coin_5.name(), coin_4.parent_coin_info])),
|
|
@@ -463,7 +463,7 @@ get_coin_records_parent_coin_id_filter_tests: List[Tuple[GetCoinRecords, List[Wa
|
|
|
463
463
|
),
|
|
464
464
|
]
|
|
465
465
|
|
|
466
|
-
get_coin_records_amount_filter_tests:
|
|
466
|
+
get_coin_records_amount_filter_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
467
467
|
(GetCoinRecords(amount_filter=AmountFilter.include([])), []),
|
|
468
468
|
(
|
|
469
469
|
GetCoinRecords(amount_filter=AmountFilter.include([uint64(12312)])),
|
|
@@ -491,7 +491,7 @@ get_coin_records_amount_filter_tests: List[Tuple[GetCoinRecords, List[WalletCoin
|
|
|
491
491
|
),
|
|
492
492
|
]
|
|
493
493
|
|
|
494
|
-
get_coin_records_amount_range_tests:
|
|
494
|
+
get_coin_records_amount_range_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
495
495
|
(GetCoinRecords(amount_range=UInt64Range(start=uint64(1000000))), []),
|
|
496
496
|
(GetCoinRecords(amount_range=UInt64Range(stop=uint64(0))), []),
|
|
497
497
|
(
|
|
@@ -504,7 +504,7 @@ get_coin_records_amount_range_tests: List[Tuple[GetCoinRecords, List[WalletCoinR
|
|
|
504
504
|
(GetCoinRecords(amount_range=UInt64Range(start=uint64(5), stop=uint64(12311))), [record_2]),
|
|
505
505
|
]
|
|
506
506
|
|
|
507
|
-
get_coin_records_confirmed_range_tests:
|
|
507
|
+
get_coin_records_confirmed_range_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
508
508
|
(GetCoinRecords(confirmed_range=UInt32Range(start=uint32(20))), []),
|
|
509
509
|
(GetCoinRecords(confirmed_range=UInt32Range(stop=uint32(0))), []),
|
|
510
510
|
(GetCoinRecords(confirmed_range=UInt32Range(start=uint32(2), stop=uint32(1))), []),
|
|
@@ -521,7 +521,7 @@ get_coin_records_confirmed_range_tests: List[Tuple[GetCoinRecords, List[WalletCo
|
|
|
521
521
|
),
|
|
522
522
|
]
|
|
523
523
|
|
|
524
|
-
get_coin_records_spent_range_tests:
|
|
524
|
+
get_coin_records_spent_range_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
525
525
|
(GetCoinRecords(spent_range=UInt32Range(start=uint32(20))), []),
|
|
526
526
|
(GetCoinRecords(spent_range=UInt32Range(stop=uint32(0))), [record_8, record_1, record_2, record_5, record_7]),
|
|
527
527
|
(GetCoinRecords(spent_range=UInt32Range(start=uint32(2), stop=uint32(1))), []),
|
|
@@ -530,7 +530,7 @@ get_coin_records_spent_range_tests: List[Tuple[GetCoinRecords, List[WalletCoinRe
|
|
|
530
530
|
(GetCoinRecords(spent_range=UInt32Range(start=uint32(5), stop=uint32(15))), [record_3, record_4, record_6]),
|
|
531
531
|
]
|
|
532
532
|
|
|
533
|
-
get_coin_records_order_tests:
|
|
533
|
+
get_coin_records_order_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
534
534
|
(
|
|
535
535
|
GetCoinRecords(wallet_id=uint32(0), order=uint8(CoinRecordOrder.spent_height)),
|
|
536
536
|
[record_1, record_2, record_3, record_4],
|
|
@@ -544,7 +544,7 @@ get_coin_records_order_tests: List[Tuple[GetCoinRecords, List[WalletCoinRecord]]
|
|
|
544
544
|
),
|
|
545
545
|
]
|
|
546
546
|
|
|
547
|
-
get_coin_records_reverse_tests:
|
|
547
|
+
get_coin_records_reverse_tests: list[tuple[GetCoinRecords, list[WalletCoinRecord]]] = [
|
|
548
548
|
(
|
|
549
549
|
GetCoinRecords(wallet_id=uint32(0), order=uint8(CoinRecordOrder.spent_height), reverse=True),
|
|
550
550
|
[record_4, record_3, record_1, record_2],
|
|
@@ -567,7 +567,7 @@ get_coin_records_reverse_tests: List[Tuple[GetCoinRecords, List[WalletCoinRecord
|
|
|
567
567
|
),
|
|
568
568
|
]
|
|
569
569
|
|
|
570
|
-
get_coin_records_include_total_count_tests:
|
|
570
|
+
get_coin_records_include_total_count_tests: list[tuple[GetCoinRecords, int, list[WalletCoinRecord]]] = [
|
|
571
571
|
(GetCoinRecords(wallet_id=uint32(0), include_total_count=True), 4, [record_1, record_2, record_3, record_4]),
|
|
572
572
|
(
|
|
573
573
|
GetCoinRecords(wallet_id=uint32(0), offset=uint32(1), limit=uint32(2), include_total_count=True),
|
|
@@ -579,7 +579,7 @@ get_coin_records_include_total_count_tests: List[Tuple[GetCoinRecords, int, List
|
|
|
579
579
|
(GetCoinRecords(wallet_type=uint8(WalletType.POOLING_WALLET), include_total_count=True), 1, [record_7]),
|
|
580
580
|
]
|
|
581
581
|
|
|
582
|
-
get_coin_records_mixed_tests:
|
|
582
|
+
get_coin_records_mixed_tests: list[tuple[GetCoinRecords, int, list[WalletCoinRecord]]] = [
|
|
583
583
|
(
|
|
584
584
|
GetCoinRecords(
|
|
585
585
|
offset=uint32(2),
|
|
@@ -632,7 +632,7 @@ get_coin_records_mixed_tests: List[Tuple[GetCoinRecords, int, List[WalletCoinRec
|
|
|
632
632
|
|
|
633
633
|
|
|
634
634
|
async def run_get_coin_records_test(
|
|
635
|
-
request: GetCoinRecords, total_count: Optional[int], coin_records:
|
|
635
|
+
request: GetCoinRecords, total_count: Optional[int], coin_records: list[WalletCoinRecord]
|
|
636
636
|
) -> None:
|
|
637
637
|
async with DBConnection(1) as db_wrapper:
|
|
638
638
|
store = await WalletCoinStore.create(db_wrapper)
|
|
@@ -665,38 +665,38 @@ async def run_get_coin_records_test(
|
|
|
665
665
|
|
|
666
666
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_offset_limit_tests])
|
|
667
667
|
@pytest.mark.anyio
|
|
668
|
-
async def test_get_coin_records_offset_limit(coins_request: GetCoinRecords, records:
|
|
668
|
+
async def test_get_coin_records_offset_limit(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
669
669
|
await run_get_coin_records_test(coins_request, None, records)
|
|
670
670
|
|
|
671
671
|
|
|
672
672
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_wallet_id_tests])
|
|
673
673
|
@pytest.mark.anyio
|
|
674
|
-
async def test_get_coin_records_wallet_id(coins_request: GetCoinRecords, records:
|
|
674
|
+
async def test_get_coin_records_wallet_id(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
675
675
|
await run_get_coin_records_test(coins_request, None, records)
|
|
676
676
|
|
|
677
677
|
|
|
678
678
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_wallet_type_tests])
|
|
679
679
|
@pytest.mark.anyio
|
|
680
|
-
async def test_get_coin_records_wallet_type(coins_request: GetCoinRecords, records:
|
|
680
|
+
async def test_get_coin_records_wallet_type(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
681
681
|
await run_get_coin_records_test(coins_request, None, records)
|
|
682
682
|
|
|
683
683
|
|
|
684
684
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_coin_type_tests])
|
|
685
685
|
@pytest.mark.anyio
|
|
686
|
-
async def test_get_coin_records_coin_type(coins_request: GetCoinRecords, records:
|
|
686
|
+
async def test_get_coin_records_coin_type(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
687
687
|
await run_get_coin_records_test(coins_request, None, records)
|
|
688
688
|
|
|
689
689
|
|
|
690
690
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_coin_id_filter_tests])
|
|
691
691
|
@pytest.mark.anyio
|
|
692
|
-
async def test_get_coin_records_coin_id_filter(coins_request: GetCoinRecords, records:
|
|
692
|
+
async def test_get_coin_records_coin_id_filter(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
693
693
|
await run_get_coin_records_test(coins_request, None, records)
|
|
694
694
|
|
|
695
695
|
|
|
696
696
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_puzzle_hash_filter_tests])
|
|
697
697
|
@pytest.mark.anyio
|
|
698
698
|
async def test_get_coin_records_puzzle_hash_filter(
|
|
699
|
-
coins_request: GetCoinRecords, records:
|
|
699
|
+
coins_request: GetCoinRecords, records: list[WalletCoinRecord]
|
|
700
700
|
) -> None:
|
|
701
701
|
await run_get_coin_records_test(coins_request, None, records)
|
|
702
702
|
|
|
@@ -704,51 +704,51 @@ async def test_get_coin_records_puzzle_hash_filter(
|
|
|
704
704
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_parent_coin_id_filter_tests])
|
|
705
705
|
@pytest.mark.anyio
|
|
706
706
|
async def test_get_coin_records_parent_coin_id_filter(
|
|
707
|
-
coins_request: GetCoinRecords, records:
|
|
707
|
+
coins_request: GetCoinRecords, records: list[WalletCoinRecord]
|
|
708
708
|
) -> None:
|
|
709
709
|
await run_get_coin_records_test(coins_request, None, records)
|
|
710
710
|
|
|
711
711
|
|
|
712
712
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_amount_filter_tests])
|
|
713
713
|
@pytest.mark.anyio
|
|
714
|
-
async def test_get_coin_records_amount_filter(coins_request: GetCoinRecords, records:
|
|
714
|
+
async def test_get_coin_records_amount_filter(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
715
715
|
await run_get_coin_records_test(coins_request, None, records)
|
|
716
716
|
|
|
717
717
|
|
|
718
718
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_confirmed_range_tests])
|
|
719
719
|
@pytest.mark.anyio
|
|
720
|
-
async def test_get_coin_records_confirmed_range(coins_request: GetCoinRecords, records:
|
|
720
|
+
async def test_get_coin_records_confirmed_range(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
721
721
|
await run_get_coin_records_test(coins_request, None, records)
|
|
722
722
|
|
|
723
723
|
|
|
724
724
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_spent_range_tests])
|
|
725
725
|
@pytest.mark.anyio
|
|
726
|
-
async def test_get_coin_records_spent_range(coins_request: GetCoinRecords, records:
|
|
726
|
+
async def test_get_coin_records_spent_range(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
727
727
|
await run_get_coin_records_test(coins_request, None, records)
|
|
728
728
|
|
|
729
729
|
|
|
730
730
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_amount_range_tests])
|
|
731
731
|
@pytest.mark.anyio
|
|
732
|
-
async def test_get_coin_records_amount_range(coins_request: GetCoinRecords, records:
|
|
732
|
+
async def test_get_coin_records_amount_range(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
733
733
|
await run_get_coin_records_test(coins_request, None, records)
|
|
734
734
|
|
|
735
735
|
|
|
736
736
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_order_tests])
|
|
737
737
|
@pytest.mark.anyio
|
|
738
|
-
async def test_get_coin_records_order(coins_request: GetCoinRecords, records:
|
|
738
|
+
async def test_get_coin_records_order(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
739
739
|
await run_get_coin_records_test(coins_request, None, records)
|
|
740
740
|
|
|
741
741
|
|
|
742
742
|
@pytest.mark.parametrize("coins_request, records", [*get_coin_records_reverse_tests])
|
|
743
743
|
@pytest.mark.anyio
|
|
744
|
-
async def test_get_coin_records_reverse(coins_request: GetCoinRecords, records:
|
|
744
|
+
async def test_get_coin_records_reverse(coins_request: GetCoinRecords, records: list[WalletCoinRecord]) -> None:
|
|
745
745
|
await run_get_coin_records_test(coins_request, None, records)
|
|
746
746
|
|
|
747
747
|
|
|
748
748
|
@pytest.mark.parametrize("coins_request, total_count, records", [*get_coin_records_include_total_count_tests])
|
|
749
749
|
@pytest.mark.anyio
|
|
750
750
|
async def test_get_coin_records_total_count(
|
|
751
|
-
coins_request: GetCoinRecords, total_count: int, records:
|
|
751
|
+
coins_request: GetCoinRecords, total_count: int, records: list[WalletCoinRecord]
|
|
752
752
|
) -> None:
|
|
753
753
|
await run_get_coin_records_test(coins_request, total_count, records)
|
|
754
754
|
|
|
@@ -756,7 +756,7 @@ async def test_get_coin_records_total_count(
|
|
|
756
756
|
@pytest.mark.parametrize("coins_request, total_count, records", [*get_coin_records_mixed_tests])
|
|
757
757
|
@pytest.mark.anyio
|
|
758
758
|
async def test_get_coin_records_mixed(
|
|
759
|
-
coins_request: GetCoinRecords, total_count: int, records:
|
|
759
|
+
coins_request: GetCoinRecords, total_count: int, records: list[WalletCoinRecord]
|
|
760
760
|
) -> None:
|
|
761
761
|
await run_get_coin_records_test(coins_request, total_count, records)
|
|
762
762
|
|
|
@@ -787,7 +787,7 @@ async def test_get_coin_records_total_count_cache() -> None:
|
|
|
787
787
|
assert (await store.get_coin_records(include_total_count=True)).total_count == 3
|
|
788
788
|
# Make sure the total count increases for the same query when rolling back
|
|
789
789
|
assert (await store.get_coin_records(include_total_count=True)).total_count == 3
|
|
790
|
-
await store.rollback_to_block(0)
|
|
790
|
+
await store.rollback_to_block(0)
|
|
791
791
|
assert (await store.get_coin_records(include_total_count=True)).total_count == 0
|
|
792
792
|
|
|
793
793
|
|