chia-blockchain 2.5.4rc2__py3-none-any.whl → 2.5.5rc2__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 +421 -69
- chia/_tests/core/mempool/test_mempool_performance.py +3 -2
- chia/_tests/core/mempool/test_singleton_fast_forward.py +60 -131
- 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 +143 -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 +26 -40
- 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.5rc2.dist-info}/METADATA +7 -7
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.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.5rc2.dist-info}/LICENSE +0 -0
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/entry_points.txt +0 -0
chia/_tests/util/benchmarks.py
CHANGED
|
@@ -10,9 +10,11 @@ from chia_rs import (
|
|
|
10
10
|
Foliage,
|
|
11
11
|
FoliageBlockData,
|
|
12
12
|
FoliageTransactionBlock,
|
|
13
|
+
FullBlock,
|
|
13
14
|
G1Element,
|
|
14
15
|
G2Element,
|
|
15
16
|
PoolTarget,
|
|
17
|
+
ProofOfSpace,
|
|
16
18
|
RewardChainBlock,
|
|
17
19
|
TransactionsInfo,
|
|
18
20
|
VDFInfo,
|
|
@@ -23,9 +25,7 @@ from chia_rs.sized_ints import uint8, uint32, uint64, uint128
|
|
|
23
25
|
|
|
24
26
|
from chia.consensus.coinbase import create_farmer_coin, create_pool_coin
|
|
25
27
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
26
|
-
from chia.types.blockchain_format.proof_of_space import ProofOfSpace
|
|
27
28
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
28
|
-
from chia.types.full_block import FullBlock
|
|
29
29
|
|
|
30
30
|
# farmer puzzle hash
|
|
31
31
|
ph = bytes32(b"a" * 32)
|
chia/_tests/util/blockchain.py
CHANGED
|
@@ -2,18 +2,19 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import contextlib
|
|
4
4
|
import os
|
|
5
|
-
import pickle
|
|
5
|
+
import pickle # noqa: S403 # TODO: use explicit serialization instead of pickle
|
|
6
6
|
from collections.abc import AsyncIterator
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from typing import Optional
|
|
9
9
|
|
|
10
|
-
from chia_rs import ConsensusConstants
|
|
10
|
+
from chia_rs import ConsensusConstants, FullBlock
|
|
11
|
+
from chia_rs.sized_ints import uint64
|
|
11
12
|
|
|
12
13
|
from chia.consensus.blockchain import Blockchain
|
|
14
|
+
from chia.full_node.block_height_map import BlockHeightMap
|
|
13
15
|
from chia.full_node.block_store import BlockStore
|
|
14
16
|
from chia.full_node.coin_store import CoinStore
|
|
15
17
|
from chia.simulator.block_tools import BlockTools
|
|
16
|
-
from chia.types.full_block import FullBlock
|
|
17
18
|
from chia.util.db_wrapper import DBWrapper2, generate_in_memory_db_uri
|
|
18
19
|
from chia.util.default_root import DEFAULT_ROOT_PATH
|
|
19
20
|
|
|
@@ -26,7 +27,9 @@ async def create_blockchain(
|
|
|
26
27
|
async with DBWrapper2.managed(database=db_uri, uri=True, reader_count=1, db_version=db_version) as wrapper:
|
|
27
28
|
coin_store = await CoinStore.create(wrapper)
|
|
28
29
|
store = await BlockStore.create(wrapper)
|
|
29
|
-
|
|
30
|
+
path = Path(".")
|
|
31
|
+
height_map = await BlockHeightMap.create(path, wrapper)
|
|
32
|
+
bc1 = await Blockchain.create(coin_store, store, height_map, constants, 3, single_threaded=True, log_coins=True)
|
|
30
33
|
try:
|
|
31
34
|
assert bc1.get_peak() is None
|
|
32
35
|
yield bc1, wrapper
|
|
@@ -67,12 +70,14 @@ def persistent_blocks(
|
|
|
67
70
|
print(f"File found at: {file_path}")
|
|
68
71
|
try:
|
|
69
72
|
bytes_list = file_path.read_bytes()
|
|
70
|
-
|
|
73
|
+
# TODO: use explicit serialization instead of pickle
|
|
74
|
+
block_bytes_list: list[bytes] = pickle.loads(bytes_list) # noqa: S301
|
|
71
75
|
blocks: list[FullBlock] = []
|
|
72
76
|
for block_bytes in block_bytes_list:
|
|
73
77
|
blocks.append(FullBlock.from_bytes_unchecked(block_bytes))
|
|
74
78
|
if len(blocks) == num_of_blocks + len(block_list_input):
|
|
75
79
|
print(f"\n loaded {file_path} with {len(blocks)} blocks")
|
|
80
|
+
|
|
76
81
|
return blocks
|
|
77
82
|
except EOFError:
|
|
78
83
|
print("\n error reading db file")
|
|
@@ -126,6 +131,7 @@ def new_test_db(
|
|
|
126
131
|
normalized_to_identity_cc_ip=normalized_to_identity_cc_ip,
|
|
127
132
|
dummy_block_references=dummy_block_references,
|
|
128
133
|
include_transactions=include_transactions,
|
|
134
|
+
genesis_timestamp=uint64(1234567890),
|
|
129
135
|
)
|
|
130
136
|
block_bytes_list: list[bytes] = []
|
|
131
137
|
for block in blocks:
|
|
@@ -3,14 +3,11 @@ from __future__ import annotations
|
|
|
3
3
|
import logging
|
|
4
4
|
from typing import TYPE_CHECKING, ClassVar, Optional, cast
|
|
5
5
|
|
|
6
|
-
from chia_rs import SubEpochChallengeSegment, SubEpochSegments
|
|
6
|
+
from chia_rs import BlockRecord, HeaderBlock, SubEpochChallengeSegment, SubEpochSegments, SubEpochSummary
|
|
7
7
|
from chia_rs.sized_bytes import bytes32
|
|
8
8
|
from chia_rs.sized_ints import uint32
|
|
9
9
|
|
|
10
|
-
from chia.consensus.block_record import BlockRecord
|
|
11
|
-
from chia.types.blockchain_format.sub_epoch_summary import SubEpochSummary
|
|
12
10
|
from chia.types.blockchain_format.vdf import VDFInfo
|
|
13
|
-
from chia.types.header_block import HeaderBlock
|
|
14
11
|
|
|
15
12
|
|
|
16
13
|
# implements BlockchainInterface
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from chia.consensus.coin_store_protocol import CoinStoreProtocol
|
|
4
|
+
from chia.types.coin_record import CoinRecord
|
|
5
|
+
from chia.util.db_wrapper import DBWrapper2
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
async def add_coin_records_to_db(coin_store: CoinStoreProtocol, records: list[CoinRecord]) -> None:
|
|
9
|
+
if len(records) == 0:
|
|
10
|
+
return
|
|
11
|
+
db_wrapper = getattr(coin_store, "db_wrapper", None)
|
|
12
|
+
assert isinstance(db_wrapper, DBWrapper2), "CoinStore must use DBWrapper2"
|
|
13
|
+
async with db_wrapper.writer_maybe_transaction() as conn:
|
|
14
|
+
await conn.executemany(
|
|
15
|
+
"INSERT INTO coin_record VALUES(?, ?, ?, ?, ?, ?, ?, ?)",
|
|
16
|
+
(
|
|
17
|
+
(
|
|
18
|
+
record.coin.name(),
|
|
19
|
+
record.confirmed_block_index,
|
|
20
|
+
record.spent_block_index,
|
|
21
|
+
int(record.coinbase),
|
|
22
|
+
record.coin.puzzle_hash,
|
|
23
|
+
record.coin.parent_coin_info,
|
|
24
|
+
record.coin.amount.stream_to_bytes(),
|
|
25
|
+
record.timestamp,
|
|
26
|
+
)
|
|
27
|
+
for record in records
|
|
28
|
+
),
|
|
29
|
+
)
|
chia/_tests/util/constants.py
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from chia.simulator.block_tools import test_constants
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
test_constants = DEFAULT_CONSTANTS.replace(
|
|
8
|
-
MIN_PLOT_SIZE=uint8(18),
|
|
9
|
-
MIN_BLOCKS_PER_CHALLENGE_BLOCK=uint8(12),
|
|
10
|
-
DIFFICULTY_STARTING=uint64(2**9),
|
|
11
|
-
DISCRIMINANT_SIZE_BITS=uint16(16),
|
|
12
|
-
SUB_EPOCH_BLOCKS=uint32(170),
|
|
13
|
-
WEIGHT_PROOF_THRESHOLD=uint8(2),
|
|
14
|
-
WEIGHT_PROOF_RECENT_BLOCKS=uint32(380),
|
|
15
|
-
DIFFICULTY_CONSTANT_FACTOR=uint128(33554432),
|
|
16
|
-
NUM_SPS_SUB_SLOT=uint32(16), # Must be a power of 2
|
|
17
|
-
MAX_SUB_SLOT_BLOCKS=uint32(50),
|
|
18
|
-
EPOCH_BLOCKS=uint32(340),
|
|
19
|
-
SUB_SLOT_ITERS_STARTING=uint64(2**10), # Must be a multiple of 64
|
|
20
|
-
NUMBER_ZERO_BITS_PLOT_FILTER=uint8(1), # H(plot signature of the challenge) must start with these many zeroes
|
|
21
|
-
)
|
|
5
|
+
__all__ = ["test_constants"]
|
chia/_tests/util/full_sync.py
CHANGED
|
@@ -12,24 +12,24 @@ from typing import Callable, Optional, cast
|
|
|
12
12
|
|
|
13
13
|
import aiosqlite
|
|
14
14
|
import zstd
|
|
15
|
+
from chia_rs import FullBlock
|
|
15
16
|
from chia_rs.sized_bytes import bytes32
|
|
16
17
|
from chia_rs.sized_ints import uint16
|
|
17
18
|
|
|
18
19
|
from chia._tests.util.constants import test_constants as TEST_CONSTANTS
|
|
19
20
|
from chia.cmds.init_funcs import chia_init
|
|
21
|
+
from chia.consensus.augmented_chain import AugmentedBlockchain
|
|
20
22
|
from chia.consensus.block_body_validation import ForkInfo
|
|
21
23
|
from chia.consensus.constants import replace_str_to_bytes
|
|
22
24
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
23
25
|
from chia.consensus.difficulty_adjustment import get_next_sub_slot_iters_and_difficulty
|
|
24
26
|
from chia.full_node.full_node import FullNode
|
|
25
|
-
from chia.
|
|
27
|
+
from chia.protocols.outbound_message import Message, NodeType
|
|
26
28
|
from chia.server.server import ChiaServer
|
|
27
29
|
from chia.server.ws_connection import ConnectionCallback, WSChiaConnection
|
|
28
30
|
from chia.simulator.block_tools import make_unfinished_block
|
|
29
|
-
from chia.types.full_block import FullBlock
|
|
30
31
|
from chia.types.peer_info import PeerInfo
|
|
31
32
|
from chia.types.validation_state import ValidationState
|
|
32
|
-
from chia.util.augmented_chain import AugmentedBlockchain
|
|
33
33
|
from chia.util.config import load_config
|
|
34
34
|
|
|
35
35
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from chia_rs import ConsensusConstants
|
|
3
|
+
from chia_rs import ConsensusConstants, FullBlock
|
|
4
4
|
from chia_rs.sized_bytes import bytes32
|
|
5
5
|
from chia_rs.sized_ints import uint32
|
|
6
6
|
|
|
7
7
|
from chia._tests.util.get_name_puzzle_conditions import get_name_puzzle_conditions
|
|
8
8
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
9
|
+
from chia.consensus.generator_tools import tx_removals_and_additions
|
|
9
10
|
from chia.types.blockchain_format.coin import Coin
|
|
10
|
-
from chia.types.full_block import FullBlock
|
|
11
11
|
from chia.types.generator_types import BlockGenerator
|
|
12
|
-
from chia.util.generator_tools import tx_removals_and_additions
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
def run_and_get_removals_and_additions(
|
chia/_tests/util/key_tool.py
CHANGED
|
@@ -2,12 +2,11 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from dataclasses import dataclass, field
|
|
4
4
|
|
|
5
|
-
from chia_rs import AugSchemeMPL, G1Element, G2Element, PrivateKey
|
|
5
|
+
from chia_rs import AugSchemeMPL, CoinSpend, G1Element, G2Element, PrivateKey
|
|
6
6
|
|
|
7
7
|
from chia._tests.core.make_block_generator import GROUP_ORDER, int_to_public_key
|
|
8
|
+
from chia.consensus.condition_tools import conditions_dict_for_solution, pkm_pairs_for_conditions_dict
|
|
8
9
|
from chia.simulator.block_tools import test_constants
|
|
9
|
-
from chia.types.coin_spend import CoinSpend
|
|
10
|
-
from chia.util.condition_tools import conditions_dict_for_solution, pkm_pairs_for_conditions_dict
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
@dataclass
|
chia/_tests/util/misc.py
CHANGED
|
@@ -31,6 +31,7 @@ from aiohttp import web
|
|
|
31
31
|
from chia_rs import Coin
|
|
32
32
|
from chia_rs.sized_bytes import bytes32
|
|
33
33
|
from chia_rs.sized_ints import uint16, uint32, uint64
|
|
34
|
+
from typing_extensions import Self
|
|
34
35
|
|
|
35
36
|
import chia
|
|
36
37
|
import chia._tests
|
|
@@ -38,9 +39,9 @@ from chia._tests import ether
|
|
|
38
39
|
from chia._tests.core.data_layer.util import ChiaRoot
|
|
39
40
|
from chia._tests.util.time_out_assert import DataTypeProtocol, caller_file_and_line
|
|
40
41
|
from chia.full_node.mempool import Mempool
|
|
42
|
+
from chia.protocols.outbound_message import Message
|
|
41
43
|
from chia.protocols.protocol_message_types import ProtocolMessageTypes
|
|
42
44
|
from chia.server.api_protocol import ApiMetadata, ApiProtocol
|
|
43
|
-
from chia.server.outbound_message import Message
|
|
44
45
|
from chia.types.condition_opcodes import ConditionOpcode
|
|
45
46
|
from chia.util.hash import std_hash
|
|
46
47
|
from chia.util.network import WebServer
|
|
@@ -49,10 +50,10 @@ from chia.wallet.wallet_node import WalletNode
|
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
class GcMode(enum.Enum):
|
|
52
|
-
nothing = enum.auto
|
|
53
|
-
precollect = enum.auto
|
|
54
|
-
disable = enum.auto
|
|
55
|
-
enable = enum.auto
|
|
53
|
+
nothing = enum.auto()
|
|
54
|
+
precollect = enum.auto()
|
|
55
|
+
disable = enum.auto()
|
|
56
|
+
enable = enum.auto()
|
|
56
57
|
|
|
57
58
|
|
|
58
59
|
@contextlib.contextmanager
|
|
@@ -477,24 +478,25 @@ def create_logger(file: TextIO = sys.stdout) -> logging.Logger:
|
|
|
477
478
|
|
|
478
479
|
|
|
479
480
|
def invariant_check_mempool(mempool: Mempool) -> None:
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
481
|
+
cursor = mempool._db_conn.execute("SELECT COALESCE(SUM(cost), 0), COALESCE(SUM(fee), 0) FROM tx")
|
|
482
|
+
val = cursor.fetchone()
|
|
483
|
+
assert (mempool._total_cost, mempool._total_fee) == val
|
|
484
|
+
|
|
485
|
+
cursor = mempool._db_conn.execute("SELECT coin_id, tx FROM spends")
|
|
486
|
+
for coin_id, item_id in cursor.fetchall():
|
|
487
|
+
item = mempool._items.get(item_id)
|
|
488
|
+
assert item is not None
|
|
489
|
+
# item is expected to contain a spend of coin_id, but it might be a
|
|
490
|
+
# fast-forward spend, in which case the dictionary won't help us,
|
|
491
|
+
# but we'll have to do a linear search
|
|
492
|
+
if coin_id in item.bundle_coin_spends:
|
|
493
|
+
assert item.bundle_coin_spends[coin_id].coin_spend.coin.name() == coin_id
|
|
494
|
+
continue
|
|
495
|
+
|
|
496
|
+
assert any(
|
|
497
|
+
i.latest_singleton_lineage is not None and i.latest_singleton_lineage.coin_id == coin_id
|
|
498
|
+
for i in item.bundle_coin_spends.values()
|
|
499
|
+
)
|
|
498
500
|
|
|
499
501
|
|
|
500
502
|
async def wallet_height_at_least(wallet_node: WalletNode, h: uint32) -> bool:
|
|
@@ -612,37 +614,37 @@ T_ComparableEnum = TypeVar("T_ComparableEnum", bound="ComparableEnum")
|
|
|
612
614
|
|
|
613
615
|
|
|
614
616
|
class ComparableEnum(Enum):
|
|
615
|
-
def __lt__(self
|
|
617
|
+
def __lt__(self, other: Self) -> object:
|
|
616
618
|
if self.__class__ is not other.__class__:
|
|
617
619
|
return NotImplemented
|
|
618
620
|
|
|
619
621
|
return self.value.__lt__(other.value)
|
|
620
622
|
|
|
621
|
-
def __le__(self
|
|
623
|
+
def __le__(self, other: Self) -> object:
|
|
622
624
|
if self.__class__ is not other.__class__:
|
|
623
625
|
return NotImplemented
|
|
624
626
|
|
|
625
627
|
return self.value.__le__(other.value)
|
|
626
628
|
|
|
627
|
-
def __eq__(self
|
|
629
|
+
def __eq__(self, other: object) -> bool:
|
|
628
630
|
if self.__class__ is not other.__class__:
|
|
629
631
|
return False
|
|
630
632
|
|
|
631
|
-
return cast(bool, self.value.__eq__(cast(
|
|
633
|
+
return cast(bool, self.value.__eq__(cast(Self, other).value))
|
|
632
634
|
|
|
633
|
-
def __ne__(self
|
|
635
|
+
def __ne__(self, other: object) -> bool:
|
|
634
636
|
if self.__class__ is not other.__class__:
|
|
635
637
|
return True
|
|
636
638
|
|
|
637
|
-
return cast(bool, self.value.__ne__(cast(
|
|
639
|
+
return cast(bool, self.value.__ne__(cast(Self, other).value))
|
|
638
640
|
|
|
639
|
-
def __gt__(self
|
|
641
|
+
def __gt__(self, other: Self) -> object:
|
|
640
642
|
if self.__class__ is not other.__class__:
|
|
641
643
|
return NotImplemented
|
|
642
644
|
|
|
643
645
|
return self.value.__gt__(other.value)
|
|
644
646
|
|
|
645
|
-
def __ge__(self
|
|
647
|
+
def __ge__(self, other: Self) -> object:
|
|
646
648
|
if self.__class__ is not other.__class__:
|
|
647
649
|
return NotImplemented
|
|
648
650
|
|
|
@@ -1,18 +1,32 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from chia_rs import (
|
|
4
|
+
ChallengeChainSubSlot,
|
|
5
|
+
CoinSpend,
|
|
6
|
+
CoinState,
|
|
7
|
+
EndOfSubSlotBundle,
|
|
4
8
|
Foliage,
|
|
5
9
|
FoliageBlockData,
|
|
6
10
|
FoliageTransactionBlock,
|
|
11
|
+
FullBlock,
|
|
7
12
|
G1Element,
|
|
8
13
|
G2Element,
|
|
14
|
+
HeaderBlock,
|
|
15
|
+
InfusedChallengeChainSubSlot,
|
|
9
16
|
PoolTarget,
|
|
17
|
+
ProofOfSpace,
|
|
18
|
+
RespondToPhUpdates,
|
|
10
19
|
RewardChainBlock,
|
|
11
20
|
RewardChainBlockUnfinished,
|
|
21
|
+
RewardChainSubSlot,
|
|
22
|
+
SpendBundle,
|
|
12
23
|
SubEpochChallengeSegment,
|
|
13
24
|
SubEpochData,
|
|
25
|
+
SubEpochSummary,
|
|
14
26
|
SubSlotData,
|
|
27
|
+
SubSlotProofs,
|
|
15
28
|
TransactionsInfo,
|
|
29
|
+
UnfinishedBlock,
|
|
16
30
|
)
|
|
17
31
|
from chia_rs.sized_bytes import bytes32
|
|
18
32
|
from chia_rs.sized_ints import int16, uint8, uint16, uint32, uint64, uint128
|
|
@@ -29,23 +43,9 @@ from chia.protocols import (
|
|
|
29
43
|
from chia.protocols.shared_protocol import Error
|
|
30
44
|
from chia.types.blockchain_format.classgroup import ClassgroupElement
|
|
31
45
|
from chia.types.blockchain_format.coin import Coin
|
|
32
|
-
from chia.types.blockchain_format.proof_of_space import ProofOfSpace
|
|
33
46
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
34
|
-
from chia.types.blockchain_format.slots import (
|
|
35
|
-
ChallengeChainSubSlot,
|
|
36
|
-
InfusedChallengeChainSubSlot,
|
|
37
|
-
RewardChainSubSlot,
|
|
38
|
-
SubSlotProofs,
|
|
39
|
-
)
|
|
40
|
-
from chia.types.blockchain_format.sub_epoch_summary import SubEpochSummary
|
|
41
47
|
from chia.types.blockchain_format.vdf import VDFInfo, VDFProof
|
|
42
|
-
from chia.types.coin_spend import CoinSpend
|
|
43
|
-
from chia.types.end_of_slot_bundle import EndOfSubSlotBundle
|
|
44
|
-
from chia.types.full_block import FullBlock
|
|
45
|
-
from chia.types.header_block import HeaderBlock
|
|
46
48
|
from chia.types.peer_info import TimestampedPeerInfo
|
|
47
|
-
from chia.types.spend_bundle import SpendBundle
|
|
48
|
-
from chia.types.unfinished_block import UnfinishedBlock
|
|
49
49
|
from chia.types.weight_proof import RecentChainData, WeightProof
|
|
50
50
|
from chia.util.errors import Err
|
|
51
51
|
|
|
@@ -63,6 +63,7 @@ new_signage_point = farmer_protocol.NewSignagePoint(
|
|
|
63
63
|
uint64(8265724497259558930),
|
|
64
64
|
uint8(194),
|
|
65
65
|
uint32(1),
|
|
66
|
+
uint32(0),
|
|
66
67
|
)
|
|
67
68
|
|
|
68
69
|
proof_of_space = ProofOfSpace(
|
|
@@ -641,7 +642,7 @@ respond_header_blocks = wallet_protocol.RespondHeaderBlocks(
|
|
|
641
642
|
[header_block],
|
|
642
643
|
)
|
|
643
644
|
|
|
644
|
-
coin_state =
|
|
645
|
+
coin_state = CoinState(
|
|
645
646
|
coin_1,
|
|
646
647
|
uint32(2287030048),
|
|
647
648
|
uint32(3361305811),
|
|
@@ -652,7 +653,7 @@ register_for_ph_updates = wallet_protocol.RegisterForPhUpdates(
|
|
|
652
653
|
uint32(874269130),
|
|
653
654
|
)
|
|
654
655
|
|
|
655
|
-
respond_to_ph_updates =
|
|
656
|
+
respond_to_ph_updates = RespondToPhUpdates(
|
|
656
657
|
[bytes32(bytes.fromhex("1be3bdc54b84901554e4e843966cfa3be3380054c968bebc41cc6be4aa65322f"))],
|
|
657
658
|
uint32(3664709982),
|
|
658
659
|
[coin_state],
|
|
@@ -794,7 +795,8 @@ new_signage_point_harvester = harvester_protocol.NewSignagePointHarvester(
|
|
|
794
795
|
uint8(148),
|
|
795
796
|
bytes32(bytes.fromhex("b78c9fca155e9742df835cbe84bb7e518bee70d78b6be6e39996c0a02e0cfe4c")),
|
|
796
797
|
[pool_difficulty],
|
|
797
|
-
|
|
798
|
+
uint32(0),
|
|
799
|
+
uint32(0),
|
|
798
800
|
)
|
|
799
801
|
|
|
800
802
|
new_proof_of_space = harvester_protocol.NewProofOfSpace(
|
|
Binary file
|
|
@@ -12,6 +12,7 @@ new_signage_point_json: dict[str, Any] = {
|
|
|
12
12
|
"sub_slot_iters": 8265724497259558930,
|
|
13
13
|
"signage_point_index": 194,
|
|
14
14
|
"peak_height": 1,
|
|
15
|
+
"last_tx_height": 0,
|
|
15
16
|
"sp_source_data": None,
|
|
16
17
|
}
|
|
17
18
|
|
|
@@ -2159,7 +2160,8 @@ new_signage_point_harvester_json: dict[str, Any] = {
|
|
|
2159
2160
|
"pool_contract_puzzle_hash": "0xc9423123ea65e6923e973b95531b4874570dae942cb757a2daec4a6971753886",
|
|
2160
2161
|
}
|
|
2161
2162
|
],
|
|
2162
|
-
"
|
|
2163
|
+
"peak_height": 0,
|
|
2164
|
+
"last_tx_height": 0,
|
|
2163
2165
|
}
|
|
2164
2166
|
|
|
2165
2167
|
new_proof_of_space_json: dict[str, Any] = {
|
chia/_tests/util/run_block.py
CHANGED
|
@@ -10,7 +10,7 @@ from chia_rs import Coin, ConsensusConstants
|
|
|
10
10
|
from chia_rs.sized_bytes import bytes32
|
|
11
11
|
from chia_rs.sized_ints import uint32, uint64
|
|
12
12
|
|
|
13
|
-
from chia.types.blockchain_format.program import Program
|
|
13
|
+
from chia.types.blockchain_format.program import Program, run_with_cost
|
|
14
14
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
15
15
|
from chia.types.condition_opcodes import ConditionOpcode
|
|
16
16
|
from chia.types.condition_with_args import ConditionWithArgs
|
|
@@ -60,7 +60,7 @@ def npc_to_dict(npc: NPC) -> dict[str, Any]:
|
|
|
60
60
|
|
|
61
61
|
def run_generator(block_generator: BlockGenerator, constants: ConsensusConstants, max_cost: int) -> list[CAT]:
|
|
62
62
|
block_args = block_generator.generator_refs
|
|
63
|
-
_cost, block_result = block_generator.program
|
|
63
|
+
_cost, block_result = run_with_cost(block_generator.program, max_cost, [DESERIALIZE_MOD, block_args])
|
|
64
64
|
|
|
65
65
|
coin_spends = block_result.first()
|
|
66
66
|
|
chia/_tests/util/setup_nodes.py
CHANGED
|
@@ -22,7 +22,7 @@ from chia.full_node.full_node_api import FullNodeAPI
|
|
|
22
22
|
from chia.harvester.harvester import Harvester
|
|
23
23
|
from chia.introducer.introducer_api import IntroducerAPI
|
|
24
24
|
from chia.protocols.shared_protocol import Capability
|
|
25
|
-
from chia.
|
|
25
|
+
from chia.server.aliases import FarmerService, FullNodeService, HarvesterService, TimelordService, WalletService
|
|
26
26
|
from chia.server.server import ChiaServer
|
|
27
27
|
from chia.simulator.block_tools import BlockTools, create_block_tools_async
|
|
28
28
|
from chia.simulator.full_node_simulator import FullNodeSimulator
|
|
@@ -40,12 +40,12 @@ from chia.simulator.setup_services import (
|
|
|
40
40
|
)
|
|
41
41
|
from chia.simulator.socket import find_available_listen_port
|
|
42
42
|
from chia.simulator.start_simulator import SimulatorFullNodeService
|
|
43
|
-
from chia.types.aliases import FarmerService, FullNodeService, HarvesterService, TimelordService, WalletService
|
|
44
43
|
from chia.types.peer_info import UnresolvedPeerInfo
|
|
45
44
|
from chia.util.hash import std_hash
|
|
46
45
|
from chia.util.keychain import Keychain
|
|
47
46
|
from chia.util.timing import adjusted_timeout, backoff_times
|
|
48
47
|
from chia.wallet.wallet_node import WalletNode
|
|
48
|
+
from chia.wallet.wallet_rpc_client import WalletRpcClient
|
|
49
49
|
|
|
50
50
|
OldSimulatorsAndWallets = tuple[list[FullNodeSimulator], list[tuple[WalletNode, ChiaServer]], BlockTools]
|
|
51
51
|
SimulatorsAndWalletsServices = tuple[list[SimulatorFullNodeService], list[WalletService], BlockTools]
|
|
@@ -250,10 +250,10 @@ async def setup_simulators_and_wallets_inner(
|
|
|
250
250
|
async with AsyncExitStack() as async_exit_stack:
|
|
251
251
|
bt_tools: list[BlockTools] = [
|
|
252
252
|
await create_block_tools_async(consensus_constants, keychain=keychain1, config_overrides=config_overrides)
|
|
253
|
-
for _ in range(
|
|
253
|
+
for _ in range(simulator_count)
|
|
254
254
|
]
|
|
255
255
|
if wallet_count > simulator_count:
|
|
256
|
-
for _ in range(
|
|
256
|
+
for _ in range(wallet_count - simulator_count):
|
|
257
257
|
bt_tools.append(
|
|
258
258
|
await create_block_tools_async(
|
|
259
259
|
consensus_constants, keychain=keychain2, config_overrides=config_overrides
|
|
@@ -273,7 +273,7 @@ async def setup_simulators_and_wallets_inner(
|
|
|
273
273
|
disable_capabilities=disable_capabilities,
|
|
274
274
|
)
|
|
275
275
|
)
|
|
276
|
-
for index in range(
|
|
276
|
+
for index in range(simulator_count)
|
|
277
277
|
]
|
|
278
278
|
|
|
279
279
|
wallets: list[WalletService] = [
|
|
@@ -289,7 +289,7 @@ async def setup_simulators_and_wallets_inner(
|
|
|
289
289
|
initial_num_public_keys=initial_num_public_keys,
|
|
290
290
|
)
|
|
291
291
|
)
|
|
292
|
-
for index in range(
|
|
292
|
+
for index in range(wallet_count)
|
|
293
293
|
]
|
|
294
294
|
|
|
295
295
|
yield bt_tools, simulators, wallets
|
|
@@ -329,7 +329,7 @@ async def setup_farmer_multi_harvester(
|
|
|
329
329
|
start_service=start_services,
|
|
330
330
|
)
|
|
331
331
|
)
|
|
332
|
-
for i in range(
|
|
332
|
+
for i in range(harvester_count)
|
|
333
333
|
]
|
|
334
334
|
|
|
335
335
|
yield harvester_services, farmer_service, block_tools
|