mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2026-08-24 10:05:29 -05:00
The chia.consensus module no longer depends upon chia.wallet. (#19665)
<!-- Merging Requirements: - Please give your PR a title that is release-note friendly - In order to be merged, you must add the most appropriate category Label (Added, Changed, Fixed) to your PR --> <!-- Explain why this is an improvement (Does this add missing functionality, improve performance, or reduce complexity?) --> ### Purpose: This PR removes a dependency that is inappropriate and caused a dependency loop.
This commit is contained in:
@@ -21,7 +21,6 @@ from chia._tests.plot_sync.test_delta import dummy_plot
|
||||
from chia._tests.util.misc import assert_rpc_error
|
||||
from chia._tests.util.rpc import validate_get_routes
|
||||
from chia._tests.util.time_out_assert import time_out_assert, time_out_assert_custom_interval
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.farmer.farmer import Farmer
|
||||
from chia.plot_sync.receiver import Receiver, get_list_or_len
|
||||
from chia.plotting.util import add_plot_directory
|
||||
@@ -40,6 +39,7 @@ from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
|
||||
from chia.util.config import load_config, lock_and_load_config, save_config
|
||||
from chia.util.hash import std_hash
|
||||
from chia.wallet.derive_keys import master_sk_to_wallet_sk, master_sk_to_wallet_sk_unhardened
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -150,8 +150,8 @@ async def test_farmer_reward_target_endpoints(harvester_farmer_environment: Harv
|
||||
targets_2 = await farmer_rpc_client.get_reward_targets(True, 2)
|
||||
assert targets_2["have_pool_sk"] and targets_2["have_farmer_sk"]
|
||||
|
||||
new_ph: bytes32 = create_puzzlehash_for_pk(master_sk_to_wallet_sk(bt.farmer_master_sk, uint32(2)).get_g1())
|
||||
new_ph_2: bytes32 = create_puzzlehash_for_pk(master_sk_to_wallet_sk(bt.pool_master_sk, uint32(7)).get_g1())
|
||||
new_ph: bytes32 = puzzle_hash_for_pk(master_sk_to_wallet_sk(bt.farmer_master_sk, uint32(2)).get_g1())
|
||||
new_ph_2: bytes32 = puzzle_hash_for_pk(master_sk_to_wallet_sk(bt.pool_master_sk, uint32(7)).get_g1())
|
||||
|
||||
await farmer_rpc_client.set_reward_targets(encode_puzzle_hash(new_ph, "xch"), encode_puzzle_hash(new_ph_2, "xch"))
|
||||
targets_3 = await farmer_rpc_client.get_reward_targets(True, 10)
|
||||
@@ -164,10 +164,10 @@ async def test_farmer_reward_target_endpoints(harvester_farmer_environment: Harv
|
||||
assert not targets_4["have_pool_sk"] and targets_4["have_farmer_sk"]
|
||||
|
||||
# check observer addresses
|
||||
observer_farmer: bytes32 = create_puzzlehash_for_pk(
|
||||
observer_farmer: bytes32 = puzzle_hash_for_pk(
|
||||
master_sk_to_wallet_sk_unhardened(bt.farmer_master_sk, uint32(2)).get_g1()
|
||||
)
|
||||
observer_pool: bytes32 = create_puzzlehash_for_pk(
|
||||
observer_pool: bytes32 = puzzle_hash_for_pk(
|
||||
master_sk_to_wallet_sk_unhardened(bt.pool_master_sk, uint32(7)).get_g1()
|
||||
)
|
||||
await farmer_rpc_client.set_reward_targets(
|
||||
|
||||
@@ -49,7 +49,6 @@ from chia._tests.wallet.test_wallet_coin_store import (
|
||||
from chia.cmds.coins import CombineCMD, SplitCMD
|
||||
from chia.cmds.param_types import CliAmount
|
||||
from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.rpc.full_node_rpc_client import FullNodeRpcClient
|
||||
from chia.rpc.rpc_client import ResponseFailureError
|
||||
from chia.rpc.wallet_request_types import (
|
||||
@@ -102,6 +101,7 @@ from chia.wallet.derive_keys import master_sk_to_wallet_sk, master_sk_to_wallet_
|
||||
from chia.wallet.did_wallet.did_wallet import DIDWallet
|
||||
from chia.wallet.nft_wallet.nft_wallet import NFTWallet
|
||||
from chia.wallet.puzzles.clawback.metadata import AutoClaimSettings
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
from chia.wallet.signer_protocol import UnsignedTransaction
|
||||
from chia.wallet.trade_record import TradeRecord
|
||||
from chia.wallet.trading.offer import Offer
|
||||
@@ -1702,11 +1702,11 @@ async def _check_delete_key(
|
||||
|
||||
sk = await wallet_node.get_key_for_fingerprint(farmer_fp, private=True)
|
||||
assert sk is not None
|
||||
farmer_ph = create_puzzlehash_for_pk(create_sk(sk, uint32(0)).get_g1())
|
||||
farmer_ph = puzzle_hash_for_pk(create_sk(sk, uint32(0)).get_g1())
|
||||
|
||||
sk = await wallet_node.get_key_for_fingerprint(pool_fp, private=True)
|
||||
assert sk is not None
|
||||
pool_ph = create_puzzlehash_for_pk(create_sk(sk, uint32(0)).get_g1())
|
||||
pool_ph = puzzle_hash_for_pk(create_sk(sk, uint32(0)).get_g1())
|
||||
|
||||
with lock_and_load_config(wallet_node.root_path, "config.yaml") as test_config:
|
||||
test_config["farmer"]["xch_target_address"] = encode_puzzle_hash(farmer_ph, "txch")
|
||||
|
||||
@@ -9,7 +9,6 @@ from typing import Any, Optional
|
||||
import yaml
|
||||
|
||||
from chia.cmds.configure import configure
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.ssl.create_ssl import create_all_ssl
|
||||
from chia.ssl.ssl_check import (
|
||||
DEFAULT_PERMISSIONS_CERT_FILE,
|
||||
@@ -38,6 +37,7 @@ from chia.wallet.derive_keys import (
|
||||
master_sk_to_wallet_sk_intermediate,
|
||||
master_sk_to_wallet_sk_unhardened_intermediate,
|
||||
)
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
|
||||
def dict_add_new_default(updated: dict[str, Any], default: dict[str, Any], do_not_migrate_keys: dict[str, Any]) -> None:
|
||||
@@ -94,11 +94,11 @@ def check_keys(new_root: Path, keychain: Optional[Keychain] = None) -> None:
|
||||
|
||||
all_targets.append(
|
||||
encode_puzzle_hash(
|
||||
create_puzzlehash_for_pk(_derive_path_unhardened(intermediate_o, [i]).get_g1()), prefix
|
||||
puzzle_hash_for_pk(_derive_path_unhardened(intermediate_o, [i]).get_g1()), prefix
|
||||
)
|
||||
)
|
||||
all_targets.append(
|
||||
encode_puzzle_hash(create_puzzlehash_for_pk(_derive_path(intermediate_n, [i]).get_g1()), prefix)
|
||||
encode_puzzle_hash(puzzle_hash_for_pk(_derive_path(intermediate_n, [i]).get_g1()), prefix)
|
||||
)
|
||||
if all_targets[-1] == config["farmer"].get("xch_target_address") or all_targets[-2] == config[
|
||||
"farmer"
|
||||
|
||||
@@ -10,7 +10,6 @@ from typing import Any, Optional, Union
|
||||
from chia_rs import AugSchemeMPL, G1Element, G2Element, PrivateKey
|
||||
from chia_rs.sized_ints import uint32
|
||||
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.types.signing_mode import SigningMode
|
||||
from chia.util.bech32m import bech32_encode, convertbits, encode_puzzle_hash
|
||||
from chia.util.config import load_config
|
||||
@@ -31,6 +30,7 @@ from chia.wallet.derive_keys import (
|
||||
master_sk_to_pool_sk,
|
||||
master_sk_to_wallet_sk,
|
||||
)
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
|
||||
def unlock_keyring() -> None:
|
||||
@@ -197,7 +197,7 @@ def show_keys(
|
||||
first_wallet_pk = master_pk_to_wallet_pk_unhardened(key_data.public_key, uint32(0))
|
||||
|
||||
if first_wallet_pk is not None:
|
||||
wallet_address: str = encode_puzzle_hash(create_puzzlehash_for_pk(first_wallet_pk), prefix)
|
||||
wallet_address: str = encode_puzzle_hash(puzzle_hash_for_pk(first_wallet_pk), prefix)
|
||||
key["wallet_address"] = wallet_address
|
||||
else:
|
||||
key["wallet_address"] = None
|
||||
@@ -423,7 +423,7 @@ def _search_derived(
|
||||
# Generate a wallet address using the standard p2_delegated_puzzle_or_hidden_puzzle puzzle
|
||||
assert child_pk is not None
|
||||
# TODO: consider generating addresses using other puzzles
|
||||
address = encode_puzzle_hash(create_puzzlehash_for_pk(child_pk), prefix)
|
||||
address = encode_puzzle_hash(puzzle_hash_for_pk(child_pk), prefix)
|
||||
|
||||
for term in remaining_search_terms:
|
||||
found_item: Any = None
|
||||
@@ -682,7 +682,7 @@ def derive_wallet_address(
|
||||
pubkey = master_pk_to_wallet_pk_unhardened(pk, uint32(i))
|
||||
# Generate a wallet address using the standard p2_delegated_puzzle_or_hidden_puzzle puzzle
|
||||
# TODO: consider generating addresses using other puzzles
|
||||
address = encode_puzzle_hash(create_puzzlehash_for_pk(pubkey), prefix)
|
||||
address = encode_puzzle_hash(puzzle_hash_for_pk(pubkey), prefix)
|
||||
if show_hd_path:
|
||||
print(
|
||||
f"Wallet address {i} "
|
||||
|
||||
@@ -14,7 +14,6 @@ from chia_rs.sized_ints import uint32
|
||||
|
||||
from chia.cmds.cmds_util import get_any_service_client
|
||||
from chia.cmds.start_funcs import async_start
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.protocols.outbound_message import NodeType
|
||||
from chia.server.resolve_peer_info import set_peer_info
|
||||
from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
|
||||
@@ -29,6 +28,7 @@ from chia.wallet.derive_keys import (
|
||||
master_sk_to_wallet_sk,
|
||||
master_sk_to_wallet_sk_unhardened,
|
||||
)
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
|
||||
def get_ph_from_fingerprint(fingerprint: int, key_id: int = 1) -> bytes32:
|
||||
@@ -37,7 +37,7 @@ def get_ph_from_fingerprint(fingerprint: int, key_id: int = 1) -> bytes32:
|
||||
raise Exception("Fingerprint not found")
|
||||
private_key = priv_key_and_entropy[0]
|
||||
sk_for_wallet_id: PrivateKey = master_sk_to_wallet_sk(private_key, uint32(key_id))
|
||||
puzzle_hash: bytes32 = create_puzzlehash_for_pk(sk_for_wallet_id.get_g1())
|
||||
puzzle_hash: bytes32 = puzzle_hash_for_pk(sk_for_wallet_id.get_g1())
|
||||
return puzzle_hash
|
||||
|
||||
|
||||
@@ -154,7 +154,7 @@ def display_key_info(fingerprint: int, prefix: str) -> None:
|
||||
print("Farmer public key (m/12381/8444/0/0):", master_sk_to_farmer_sk(sk).get_g1())
|
||||
print("Pool public key (m/12381/8444/1/0):", master_sk_to_pool_sk(sk).get_g1())
|
||||
first_wallet_sk: PrivateKey = master_sk_to_wallet_sk_unhardened(sk, uint32(0))
|
||||
wallet_address: str = encode_puzzle_hash(create_puzzlehash_for_pk(first_wallet_sk.get_g1()), prefix)
|
||||
wallet_address: str = encode_puzzle_hash(puzzle_hash_for_pk(first_wallet_sk.get_g1()), prefix)
|
||||
print(f"First wallet address: {wallet_address}")
|
||||
assert seed is not None
|
||||
print("Master private key (m):", bytes(sk).hex())
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from chia_rs import G1Element
|
||||
from chia_rs.sized_bytes import bytes32
|
||||
from chia_rs.sized_ints import uint32, uint64
|
||||
|
||||
from chia.types.blockchain_format.coin import Coin
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
|
||||
def create_puzzlehash_for_pk(pub_key: G1Element) -> bytes32:
|
||||
return puzzle_hash_for_pk(pub_key)
|
||||
|
||||
|
||||
def pool_parent_id(block_height: uint32, genesis_challenge: bytes32) -> bytes32:
|
||||
|
||||
@@ -27,7 +27,6 @@ from typing_extensions import Protocol
|
||||
from chia import __version__
|
||||
from chia.cmds.init_funcs import check_keys, chia_init
|
||||
from chia.cmds.passphrase_funcs import default_passphrase, using_default_passphrase
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.daemon.keychain_server import KeychainServer, keychain_commands
|
||||
from chia.daemon.windows_signal import kill
|
||||
from chia.plotters.plotters import get_available_plotters
|
||||
@@ -55,6 +54,7 @@ from chia.wallet.derive_keys import (
|
||||
master_sk_to_pool_sk,
|
||||
master_sk_to_wallet_sk,
|
||||
)
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
io_pool_exc = ThreadPoolExecutor()
|
||||
|
||||
@@ -669,7 +669,7 @@ class WebSocketServer:
|
||||
pk = sk.get_g1()
|
||||
else:
|
||||
pk = master_pk_to_wallet_pk_unhardened(key.public_key, uint32(i))
|
||||
wallet_address = encode_puzzle_hash(create_puzzlehash_for_pk(pk), prefix)
|
||||
wallet_address = encode_puzzle_hash(puzzle_hash_for_pk(pk), prefix)
|
||||
if non_observer_derivation:
|
||||
hd_path = f"m/12381n/8444n/2n/{i}n"
|
||||
else:
|
||||
|
||||
@@ -44,7 +44,6 @@ from chia_rs.sized_ints import uint8, uint16, uint32, uint64, uint128
|
||||
from chia.consensus.block_creation import create_unfinished_block, unfinished_block_to_full_block
|
||||
from chia.consensus.block_record import BlockRecordProtocol
|
||||
from chia.consensus.blockchain_interface import BlockRecordsProtocol
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.consensus.condition_costs import ConditionCost
|
||||
from chia.consensus.constants import replace_str_to_bytes
|
||||
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
||||
@@ -120,6 +119,7 @@ from chia.wallet.derive_keys import (
|
||||
master_sk_to_pool_sk,
|
||||
master_sk_to_wallet_sk,
|
||||
)
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
DESERIALIZE_MOD = Program.from_bytes(CHIALISP_DESERIALISATION)
|
||||
|
||||
@@ -446,10 +446,10 @@ class BlockTools:
|
||||
self.pool_pk = master_sk_to_pool_sk(self.pool_master_sk).get_g1()
|
||||
|
||||
if reward_ph is None:
|
||||
self.farmer_ph: bytes32 = create_puzzlehash_for_pk(
|
||||
self.farmer_ph: bytes32 = puzzle_hash_for_pk(
|
||||
master_sk_to_wallet_sk(self.farmer_master_sk, uint32(0)).get_g1()
|
||||
)
|
||||
self.pool_ph: bytes32 = create_puzzlehash_for_pk(
|
||||
self.pool_ph: bytes32 = puzzle_hash_for_pk(
|
||||
master_sk_to_wallet_sk(self.pool_master_sk, uint32(0)).get_g1()
|
||||
)
|
||||
else:
|
||||
|
||||
@@ -9,7 +9,6 @@ from chia_rs import PrivateKey
|
||||
from chia_rs.sized_bytes import bytes32
|
||||
from chia_rs.sized_ints import uint32
|
||||
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.daemon.server import WebSocketServer, daemon_launch_lock_path
|
||||
from chia.server.signal_handlers import SignalHandlers
|
||||
from chia.simulator.full_node_simulator import FullNodeSimulator
|
||||
@@ -29,6 +28,7 @@ from chia.util.errors import KeychainFingerprintExists
|
||||
from chia.util.keychain import Keychain
|
||||
from chia.util.lock import Lockfile
|
||||
from chia.wallet.derive_keys import master_sk_to_wallet_sk
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
"""
|
||||
These functions are used to test the simulator.
|
||||
@@ -56,7 +56,7 @@ def get_puzzle_hash_from_key(keychain: Keychain, fingerprint: int, key_id: int =
|
||||
raise Exception("Fingerprint not found")
|
||||
private_key = priv_key_and_entropy[0]
|
||||
sk_for_wallet_id: PrivateKey = master_sk_to_wallet_sk(private_key, uint32(key_id))
|
||||
puzzle_hash: bytes32 = create_puzzlehash_for_pk(sk_for_wallet_id.get_g1())
|
||||
puzzle_hash: bytes32 = puzzle_hash_for_pk(sk_for_wallet_id.get_g1())
|
||||
return puzzle_hash
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ from chia_rs import AugSchemeMPL, G1Element, PrivateKey
|
||||
from chia_rs.sized_bytes import bytes32
|
||||
from chia_rs.sized_ints import uint32
|
||||
|
||||
from chia.consensus.coinbase import create_puzzlehash_for_pk
|
||||
from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
|
||||
|
||||
# EIP 2334 bls key derivation
|
||||
# https://eips.ethereum.org/EIPS/eip-2334
|
||||
@@ -131,8 +131,8 @@ def match_address_to_sk(
|
||||
|
||||
for i in range(max_ph_to_search):
|
||||
phs = [
|
||||
create_puzzlehash_for_pk(master_sk_to_wallet_sk(sk, uint32(i)).get_g1()),
|
||||
create_puzzlehash_for_pk(master_sk_to_wallet_sk_unhardened(sk, uint32(i)).get_g1()),
|
||||
puzzle_hash_for_pk(master_sk_to_wallet_sk(sk, uint32(i)).get_g1()),
|
||||
puzzle_hash_for_pk(master_sk_to_wallet_sk_unhardened(sk, uint32(i)).get_g1()),
|
||||
]
|
||||
|
||||
for address in search_list:
|
||||
|
||||
Reference in New Issue
Block a user