chia-blockchain 2.5.2rc2__py3-none-any.whl → 2.5.3__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/__init__.py +7 -0
- chia/_tests/blockchain/blockchain_test_utils.py +1 -1
- chia/_tests/blockchain/test_augmented_chain.py +54 -5
- chia/_tests/blockchain/test_blockchain.py +5 -12
- chia/_tests/blockchain/test_blockchain_transactions.py +3 -5
- chia/_tests/blockchain/test_get_block_generator.py +2 -2
- chia/_tests/blockchain/test_lookup_fork_chain.py +2 -2
- chia/_tests/clvm/benchmark_costs.py +2 -1
- chia/_tests/clvm/coin_store.py +4 -3
- chia/_tests/clvm/test_chialisp_deserialization.py +2 -2
- chia/_tests/clvm/test_curry_and_treehash.py +1 -1
- chia/_tests/clvm/test_puzzle_compression.py +2 -2
- chia/_tests/clvm/test_puzzles.py +2 -2
- chia/_tests/clvm/test_singletons.py +2 -2
- chia/_tests/clvm/test_spend_sim.py +1 -1
- chia/_tests/cmds/cmd_test_utils.py +2 -2
- chia/_tests/cmds/test_click_types.py +2 -2
- chia/_tests/cmds/test_cmd_framework.py +6 -6
- chia/_tests/cmds/test_show.py +4 -3
- chia/_tests/cmds/test_tx_config_args.py +1 -1
- chia/_tests/cmds/testing_classes.py +2 -2
- chia/_tests/cmds/wallet/test_consts.py +2 -2
- chia/_tests/cmds/wallet/test_did.py +2 -2
- chia/_tests/cmds/wallet/test_nft.py +2 -2
- chia/_tests/cmds/wallet/test_notifications.py +3 -2
- chia/_tests/cmds/wallet/test_vcs.py +2 -2
- chia/_tests/cmds/wallet/test_wallet.py +4 -8
- chia/_tests/conftest.py +4 -3
- chia/_tests/connection_utils.py +2 -2
- chia/_tests/core/cmds/test_keys.py +1 -2
- chia/_tests/core/cmds/test_wallet.py +2 -2
- chia/_tests/core/consensus/test_block_creation.py +2 -2
- chia/_tests/core/consensus/test_pot_iterations.py +1 -1
- chia/_tests/core/custom_types/test_coin.py +2 -2
- chia/_tests/core/custom_types/test_proof_of_space.py +2 -2
- chia/_tests/core/custom_types/test_spend_bundle.py +2 -2
- chia/_tests/core/data_layer/conftest.py +1 -1
- 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 +2 -2
- chia/_tests/core/data_layer/test_data_store.py +1 -1
- chia/_tests/core/data_layer/test_data_store_schema.py +1 -1
- chia/_tests/core/data_layer/util.py +2 -1
- chia/_tests/core/farmer/test_farmer_api.py +1 -1
- chia/_tests/core/full_node/full_sync/test_full_sync.py +1 -7
- chia/_tests/core/full_node/ram_db.py +2 -1
- chia/_tests/core/full_node/stores/test_block_store.py +2 -2
- chia/_tests/core/full_node/stores/test_coin_store.py +2 -2
- chia/_tests/core/full_node/stores/test_full_node_store.py +3 -3
- chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
- chia/_tests/core/full_node/stores/test_sync_store.py +1 -1
- chia/_tests/core/full_node/test_address_manager.py +1 -1
- chia/_tests/core/full_node/test_block_height_map.py +2 -2
- chia/_tests/core/full_node/test_conditions.py +1 -1
- chia/_tests/core/full_node/test_full_node.py +346 -164
- chia/_tests/core/full_node/test_generator_tools.py +3 -2
- chia/_tests/core/full_node/test_hint_management.py +2 -2
- chia/_tests/core/full_node/test_performance.py +2 -15
- chia/_tests/core/full_node/test_subscriptions.py +1 -1
- chia/_tests/core/full_node/test_transactions.py +186 -185
- chia/_tests/core/full_node/test_tx_processing_queue.py +1 -1
- chia/_tests/core/make_block_generator.py +2 -2
- chia/_tests/core/mempool/test_mempool.py +165 -22
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +1 -1
- chia/_tests/core/mempool/test_mempool_fee_protocol.py +1 -1
- chia/_tests/core/mempool/test_mempool_manager.py +476 -66
- chia/_tests/core/mempool/test_mempool_performance.py +2 -2
- chia/_tests/core/mempool/test_singleton_fast_forward.py +19 -25
- chia/_tests/core/node_height.py +2 -1
- chia/_tests/core/server/test_capabilities.py +1 -1
- chia/_tests/core/server/test_dos.py +36 -28
- chia/_tests/core/server/test_loop.py +3 -3
- chia/_tests/core/server/test_rate_limits.py +1 -1
- chia/_tests/core/server/test_server.py +2 -2
- chia/_tests/core/services/test_services.py +1 -1
- chia/_tests/core/ssl/test_ssl.py +1 -1
- chia/_tests/core/test_coins.py +2 -1
- chia/_tests/core/test_cost_calculation.py +2 -2
- chia/_tests/core/test_crawler.py +2 -2
- chia/_tests/core/test_db_conversion.py +2 -2
- chia/_tests/core/test_db_validation.py +26 -13
- chia/_tests/core/test_farmer_harvester_rpc.py +2 -2
- chia/_tests/core/test_full_node_rpc.py +2 -2
- chia/_tests/core/test_merkle_set.py +2 -2
- chia/_tests/core/test_program.py +2 -2
- chia/_tests/core/test_rpc_util.py +1 -1
- chia/_tests/core/test_seeder.py +1 -1
- chia/_tests/core/util/test_block_cache.py +3 -3
- chia/_tests/core/util/test_jsonify.py +3 -2
- chia/_tests/core/util/test_keychain.py +3 -3
- chia/_tests/core/util/test_streamable.py +3 -4
- chia/_tests/environments/wallet.py +3 -2
- chia/_tests/farmer_harvester/test_farmer.py +3 -4
- chia/_tests/farmer_harvester/test_farmer_harvester.py +2 -2
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +2 -2
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +3 -4
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +1 -1
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +2 -2
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -1
- chia/_tests/fee_estimation/test_mempoolitem_height_added.py +3 -4
- chia/_tests/generator/test_compression.py +20 -10
- chia/_tests/generator/test_rom.py +7 -9
- chia/_tests/plot_sync/test_delta.py +2 -2
- chia/_tests/plot_sync/test_plot_sync.py +2 -2
- chia/_tests/plot_sync/test_receiver.py +2 -2
- chia/_tests/plot_sync/test_sender.py +2 -2
- chia/_tests/plot_sync/test_sync_simulated.py +2 -2
- chia/_tests/plot_sync/util.py +3 -2
- chia/_tests/plotting/test_plot_manager.py +1 -1
- chia/_tests/pools/test_pool_cli_parsing.py +3 -2
- chia/_tests/pools/test_pool_cmdline.py +2 -2
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +3 -3
- chia/_tests/pools/test_pool_rpc.py +4 -5
- chia/_tests/pools/test_pool_wallet.py +1 -1
- chia/_tests/pools/test_wallet_pool_store.py +2 -2
- chia/_tests/rpc/test_rpc_client.py +1 -1
- chia/_tests/rpc/test_rpc_server.py +1 -1
- chia/_tests/simulation/test_simulation.py +36 -8
- chia/_tests/simulation/test_simulator.py +5 -5
- chia/_tests/simulation/test_start_simulator.py +2 -2
- chia/_tests/timelord/test_new_peak.py +2 -2
- chia/_tests/tools/test_run_block.py +3 -2
- chia/_tests/util/benchmark_cost.py +2 -2
- chia/_tests/util/benchmarks.py +17 -6
- chia/_tests/util/blockchain.py +2 -1
- chia/_tests/util/blockchain_mock.py +9 -5
- chia/_tests/util/build_network_protocol_files.py +2 -1
- chia/_tests/util/constants.py +2 -1
- chia/_tests/util/full_sync.py +6 -3
- chia/_tests/util/gen_ssl_certs.py +2 -2
- chia/_tests/util/generator_tools_testing.py +4 -3
- chia/_tests/util/get_name_puzzle_conditions.py +2 -2
- chia/_tests/util/misc.py +16 -2
- chia/_tests/util/network_protocol_data.py +17 -7
- chia/_tests/util/run_block.py +6 -8
- chia/_tests/util/setup_nodes.py +4 -3
- chia/_tests/util/spend_sim.py +9 -5
- chia/_tests/util/test_condition_tools.py +2 -2
- chia/_tests/util/test_config.py +2 -1
- chia/_tests/util/test_errors.py +2 -1
- chia/_tests/util/test_full_block_utils.py +17 -7
- chia/_tests/util/test_misc.py +1 -1
- chia/_tests/util/test_network_protocol_test.py +24 -24
- chia/_tests/util/test_replace_str_to_bytes.py +2 -2
- chia/_tests/util/test_trusted_peer.py +1 -1
- chia/_tests/util/time_out_assert.py +20 -7
- chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +1 -1
- chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +2 -2
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +5 -6
- chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +17 -15
- chia/_tests/wallet/cat_wallet/test_trades.py +2 -2
- chia/_tests/wallet/clawback/test_clawback_lifecycle.py +2 -2
- chia/_tests/wallet/clawback/test_clawback_metadata.py +2 -2
- chia/_tests/wallet/conftest.py +3 -3
- chia/_tests/wallet/db_wallet/test_db_graftroot.py +3 -5
- chia/_tests/wallet/db_wallet/test_dl_offers.py +2 -2
- chia/_tests/wallet/db_wallet/test_dl_wallet.py +433 -384
- chia/_tests/wallet/did_wallet/test_did.py +3 -3
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +2 -2
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +2 -2
- chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +3 -4
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +1293 -703
- chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +28 -30
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +2 -2
- chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +2 -2
- chia/_tests/wallet/rpc/config.py +1 -1
- chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +2 -2
- chia/_tests/wallet/rpc/test_wallet_rpc.py +20 -77
- chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +9 -7
- chia/_tests/wallet/sync/test_wallet_sync.py +79 -31
- chia/_tests/wallet/test_clvm_streamable.py +2 -2
- chia/_tests/wallet/test_coin_management.py +7 -7
- chia/_tests/wallet/test_coin_selection.py +20 -2
- chia/_tests/wallet/test_conditions.py +2 -2
- chia/_tests/wallet/test_debug_spend_bundle.py +2 -2
- chia/_tests/wallet/test_new_wallet_protocol.py +2 -2
- chia/_tests/wallet/test_nft_store.py +2 -2
- chia/_tests/wallet/test_notifications.py +2 -2
- chia/_tests/wallet/test_puzzle_store.py +2 -2
- chia/_tests/wallet/test_sign_coin_spends.py +2 -2
- chia/_tests/wallet/test_signer_protocol.py +3 -3
- chia/_tests/wallet/test_singleton.py +3 -11
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +12 -13
- chia/_tests/wallet/test_singleton_store.py +2 -4
- chia/_tests/wallet/test_transaction_store.py +2 -2
- chia/_tests/wallet/test_util.py +2 -2
- chia/_tests/wallet/test_wallet.py +53 -49
- chia/_tests/wallet/test_wallet_action_scope.py +24 -6
- chia/_tests/wallet/test_wallet_blockchain.py +1 -1
- chia/_tests/wallet/test_wallet_coin_store.py +2 -2
- chia/_tests/wallet/test_wallet_interested_store.py +2 -2
- chia/_tests/wallet/test_wallet_node.py +3 -3
- chia/_tests/wallet/test_wallet_retry.py +3 -3
- chia/_tests/wallet/test_wallet_state_manager.py +8 -8
- chia/_tests/wallet/test_wallet_test_framework.py +1 -1
- chia/_tests/wallet/test_wallet_trade_store.py +2 -2
- chia/_tests/wallet/test_wallet_utils.py +2 -2
- chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -2
- chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +15 -15
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +5 -3
- chia/_tests/wallet/wallet_block_tools.py +15 -7
- chia/_tests/weight_proof/test_weight_proof.py +3 -3
- chia/cmds/chia.py +0 -2
- chia/cmds/cmd_classes.py +3 -3
- chia/cmds/cmd_helpers.py +4 -4
- chia/cmds/cmds_util.py +2 -2
- chia/cmds/coin_funcs.py +3 -2
- chia/cmds/coins.py +1 -1
- chia/cmds/data.py +2 -2
- chia/cmds/data_funcs.py +3 -2
- chia/cmds/db_upgrade_func.py +2 -2
- chia/cmds/db_validate_func.py +15 -8
- chia/cmds/farm.py +2 -4
- chia/cmds/keys.py +0 -2
- chia/cmds/keys_funcs.py +1 -1
- chia/cmds/netspace_funcs.py +2 -1
- chia/cmds/param_types.py +2 -2
- chia/cmds/plotnft.py +2 -2
- chia/cmds/plotnft_funcs.py +2 -2
- chia/cmds/rpc.py +1 -1
- chia/cmds/show.py +1 -2
- chia/cmds/show_funcs.py +6 -3
- chia/cmds/signer.py +1 -2
- chia/cmds/sim.py +1 -2
- chia/cmds/sim_funcs.py +2 -2
- chia/cmds/wallet.py +2 -2
- chia/cmds/wallet_funcs.py +4 -11
- chia/consensus/block_body_validation.py +3 -4
- chia/consensus/block_creation.py +10 -6
- chia/consensus/block_header_validation.py +3 -4
- chia/consensus/block_record.py +2 -3
- chia/consensus/block_rewards.py +1 -1
- chia/consensus/blockchain.py +20 -17
- chia/consensus/blockchain_interface.py +5 -4
- chia/consensus/coinbase.py +2 -2
- chia/consensus/constants.py +1 -1
- chia/consensus/cost_calculator.py +2 -1
- chia/consensus/default_constants.py +4 -3
- chia/consensus/deficit.py +3 -2
- chia/consensus/difficulty_adjustment.py +8 -9
- chia/consensus/find_fork_point.py +4 -3
- chia/consensus/full_block_to_block_record.py +4 -3
- chia/consensus/get_block_challenge.py +4 -3
- chia/consensus/get_block_generator.py +3 -2
- chia/consensus/make_sub_epoch_summary.py +3 -2
- chia/consensus/multiprocess_validation.py +9 -4
- chia/consensus/pos_quality.py +1 -1
- chia/consensus/pot_iterations.py +4 -3
- chia/consensus/vdf_info_computation.py +4 -3
- chia/daemon/client.py +1 -1
- chia/daemon/keychain_server.py +1 -1
- chia/daemon/server.py +1 -1
- chia/daemon/windows_signal.py +1 -1
- chia/data_layer/data_layer.py +4 -3
- chia/data_layer/data_layer_errors.py +1 -1
- chia/data_layer/data_layer_util.py +2 -2
- chia/data_layer/data_layer_wallet.py +47 -69
- chia/data_layer/data_store.py +1 -1
- chia/data_layer/dl_wallet_store.py +5 -6
- chia/data_layer/download_data.py +1 -1
- chia/data_layer/s3_plugin_service.py +4 -4
- chia/data_layer/singleton_record.py +23 -0
- chia/data_layer/util/benchmark.py +2 -1
- chia/farmer/farmer.py +4 -6
- chia/farmer/farmer_api.py +4 -6
- chia/full_node/bitcoin_fee_estimator.py +2 -1
- chia/full_node/block_height_map.py +2 -2
- chia/full_node/block_store.py +8 -9
- chia/{util → full_node}/check_fork_next_block.py +2 -1
- chia/full_node/coin_store.py +10 -10
- chia/full_node/fee_estimate.py +2 -1
- chia/full_node/fee_estimation.py +2 -1
- chia/full_node/fee_estimator.py +2 -1
- chia/full_node/fee_estimator_interface.py +1 -1
- chia/full_node/fee_history.py +2 -1
- chia/full_node/fee_tracker.py +2 -1
- chia/full_node/full_node.py +15 -13
- chia/full_node/full_node_api.py +12 -32
- chia/full_node/full_node_store.py +4 -3
- chia/full_node/hint_management.py +2 -1
- chia/full_node/hint_store.py +3 -3
- chia/full_node/mempool.py +80 -12
- chia/full_node/mempool_check_conditions.py +6 -7
- chia/full_node/mempool_manager.py +168 -21
- chia/full_node/pending_tx_cache.py +2 -2
- chia/full_node/subscriptions.py +2 -2
- chia/full_node/sync_store.py +2 -3
- chia/full_node/tx_processing_queue.py +2 -1
- chia/full_node/weight_proof.py +5 -8
- chia/harvester/harvester.py +5 -3
- chia/harvester/harvester_api.py +2 -2
- chia/introducer/introducer.py +30 -2
- chia/introducer/introducer_api.py +9 -1
- chia/legacy/keyring.py +1 -2
- chia/plot_sync/exceptions.py +2 -1
- chia/plot_sync/receiver.py +2 -2
- chia/plot_sync/sender.py +1 -1
- chia/plotting/cache.py +2 -2
- chia/plotting/check_plots.py +4 -2
- chia/plotting/create_plots.py +1 -1
- chia/plotting/manager.py +3 -3
- chia/plotting/util.py +2 -2
- chia/pools/pool_config.py +1 -1
- chia/pools/pool_puzzles.py +23 -17
- chia/pools/pool_wallet.py +22 -9
- chia/pools/pool_wallet_info.py +2 -2
- chia/protocols/farmer_protocol.py +3 -6
- chia/protocols/full_node_protocol.py +3 -2
- chia/protocols/harvester_protocol.py +3 -4
- chia/protocols/pool_protocol.py +2 -2
- chia/protocols/shared_protocol.py +2 -1
- chia/protocols/timelord_protocol.py +4 -4
- chia/protocols/wallet_protocol.py +2 -2
- chia/rpc/data_layer_rpc_api.py +3 -4
- chia/rpc/data_layer_rpc_client.py +3 -2
- chia/rpc/farmer_rpc_api.py +2 -2
- chia/rpc/farmer_rpc_client.py +2 -1
- chia/rpc/full_node_rpc_api.py +3 -2
- chia/rpc/full_node_rpc_client.py +3 -2
- chia/rpc/harvester_rpc_api.py +2 -1
- chia/rpc/rpc_client.py +2 -2
- chia/rpc/rpc_server.py +1 -1
- chia/rpc/wallet_request_types.py +2 -62
- chia/rpc/wallet_rpc_api.py +98 -628
- chia/rpc/wallet_rpc_client.py +5 -253
- chia/seeder/crawl_store.py +1 -1
- chia/seeder/crawler.py +2 -2
- chia/seeder/peer_record.py +2 -1
- chia/seeder/start_crawler.py +3 -1
- chia/server/address_manager.py +2 -1
- chia/server/address_manager_store.py +1 -1
- chia/server/capabilities.py +2 -1
- chia/server/introducer_peers.py +2 -1
- chia/server/node_discovery.py +1 -1
- chia/server/outbound_message.py +2 -1
- chia/server/server.py +2 -2
- chia/server/start_data_layer.py +2 -1
- chia/server/start_farmer.py +3 -1
- chia/server/start_full_node.py +4 -2
- chia/server/start_harvester.py +3 -1
- chia/server/start_introducer.py +12 -1
- chia/server/start_service.py +2 -1
- chia/server/start_timelord.py +3 -1
- chia/server/start_wallet.py +3 -1
- chia/server/upnp.py +1 -2
- chia/server/ws_connection.py +3 -4
- chia/simulator/add_blocks_in_batches.py +5 -3
- chia/simulator/block_tools.py +16 -12
- chia/simulator/full_node_simulator.py +9 -14
- chia/simulator/setup_services.py +5 -3
- chia/simulator/simulator_full_node_rpc_api.py +3 -2
- chia/simulator/simulator_full_node_rpc_client.py +3 -2
- chia/simulator/simulator_protocol.py +3 -2
- chia/simulator/simulator_test_tools.py +2 -2
- chia/simulator/start_simulator.py +3 -2
- chia/simulator/wallet_tools.py +3 -4
- chia/timelord/iters_from_block.py +4 -4
- chia/timelord/timelord.py +7 -12
- chia/timelord/timelord_api.py +3 -3
- chia/timelord/timelord_state.py +4 -3
- chia/types/block_protocol.py +2 -2
- chia/types/blockchain_format/coin.py +2 -2
- chia/types/blockchain_format/program.py +1 -1
- chia/types/blockchain_format/proof_of_space.py +3 -4
- chia/types/blockchain_format/tree_hash.py +1 -1
- chia/types/blockchain_format/vdf.py +3 -4
- chia/types/clvm_cost.py +1 -1
- chia/types/coin_record.py +4 -3
- chia/types/coin_spend.py +1 -1
- chia/types/eligible_coin_spends.py +9 -5
- chia/types/fee_rate.py +1 -1
- chia/types/generator_types.py +3 -3
- chia/types/internal_mempool_item.py +3 -2
- chia/types/mempool_item.py +10 -3
- chia/types/mempool_submission_status.py +2 -1
- chia/types/mojos.py +1 -1
- chia/types/peer_info.py +2 -1
- chia/types/transaction_queue_entry.py +2 -1
- chia/types/unfinished_header_block.py +4 -4
- chia/types/validation_state.py +2 -1
- chia/types/weight_proof.py +1 -9
- chia/util/augmented_chain.py +20 -9
- chia/util/block_cache.py +8 -4
- chia/util/condition_tools.py +2 -2
- chia/util/full_block_utils.py +3 -4
- chia/util/generator_tools.py +2 -2
- chia/util/initial-config.yaml +2 -11
- chia/util/network.py +2 -2
- chia/util/prev_transaction_block.py +2 -1
- chia/util/task_timing.py +1 -1
- chia/util/vdf_prover.py +3 -3
- chia/util/ws_message.py +1 -1
- chia/wallet/cat_wallet/cat_info.py +3 -2
- chia/wallet/cat_wallet/cat_outer_puzzle.py +3 -2
- chia/wallet/cat_wallet/cat_utils.py +6 -4
- chia/wallet/cat_wallet/cat_wallet.py +16 -18
- chia/wallet/cat_wallet/lineage_store.py +2 -1
- chia/wallet/coin_selection.py +5 -5
- chia/wallet/conditions.py +22 -16
- chia/wallet/db_wallet/db_wallet_puzzles.py +15 -15
- chia/wallet/derivation_record.py +2 -2
- chia/wallet/derive_keys.py +2 -2
- chia/wallet/did_wallet/did_info.py +3 -2
- chia/wallet/did_wallet/did_wallet.py +41 -19
- chia/wallet/did_wallet/did_wallet_puzzles.py +18 -12
- chia/wallet/driver_protocol.py +1 -1
- chia/wallet/lineage_proof.py +3 -2
- chia/wallet/nft_wallet/metadata_outer_puzzle.py +6 -7
- chia/wallet/nft_wallet/nft_info.py +5 -5
- chia/wallet/nft_wallet/nft_puzzle_utils.py +293 -0
- chia/wallet/nft_wallet/nft_puzzles.py +21 -298
- chia/wallet/nft_wallet/nft_wallet.py +47 -62
- chia/wallet/nft_wallet/ownership_outer_puzzle.py +4 -8
- chia/wallet/nft_wallet/singleton_outer_puzzle.py +3 -2
- chia/wallet/nft_wallet/transfer_program_puzzle.py +6 -10
- chia/wallet/nft_wallet/uncurry_nft.py +6 -8
- chia/wallet/notification_manager.py +5 -5
- chia/wallet/notification_store.py +3 -2
- chia/wallet/outer_puzzles.py +2 -1
- chia/wallet/puzzles/clawback/drivers.py +21 -8
- chia/wallet/puzzles/clawback/metadata.py +3 -2
- chia/wallet/puzzles/clawback/puzzle_decorator.py +5 -4
- chia/wallet/puzzles/deployed_puzzle_hashes.json +0 -10
- chia/wallet/puzzles/p2_conditions.py +3 -2
- chia/wallet/puzzles/p2_delegated_conditions.py +3 -2
- chia/wallet/puzzles/p2_delegated_puzzle.py +3 -2
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +3 -3
- chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +3 -2
- chia/wallet/puzzles/p2_puzzle_hash.py +4 -3
- chia/wallet/puzzles/puzzle_utils.py +3 -2
- chia/wallet/puzzles/singleton_top_layer.py +26 -10
- chia/wallet/puzzles/singleton_top_layer_v1_1.py +21 -9
- chia/wallet/puzzles/tails.py +21 -129
- chia/wallet/signer_protocol.py +3 -2
- chia/wallet/singleton.py +12 -6
- chia/wallet/singleton_record.py +3 -2
- chia/wallet/trade_manager.py +31 -55
- chia/wallet/trade_record.py +3 -2
- chia/wallet/trading/offer.py +14 -13
- chia/wallet/trading/trade_store.py +3 -4
- chia/wallet/transaction_record.py +2 -2
- chia/wallet/util/blind_signer_tl.py +3 -2
- chia/wallet/util/compute_hints.py +3 -2
- chia/wallet/util/compute_memos.py +2 -2
- chia/wallet/util/curry_and_treehash.py +1 -2
- chia/wallet/util/merkle_tree.py +1 -1
- chia/wallet/util/merkle_utils.py +1 -1
- chia/wallet/util/new_peak_queue.py +2 -1
- chia/wallet/util/notifications.py +5 -4
- chia/wallet/util/peer_request_cache.py +3 -2
- chia/wallet/util/puzzle_compression.py +6 -4
- chia/wallet/util/puzzle_decorator.py +6 -4
- chia/wallet/util/query_filter.py +3 -2
- chia/wallet/util/tx_config.py +3 -3
- chia/wallet/util/wallet_sync_utils.py +2 -2
- chia/wallet/util/wallet_types.py +2 -3
- chia/wallet/vc_wallet/cr_cat_drivers.py +18 -22
- chia/wallet/vc_wallet/cr_cat_wallet.py +14 -10
- chia/wallet/vc_wallet/cr_outer_puzzle.py +2 -2
- chia/wallet/vc_wallet/vc_drivers.py +50 -68
- chia/wallet/vc_wallet/vc_store.py +2 -2
- chia/wallet/vc_wallet/vc_wallet.py +47 -15
- chia/wallet/wallet.py +51 -46
- chia/wallet/wallet_action_scope.py +4 -0
- chia/wallet/wallet_blockchain.py +12 -7
- chia/wallet/wallet_coin_record.py +3 -2
- chia/wallet/wallet_coin_store.py +3 -2
- chia/wallet/wallet_info.py +2 -1
- chia/wallet/wallet_interested_store.py +3 -2
- chia/wallet/wallet_nft_store.py +4 -4
- chia/wallet/wallet_node.py +3 -4
- chia/wallet/wallet_pool_store.py +3 -4
- chia/wallet/wallet_protocol.py +19 -5
- chia/wallet/wallet_puzzle_store.py +2 -2
- chia/wallet/wallet_retry_store.py +3 -6
- chia/wallet/wallet_singleton_store.py +2 -2
- chia/wallet/wallet_state_manager.py +20 -197
- chia/wallet/wallet_transaction_store.py +2 -2
- chia/wallet/wallet_user_store.py +2 -1
- chia/wallet/wallet_weight_proof_handler.py +3 -2
- {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3.dist-info}/METADATA +3 -2
- chia_blockchain-2.5.3.dist-info/RECORD +891 -0
- mozilla-ca/cacert.pem +64 -33
- chia/_tests/clvm/test_condition_codes.py +0 -13
- chia/_tests/cmds/wallet/test_dao.py +0 -565
- chia/_tests/wallet/dao_wallet/__init__.py +0 -0
- chia/_tests/wallet/dao_wallet/config.py +0 -3
- chia/_tests/wallet/dao_wallet/test_dao_clvm.py +0 -1330
- chia/_tests/wallet/dao_wallet/test_dao_wallets.py +0 -3488
- chia/cmds/dao.py +0 -1064
- chia/cmds/dao_funcs.py +0 -598
- chia/consensus/puzzles/__init__.py +0 -0
- chia/consensus/puzzles/chialisp_deserialisation.clsp +0 -69
- chia/consensus/puzzles/chialisp_deserialisation.clsp.hex +0 -1
- chia/consensus/puzzles/rom_bootstrap_generator.clsp +0 -37
- chia/consensus/puzzles/rom_bootstrap_generator.clsp.hex +0 -1
- chia/full_node/puzzles/__init__.py +0 -0
- chia/full_node/puzzles/block_program_zero.clsp +0 -14
- chia/full_node/puzzles/block_program_zero.clsp.hex +0 -1
- chia/full_node/puzzles/decompress_coin_spend_entry.clsp +0 -5
- chia/full_node/puzzles/decompress_coin_spend_entry.clsp.hex +0 -1
- chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp +0 -7
- chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp.hex +0 -1
- chia/full_node/puzzles/decompress_puzzle.clsp +0 -6
- chia/full_node/puzzles/decompress_puzzle.clsp.hex +0 -1
- chia/pools/puzzles/__init__.py +0 -0
- chia/pools/puzzles/pool_member_innerpuz.clsp +0 -70
- chia/pools/puzzles/pool_member_innerpuz.clsp.hex +0 -1
- chia/pools/puzzles/pool_waitingroom_innerpuz.clsp +0 -69
- chia/pools/puzzles/pool_waitingroom_innerpuz.clsp.hex +0 -1
- chia/simulator/simulator_constants.py +0 -13
- chia/types/blockchain_format/foliage.py +0 -8
- chia/types/blockchain_format/pool_target.py +0 -5
- chia/types/blockchain_format/reward_chain_block.py +0 -6
- chia/types/blockchain_format/sized_bytes.py +0 -11
- chia/util/ints.py +0 -19
- chia/wallet/cat_wallet/dao_cat_info.py +0 -28
- chia/wallet/cat_wallet/dao_cat_wallet.py +0 -669
- chia/wallet/cat_wallet/puzzles/__init__.py +0 -0
- chia/wallet/cat_wallet/puzzles/cat_truths.clib +0 -31
- chia/wallet/cat_wallet/puzzles/cat_v2.clsp +0 -397
- chia/wallet/cat_wallet/puzzles/cat_v2.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/delegated_tail.clsp +0 -25
- chia/wallet/cat_wallet/puzzles/delegated_tail.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp +0 -15
- chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp +0 -26
- chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp +0 -42
- chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp +0 -24
- chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp.hex +0 -1
- chia/wallet/dao_wallet/__init__.py +0 -0
- chia/wallet/dao_wallet/dao_info.py +0 -61
- chia/wallet/dao_wallet/dao_utils.py +0 -811
- chia/wallet/dao_wallet/dao_wallet.py +0 -2119
- chia/wallet/did_wallet/puzzles/__init__.py +0 -0
- chia/wallet/did_wallet/puzzles/did_innerpuz.clsp +0 -135
- chia/wallet/did_wallet/puzzles/did_innerpuz.clsp.hex +0 -1
- chia/wallet/payment.py +0 -33
- chia/wallet/puzzles/augmented_condition.clsp +0 -13
- chia/wallet/puzzles/augmented_condition.clsp.hex +0 -1
- chia/wallet/puzzles/condition_codes.clib +0 -77
- chia/wallet/puzzles/curry-and-treehash.clib +0 -102
- chia/wallet/puzzles/curry.clib +0 -135
- chia/wallet/puzzles/curry_by_index.clib +0 -16
- chia/wallet/puzzles/dao_cat_eve.clsp +0 -17
- chia/wallet/puzzles/dao_cat_eve.clsp.hex +0 -1
- chia/wallet/puzzles/dao_cat_launcher.clsp +0 -36
- chia/wallet/puzzles/dao_cat_launcher.clsp.hex +0 -1
- chia/wallet/puzzles/dao_finished_state.clsp +0 -35
- chia/wallet/puzzles/dao_finished_state.clsp.hex +0 -1
- chia/wallet/puzzles/dao_finished_state.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_lockup.clsp +0 -288
- chia/wallet/puzzles/dao_lockup.clsp.hex +0 -1
- chia/wallet/puzzles/dao_lockup.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_proposal.clsp +0 -377
- chia/wallet/puzzles/dao_proposal.clsp.hex +0 -1
- chia/wallet/puzzles/dao_proposal.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_proposal_timer.clsp +0 -78
- chia/wallet/puzzles/dao_proposal_timer.clsp.hex +0 -1
- chia/wallet/puzzles/dao_proposal_timer.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_proposal_validator.clsp +0 -87
- chia/wallet/puzzles/dao_proposal_validator.clsp.hex +0 -1
- chia/wallet/puzzles/dao_proposal_validator.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp +0 -240
- chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex +0 -1
- chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_treasury.clsp +0 -115
- chia/wallet/puzzles/dao_treasury.clsp.hex +0 -1
- chia/wallet/puzzles/dao_update_proposal.clsp +0 -44
- chia/wallet/puzzles/dao_update_proposal.clsp.hex +0 -1
- chia/wallet/puzzles/json.clib +0 -25
- chia/wallet/puzzles/merkle_utils.clib +0 -18
- chia/wallet/puzzles/notification.clsp +0 -7
- chia/wallet/puzzles/notification.clsp.hex +0 -1
- chia/wallet/puzzles/p2_1_of_n.clsp +0 -22
- chia/wallet/puzzles/p2_1_of_n.clsp.hex +0 -1
- chia/wallet/puzzles/p2_conditions.clsp +0 -3
- chia/wallet/puzzles/p2_conditions.clsp.hex +0 -1
- chia/wallet/puzzles/p2_delegated_conditions.clsp +0 -18
- chia/wallet/puzzles/p2_delegated_conditions.clsp.hex +0 -1
- chia/wallet/puzzles/p2_delegated_puzzle.clsp +0 -19
- chia/wallet/puzzles/p2_delegated_puzzle.clsp.hex +0 -1
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp +0 -91
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp.hex +0 -1
- chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp +0 -108
- chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp.hex +0 -1
- chia/wallet/puzzles/p2_parent.clsp +0 -19
- chia/wallet/puzzles/p2_parent.clsp.hex +0 -1
- chia/wallet/puzzles/p2_puzzle_hash.clsp +0 -18
- chia/wallet/puzzles/p2_puzzle_hash.clsp.hex +0 -1
- chia/wallet/puzzles/p2_singleton.clsp +0 -30
- chia/wallet/puzzles/p2_singleton.clsp.hex +0 -1
- chia/wallet/puzzles/p2_singleton_aggregator.clsp +0 -81
- chia/wallet/puzzles/p2_singleton_aggregator.clsp.hex +0 -1
- chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp +0 -50
- chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp.hex +0 -1
- chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp +0 -47
- chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp.hex +0 -1
- chia/wallet/puzzles/settlement_payments.clsp +0 -49
- chia/wallet/puzzles/settlement_payments.clsp.hex +0 -1
- chia/wallet/puzzles/sha256tree.clib +0 -11
- chia/wallet/puzzles/singleton_launcher.clsp +0 -16
- chia/wallet/puzzles/singleton_launcher.clsp.hex +0 -1
- chia/wallet/puzzles/singleton_top_layer.clsp +0 -177
- chia/wallet/puzzles/singleton_top_layer.clsp.hex +0 -1
- chia/wallet/puzzles/singleton_top_layer_v1_1.clsp +0 -107
- chia/wallet/puzzles/singleton_top_layer_v1_1.clsp.hex +0 -1
- chia/wallet/puzzles/singleton_truths.clib +0 -21
- chia/wallet/vc_wallet/cr_puzzles/__init__.py +0 -0
- chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp +0 -3
- chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp.hex +0 -1
- chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp +0 -304
- chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp.hex +0 -1
- chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp +0 -45
- chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/__init__.py +0 -0
- chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp +0 -30
- chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp +0 -75
- chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp +0 -32
- chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp +0 -80
- chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp +0 -163
- chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp +0 -16
- chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp +0 -74
- chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp +0 -23
- chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp +0 -64
- chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp.hex +0 -1
- chia_blockchain-2.5.2rc2.dist-info/RECORD +0 -1042
- {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3.dist-info}/LICENSE +0 -0
- {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3.dist-info}/entry_points.txt +0 -0
chia/types/mempool_item.py
CHANGED
|
@@ -3,16 +3,17 @@ from __future__ import annotations
|
|
|
3
3
|
from dataclasses import dataclass, field
|
|
4
4
|
from typing import Any, Optional
|
|
5
5
|
|
|
6
|
+
from chia_rs.sized_bytes import bytes32
|
|
7
|
+
from chia_rs.sized_ints import uint32, uint64
|
|
8
|
+
|
|
6
9
|
from chia.types.blockchain_format.coin import Coin
|
|
7
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
8
10
|
from chia.types.coin_spend import CoinSpend
|
|
9
11
|
from chia.types.spend_bundle import SpendBundle
|
|
10
12
|
from chia.types.spend_bundle_conditions import SpendBundleConditions
|
|
11
|
-
from chia.util.ints import uint32, uint64
|
|
12
13
|
from chia.util.streamable import recurse_jsonify
|
|
13
14
|
|
|
14
15
|
|
|
15
|
-
@dataclass
|
|
16
|
+
@dataclass
|
|
16
17
|
class BundleCoinSpend:
|
|
17
18
|
coin_spend: CoinSpend
|
|
18
19
|
eligible_for_dedup: bool
|
|
@@ -21,6 +22,12 @@ class BundleCoinSpend:
|
|
|
21
22
|
# cost on the specific solution in this item
|
|
22
23
|
cost: Optional[uint64] = None
|
|
23
24
|
|
|
25
|
+
# if this spend is eligible for fast forward, this may be set to the
|
|
26
|
+
# current unspent coin belonging to this singleton, that we would rebase
|
|
27
|
+
# this spen on top of if we were to make a block now
|
|
28
|
+
# When finding MempoolItems by coin ID, we use this Coin ID if it's set
|
|
29
|
+
latest_singleton_coin: Optional[bytes32] = None
|
|
30
|
+
|
|
24
31
|
|
|
25
32
|
@dataclass(frozen=True)
|
|
26
33
|
class MempoolItem:
|
|
@@ -3,8 +3,9 @@ from __future__ import annotations
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from typing import Optional, Union
|
|
5
5
|
|
|
6
|
+
from chia_rs.sized_ints import uint8
|
|
7
|
+
|
|
6
8
|
from chia.types.mempool_inclusion_status import MempoolInclusionStatus
|
|
7
|
-
from chia.util.ints import uint8
|
|
8
9
|
from chia.util.streamable import Streamable, streamable
|
|
9
10
|
|
|
10
11
|
|
chia/types/mojos.py
CHANGED
chia/types/peer_info.py
CHANGED
|
@@ -4,7 +4,8 @@ import ipaddress
|
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
from typing import Union
|
|
6
6
|
|
|
7
|
-
from
|
|
7
|
+
from chia_rs.sized_ints import uint16, uint64
|
|
8
|
+
|
|
8
9
|
from chia.util.ip_address import IPAddress
|
|
9
10
|
from chia.util.streamable import Streamable, streamable
|
|
10
11
|
|
|
@@ -5,8 +5,9 @@ import dataclasses
|
|
|
5
5
|
from dataclasses import dataclass, field
|
|
6
6
|
from typing import ClassVar, Generic, Optional, TypeVar, Union
|
|
7
7
|
|
|
8
|
+
from chia_rs.sized_bytes import bytes32
|
|
9
|
+
|
|
8
10
|
from chia.server.ws_connection import WSChiaConnection
|
|
9
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
10
11
|
from chia.types.mempool_inclusion_status import MempoolInclusionStatus
|
|
11
12
|
from chia.types.spend_bundle import SpendBundle
|
|
12
13
|
from chia.util.errors import Err
|
|
@@ -3,12 +3,12 @@ from __future__ import annotations
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
6
|
+
from chia_rs import Foliage, FoliageTransactionBlock, RewardChainBlockUnfinished
|
|
7
|
+
from chia_rs.sized_bytes import bytes32
|
|
8
|
+
from chia_rs.sized_ints import uint128
|
|
9
|
+
|
|
9
10
|
from chia.types.blockchain_format.vdf import VDFProof
|
|
10
11
|
from chia.types.end_of_slot_bundle import EndOfSubSlotBundle
|
|
11
|
-
from chia.util.ints import uint128
|
|
12
12
|
from chia.util.streamable import Streamable, streamable
|
|
13
13
|
|
|
14
14
|
|
chia/types/validation_state.py
CHANGED
chia/types/weight_proof.py
CHANGED
|
@@ -2,15 +2,12 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
from chia_rs import RewardChainBlock, SubEpochChallengeSegment, SubEpochData
|
|
6
6
|
|
|
7
|
-
from chia.types.blockchain_format.reward_chain_block import RewardChainBlock
|
|
8
7
|
from chia.types.end_of_slot_bundle import EndOfSubSlotBundle
|
|
9
8
|
from chia.types.header_block import HeaderBlock
|
|
10
9
|
from chia.util.streamable import Streamable, streamable
|
|
11
10
|
|
|
12
|
-
SubEpochData = chia_rs.SubEpochData
|
|
13
|
-
|
|
14
11
|
# number of challenge blocks
|
|
15
12
|
# Average iters for challenge blocks
|
|
16
13
|
# |--A-R----R-------R--------R------R----R----------R-----R--R---| Honest difficulty 1000
|
|
@@ -22,11 +19,6 @@ SubEpochData = chia_rs.SubEpochData
|
|
|
22
19
|
# total number of challenge blocks == total number of reward chain blocks
|
|
23
20
|
|
|
24
21
|
|
|
25
|
-
SubEpochChallengeSegment = chia_rs.SubEpochChallengeSegment
|
|
26
|
-
SubEpochSegments = chia_rs.SubEpochSegments
|
|
27
|
-
SubSlotData = chia_rs.SubSlotData
|
|
28
|
-
|
|
29
|
-
|
|
30
22
|
@streamable
|
|
31
23
|
@dataclass(frozen=True)
|
|
32
24
|
# this is used only for serialization to database
|
chia/util/augmented_chain.py
CHANGED
|
@@ -2,12 +2,13 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING, ClassVar, Optional, cast
|
|
4
4
|
|
|
5
|
+
from chia_rs.sized_bytes import bytes32
|
|
6
|
+
from chia_rs.sized_ints import uint32
|
|
7
|
+
|
|
5
8
|
from chia.consensus.block_record import BlockRecord
|
|
6
9
|
from chia.consensus.blockchain_interface import BlocksProtocol
|
|
7
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
8
10
|
from chia.types.full_block import FullBlock
|
|
9
11
|
from chia.util.errors import Err
|
|
10
|
-
from chia.util.ints import uint32
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
class AugmentedBlockchain:
|
|
@@ -46,9 +47,16 @@ class AugmentedBlockchain:
|
|
|
46
47
|
self._height_to_hash[block_record.height] = block_record.header_hash
|
|
47
48
|
|
|
48
49
|
def remove_extra_block(self, hh: bytes32) -> None:
|
|
49
|
-
if hh in self._extra_blocks:
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
if hh not in self._extra_blocks:
|
|
51
|
+
return
|
|
52
|
+
|
|
53
|
+
block_record = self._extra_blocks.pop(hh)[1]
|
|
54
|
+
if self._underlying.contains_block(block_record.header_hash, block_record.height):
|
|
55
|
+
height_to_remove = block_record.height
|
|
56
|
+
for h in range(height_to_remove, -1, -1):
|
|
57
|
+
if h not in self._height_to_hash:
|
|
58
|
+
break
|
|
59
|
+
del self._height_to_hash[uint32(h)]
|
|
52
60
|
|
|
53
61
|
# BlocksProtocol
|
|
54
62
|
async def lookup_block_generators(self, header_hash: bytes32, generator_refs: set[uint32]) -> dict[uint32, bytes]:
|
|
@@ -82,12 +90,11 @@ class AugmentedBlockchain:
|
|
|
82
90
|
|
|
83
91
|
def add_block_record(self, block_record: BlockRecord) -> None:
|
|
84
92
|
self._underlying.add_block_record(block_record)
|
|
85
|
-
|
|
93
|
+
self._height_to_hash[block_record.height] = block_record.header_hash
|
|
86
94
|
# now that we're adding the block to the underlying blockchain, we don't
|
|
87
95
|
# need to keep the extra block around anymore
|
|
88
96
|
hh = block_record.header_hash
|
|
89
97
|
if hh in self._extra_blocks:
|
|
90
|
-
del self._height_to_hash[block_record.height]
|
|
91
98
|
del self._extra_blocks[hh]
|
|
92
99
|
|
|
93
100
|
# BlockRecordsProtocol
|
|
@@ -109,6 +116,7 @@ class AugmentedBlockchain:
|
|
|
109
116
|
ret = self._get_block_record(header_hash)
|
|
110
117
|
if ret is not None:
|
|
111
118
|
return ret
|
|
119
|
+
return self._underlying.block_record(header_hash)
|
|
112
120
|
return self._underlying.height_to_block_record(height)
|
|
113
121
|
|
|
114
122
|
def height_to_hash(self, height: uint32) -> Optional[bytes32]:
|
|
@@ -117,8 +125,11 @@ class AugmentedBlockchain:
|
|
|
117
125
|
return ret
|
|
118
126
|
return self._underlying.height_to_hash(height)
|
|
119
127
|
|
|
120
|
-
def contains_block(self, header_hash: bytes32) -> bool:
|
|
121
|
-
|
|
128
|
+
def contains_block(self, header_hash: bytes32, height: uint32) -> bool:
|
|
129
|
+
block_hash_from_hh = self.height_to_hash(height)
|
|
130
|
+
if block_hash_from_hh is None or block_hash_from_hh != header_hash:
|
|
131
|
+
return False
|
|
132
|
+
return True
|
|
122
133
|
|
|
123
134
|
def contains_height(self, height: uint32) -> bool:
|
|
124
135
|
return (height in self._height_to_hash) or self._underlying.contains_height(height)
|
chia/util/block_cache.py
CHANGED
|
@@ -2,9 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING, ClassVar, Optional, cast
|
|
4
4
|
|
|
5
|
+
from chia_rs.sized_bytes import bytes32
|
|
6
|
+
from chia_rs.sized_ints import uint32
|
|
7
|
+
|
|
5
8
|
from chia.consensus.block_record import BlockRecord
|
|
6
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
7
|
-
from chia.util.ints import uint32
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
# implements BlockRecordsProtocol
|
|
@@ -43,8 +44,11 @@ class BlockCache:
|
|
|
43
44
|
return None
|
|
44
45
|
return self._height_to_hash[height]
|
|
45
46
|
|
|
46
|
-
def contains_block(self, header_hash: bytes32) -> bool:
|
|
47
|
-
|
|
47
|
+
def contains_block(self, header_hash: bytes32, height: uint32) -> bool:
|
|
48
|
+
block_hash_from_hh = self.height_to_hash(height)
|
|
49
|
+
if block_hash_from_hh is None or block_hash_from_hh != header_hash:
|
|
50
|
+
return False
|
|
51
|
+
return True
|
|
48
52
|
|
|
49
53
|
def contains_height(self, height: uint32) -> bool:
|
|
50
54
|
return height in self._height_to_hash
|
chia/util/condition_tools.py
CHANGED
|
@@ -4,18 +4,18 @@ from functools import lru_cache
|
|
|
4
4
|
from typing import Callable, Union
|
|
5
5
|
|
|
6
6
|
from chia_rs import G1Element
|
|
7
|
+
from chia_rs.sized_bytes import bytes32
|
|
8
|
+
from chia_rs.sized_ints import uint64
|
|
7
9
|
from clvm.casts import int_from_bytes, int_to_bytes
|
|
8
10
|
|
|
9
11
|
from chia.types.blockchain_format.coin import Coin
|
|
10
12
|
from chia.types.blockchain_format.program import Program
|
|
11
13
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
12
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
13
14
|
from chia.types.condition_opcodes import ConditionOpcode
|
|
14
15
|
from chia.types.condition_with_args import ConditionWithArgs
|
|
15
16
|
from chia.types.spend_bundle_conditions import SpendBundleConditions, SpendConditions
|
|
16
17
|
from chia.util.errors import ConsensusError, Err
|
|
17
18
|
from chia.util.hash import std_hash
|
|
18
|
-
from chia.util.ints import uint64
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
def parse_sexp_to_condition(sexp: Program) -> ConditionWithArgs:
|
chia/util/full_block_utils.py
CHANGED
|
@@ -3,14 +3,13 @@ from __future__ import annotations
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from typing import Callable, Optional
|
|
5
5
|
|
|
6
|
-
from chia_rs import G1Element, G2Element, serialized_length
|
|
6
|
+
from chia_rs import G1Element, G2Element, TransactionsInfo, serialized_length
|
|
7
|
+
from chia_rs.sized_bytes import bytes32
|
|
8
|
+
from chia_rs.sized_ints import uint32
|
|
7
9
|
from chiabip158 import PyBIP158
|
|
8
10
|
|
|
9
11
|
from chia.types.blockchain_format.coin import Coin
|
|
10
|
-
from chia.types.blockchain_format.foliage import TransactionsInfo
|
|
11
12
|
from chia.types.blockchain_format.serialized_program import SerializedProgram
|
|
12
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
13
|
-
from chia.util.ints import uint32
|
|
14
13
|
|
|
15
14
|
|
|
16
15
|
def skip_list(buf: memoryview, skip_item: Callable[[memoryview], memoryview]) -> memoryview:
|
chia/util/generator_tools.py
CHANGED
|
@@ -3,14 +3,14 @@ from __future__ import annotations
|
|
|
3
3
|
from collections.abc import Collection
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
|
+
from chia_rs.sized_bytes import bytes32
|
|
7
|
+
from chia_rs.sized_ints import uint64
|
|
6
8
|
from chiabip158 import PyBIP158
|
|
7
9
|
|
|
8
10
|
from chia.types.blockchain_format.coin import Coin
|
|
9
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
10
11
|
from chia.types.full_block import FullBlock
|
|
11
12
|
from chia.types.header_block import HeaderBlock
|
|
12
13
|
from chia.types.spend_bundle_conditions import SpendBundleConditions
|
|
13
|
-
from chia.util.ints import uint64
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def get_block_header(
|
chia/util/initial-config.yaml
CHANGED
|
@@ -264,19 +264,9 @@ timelord:
|
|
|
264
264
|
logging: *logging
|
|
265
265
|
network_overrides: *network_overrides
|
|
266
266
|
selected_network: *selected_network
|
|
267
|
-
# fast_algorithm is a faster proof generation algorithm. This speed increase
|
|
268
|
-
# requires much less memory usage and a does not have the risk of OOM that
|
|
269
|
-
# the normal timelord has but requires significantly more cores doing
|
|
270
|
-
# parallel proof generation and creates a larger and slower to verify
|
|
271
|
-
# resulting proof.
|
|
272
|
-
# An Intel Core i9-10900K can run 2 normal vdf_clients at ~221,000 ips
|
|
273
|
-
# without slowing down but running more than 1 with fast_algorithm will
|
|
274
|
-
# run each vdf_client slower.
|
|
275
|
-
fast_algorithm: False
|
|
276
267
|
# Bluebox (sanitizing timelord):
|
|
277
268
|
# If set 'True', the timelord will create compact proofs of time, instead of
|
|
278
|
-
# extending the chain.
|
|
279
|
-
# is running in bluebox_mode.
|
|
269
|
+
# extending the chain.
|
|
280
270
|
# You must set 'send_uncompact_interval' in 'full_node' > 0 in the full_node
|
|
281
271
|
# section below to have full_node send existing time proofs to be sanitized.
|
|
282
272
|
bluebox_mode: False
|
|
@@ -488,6 +478,7 @@ introducer:
|
|
|
488
478
|
logging: *logging
|
|
489
479
|
network_overrides: *network_overrides
|
|
490
480
|
selected_network: *selected_network
|
|
481
|
+
dns_servers: *dns_servers
|
|
491
482
|
|
|
492
483
|
ssl:
|
|
493
484
|
public_crt: "config/ssl/full_node/public_full_node.crt"
|
chia/util/network.py
CHANGED
|
@@ -12,10 +12,10 @@ from typing import Any, Literal, Optional, Union
|
|
|
12
12
|
|
|
13
13
|
from aiohttp import web
|
|
14
14
|
from aiohttp.log import web_logger
|
|
15
|
+
from chia_rs.sized_bytes import bytes32
|
|
16
|
+
from chia_rs.sized_ints import uint16
|
|
15
17
|
from typing_extensions import final
|
|
16
18
|
|
|
17
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
18
|
-
from chia.util.ints import uint16
|
|
19
19
|
from chia.util.ip_address import IPAddress
|
|
20
20
|
from chia.util.task_referencer import create_referenced_task
|
|
21
21
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from chia_rs.sized_ints import uint128
|
|
4
|
+
|
|
3
5
|
from chia.consensus.block_record import BlockRecord
|
|
4
6
|
from chia.consensus.blockchain_interface import BlockRecordsProtocol
|
|
5
|
-
from chia.util.ints import uint128
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
def get_prev_transaction_block(
|
chia/util/task_timing.py
CHANGED
chia/util/vdf_prover.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from chia_rs import ConsensusConstants
|
|
4
|
+
from chia_rs.sized_bytes import bytes32
|
|
5
|
+
from chia_rs.sized_ints import uint8, uint64
|
|
3
6
|
from chiavdf import prove
|
|
4
7
|
|
|
5
|
-
from chia.consensus.constants import ConsensusConstants
|
|
6
8
|
from chia.types.blockchain_format.classgroup import ClassgroupElement
|
|
7
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
8
9
|
from chia.types.blockchain_format.vdf import VDFInfo, VDFProof
|
|
9
|
-
from chia.util.ints import uint8, uint64
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def get_vdf_info_and_proof(
|
chia/util/ws_message.py
CHANGED
|
@@ -2,9 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import Any, Optional
|
|
4
4
|
|
|
5
|
+
from chia_rs.sized_bytes import bytes32
|
|
5
6
|
from typing_extensions import TypedDict
|
|
6
7
|
|
|
7
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
8
8
|
from chia.util.json_util import dict_to_json_str
|
|
9
9
|
|
|
10
10
|
# Messages must follow this format
|
|
@@ -3,9 +3,10 @@ from __future__ import annotations
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
|
+
from chia_rs.sized_bytes import bytes32
|
|
7
|
+
from chia_rs.sized_ints import uint64
|
|
8
|
+
|
|
6
9
|
from chia.types.blockchain_format.program import Program
|
|
7
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
8
|
-
from chia.util.ints import uint64
|
|
9
10
|
from chia.util.streamable import Streamable, streamable
|
|
10
11
|
from chia.wallet.lineage_proof import LineageProof
|
|
11
12
|
from chia.wallet.vc_wallet.cr_cat_drivers import ProofsChecker
|
|
@@ -3,11 +3,12 @@ from __future__ import annotations
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from typing import Any, Callable, Optional
|
|
5
5
|
|
|
6
|
+
from chia_rs.sized_bytes import bytes32
|
|
7
|
+
from chia_rs.sized_ints import uint64
|
|
8
|
+
|
|
6
9
|
from chia.types.blockchain_format.coin import Coin
|
|
7
10
|
from chia.types.blockchain_format.program import Program
|
|
8
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
9
11
|
from chia.types.coin_spend import CoinSpend
|
|
10
|
-
from chia.util.ints import uint64
|
|
11
12
|
from chia.wallet.cat_wallet.cat_utils import (
|
|
12
13
|
CAT_MOD,
|
|
13
14
|
SpendableCAT,
|
|
@@ -4,24 +4,26 @@ import dataclasses
|
|
|
4
4
|
from collections.abc import Iterator
|
|
5
5
|
from typing import Optional, Union
|
|
6
6
|
|
|
7
|
+
from chia_puzzles_py.programs import CAT_PUZZLE, CAT_PUZZLE_HASH
|
|
7
8
|
from chia_rs import G2Element
|
|
9
|
+
from chia_rs.sized_bytes import bytes32
|
|
8
10
|
|
|
9
11
|
from chia.types.blockchain_format.coin import Coin, coin_as_list
|
|
10
12
|
from chia.types.blockchain_format.program import INFINITE_COST, Program
|
|
11
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
12
13
|
from chia.types.coin_spend import make_spend
|
|
13
14
|
from chia.types.condition_opcodes import ConditionOpcode
|
|
14
15
|
from chia.util.condition_tools import conditions_dict_for_solution
|
|
15
16
|
from chia.wallet.lineage_proof import LineageProof
|
|
16
|
-
from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
|
|
17
17
|
from chia.wallet.uncurried_puzzle import UncurriedPuzzle
|
|
18
|
+
from chia.wallet.util.curry_and_treehash import calculate_hash_of_quoted_mod_hash
|
|
18
19
|
from chia.wallet.wallet_spend_bundle import WalletSpendBundle
|
|
19
20
|
|
|
20
21
|
NULL_SIGNATURE = G2Element()
|
|
21
22
|
|
|
22
23
|
ANYONE_CAN_SPEND_PUZZLE = Program.to(1) # simply return the conditions
|
|
23
|
-
CAT_MOD =
|
|
24
|
-
CAT_MOD_HASH =
|
|
24
|
+
CAT_MOD = Program.from_bytes(CAT_PUZZLE)
|
|
25
|
+
CAT_MOD_HASH = bytes32(CAT_PUZZLE_HASH)
|
|
26
|
+
QUOTED_CAT_MOD_HASH = calculate_hash_of_quoted_mod_hash(CAT_MOD_HASH)
|
|
25
27
|
CAT_MOD_HASH_HASH: bytes32 = Program.to(CAT_MOD_HASH).get_tree_hash()
|
|
26
28
|
|
|
27
29
|
|
|
@@ -7,23 +7,25 @@ import traceback
|
|
|
7
7
|
from typing import TYPE_CHECKING, Any, ClassVar, Optional, cast
|
|
8
8
|
|
|
9
9
|
from chia_rs import G1Element
|
|
10
|
+
from chia_rs.sized_bytes import bytes32
|
|
11
|
+
from chia_rs.sized_ints import uint32, uint64, uint128
|
|
10
12
|
from typing_extensions import Unpack
|
|
11
13
|
|
|
12
14
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
13
15
|
from chia.server.ws_connection import WSChiaConnection
|
|
14
16
|
from chia.types.blockchain_format.coin import Coin
|
|
15
17
|
from chia.types.blockchain_format.program import Program
|
|
16
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
17
18
|
from chia.types.coin_spend import compute_additions_with_cost
|
|
18
19
|
from chia.types.condition_opcodes import ConditionOpcode
|
|
19
20
|
from chia.util.byte_types import hexstr_to_bytes
|
|
20
21
|
from chia.util.errors import Err, ValidationError
|
|
21
22
|
from chia.util.hash import std_hash
|
|
22
|
-
from chia.util.ints import uint32, uint64, uint128
|
|
23
23
|
from chia.wallet.cat_wallet.cat_constants import DEFAULT_CATS
|
|
24
24
|
from chia.wallet.cat_wallet.cat_info import CATCoinData, CATInfo, LegacyCATInfo
|
|
25
25
|
from chia.wallet.cat_wallet.cat_utils import (
|
|
26
26
|
CAT_MOD,
|
|
27
|
+
CAT_MOD_HASH_HASH,
|
|
28
|
+
QUOTED_CAT_MOD_HASH,
|
|
27
29
|
SpendableCAT,
|
|
28
30
|
construct_cat_puzzle,
|
|
29
31
|
match_cat_puzzle,
|
|
@@ -35,6 +37,7 @@ from chia.wallet.conditions import (
|
|
|
35
37
|
AssertCoinAnnouncement,
|
|
36
38
|
Condition,
|
|
37
39
|
ConditionValidTimes,
|
|
40
|
+
CreateCoin,
|
|
38
41
|
CreateCoinAnnouncement,
|
|
39
42
|
UnknownCondition,
|
|
40
43
|
parse_timelock_info,
|
|
@@ -42,13 +45,12 @@ from chia.wallet.conditions import (
|
|
|
42
45
|
from chia.wallet.derivation_record import DerivationRecord
|
|
43
46
|
from chia.wallet.lineage_proof import LineageProof
|
|
44
47
|
from chia.wallet.outer_puzzles import AssetType
|
|
45
|
-
from chia.wallet.payment import Payment
|
|
46
48
|
from chia.wallet.puzzle_drivers import PuzzleInfo
|
|
47
49
|
from chia.wallet.puzzles.tails import ALL_LIMITATIONS_PROGRAMS
|
|
48
50
|
from chia.wallet.transaction_record import TransactionRecord
|
|
49
51
|
from chia.wallet.uncurried_puzzle import uncurry_puzzle
|
|
50
52
|
from chia.wallet.util.compute_memos import compute_memos
|
|
51
|
-
from chia.wallet.util.curry_and_treehash import
|
|
53
|
+
from chia.wallet.util.curry_and_treehash import curry_and_treehash
|
|
52
54
|
from chia.wallet.util.transaction_type import TransactionType
|
|
53
55
|
from chia.wallet.util.wallet_sync_utils import fetch_coin_spend_for_coin_state
|
|
54
56
|
from chia.wallet.util.wallet_types import WalletType
|
|
@@ -62,12 +64,6 @@ from chia.wallet.wallet_spend_bundle import WalletSpendBundle
|
|
|
62
64
|
if TYPE_CHECKING:
|
|
63
65
|
from chia.wallet.wallet_state_manager import WalletStateManager
|
|
64
66
|
|
|
65
|
-
# This should probably not live in this file but it's for experimental right now
|
|
66
|
-
|
|
67
|
-
CAT_MOD_HASH = CAT_MOD.get_tree_hash()
|
|
68
|
-
CAT_MOD_HASH_HASH = Program.to(CAT_MOD_HASH).get_tree_hash()
|
|
69
|
-
QUOTED_MOD_HASH = calculate_hash_of_quoted_mod_hash(CAT_MOD_HASH)
|
|
70
|
-
|
|
71
67
|
|
|
72
68
|
def not_ephemeral_additions(sp: WalletSpendBundle) -> list[Coin]:
|
|
73
69
|
removals: set[Coin] = set()
|
|
@@ -433,7 +429,9 @@ class CATWallet:
|
|
|
433
429
|
def puzzle_hash_for_pk(self, pubkey: G1Element) -> bytes32:
|
|
434
430
|
inner_puzzle_hash = self.standard_wallet.puzzle_hash_for_pk(pubkey)
|
|
435
431
|
limitations_program_hash_hash = Program.to(self.cat_info.limitations_program_hash).get_tree_hash()
|
|
436
|
-
return curry_and_treehash(
|
|
432
|
+
return curry_and_treehash(
|
|
433
|
+
QUOTED_CAT_MOD_HASH, CAT_MOD_HASH_HASH, limitations_program_hash_hash, inner_puzzle_hash
|
|
434
|
+
)
|
|
437
435
|
|
|
438
436
|
async def get_cat_puzzle_hash(self, new: bool) -> bytes32:
|
|
439
437
|
if new:
|
|
@@ -567,8 +565,8 @@ class CATWallet:
|
|
|
567
565
|
)
|
|
568
566
|
origin_id = next(iter(chia_coins)).name()
|
|
569
567
|
await self.standard_wallet.generate_signed_transaction(
|
|
570
|
-
|
|
571
|
-
|
|
568
|
+
[],
|
|
569
|
+
[],
|
|
572
570
|
inner_action_scope,
|
|
573
571
|
fee=uint64(fee - amount_to_claim),
|
|
574
572
|
coins=chia_coins,
|
|
@@ -584,8 +582,8 @@ class CATWallet:
|
|
|
584
582
|
origin_id = next(iter(chia_coins)).name()
|
|
585
583
|
selected_amount = sum(c.amount for c in chia_coins)
|
|
586
584
|
await self.standard_wallet.generate_signed_transaction(
|
|
587
|
-
uint64(selected_amount + amount_to_claim - fee),
|
|
588
|
-
(await self.standard_wallet.get_puzzle_hash(not action_scope.config.tx_config.reuse_puzhash)),
|
|
585
|
+
[uint64(selected_amount + amount_to_claim - fee)],
|
|
586
|
+
[(await self.standard_wallet.get_puzzle_hash(not action_scope.config.tx_config.reuse_puzhash))],
|
|
589
587
|
inner_action_scope,
|
|
590
588
|
coins=chia_coins,
|
|
591
589
|
negative_change_allowed=True,
|
|
@@ -613,7 +611,7 @@ class CATWallet:
|
|
|
613
611
|
|
|
614
612
|
async def generate_unsigned_spendbundle(
|
|
615
613
|
self,
|
|
616
|
-
payments: list[
|
|
614
|
+
payments: list[CreateCoin],
|
|
617
615
|
action_scope: WalletActionScope,
|
|
618
616
|
fee: uint64 = uint64(0),
|
|
619
617
|
cat_discrepancy: Optional[tuple[int, Program, Program]] = None, # (extra_delta, tail_reveal, tail_solution)
|
|
@@ -663,7 +661,7 @@ class CATWallet:
|
|
|
663
661
|
break
|
|
664
662
|
else:
|
|
665
663
|
change_puzhash = await self.standard_wallet.get_puzzle_hash(new=True)
|
|
666
|
-
primaries.append(
|
|
664
|
+
primaries.append(CreateCoin(change_puzhash, uint64(change), [change_puzhash]))
|
|
667
665
|
|
|
668
666
|
# Loop through the coins we've selected and gather the information we need to spend them
|
|
669
667
|
spendable_cat_list = []
|
|
@@ -763,7 +761,7 @@ class CATWallet:
|
|
|
763
761
|
for amount, puzhash, memo_list in zip(amounts, puzzle_hashes, memos):
|
|
764
762
|
memos_with_hint: list[bytes] = [puzhash]
|
|
765
763
|
memos_with_hint.extend(memo_list)
|
|
766
|
-
payments.append(
|
|
764
|
+
payments.append(CreateCoin(puzhash, amount, memos_with_hint))
|
|
767
765
|
|
|
768
766
|
payment_sum = sum(p.amount for p in payments)
|
|
769
767
|
spend_bundle = await self.generate_unsigned_spendbundle(
|
|
@@ -3,7 +3,8 @@ from __future__ import annotations
|
|
|
3
3
|
import logging
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
|
-
from
|
|
6
|
+
from chia_rs.sized_bytes import bytes32
|
|
7
|
+
|
|
7
8
|
from chia.util.db_wrapper import DBWrapper2
|
|
8
9
|
from chia.wallet.lineage_proof import LineageProof
|
|
9
10
|
|
chia/wallet/coin_selection.py
CHANGED
|
@@ -4,9 +4,10 @@ import logging
|
|
|
4
4
|
import random
|
|
5
5
|
from typing import Optional
|
|
6
6
|
|
|
7
|
+
from chia_rs.sized_bytes import bytes32
|
|
8
|
+
from chia_rs.sized_ints import uint64, uint128
|
|
9
|
+
|
|
7
10
|
from chia.types.blockchain_format.coin import Coin
|
|
8
|
-
from chia.types.blockchain_format.sized_bytes import bytes32
|
|
9
|
-
from chia.util.ints import uint64, uint128
|
|
10
11
|
from chia.wallet.util.tx_config import CoinSelectionConfig
|
|
11
12
|
from chia.wallet.wallet_coin_record import WalletCoinRecord
|
|
12
13
|
|
|
@@ -58,10 +59,9 @@ async def select_coins(
|
|
|
58
59
|
f"Transaction for {amount} is greater than max spendable balance in a block of {sum_spendable_coins}. "
|
|
59
60
|
"There may be other transactions pending or our minimum coin amount is too high."
|
|
60
61
|
)
|
|
61
|
-
if amount == 0 and
|
|
62
|
+
if amount == 0 and len(spendable_coins) == 0:
|
|
62
63
|
raise ValueError(
|
|
63
|
-
"No coins available to spend, you can not create a coin with an amount of 0,"
|
|
64
|
-
" without already having coins."
|
|
64
|
+
"No coins available to spend, you can not create a coin with an amount of 0, without already having coins."
|
|
65
65
|
)
|
|
66
66
|
|
|
67
67
|
# Sort the coins by amount
|