chia-blockchain 2.5.7rc4__py3-none-any.whl → 2.5.8rc1__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 +8 -4
- chia/_tests/blockchain/blockchain_test_utils.py +6 -8
- chia/_tests/blockchain/test_augmented_chain.py +4 -4
- chia/_tests/blockchain/test_blockchain.py +165 -190
- chia/_tests/blockchain/test_build_chains.py +2 -4
- chia/_tests/blockchain/test_get_block_generator.py +2 -3
- chia/_tests/clvm/coin_store.py +4 -7
- chia/_tests/clvm/test_clvm_step.py +4 -4
- chia/_tests/clvm/test_puzzle_compression.py +2 -1
- chia/_tests/clvm/test_puzzle_drivers.py +2 -2
- chia/_tests/clvm/test_singletons.py +2 -4
- chia/_tests/clvm/test_spend_sim.py +2 -2
- chia/_tests/cmds/cmd_test_utils.py +27 -45
- chia/_tests/cmds/test_cmd_framework.py +6 -6
- chia/_tests/cmds/test_daemon.py +3 -3
- chia/_tests/cmds/test_show.py +4 -4
- chia/_tests/cmds/test_tx_config_args.py +1 -2
- chia/_tests/cmds/testing_classes.py +4 -5
- chia/_tests/cmds/wallet/test_did.py +24 -27
- chia/_tests/cmds/wallet/test_nft.py +12 -10
- chia/_tests/cmds/wallet/test_vcs.py +11 -12
- chia/_tests/cmds/wallet/test_wallet.py +134 -89
- chia/_tests/conftest.py +59 -30
- chia/_tests/connection_utils.py +2 -2
- chia/_tests/core/cmds/test_beta.py +4 -4
- chia/_tests/core/cmds/test_keys.py +2 -3
- chia/_tests/core/cmds/test_wallet.py +15 -15
- chia/_tests/core/consensus/test_pot_iterations.py +19 -73
- chia/_tests/core/custom_types/test_proof_of_space.py +124 -98
- chia/_tests/core/daemon/test_daemon.py +11 -11
- chia/_tests/core/data_layer/conftest.py +2 -2
- chia/_tests/core/data_layer/test_data_rpc.py +28 -14
- chia/_tests/core/data_layer/test_data_store.py +10 -10
- chia/_tests/core/data_layer/util.py +11 -11
- chia/_tests/core/farmer/test_farmer_api.py +2 -4
- chia/_tests/core/full_node/full_sync/test_full_sync.py +8 -7
- chia/_tests/core/full_node/stores/test_block_store.py +5 -4
- chia/_tests/core/full_node/stores/test_coin_store.py +5 -11
- chia/_tests/core/full_node/stores/test_full_node_store.py +8 -8
- chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
- chia/_tests/core/full_node/test_block_height_map.py +3 -4
- chia/_tests/core/full_node/test_conditions.py +21 -23
- chia/_tests/core/full_node/test_full_node.py +225 -62
- chia/_tests/core/full_node/test_hint_management.py +2 -4
- chia/_tests/core/full_node/test_performance.py +0 -1
- chia/_tests/core/full_node/test_prev_tx_block.py +88 -11
- chia/_tests/core/full_node/test_transactions.py +1 -2
- chia/_tests/core/full_node/test_tx_processing_queue.py +109 -25
- chia/_tests/core/mempool/test_mempool.py +29 -37
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +39 -39
- chia/_tests/core/mempool/test_mempool_fee_protocol.py +2 -6
- chia/_tests/core/mempool/test_mempool_manager.py +963 -839
- chia/_tests/core/mempool/test_singleton_fast_forward.py +6 -6
- chia/_tests/core/server/serve.py +7 -7
- chia/_tests/core/server/test_dos.py +1 -2
- chia/_tests/core/server/test_event_loop.py +12 -4
- chia/_tests/core/server/test_loop.py +7 -8
- chia/_tests/core/server/test_rate_limits.py +9 -8
- chia/_tests/core/server/test_server.py +61 -1
- chia/_tests/core/services/test_services.py +2 -2
- chia/_tests/core/ssl/test_ssl.py +2 -2
- chia/_tests/core/test_cost_calculation.py +2 -6
- chia/_tests/core/test_farmer_harvester_rpc.py +3 -5
- chia/_tests/core/test_filter.py +0 -1
- chia/_tests/core/test_full_node_rpc.py +2 -2
- chia/_tests/core/test_merkle_set.py +1 -2
- chia/_tests/core/test_seeder.py +4 -4
- chia/_tests/core/util/test_config.py +4 -4
- chia/_tests/core/util/test_jsonify.py +2 -2
- chia/_tests/core/util/test_keychain.py +3 -3
- chia/_tests/core/util/test_lockfile.py +2 -1
- chia/_tests/core/util/test_log_exceptions.py +1 -2
- chia/_tests/core/util/test_streamable.py +17 -17
- chia/_tests/db/test_db_wrapper.py +3 -2
- chia/_tests/environments/wallet.py +14 -14
- chia/_tests/ether.py +4 -3
- chia/_tests/farmer_harvester/test_farmer.py +41 -24
- chia/_tests/farmer_harvester/test_farmer_harvester.py +50 -17
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +27 -27
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +21 -22
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +18 -18
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +11 -9
- chia/_tests/harvester/test_harvester_api.py +11 -4
- chia/_tests/plot_sync/test_plot_sync.py +13 -11
- chia/_tests/plot_sync/test_receiver.py +11 -10
- chia/_tests/plot_sync/test_sync_simulated.py +2 -2
- chia/_tests/plot_sync/util.py +1 -2
- chia/_tests/plotting/test_plot_manager.py +7 -6
- chia/_tests/plotting/test_prover.py +30 -38
- chia/_tests/pools/test_pool_cmdline.py +4 -6
- chia/_tests/pools/test_pool_rpc.py +203 -61
- chia/_tests/pools/test_pool_wallet.py +3 -3
- chia/_tests/pools/test_wallet_pool_store.py +1 -4
- chia/_tests/process_junit.py +2 -2
- chia/_tests/rpc/test_rpc_client.py +4 -4
- chia/_tests/rpc/test_rpc_server.py +3 -3
- chia/_tests/simulation/test_simulation.py +12 -25
- chia/_tests/solver/test_solver_service.py +13 -4
- chia/_tests/testconfig.py +2 -2
- chia/_tests/timelord/test_new_peak.py +22 -11
- chia/_tests/tools/test_run_block.py +0 -2
- chia/_tests/tools/test_virtual_project.py +2 -1
- chia/_tests/util/benchmarks.py +1 -0
- chia/_tests/util/blockchain.py +38 -36
- chia/_tests/util/blockchain_mock.py +11 -11
- chia/_tests/util/build_network_protocol_files.py +2 -1
- chia/_tests/util/coin_store.py +2 -1
- chia/_tests/util/config.py +1 -1
- chia/_tests/util/db_connection.py +2 -3
- chia/_tests/util/full_sync.py +9 -11
- chia/_tests/util/gen_ssl_certs.py +4 -5
- chia/_tests/util/get_name_puzzle_conditions.py +2 -0
- chia/_tests/util/misc.py +24 -24
- chia/_tests/util/network_protocol_data.py +20 -3
- chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
- chia/_tests/util/protocol_messages_json.py +292 -3
- chia/_tests/util/setup_nodes.py +62 -47
- chia/_tests/util/spend_sim.py +57 -57
- chia/_tests/util/test_async_pool.py +2 -3
- chia/_tests/util/test_chia_version.py +1 -3
- chia/_tests/util/test_config.py +3 -3
- chia/_tests/util/test_full_block_utils.py +6 -3
- chia/_tests/util/test_limited_semaphore.py +1 -2
- chia/_tests/util/test_misc.py +2 -2
- chia/_tests/util/test_network.py +1 -2
- chia/_tests/util/test_priority_mutex.py +3 -3
- chia/_tests/util/test_recursive_replace.py +5 -6
- chia/_tests/util/test_replace_str_to_bytes.py +8 -10
- chia/_tests/util/test_testnet_overrides.py +3 -3
- chia/_tests/util/time_out_assert.py +2 -2
- chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +4 -6
- chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +2 -4
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +19 -13
- chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +13 -13
- chia/_tests/wallet/cat_wallet/test_trades.py +40 -38
- chia/_tests/wallet/clawback/test_clawback_lifecycle.py +2 -4
- chia/_tests/wallet/conftest.py +6 -6
- chia/_tests/wallet/db_wallet/test_db_graftroot.py +1 -1
- chia/_tests/wallet/db_wallet/test_dl_offers.py +34 -34
- chia/_tests/wallet/did_wallet/test_did.py +16 -6
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +21 -21
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +20 -6
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +19 -21
- chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +1 -2
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +121 -2
- chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +6 -9
- chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +44 -1
- chia/_tests/wallet/rpc/test_wallet_rpc.py +1672 -896
- chia/_tests/wallet/sync/test_wallet_sync.py +43 -47
- chia/_tests/wallet/test_clvm_streamable.py +2 -3
- chia/_tests/wallet/test_coin_management.py +2 -2
- chia/_tests/wallet/test_conditions.py +45 -51
- chia/_tests/wallet/test_debug_spend_bundle.py +2 -2
- chia/_tests/wallet/test_new_wallet_protocol.py +4 -6
- chia/_tests/wallet/test_notifications.py +14 -14
- chia/_tests/wallet/test_signer_protocol.py +5 -5
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +4 -3
- chia/_tests/wallet/test_transaction_store.py +20 -20
- chia/_tests/wallet/test_util.py +2 -2
- chia/_tests/wallet/test_wallet.py +380 -228
- chia/_tests/wallet/test_wallet_action_scope.py +4 -4
- chia/_tests/wallet/test_wallet_blockchain.py +12 -12
- chia/_tests/wallet/test_wallet_coin_store.py +3 -4
- chia/_tests/wallet/test_wallet_node.py +14 -14
- chia/_tests/wallet/test_wallet_test_framework.py +2 -1
- chia/_tests/wallet/test_wallet_utils.py +2 -3
- chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -5
- chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +14 -15
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +29 -24
- chia/_tests/wallet/wallet_block_tools.py +12 -11
- chia/_tests/weight_proof/config.py +1 -0
- chia/_tests/weight_proof/test_weight_proof.py +5 -4
- chia/apis/__init__.py +21 -0
- chia/apis/farmer_stub.py +102 -0
- chia/apis/full_node_stub.py +372 -0
- chia/apis/harvester_stub.py +57 -0
- chia/apis/introducer_stub.py +35 -0
- chia/apis/solver_stub.py +30 -0
- chia/apis/stub_protocol_registry.py +21 -0
- chia/apis/timelord_stub.py +39 -0
- chia/apis/wallet_stub.py +161 -0
- chia/cmds/beta.py +3 -4
- chia/cmds/beta_funcs.py +4 -3
- chia/cmds/check_wallet_db.py +4 -4
- chia/cmds/chia.py +1 -2
- chia/cmds/cmd_classes.py +11 -13
- chia/cmds/cmd_helpers.py +11 -11
- chia/cmds/cmds_util.py +15 -15
- chia/cmds/coin_funcs.py +6 -7
- chia/cmds/coins.py +2 -3
- chia/cmds/configure.py +1 -2
- chia/cmds/data.py +42 -42
- chia/cmds/data_funcs.py +81 -81
- chia/cmds/db.py +4 -5
- chia/cmds/db_backup_func.py +2 -2
- chia/cmds/db_upgrade_func.py +3 -3
- chia/cmds/db_validate_func.py +2 -2
- chia/cmds/dev/data.py +4 -4
- chia/cmds/dev/gh.py +5 -5
- chia/cmds/dev/installers.py +2 -3
- chia/cmds/dev/mempool.py +3 -4
- chia/cmds/dev/mempool_funcs.py +4 -4
- chia/cmds/dev/sim.py +8 -8
- chia/cmds/dump_keyring.py +3 -3
- chia/cmds/farm.py +6 -8
- chia/cmds/farm_funcs.py +25 -24
- chia/cmds/init_funcs.py +4 -4
- chia/cmds/keys.py +16 -18
- chia/cmds/keys_funcs.py +36 -36
- chia/cmds/netspace.py +1 -3
- chia/cmds/netspace_funcs.py +1 -2
- chia/cmds/options.py +3 -2
- chia/cmds/param_types.py +17 -16
- chia/cmds/passphrase.py +6 -7
- chia/cmds/passphrase_funcs.py +11 -13
- chia/cmds/peer.py +1 -3
- chia/cmds/peer_funcs.py +3 -3
- chia/cmds/plotnft.py +6 -7
- chia/cmds/plotnft_funcs.py +37 -26
- chia/cmds/rpc.py +3 -3
- chia/cmds/show.py +3 -5
- chia/cmds/show_funcs.py +9 -9
- chia/cmds/sim_funcs.py +25 -26
- chia/cmds/solver.py +1 -3
- chia/cmds/solver_funcs.py +1 -2
- chia/cmds/start_funcs.py +2 -2
- chia/cmds/wallet.py +76 -81
- chia/cmds/wallet_funcs.py +206 -177
- chia/consensus/augmented_chain.py +6 -6
- chia/consensus/block_body_validation.py +19 -15
- chia/consensus/block_creation.py +25 -21
- chia/consensus/block_header_validation.py +27 -13
- chia/consensus/block_height_map.py +3 -6
- chia/consensus/block_height_map_protocol.py +2 -2
- chia/consensus/block_record.py +2 -4
- chia/consensus/blockchain.py +58 -40
- chia/consensus/blockchain_interface.py +7 -7
- chia/consensus/coin_store_protocol.py +5 -6
- chia/consensus/condition_tools.py +4 -4
- chia/consensus/cost_calculator.py +2 -3
- chia/consensus/default_constants.py +16 -13
- chia/consensus/deficit.py +1 -3
- chia/consensus/difficulty_adjustment.py +3 -5
- chia/consensus/find_fork_point.py +2 -4
- chia/consensus/full_block_to_block_record.py +11 -13
- chia/consensus/generator_tools.py +2 -3
- chia/consensus/get_block_challenge.py +42 -26
- chia/consensus/get_block_generator.py +2 -3
- chia/consensus/make_sub_epoch_summary.py +8 -7
- chia/consensus/multiprocess_validation.py +31 -20
- chia/consensus/pos_quality.py +6 -23
- chia/consensus/pot_iterations.py +17 -44
- chia/consensus/signage_point.py +4 -5
- chia/consensus/vdf_info_computation.py +2 -4
- chia/daemon/client.py +8 -8
- chia/daemon/keychain_proxy.py +31 -37
- chia/daemon/server.py +32 -33
- chia/daemon/windows_signal.py +4 -3
- chia/data_layer/data_layer.py +86 -77
- chia/data_layer/data_layer_rpc_api.py +9 -9
- chia/data_layer/data_layer_rpc_client.py +13 -15
- chia/data_layer/data_layer_server.py +3 -3
- chia/data_layer/data_layer_util.py +14 -14
- chia/data_layer/data_layer_wallet.py +94 -101
- chia/data_layer/data_store.py +50 -50
- chia/data_layer/dl_wallet_store.py +9 -12
- chia/data_layer/download_data.py +8 -9
- chia/data_layer/s3_plugin_service.py +5 -9
- chia/data_layer/start_data_layer.py +5 -5
- chia/farmer/farmer.py +31 -31
- chia/farmer/farmer_api.py +45 -33
- chia/farmer/farmer_rpc_api.py +5 -4
- chia/farmer/farmer_rpc_client.py +6 -6
- chia/farmer/start_farmer.py +6 -6
- chia/full_node/block_store.py +13 -16
- chia/full_node/check_fork_next_block.py +1 -2
- chia/full_node/coin_store.py +15 -16
- chia/full_node/eligible_coin_spends.py +3 -3
- chia/full_node/fee_estimate_store.py +2 -3
- chia/full_node/fee_tracker.py +1 -2
- chia/full_node/full_block_utils.py +4 -4
- chia/full_node/full_node.py +238 -224
- chia/full_node/full_node_api.py +193 -150
- chia/full_node/full_node_rpc_api.py +53 -31
- chia/full_node/full_node_rpc_client.py +18 -19
- chia/full_node/full_node_store.py +45 -43
- chia/full_node/hint_management.py +2 -2
- chia/full_node/mempool.py +17 -19
- chia/full_node/mempool_manager.py +89 -42
- chia/full_node/pending_tx_cache.py +2 -3
- chia/full_node/start_full_node.py +5 -5
- chia/full_node/sync_store.py +3 -4
- chia/full_node/tx_processing_queue.py +34 -13
- chia/full_node/weight_proof.py +61 -48
- chia/harvester/harvester.py +25 -24
- chia/harvester/harvester_api.py +61 -38
- chia/harvester/harvester_rpc_api.py +10 -10
- chia/harvester/start_harvester.py +4 -4
- chia/introducer/introducer.py +3 -3
- chia/introducer/introducer_api.py +6 -4
- chia/introducer/start_introducer.py +4 -4
- chia/legacy/keyring.py +3 -3
- chia/plot_sync/delta.py +1 -2
- chia/plot_sync/receiver.py +20 -17
- chia/plot_sync/sender.py +15 -10
- chia/plotters/bladebit.py +7 -7
- chia/plotters/chiapos.py +2 -2
- chia/plotters/madmax.py +4 -4
- chia/plotters/plotters.py +4 -4
- chia/plotters/plotters_util.py +3 -3
- chia/plotting/cache.py +20 -14
- chia/plotting/check_plots.py +26 -35
- chia/plotting/create_plots.py +22 -23
- chia/plotting/manager.py +21 -14
- chia/plotting/prover.py +59 -42
- chia/plotting/util.py +16 -16
- chia/pools/pool_config.py +2 -1
- chia/pools/pool_puzzles.py +11 -12
- chia/pools/pool_wallet.py +34 -57
- chia/pools/pool_wallet_info.py +39 -10
- chia/protocols/farmer_protocol.py +8 -9
- chia/protocols/fee_estimate.py +3 -4
- chia/protocols/full_node_protocol.py +3 -4
- chia/protocols/harvester_protocol.py +27 -15
- chia/protocols/outbound_message.py +3 -3
- chia/protocols/pool_protocol.py +8 -9
- chia/protocols/shared_protocol.py +1 -2
- chia/protocols/solver_protocol.py +9 -2
- chia/protocols/timelord_protocol.py +4 -7
- chia/protocols/wallet_protocol.py +11 -12
- chia/rpc/rpc_client.py +9 -9
- chia/rpc/rpc_server.py +17 -17
- chia/rpc/util.py +2 -2
- chia/seeder/crawler.py +8 -8
- chia/seeder/crawler_api.py +21 -27
- chia/seeder/crawler_rpc_api.py +2 -2
- chia/seeder/dns_server.py +21 -21
- chia/seeder/start_crawler.py +4 -4
- chia/server/address_manager.py +15 -16
- chia/server/api_protocol.py +11 -11
- chia/server/chia_policy.py +46 -26
- chia/server/introducer_peers.py +2 -3
- chia/server/node_discovery.py +19 -19
- chia/server/rate_limit_numbers.py +4 -5
- chia/server/rate_limits.py +4 -4
- chia/server/resolve_peer_info.py +4 -4
- chia/server/server.py +49 -52
- chia/server/signal_handlers.py +6 -6
- chia/server/start_service.py +17 -17
- chia/server/upnp.py +4 -6
- chia/server/ws_connection.py +52 -37
- chia/simulator/add_blocks_in_batches.py +1 -3
- chia/simulator/block_tools.py +312 -200
- chia/simulator/full_node_simulator.py +56 -35
- chia/simulator/keyring.py +2 -3
- chia/simulator/setup_services.py +15 -15
- chia/simulator/simulator_full_node_rpc_api.py +1 -2
- chia/simulator/simulator_full_node_rpc_client.py +1 -2
- chia/simulator/simulator_protocol.py +1 -2
- chia/simulator/simulator_test_tools.py +3 -3
- chia/simulator/start_simulator.py +7 -7
- chia/simulator/wallet_tools.py +10 -10
- chia/solver/solver.py +10 -10
- chia/solver/solver_api.py +10 -8
- chia/solver/solver_rpc_api.py +2 -2
- chia/solver/start_solver.py +4 -4
- chia/ssl/cacert.pem +148 -90
- chia/ssl/chia_ca.crt +14 -10
- chia/ssl/chia_ca_old.crt +19 -0
- chia/ssl/create_ssl.py +4 -4
- chia/ssl/renewedselfsignedca.conf +4 -0
- chia/ssl/ssl_check.py +1 -2
- chia/timelord/iters_from_block.py +1 -4
- chia/timelord/start_timelord.py +4 -4
- chia/timelord/timelord.py +44 -40
- chia/timelord/timelord_api.py +6 -4
- chia/timelord/timelord_launcher.py +2 -2
- chia/timelord/timelord_rpc_api.py +2 -2
- chia/timelord/timelord_state.py +11 -12
- chia/types/block_protocol.py +1 -3
- chia/types/blockchain_format/coin.py +1 -3
- chia/types/blockchain_format/program.py +11 -8
- chia/types/blockchain_format/proof_of_space.py +123 -76
- chia/types/blockchain_format/tree_hash.py +3 -3
- chia/types/blockchain_format/vdf.py +1 -2
- chia/types/coin_spend.py +3 -3
- chia/types/mempool_item.py +5 -5
- chia/types/mempool_submission_status.py +2 -3
- chia/types/peer_info.py +1 -2
- chia/types/unfinished_header_block.py +3 -4
- chia/types/validation_state.py +1 -2
- chia/util/action_scope.py +8 -8
- chia/util/async_pool.py +5 -5
- chia/util/bech32m.py +1 -2
- chia/util/beta_metrics.py +2 -2
- chia/util/block_cache.py +4 -4
- chia/util/chia_logging.py +2 -2
- chia/util/chia_version.py +1 -2
- chia/util/config.py +15 -16
- chia/util/db_wrapper.py +26 -27
- chia/util/default_root.py +1 -2
- chia/util/errors.py +3 -3
- chia/util/file_keyring.py +14 -14
- chia/util/files.py +2 -3
- chia/util/hash.py +4 -4
- chia/util/initial-config.yaml +3 -5
- chia/util/inline_executor.py +2 -1
- chia/util/ip_address.py +1 -2
- chia/util/keychain.py +25 -27
- chia/util/keyring_wrapper.py +18 -19
- chia/util/lock.py +3 -4
- chia/util/log_exceptions.py +1 -2
- chia/util/lru_cache.py +2 -2
- chia/util/network.py +6 -6
- chia/util/path.py +2 -3
- chia/util/priority_mutex.py +2 -2
- chia/util/profiler.py +1 -2
- chia/util/safe_cancel_task.py +1 -2
- chia/util/streamable.py +22 -8
- chia/util/task_referencer.py +1 -1
- chia/util/timing.py +3 -3
- chia/util/virtual_project_analysis.py +6 -5
- chia/util/ws_message.py +2 -2
- chia/wallet/cat_wallet/cat_info.py +3 -4
- chia/wallet/cat_wallet/cat_outer_puzzle.py +12 -11
- chia/wallet/cat_wallet/cat_utils.py +3 -4
- chia/wallet/cat_wallet/cat_wallet.py +61 -83
- chia/wallet/cat_wallet/lineage_store.py +3 -4
- chia/wallet/cat_wallet/r_cat_wallet.py +19 -22
- chia/wallet/coin_selection.py +9 -10
- chia/wallet/conditions.py +120 -105
- chia/wallet/db_wallet/db_wallet_puzzles.py +4 -5
- chia/wallet/derivation_record.py +1 -2
- chia/wallet/derive_keys.py +2 -4
- chia/wallet/did_wallet/did_info.py +10 -11
- chia/wallet/did_wallet/did_wallet.py +36 -82
- chia/wallet/did_wallet/did_wallet_puzzles.py +7 -8
- chia/wallet/driver_protocol.py +5 -7
- chia/wallet/lineage_proof.py +4 -4
- chia/wallet/nft_wallet/metadata_outer_puzzle.py +11 -11
- chia/wallet/nft_wallet/nft_info.py +8 -9
- chia/wallet/nft_wallet/nft_puzzle_utils.py +8 -8
- chia/wallet/nft_wallet/nft_wallet.py +79 -116
- chia/wallet/nft_wallet/ownership_outer_puzzle.py +14 -14
- chia/wallet/nft_wallet/singleton_outer_puzzle.py +12 -11
- chia/wallet/nft_wallet/transfer_program_puzzle.py +11 -11
- chia/wallet/nft_wallet/uncurry_nft.py +10 -11
- chia/wallet/notification_manager.py +3 -3
- chia/wallet/notification_store.py +44 -61
- chia/wallet/outer_puzzles.py +6 -7
- chia/wallet/puzzle_drivers.py +34 -6
- chia/wallet/puzzles/clawback/drivers.py +6 -6
- chia/wallet/puzzles/deployed_puzzle_hashes.json +1 -54
- chia/wallet/puzzles/load_clvm.py +1 -1
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +1 -2
- chia/wallet/puzzles/singleton_top_layer.py +2 -3
- chia/wallet/puzzles/singleton_top_layer_v1_1.py +3 -4
- chia/wallet/puzzles/tails.py +3 -3
- chia/wallet/singleton.py +5 -7
- chia/wallet/singleton_record.py +3 -3
- chia/wallet/start_wallet.py +5 -5
- chia/wallet/trade_manager.py +37 -58
- chia/wallet/trade_record.py +4 -4
- chia/wallet/trading/offer.py +59 -46
- chia/wallet/trading/trade_store.py +8 -9
- chia/wallet/transaction_record.py +8 -8
- chia/wallet/uncurried_puzzle.py +1 -2
- chia/wallet/util/clvm_streamable.py +12 -12
- chia/wallet/util/compute_hints.py +4 -5
- chia/wallet/util/curry_and_treehash.py +1 -2
- chia/wallet/util/merkle_tree.py +2 -3
- chia/wallet/util/peer_request_cache.py +8 -8
- chia/wallet/util/signing.py +85 -0
- chia/wallet/util/tx_config.py +15 -6
- chia/wallet/util/wallet_sync_utils.py +14 -16
- chia/wallet/util/wallet_types.py +2 -2
- chia/wallet/vc_wallet/cr_cat_drivers.py +10 -11
- chia/wallet/vc_wallet/cr_cat_wallet.py +50 -68
- chia/wallet/vc_wallet/cr_outer_puzzle.py +14 -13
- chia/wallet/vc_wallet/vc_drivers.py +27 -27
- chia/wallet/vc_wallet/vc_store.py +5 -6
- chia/wallet/vc_wallet/vc_wallet.py +33 -61
- chia/wallet/wallet.py +50 -78
- chia/wallet/wallet_action_scope.py +11 -11
- chia/wallet/wallet_blockchain.py +12 -12
- chia/wallet/wallet_coin_record.py +12 -6
- chia/wallet/wallet_coin_store.py +24 -25
- chia/wallet/wallet_interested_store.py +3 -5
- chia/wallet/wallet_nft_store.py +10 -11
- chia/wallet/wallet_node.py +53 -61
- chia/wallet/wallet_node_api.py +5 -3
- chia/wallet/wallet_protocol.py +23 -23
- chia/wallet/wallet_puzzle_store.py +15 -18
- chia/wallet/wallet_request_types.py +778 -114
- chia/wallet/wallet_retry_store.py +1 -3
- chia/wallet/wallet_rpc_api.py +572 -909
- chia/wallet/wallet_rpc_client.py +87 -279
- chia/wallet/wallet_singleton_store.py +3 -4
- chia/wallet/wallet_state_manager.py +332 -106
- chia/wallet/wallet_transaction_store.py +11 -14
- chia/wallet/wallet_user_store.py +4 -6
- chia/wallet/wallet_weight_proof_handler.py +4 -4
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/METADATA +6 -5
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/RECORD +507 -516
- chia/apis.py +0 -21
- chia/consensus/check_time_locks.py +0 -57
- chia/data_layer/puzzles/__init__.py +0 -0
- chia/data_layer/puzzles/graftroot_dl_offers.clsp +0 -100
- chia/data_layer/puzzles/graftroot_dl_offers.clsp.hex +0 -1
- chia/types/coin_record.py +0 -44
- chia/wallet/nft_wallet/puzzles/__init__.py +0 -0
- chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp +0 -6
- chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp +0 -6
- chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp +0 -30
- chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp +0 -28
- chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp +0 -100
- chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp +0 -78
- chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp.hex +0 -1
- chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp +0 -74
- chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp.hex +0 -1
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/entry_points.txt +0 -0
- {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/licenses/LICENSE +0 -0
chia/apis.py
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from chia.farmer.farmer_api import FarmerAPI
|
|
4
|
-
from chia.full_node.full_node_api import FullNodeAPI
|
|
5
|
-
from chia.harvester.harvester_api import HarvesterAPI
|
|
6
|
-
from chia.introducer.introducer_api import IntroducerAPI
|
|
7
|
-
from chia.protocols.outbound_message import NodeType
|
|
8
|
-
from chia.server.api_protocol import ApiProtocol
|
|
9
|
-
from chia.solver.solver_api import SolverAPI
|
|
10
|
-
from chia.timelord.timelord_api import TimelordAPI
|
|
11
|
-
from chia.wallet.wallet_node_api import WalletNodeAPI
|
|
12
|
-
|
|
13
|
-
ApiProtocolRegistry: dict[NodeType, type[ApiProtocol]] = {
|
|
14
|
-
NodeType.FULL_NODE: FullNodeAPI,
|
|
15
|
-
NodeType.WALLET: WalletNodeAPI,
|
|
16
|
-
NodeType.INTRODUCER: IntroducerAPI,
|
|
17
|
-
NodeType.TIMELORD: TimelordAPI,
|
|
18
|
-
NodeType.FARMER: FarmerAPI,
|
|
19
|
-
NodeType.HARVESTER: HarvesterAPI,
|
|
20
|
-
NodeType.SOLVER: SolverAPI,
|
|
21
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import Optional
|
|
4
|
-
|
|
5
|
-
from chia_rs import (
|
|
6
|
-
SpendBundleConditions,
|
|
7
|
-
)
|
|
8
|
-
from chia_rs.sized_bytes import bytes32
|
|
9
|
-
from chia_rs.sized_ints import uint32, uint64
|
|
10
|
-
|
|
11
|
-
from chia.types.coin_record import CoinRecord
|
|
12
|
-
from chia.util.errors import Err
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def check_time_locks(
|
|
16
|
-
removal_coin_records: dict[bytes32, CoinRecord],
|
|
17
|
-
bundle_conds: SpendBundleConditions,
|
|
18
|
-
prev_transaction_block_height: uint32,
|
|
19
|
-
timestamp: uint64,
|
|
20
|
-
) -> Optional[Err]:
|
|
21
|
-
"""
|
|
22
|
-
Check all time and height conditions against current state.
|
|
23
|
-
"""
|
|
24
|
-
|
|
25
|
-
if prev_transaction_block_height < bundle_conds.height_absolute:
|
|
26
|
-
return Err.ASSERT_HEIGHT_ABSOLUTE_FAILED
|
|
27
|
-
if timestamp < bundle_conds.seconds_absolute:
|
|
28
|
-
return Err.ASSERT_SECONDS_ABSOLUTE_FAILED
|
|
29
|
-
if bundle_conds.before_height_absolute is not None:
|
|
30
|
-
if prev_transaction_block_height >= bundle_conds.before_height_absolute:
|
|
31
|
-
return Err.ASSERT_BEFORE_HEIGHT_ABSOLUTE_FAILED
|
|
32
|
-
if bundle_conds.before_seconds_absolute is not None:
|
|
33
|
-
if timestamp >= bundle_conds.before_seconds_absolute:
|
|
34
|
-
return Err.ASSERT_BEFORE_SECONDS_ABSOLUTE_FAILED
|
|
35
|
-
|
|
36
|
-
for spend in bundle_conds.spends:
|
|
37
|
-
unspent = removal_coin_records[bytes32(spend.coin_id)]
|
|
38
|
-
if spend.birth_height is not None:
|
|
39
|
-
if spend.birth_height != unspent.confirmed_block_index:
|
|
40
|
-
return Err.ASSERT_MY_BIRTH_HEIGHT_FAILED
|
|
41
|
-
if spend.birth_seconds is not None:
|
|
42
|
-
if spend.birth_seconds != unspent.timestamp:
|
|
43
|
-
return Err.ASSERT_MY_BIRTH_SECONDS_FAILED
|
|
44
|
-
if spend.height_relative is not None:
|
|
45
|
-
if prev_transaction_block_height < unspent.confirmed_block_index + spend.height_relative:
|
|
46
|
-
return Err.ASSERT_HEIGHT_RELATIVE_FAILED
|
|
47
|
-
if spend.seconds_relative is not None:
|
|
48
|
-
if timestamp < unspent.timestamp + spend.seconds_relative:
|
|
49
|
-
return Err.ASSERT_SECONDS_RELATIVE_FAILED
|
|
50
|
-
if spend.before_height_relative is not None:
|
|
51
|
-
if prev_transaction_block_height >= unspent.confirmed_block_index + spend.before_height_relative:
|
|
52
|
-
return Err.ASSERT_BEFORE_HEIGHT_RELATIVE_FAILED
|
|
53
|
-
if spend.before_seconds_relative is not None:
|
|
54
|
-
if timestamp >= unspent.timestamp + spend.before_seconds_relative:
|
|
55
|
-
return Err.ASSERT_BEFORE_SECONDS_RELATIVE_FAILED
|
|
56
|
-
|
|
57
|
-
return None
|
|
File without changes
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
(mod
|
|
2
|
-
(
|
|
3
|
-
INNER_PUZZLE
|
|
4
|
-
SINGLETON_STRUCTS
|
|
5
|
-
METADATA_LAYER_HASHES
|
|
6
|
-
VALUES_TO_PROVE ; this is a list of BRANCHES in the merkle tree to prove (so as to prove a whole subtree)
|
|
7
|
-
proofs_of_inclusion
|
|
8
|
-
new_metadatas ; (root . etc)
|
|
9
|
-
new_metadata_updaters
|
|
10
|
-
new_inner_puzs
|
|
11
|
-
inner_solution
|
|
12
|
-
)
|
|
13
|
-
|
|
14
|
-
(include condition_codes.clib)
|
|
15
|
-
(include merkle_utils.clib)
|
|
16
|
-
(include curry-and-treehash.clib)
|
|
17
|
-
|
|
18
|
-
(defmacro assert items
|
|
19
|
-
(if (r items)
|
|
20
|
-
(list if (f items) (c assert (r items)) (q . (x)))
|
|
21
|
-
(f items)
|
|
22
|
-
)
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
(defun-inline construct_singleton (SINGLETON_STRUCT METADATA_LAYER_HASH new_metadata new_metadata_updater new_inner_puz)
|
|
26
|
-
(puzzle-hash-of-curried-function (f SINGLETON_STRUCT)
|
|
27
|
-
(puzzle-hash-of-curried-function METADATA_LAYER_HASH
|
|
28
|
-
new_inner_puz
|
|
29
|
-
(sha256tree new_metadata_updater)
|
|
30
|
-
(sha256tree new_metadata)
|
|
31
|
-
(sha256tree METADATA_LAYER_HASH)
|
|
32
|
-
)
|
|
33
|
-
(sha256tree SINGLETON_STRUCT)
|
|
34
|
-
)
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
(defun verify_proofs (new_root VALUES_TO_PROVE proofs_of_inclusion)
|
|
38
|
-
(if proofs_of_inclusion
|
|
39
|
-
(assert (= new_root (simplify_merkle_proof_after_leaf (f VALUES_TO_PROVE) (f proofs_of_inclusion)))
|
|
40
|
-
; then
|
|
41
|
-
(verify_proofs new_root (r VALUES_TO_PROVE) (r proofs_of_inclusion))
|
|
42
|
-
)
|
|
43
|
-
1
|
|
44
|
-
)
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
(defun loop_over_curried_params
|
|
48
|
-
(
|
|
49
|
-
SINGLETON_STRUCTS
|
|
50
|
-
METADATA_LAYER_HASHES
|
|
51
|
-
VALUES_TO_PROVE
|
|
52
|
-
proofs_of_inclusion
|
|
53
|
-
new_metadatas
|
|
54
|
-
new_metadata_updaters
|
|
55
|
-
new_inner_puzs
|
|
56
|
-
conditions
|
|
57
|
-
)
|
|
58
|
-
|
|
59
|
-
(if SINGLETON_STRUCTS
|
|
60
|
-
(assert (verify_proofs (f (f new_metadatas)) (f VALUES_TO_PROVE) (f proofs_of_inclusion))
|
|
61
|
-
; then
|
|
62
|
-
(loop_over_curried_params
|
|
63
|
-
(r SINGLETON_STRUCTS)
|
|
64
|
-
(r METADATA_LAYER_HASHES)
|
|
65
|
-
(r VALUES_TO_PROVE)
|
|
66
|
-
(r proofs_of_inclusion)
|
|
67
|
-
(r new_metadatas)
|
|
68
|
-
(r new_metadata_updaters)
|
|
69
|
-
(r new_inner_puzs)
|
|
70
|
-
(c
|
|
71
|
-
(list
|
|
72
|
-
ASSERT_PUZZLE_ANNOUNCEMENT
|
|
73
|
-
(sha256
|
|
74
|
-
(construct_singleton (f SINGLETON_STRUCTS) (f METADATA_LAYER_HASHES) (f new_metadatas) (f new_metadata_updaters) (f new_inner_puzs))
|
|
75
|
-
'$'
|
|
76
|
-
)
|
|
77
|
-
)
|
|
78
|
-
conditions
|
|
79
|
-
)
|
|
80
|
-
)
|
|
81
|
-
)
|
|
82
|
-
conditions
|
|
83
|
-
)
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
(if proofs_of_inclusion
|
|
87
|
-
(loop_over_curried_params
|
|
88
|
-
SINGLETON_STRUCTS
|
|
89
|
-
METADATA_LAYER_HASHES
|
|
90
|
-
VALUES_TO_PROVE
|
|
91
|
-
proofs_of_inclusion
|
|
92
|
-
new_metadatas
|
|
93
|
-
new_metadata_updaters
|
|
94
|
-
new_inner_puzs
|
|
95
|
-
(a INNER_PUZZLE inner_solution)
|
|
96
|
-
)
|
|
97
|
-
; You may want to run the puzzle without a raise to examine conditions so we'll make a "blessed" way to fail
|
|
98
|
-
(c (list ASSERT_MY_AMOUNT -1) (a INNER_PUZZLE inner_solution))
|
|
99
|
-
)
|
|
100
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff02ffff03ff5fffff01ff02ff3affff04ff02ffff04ff0bffff04ff17ffff04ff2fffff04ff5fffff04ff81bfffff04ff82017fffff04ff8202ffffff04ffff02ff05ff8205ff80ff8080808080808080808080ffff01ff04ffff04ff10ffff01ff81ff8080ffff02ff05ff8205ff808080ff0180ffff04ffff01ffffff49ff3f02ff04ff0101ffff02ffff02ffff03ff05ffff01ff02ff2affff04ff02ffff04ff0dffff04ffff0bff12ffff0bff2cff1480ffff0bff12ffff0bff12ffff0bff2cff3c80ff0980ffff0bff12ff0bffff0bff2cff8080808080ff8080808080ffff010b80ff0180ff02ffff03ff05ffff01ff02ffff03ffff02ff3effff04ff02ffff04ff82011fffff04ff27ffff04ff4fff808080808080ffff01ff02ff3affff04ff02ffff04ff0dffff04ff1bffff04ff37ffff04ff6fffff04ff81dfffff04ff8201bfffff04ff82037fffff04ffff04ffff04ff28ffff04ffff0bffff02ff26ffff04ff02ffff04ff11ffff04ffff02ff26ffff04ff02ffff04ff13ffff04ff82027fffff04ffff02ff36ffff04ff02ffff04ff82013fff80808080ffff04ffff02ff36ffff04ff02ffff04ff819fff80808080ffff04ffff02ff36ffff04ff02ffff04ff13ff80808080ff8080808080808080ffff04ffff02ff36ffff04ff02ffff04ff09ff80808080ff808080808080ffff012480ff808080ff8202ff80ff8080808080808080808080ffff01ff088080ff0180ffff018202ff80ff0180ffffff0bff12ffff0bff2cff3880ffff0bff12ffff0bff12ffff0bff2cff3c80ff0580ffff0bff12ffff02ff2affff04ff02ffff04ff07ffff04ffff0bff2cff2c80ff8080808080ffff0bff2cff8080808080ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff36ffff04ff02ffff04ff09ff80808080ffff02ff36ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ffff02ffff03ff1bffff01ff02ff2effff04ff02ffff04ffff02ffff03ffff18ffff0101ff1380ffff01ff0bffff0102ff2bff0580ffff01ff0bffff0102ff05ff2b8080ff0180ffff04ffff04ffff17ff13ffff0181ff80ff3b80ff8080808080ffff010580ff0180ff02ffff03ff17ffff01ff02ffff03ffff09ff05ffff02ff2effff04ff02ffff04ff13ffff04ff27ff808080808080ffff01ff02ff3effff04ff02ffff04ff05ffff04ff1bffff04ff37ff808080808080ffff01ff088080ff0180ffff01ff010180ff0180ff018080
|
chia/types/coin_record.py
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from dataclasses import dataclass
|
|
4
|
-
from typing import Optional
|
|
5
|
-
|
|
6
|
-
from chia_rs import CoinState
|
|
7
|
-
from chia_rs.sized_bytes import bytes32
|
|
8
|
-
from chia_rs.sized_ints import uint32, uint64
|
|
9
|
-
|
|
10
|
-
from chia.types.blockchain_format.coin import Coin
|
|
11
|
-
from chia.util.streamable import Streamable, streamable
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@streamable
|
|
15
|
-
@dataclass(frozen=True)
|
|
16
|
-
class CoinRecord(Streamable):
|
|
17
|
-
"""
|
|
18
|
-
These are values that correspond to a CoinName that are used
|
|
19
|
-
in keeping track of the unspent database.
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
coin: Coin
|
|
23
|
-
confirmed_block_index: uint32
|
|
24
|
-
spent_block_index: uint32
|
|
25
|
-
coinbase: bool
|
|
26
|
-
timestamp: uint64 # Timestamp of the block at height confirmed_block_index
|
|
27
|
-
|
|
28
|
-
@property
|
|
29
|
-
def spent(self) -> bool:
|
|
30
|
-
return self.spent_block_index > 0
|
|
31
|
-
|
|
32
|
-
@property
|
|
33
|
-
def name(self) -> bytes32:
|
|
34
|
-
return self.coin.name()
|
|
35
|
-
|
|
36
|
-
@property
|
|
37
|
-
def coin_state(self) -> CoinState:
|
|
38
|
-
spent_h = None
|
|
39
|
-
if self.spent:
|
|
40
|
-
spent_h = self.spent_block_index
|
|
41
|
-
confirmed_height: Optional[uint32] = self.confirmed_block_index
|
|
42
|
-
if self.confirmed_block_index == 0 and self.timestamp == 0:
|
|
43
|
-
confirmed_height = None
|
|
44
|
-
return CoinState(self.coin, spent_h, confirmed_height)
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ff04ffff04ff05ffff01ff01808080ffff04ffff04ff06ffff04ffff0bff0bff1780ff808080ff808080ffff04ffff01ff333cff018080
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ff04ffff04ff05ffff01ff01808080ffff04ffff04ff06ffff04ffff0bff0bff1780ff808080ff808080ffff04ffff01ff333cff018080
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
(mod (CURRENT_METADATA METADATA_UPDATER_PUZZLE_HASH (key . new_url))
|
|
2
|
-
|
|
3
|
-
; METADATA and METADATA_UPDATER_PUZZLE_HASH are passed in as truths from the layer above
|
|
4
|
-
; This program returns ((new_metadata new_metadata_updater_puzhash) conditions)
|
|
5
|
-
|
|
6
|
-
; Add uri to a field
|
|
7
|
-
(defun add_url (METADATA key new_url)
|
|
8
|
-
(if METADATA
|
|
9
|
-
(if (= (f (f METADATA)) key)
|
|
10
|
-
(c (c key (c new_url (r (f METADATA)))) (r METADATA))
|
|
11
|
-
(c (f METADATA) (add_url (r METADATA) key new_url))
|
|
12
|
-
)
|
|
13
|
-
()
|
|
14
|
-
)
|
|
15
|
-
)
|
|
16
|
-
; main
|
|
17
|
-
; returns ((new_metadata new_metadata_updater_puzhash) conditions)
|
|
18
|
-
(list
|
|
19
|
-
(list
|
|
20
|
-
(if (all key new_url)
|
|
21
|
-
(if (any (= key "mu") (= key "lu") (= key "u"))
|
|
22
|
-
(add_url CURRENT_METADATA key new_url)
|
|
23
|
-
CURRENT_METADATA
|
|
24
|
-
)
|
|
25
|
-
CURRENT_METADATA
|
|
26
|
-
)
|
|
27
|
-
METADATA_UPDATER_PUZZLE_HASH)
|
|
28
|
-
0
|
|
29
|
-
)
|
|
30
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ffff02ffff03ffff22ff27ff3780ffff01ff02ffff03ffff21ffff09ff27ffff01826d7580ffff09ff27ffff01826c7580ffff09ff27ffff01758080ffff01ff02ff02ffff04ff02ffff04ff05ffff04ff27ffff04ff37ff808080808080ffff010580ff0180ffff010580ff0180ffff04ff0bff808080ffff01ff808080ffff04ffff01ff02ffff03ff05ffff01ff02ffff03ffff09ff11ff0b80ffff01ff04ffff04ff0bffff04ff17ff198080ff0d80ffff01ff04ff09ffff02ff02ffff04ff02ffff04ff0dffff04ff0bffff04ff17ff8080808080808080ff0180ff8080ff0180ff018080
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
(mod (CURRENT_METADATA METADATA_UPDATER_PUZZLE_HASH solution)
|
|
2
|
-
|
|
3
|
-
; solution is (new_url new_metadata_updater_puzhash)
|
|
4
|
-
|
|
5
|
-
; METADATA and METADATA_UPDATER_PUZZLE_HASH are passed in as truths from the layer above
|
|
6
|
-
; This program returns ((new_metadata new_metadata_updater_puzhash) conditions)
|
|
7
|
-
|
|
8
|
-
; NOTE THIS PROGRAM IS FOR TESTING ONLY - USE IN DEPLOYMENT AT YOUR OWN PERIL
|
|
9
|
-
|
|
10
|
-
; once we find 'u' we don't need to continue looping
|
|
11
|
-
(defun add_url (METADATA new_url)
|
|
12
|
-
(if METADATA
|
|
13
|
-
(if (= (f (f METADATA)) 'u')
|
|
14
|
-
(c (c 'u' (c new_url (r (f METADATA)))) (r METADATA))
|
|
15
|
-
(c (f METADATA) (add_url (r METADATA) new_url))
|
|
16
|
-
)
|
|
17
|
-
()
|
|
18
|
-
)
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
(defun-inline assert_bytes32 (value)
|
|
22
|
-
(= (strlen value) 32)
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
; main
|
|
26
|
-
; returns ((new_metadata new_metadata_updater_puzhash) conditions)
|
|
27
|
-
(list (list (if (f solution) (add_url CURRENT_METADATA (f solution)) CURRENT_METADATA) (if (assert_bytes32 (f (r solution))) (f (r solution)) METADATA_UPDATER_PUZZLE_HASH)) 0)
|
|
28
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ffff02ffff03ff27ffff01ff02ff02ffff04ff02ffff04ff05ffff04ff27ff8080808080ffff010580ff0180ffff04ffff02ffff03ffff09ffff0dff5780ffff012080ffff0157ffff010b80ff0180ff808080ffff01ff808080ffff04ffff01ff02ffff03ff05ffff01ff02ffff03ffff09ff11ffff017580ffff01ff04ffff04ffff0175ffff04ff0bff198080ff0d80ffff01ff04ff09ffff02ff02ffff04ff02ffff04ff0dffff04ff0bff80808080808080ff0180ff8080ff0180ff018080
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
(mod (
|
|
2
|
-
NFT_OWNERSHIP_LAYER_MOD_HASH
|
|
3
|
-
CURRENT_OWNER
|
|
4
|
-
TRANSFER_PROGRAM
|
|
5
|
-
INNER_PUZZLE
|
|
6
|
-
inner_solution
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
(include condition_codes.clib)
|
|
10
|
-
(include curry-and-treehash.clib)
|
|
11
|
-
(include utility_macros.clib)
|
|
12
|
-
|
|
13
|
-
(defconstant NEW_OWNER_CONDITION -10)
|
|
14
|
-
(defconstant ANNOUNCEMENT_PREFIX 0xad4c) ; first 2 bytes of (sha256 "Ownership Layer")
|
|
15
|
-
|
|
16
|
-
(defun-inline nft_ownership_layer_puzzle_hash (NFT_OWNERSHIP_LAYER_MOD_HASH new_owner TRANSFER_PROGRAM inner_puzzle_hash)
|
|
17
|
-
(puzzle-hash-of-curried-function NFT_OWNERSHIP_LAYER_MOD_HASH
|
|
18
|
-
inner_puzzle_hash
|
|
19
|
-
(sha256tree TRANSFER_PROGRAM)
|
|
20
|
-
(sha256 ONE new_owner)
|
|
21
|
-
(sha256 ONE NFT_OWNERSHIP_LAYER_MOD_HASH)
|
|
22
|
-
)
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
(defun construct_end_conditions (NFT_OWNERSHIP_LAYER_MOD_HASH TRANSFER_PROGRAM odd_args (new_owner new_tp conditions))
|
|
26
|
-
(c
|
|
27
|
-
(c
|
|
28
|
-
CREATE_COIN
|
|
29
|
-
(c
|
|
30
|
-
(nft_ownership_layer_puzzle_hash NFT_OWNERSHIP_LAYER_MOD_HASH new_owner (if new_tp new_tp TRANSFER_PROGRAM) (f odd_args))
|
|
31
|
-
(r odd_args)
|
|
32
|
-
)
|
|
33
|
-
)
|
|
34
|
-
conditions
|
|
35
|
-
)
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
(defun wrap_odd_create_coins (NFT_OWNERSHIP_LAYER_MOD_HASH TRANSFER_PROGRAM CURRENT_OWNER all_conditions conditions odd_args tp_output)
|
|
39
|
-
(if conditions
|
|
40
|
-
(if (= (f (f conditions)) CREATE_COIN)
|
|
41
|
-
(if (= (logand (f (r (r (f conditions))))) ONE)
|
|
42
|
-
(assert (not odd_args)
|
|
43
|
-
; then
|
|
44
|
-
(wrap_odd_create_coins NFT_OWNERSHIP_LAYER_MOD_HASH TRANSFER_PROGRAM CURRENT_OWNER all_conditions (r conditions) (r (f conditions)) tp_output)
|
|
45
|
-
)
|
|
46
|
-
(c (f conditions) (wrap_odd_create_coins NFT_OWNERSHIP_LAYER_MOD_HASH TRANSFER_PROGRAM CURRENT_OWNER all_conditions (r conditions) odd_args tp_output))
|
|
47
|
-
)
|
|
48
|
-
(if (= (f (f conditions)) NEW_OWNER_CONDITION)
|
|
49
|
-
(assert (not tp_output)
|
|
50
|
-
(c
|
|
51
|
-
(list CREATE_PUZZLE_ANNOUNCEMENT (concat ANNOUNCEMENT_PREFIX (sha256tree (r (f conditions)))))
|
|
52
|
-
(wrap_odd_create_coins NFT_OWNERSHIP_LAYER_MOD_HASH TRANSFER_PROGRAM CURRENT_OWNER all_conditions (r conditions) odd_args (a TRANSFER_PROGRAM (list CURRENT_OWNER all_conditions (r (f conditions)))))
|
|
53
|
-
)
|
|
54
|
-
)
|
|
55
|
-
(if (= (f (f conditions)) CREATE_PUZZLE_ANNOUNCEMENT)
|
|
56
|
-
(assert (not (and
|
|
57
|
-
(= 34 (strlen (f (r (f conditions)))))
|
|
58
|
-
(= (substr (f (r (f conditions))) 0 2) ANNOUNCEMENT_PREFIX) ; lazy eval
|
|
59
|
-
))
|
|
60
|
-
; then
|
|
61
|
-
(c (f conditions) (wrap_odd_create_coins NFT_OWNERSHIP_LAYER_MOD_HASH TRANSFER_PROGRAM CURRENT_OWNER all_conditions (r conditions) odd_args tp_output))
|
|
62
|
-
)
|
|
63
|
-
(c (f conditions) (wrap_odd_create_coins NFT_OWNERSHIP_LAYER_MOD_HASH TRANSFER_PROGRAM CURRENT_OWNER all_conditions (r conditions) odd_args tp_output))
|
|
64
|
-
)
|
|
65
|
-
)
|
|
66
|
-
)
|
|
67
|
-
; odd_args is guaranteed to not be nil or else we'll have a path into atom error
|
|
68
|
-
(construct_end_conditions NFT_OWNERSHIP_LAYER_MOD_HASH TRANSFER_PROGRAM odd_args
|
|
69
|
-
(if tp_output
|
|
70
|
-
tp_output
|
|
71
|
-
(a TRANSFER_PROGRAM (list CURRENT_OWNER all_conditions ()))
|
|
72
|
-
)
|
|
73
|
-
)
|
|
74
|
-
)
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
(defun main (
|
|
78
|
-
NFT_OWNERSHIP_LAYER_MOD_HASH
|
|
79
|
-
TRANSFER_PROGRAM
|
|
80
|
-
CURRENT_OWNER
|
|
81
|
-
conditions
|
|
82
|
-
)
|
|
83
|
-
(wrap_odd_create_coins
|
|
84
|
-
NFT_OWNERSHIP_LAYER_MOD_HASH
|
|
85
|
-
TRANSFER_PROGRAM
|
|
86
|
-
CURRENT_OWNER
|
|
87
|
-
conditions
|
|
88
|
-
conditions
|
|
89
|
-
() ()
|
|
90
|
-
)
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
; main
|
|
94
|
-
(main
|
|
95
|
-
NFT_OWNERSHIP_LAYER_MOD_HASH
|
|
96
|
-
TRANSFER_PROGRAM
|
|
97
|
-
CURRENT_OWNER
|
|
98
|
-
(a INNER_PUZZLE inner_solution)
|
|
99
|
-
)
|
|
100
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff02ff26ffff04ff02ffff04ff05ffff04ff17ffff04ff0bffff04ffff02ff2fff5f80ff80808080808080ffff04ffff01ffffff82ad4cff0233ffff3e04ff81f601ffffff0102ffff02ffff03ff05ffff01ff02ff2affff04ff02ffff04ff0dffff04ffff0bff32ffff0bff3cff3480ffff0bff32ffff0bff32ffff0bff3cff2280ff0980ffff0bff32ff0bffff0bff3cff8080808080ff8080808080ffff010b80ff0180ff04ffff04ff38ffff04ffff02ff36ffff04ff02ffff04ff05ffff04ff27ffff04ffff02ff2effff04ff02ffff04ffff02ffff03ff81afffff0181afffff010b80ff0180ff80808080ffff04ffff0bff3cff4f80ffff04ffff0bff3cff0580ff8080808080808080ff378080ff82016f80ffffff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ff2fffff04ff2fffff01ff80ff808080808080808080ff0bff32ffff0bff3cff2880ffff0bff32ffff0bff32ffff0bff3cff2280ff0580ffff0bff32ffff02ff2affff04ff02ffff04ff07ffff04ffff0bff3cff3c80ff8080808080ffff0bff3cff8080808080ffff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff2effff04ff02ffff04ff09ff80808080ffff02ff2effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff02ffff03ff5fffff01ff02ffff03ffff09ff82011fff3880ffff01ff02ffff03ffff09ffff18ff82059f80ff3c80ffff01ff02ffff03ffff20ff81bf80ffff01ff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ff2fffff04ff81dfffff04ff82019fffff04ff82017fff80808080808080808080ffff01ff088080ff0180ffff01ff04ff819fffff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ff2fffff04ff81dfffff04ff81bfffff04ff82017fff808080808080808080808080ff0180ffff01ff02ffff03ffff09ff82011fff2c80ffff01ff02ffff03ffff20ff82017f80ffff01ff04ffff04ff24ffff04ffff0eff10ffff02ff2effff04ff02ffff04ff82019fff8080808080ff808080ffff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ff2fffff04ff81dfffff04ff81bfffff04ffff02ff0bffff04ff17ffff04ff2fffff04ff82019fff8080808080ff8080808080808080808080ffff01ff088080ff0180ffff01ff02ffff03ffff09ff82011fff2480ffff01ff02ffff03ffff20ffff02ffff03ffff09ffff0122ffff0dff82029f8080ffff01ff02ffff03ffff09ffff0cff82029fff80ffff010280ff1080ffff01ff0101ff8080ff0180ff8080ff018080ffff01ff04ff819fffff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ff2fffff04ff81dfffff04ff81bfffff04ff82017fff8080808080808080808080ffff01ff088080ff0180ffff01ff04ff819fffff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ff2fffff04ff81dfffff04ff81bfffff04ff82017fff808080808080808080808080ff018080ff018080ff0180ffff01ff02ff3affff04ff02ffff04ff05ffff04ff0bffff04ff81bfffff04ffff02ffff03ff82017fffff0182017fffff01ff02ff0bffff04ff17ffff04ff2fffff01ff808080808080ff0180ff8080808080808080ff0180ff018080
|
chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
(mod
|
|
2
|
-
(
|
|
3
|
-
SINGLETON_STRUCT
|
|
4
|
-
ROYALTY_ADDRESS
|
|
5
|
-
TRADE_PRICE_PERCENTAGE
|
|
6
|
-
Current_Owner ; Truth
|
|
7
|
-
conditions ; Truth
|
|
8
|
-
solution ; created from the NFT's inner puzzle - solution is (new_owner trade_prices_list new_did_inner_hash)
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
; This is a transfer program - which must return (new_owner, Optional[new_transfer_program], conditions)
|
|
12
|
-
|
|
13
|
-
(include condition_codes.clib)
|
|
14
|
-
(include curry-and-treehash.clib)
|
|
15
|
-
|
|
16
|
-
(defconstant TEN_THOUSAND 10000)
|
|
17
|
-
|
|
18
|
-
;; return the full puzzlehash for a singleton with the innerpuzzle curried in
|
|
19
|
-
; puzzle-hash-of-curried-function is imported from curry-and-treehash.clib
|
|
20
|
-
(defun-inline calculate_full_puzzle_hash (SINGLETON_STRUCT inner_puzzle_hash)
|
|
21
|
-
(puzzle-hash-of-curried-function (f SINGLETON_STRUCT)
|
|
22
|
-
inner_puzzle_hash
|
|
23
|
-
(sha256tree SINGLETON_STRUCT)
|
|
24
|
-
)
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
; Given a singleton ID, generate the singleton struct
|
|
28
|
-
(defun-inline get_singleton_struct (SINGLETON_STRUCT singleton_id)
|
|
29
|
-
(c (f SINGLETON_STRUCT) (c singleton_id (r (r SINGLETON_STRUCT))))
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
(defun-inline calculate_percentage (amount percentage)
|
|
33
|
-
(f (divmod (* amount percentage) TEN_THOUSAND))
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
; Loop of the trade prices list and either assert a puzzle announcement or generate xch
|
|
37
|
-
(defun parse_trade_prices_list (ROYALTY_ADDRESS TRADE_PRICE_PERCENTAGE trade_prices_list my_nft_id)
|
|
38
|
-
(if trade_prices_list
|
|
39
|
-
(c
|
|
40
|
-
(list
|
|
41
|
-
ASSERT_PUZZLE_ANNOUNCEMENT
|
|
42
|
-
(sha256
|
|
43
|
-
(f (r (f trade_prices_list)))
|
|
44
|
-
(sha256tree (c my_nft_id (list (list ROYALTY_ADDRESS (calculate_percentage (f (f trade_prices_list)) TRADE_PRICE_PERCENTAGE) (list ROYALTY_ADDRESS)))))
|
|
45
|
-
)
|
|
46
|
-
)
|
|
47
|
-
(parse_trade_prices_list ROYALTY_ADDRESS TRADE_PRICE_PERCENTAGE (r trade_prices_list) my_nft_id)
|
|
48
|
-
)
|
|
49
|
-
()
|
|
50
|
-
)
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
; main
|
|
54
|
-
; Returning (new_owner new_transfer_program conditions)
|
|
55
|
-
; solution is (new_owner trade_prices_list new_did_inner_hash)
|
|
56
|
-
(if solution
|
|
57
|
-
(list
|
|
58
|
-
(f solution)
|
|
59
|
-
0
|
|
60
|
-
(if (all (f solution) (not (= (f solution) Current_Owner)))
|
|
61
|
-
(c
|
|
62
|
-
(list
|
|
63
|
-
ASSERT_PUZZLE_ANNOUNCEMENT
|
|
64
|
-
(sha256
|
|
65
|
-
(calculate_full_puzzle_hash (get_singleton_struct SINGLETON_STRUCT (f solution)) (f (r (r solution))))
|
|
66
|
-
(f (r SINGLETON_STRUCT))
|
|
67
|
-
)
|
|
68
|
-
)
|
|
69
|
-
(parse_trade_prices_list ROYALTY_ADDRESS TRADE_PRICE_PERCENTAGE (f (r solution)) (f (r SINGLETON_STRUCT)))
|
|
70
|
-
)
|
|
71
|
-
(parse_trade_prices_list ROYALTY_ADDRESS TRADE_PRICE_PERCENTAGE (f (r solution)) (f (r SINGLETON_STRUCT)))
|
|
72
|
-
)
|
|
73
|
-
)
|
|
74
|
-
(list Current_Owner () ())
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
)
|
chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp.hex
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff02ffff03ff81bfffff01ff04ff82013fffff04ff80ffff04ffff02ffff03ffff22ff82013fffff20ffff09ff82013fff2f808080ffff01ff04ffff04ff10ffff04ffff0bffff02ff2effff04ff02ffff04ff09ffff04ff8205bfffff04ffff02ff3effff04ff02ffff04ffff04ff09ffff04ff82013fff1d8080ff80808080ff808080808080ff1580ff808080ffff02ff16ffff04ff02ffff04ff0bffff04ff17ffff04ff8202bfffff04ff15ff8080808080808080ffff01ff02ff16ffff04ff02ffff04ff0bffff04ff17ffff04ff8202bfffff04ff15ff8080808080808080ff0180ff80808080ffff01ff04ff2fffff01ff80ff80808080ff0180ffff04ffff01ffffff3f02ff04ff0101ffff822710ff02ff02ffff03ff05ffff01ff02ff3affff04ff02ffff04ff0dffff04ffff0bff2affff0bff2cff1480ffff0bff2affff0bff2affff0bff2cff3c80ff0980ffff0bff2aff0bffff0bff2cff8080808080ff8080808080ffff010b80ff0180ffff02ffff03ff17ffff01ff04ffff04ff10ffff04ffff0bff81a7ffff02ff3effff04ff02ffff04ffff04ff2fffff04ffff04ff05ffff04ffff05ffff14ffff12ff47ff0b80ff128080ffff04ffff04ff05ff8080ff80808080ff808080ff8080808080ff808080ffff02ff16ffff04ff02ffff04ff05ffff04ff0bffff04ff37ffff04ff2fff8080808080808080ff8080ff0180ffff0bff2affff0bff2cff1880ffff0bff2affff0bff2affff0bff2cff3c80ff0580ffff0bff2affff02ff3affff04ff02ffff04ff07ffff04ffff0bff2cff2c80ff8080808080ffff0bff2cff8080808080ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff3effff04ff02ffff04ff09ff80808080ffff02ff3effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
(mod (
|
|
2
|
-
NFT_STATE_LAYER_MOD_HASH
|
|
3
|
-
METADATA
|
|
4
|
-
METADATA_UPDATER_PUZZLE_HASH
|
|
5
|
-
INNER_PUZZLE
|
|
6
|
-
inner_solution
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
(include condition_codes.clib)
|
|
10
|
-
(include curry-and-treehash.clib)
|
|
11
|
-
(include utility_macros.clib)
|
|
12
|
-
|
|
13
|
-
(defun-inline nft_state_layer_puzzle_hash (NFT_STATE_LAYER_MOD_HASH METADATA METADATA_UPDATER_PUZZLE_HASH inner_puzzle_hash)
|
|
14
|
-
(puzzle-hash-of-curried-function NFT_STATE_LAYER_MOD_HASH
|
|
15
|
-
inner_puzzle_hash
|
|
16
|
-
(sha256 ONE METADATA_UPDATER_PUZZLE_HASH)
|
|
17
|
-
(sha256tree METADATA)
|
|
18
|
-
(sha256 ONE NFT_STATE_LAYER_MOD_HASH)
|
|
19
|
-
)
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
; this function does two things - it wraps the odd value create coins, and it also filters out all negative conditions
|
|
24
|
-
; odd_coin_params is (puzhash amount ...)
|
|
25
|
-
; new_metadata_info is ((METADATA METADATA_UPDATER_PUZZLE_HASH) conditions)
|
|
26
|
-
(defun wrap_odd_create_coins (NFT_STATE_LAYER_MOD_HASH conditions odd_coin_params new_metadata_info metadata_seen)
|
|
27
|
-
(if conditions
|
|
28
|
-
(if (= (f (f conditions)) CREATE_COIN)
|
|
29
|
-
(if (logand (f (r (r (f conditions)))) ONE)
|
|
30
|
-
(assert (not odd_coin_params)
|
|
31
|
-
(wrap_odd_create_coins NFT_STATE_LAYER_MOD_HASH (r conditions) (r (f conditions)) new_metadata_info metadata_seen)
|
|
32
|
-
)
|
|
33
|
-
(c (f conditions) (wrap_odd_create_coins NFT_STATE_LAYER_MOD_HASH (r conditions) odd_coin_params new_metadata_info metadata_seen))
|
|
34
|
-
)
|
|
35
|
-
(if (= (f (f conditions)) -24)
|
|
36
|
-
(wrap_odd_create_coins NFT_STATE_LAYER_MOD_HASH (r conditions) odd_coin_params
|
|
37
|
-
(assert (all
|
|
38
|
-
(= (sha256tree (f (r (f conditions)))) (f (r (f new_metadata_info))))
|
|
39
|
-
(not metadata_seen)
|
|
40
|
-
)
|
|
41
|
-
; then
|
|
42
|
-
(a (f (r (f conditions))) (list (f (f new_metadata_info)) (f (r (f new_metadata_info))) (f (r (r (f conditions))))))
|
|
43
|
-
)
|
|
44
|
-
ONE ; the metadata update has been seen now
|
|
45
|
-
)
|
|
46
|
-
(c (f conditions) (wrap_odd_create_coins NFT_STATE_LAYER_MOD_HASH (r conditions) odd_coin_params new_metadata_info metadata_seen))
|
|
47
|
-
)
|
|
48
|
-
)
|
|
49
|
-
(c
|
|
50
|
-
(c CREATE_COIN
|
|
51
|
-
(c
|
|
52
|
-
(nft_state_layer_puzzle_hash
|
|
53
|
-
NFT_STATE_LAYER_MOD_HASH
|
|
54
|
-
(f (f new_metadata_info))
|
|
55
|
-
(f (r (f new_metadata_info)))
|
|
56
|
-
(f odd_coin_params) ; metadata updater solution
|
|
57
|
-
)
|
|
58
|
-
(r odd_coin_params)
|
|
59
|
-
)
|
|
60
|
-
)
|
|
61
|
-
(f (r new_metadata_info)) ; metadata_updater conditions
|
|
62
|
-
)
|
|
63
|
-
)
|
|
64
|
-
)
|
|
65
|
-
|
|
66
|
-
; main
|
|
67
|
-
(wrap_odd_create_coins
|
|
68
|
-
NFT_STATE_LAYER_MOD_HASH
|
|
69
|
-
(a INNER_PUZZLE inner_solution)
|
|
70
|
-
()
|
|
71
|
-
(list (list METADATA METADATA_UPDATER_PUZZLE_HASH) 0) ; if the magic condition is never seen, this is the information we us to recurry
|
|
72
|
-
()
|
|
73
|
-
)
|
|
74
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff02ff3effff04ff02ffff04ff05ffff04ffff02ff2fff5f80ffff04ff80ffff04ffff04ffff04ff0bffff04ff17ff808080ffff01ff808080ffff01ff8080808080808080ffff04ffff01ffffff0233ff04ff0101ffff02ff02ffff03ff05ffff01ff02ff1affff04ff02ffff04ff0dffff04ffff0bff12ffff0bff2cff1480ffff0bff12ffff0bff12ffff0bff2cff3c80ff0980ffff0bff12ff0bffff0bff2cff8080808080ff8080808080ffff010b80ff0180ffff0bff12ffff0bff2cff1080ffff0bff12ffff0bff12ffff0bff2cff3c80ff0580ffff0bff12ffff02ff1affff04ff02ffff04ff07ffff04ffff0bff2cff2c80ff8080808080ffff0bff2cff8080808080ffff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff2effff04ff02ffff04ff09ff80808080ffff02ff2effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff02ffff03ff0bffff01ff02ffff03ffff09ff23ff1880ffff01ff02ffff03ffff18ff81b3ff2c80ffff01ff02ffff03ffff20ff1780ffff01ff02ff3effff04ff02ffff04ff05ffff04ff1bffff04ff33ffff04ff2fffff04ff5fff8080808080808080ffff01ff088080ff0180ffff01ff04ff13ffff02ff3effff04ff02ffff04ff05ffff04ff1bffff04ff17ffff04ff2fffff04ff5fff80808080808080808080ff0180ffff01ff02ffff03ffff09ff23ffff0181e880ffff01ff02ff3effff04ff02ffff04ff05ffff04ff1bffff04ff17ffff04ffff02ffff03ffff22ffff09ffff02ff2effff04ff02ffff04ff53ff80808080ff82014f80ffff20ff5f8080ffff01ff02ff53ffff04ff818fffff04ff82014fffff04ff81b3ff8080808080ffff01ff088080ff0180ffff04ff2cff8080808080808080ffff01ff04ff13ffff02ff3effff04ff02ffff04ff05ffff04ff1bffff04ff17ffff04ff2fffff04ff5fff80808080808080808080ff018080ff0180ffff01ff04ffff04ff18ffff04ffff02ff16ffff04ff02ffff04ff05ffff04ff27ffff04ffff0bff2cff82014f80ffff04ffff02ff2effff04ff02ffff04ff818fff80808080ffff04ffff0bff2cff0580ff8080808080808080ff378080ff81af8080ff0180ff018080
|
|
File without changes
|
|
File without changes
|
|
File without changes
|