
#
# this file is generated by generate_type_stubs.py
#

from typing import List, Optional, Sequence, Tuple
from chik.types.blockchain_format.sized_bytes import bytes32
from chik.types.blockchain_format.program import Program as ChikProgram
from chik.consensus.constants import ConsensusConstants

ReadableBuffer = Union[bytes, bytearray, memoryview]

class _Unspec:
    pass

def solution_generator(spends: Sequence[Tuple[Coin, bytes, bytes]]) -> bytes: ...
def solution_generator_backrefs(spends: Sequence[Tuple[Coin, bytes, bytes]]) -> bytes: ...

def compute_merkle_set_root(items: Sequence[bytes]) -> bytes: ...

def supports_fast_forward(spend: CoinSpend) -> bool : ...
def fast_forward_singleton(spend: CoinSpend, new_coin: Coin, new_parent: Coin) -> bytes: ...

def run_block_generator(
    program: ReadableBuffer, args: List[ReadableBuffer], max_cost: int, flags: int
) -> Tuple[Optional[int], Optional[SpendBundleConditions]]: ...

def run_block_generator2(
    program: ReadableBuffer, args: List[ReadableBuffer], max_cost: int, flags: int
) -> Tuple[Optional[int], Optional[SpendBundleConditions]]: ...

def run_puzzle(
    puzzle: bytes, solution: bytes, parent_id: bytes32, amount: int, max_cost: int, flags: int
) -> SpendBundleConditions: ...

COND_ARGS_NIL: int = ...
NO_UNKNOWN_CONDS: int = ...
STRICT_ARGS_COUNT: int = ...
AGG_SIG_ARGS: int = ...
LIMIT_HEAP: int = ...
ENABLE_SOFTFORK_CONDITION: int = ...
MEMPOOL_MODE: int = ...
NO_RELATIVE_CONDITIONS_ON_EPHEMERAL: int = ...
ENABLE_BLS_OPS: int = ...
ENABLE_SECP_OPS: int = ...
ENABLE_BLS_OPS_OUTSIDE_GUARD: int = ...
ENABLE_FIXED_DIV: int = ...
ALLOW_BACKREFS: int = ...

ELIGIBLE_FOR_DEDUP: int = ...
ELIGIBLE_FOR_FF: int = ...

NO_UNKNOWN_OPS: int = ...

def run_chik_program(
    program: bytes, args: bytes, max_cost: int, flags: int
) -> Pair[int, LazyNode]: ...

class LazyNode:
    def pair() -> Optional[Tuple[LazyNode, LazyNode]]: ...
    def atom() -> bytes: ...

def serialized_length(program: ReadableBuffer) -> int: ...
def tree_hash(program: ReadableBuffer) -> bytes32: ...
def get_puzzle_and_solution_for_coin(program: ReadableBuffer, args: ReadableBuffer, max_cost: int, find_parent: bytes32, find_amount: int, find_ph: bytes32, flags: int) -> Tuple[bytes, bytes]: ...

class AugSchemeMPL:
    @staticmethod
    def sign(pk: PrivateKey, msg: bytes, prepend_pk: G1Element = None) -> G2Element: ...
    @staticmethod
    def aggregate(sigs: Sequence[G2Element]) -> G2Element: ...
    @staticmethod
    def verify(pk: G1Element, msg: bytes, sig: G2Element) -> bool: ...
    @staticmethod
    def aggregate_verify(pks: Sequence[G1Element], msgs: Sequence[bytes], sig: G2Element) -> bool: ...
    @staticmethod
    def key_gen(seed: bytes) -> PrivateKey: ...
    @staticmethod
    def g2_from_message(msg: bytes) -> G2Element: ...
    @staticmethod
    def derive_child_sk(pk: PrivateKey, index: int) -> PrivateKey: ...
    @staticmethod
    def derive_child_sk_unhardened(pk: PrivateKey, index: int) -> PrivateKey: ...
    @staticmethod
    def derive_child_pk_unhardened(pk: G1Element, index: int) -> G1Element: ...

class G1Element:
    SIZE: ClassVar[int] = ...
    def __new__(cls) -> G1Element: ...
    def get_fingerprint(self) -> int: ...
    def pair(self, other: G2Element) -> GTElement: ...
    @staticmethod
    def from_bytes_unchecked(b: bytes) -> G1Element: ...
    @staticmethod
    def generator() -> G1Element: ...
    def __str__(self) -> str: ...
    def __repr__(self) -> str: ...
    def __add__(self, other: G1Element) -> G1Element: ...
    def __iadd__(self, other: G1Element) -> G1Element: ...
    def __init__(
        self
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> G1Element: ...
    def __copy__(self) -> G1Element: ...
    @staticmethod
    def from_bytes(bytes) -> G1Element: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> G1Element: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[G1Element, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> G1Element: ...

class G2Element:
    SIZE: ClassVar[int] = ...
    def __new__(cls) -> G2Element: ...
    @staticmethod
    def from_bytes_unchecked(b: bytes) -> G2Element: ...
    def pair(self, other: G1Element) -> GTElement: ...
    @staticmethod
    def generator() -> G2Element: ...
    def __str__(self) -> str: ...
    def __repr__(self) -> str: ...
    def __add__(self, other: G2Element) -> G2Element: ...
    def __iadd__(self, other: G2Element) -> G2Element: ...
    def __init__(
        self
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> G2Element: ...
    def __copy__(self) -> G2Element: ...
    @staticmethod
    def from_bytes(bytes) -> G2Element: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> G2Element: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[G2Element, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> G2Element: ...

class GTElement:
    SIZE: ClassVar[int] = ...
    @staticmethod
    def from_bytes_unchecked(b: bytes) -> GTElement: ...
    def __str__(self) -> str: ...
    def __repr__(self) -> str: ...
    def __mul__(self, rhs: GTElement) -> GTElement: ...
    def __imul__(self, rhs: GTElement) -> GTElement : ...
    def __init__(
        self
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> GTElement: ...
    def __copy__(self) -> GTElement: ...
    @staticmethod
    def from_bytes(bytes) -> GTElement: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> GTElement: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[GTElement, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> GTElement: ...

class PrivateKey:
    PRIVATE_KEY_SIZE: ClassVar[int] = ...
    def sign_g2(self, msg: bytes, dst: bytes) -> G2Element: ...
    def get_g1(self) -> G1Element: ...
    def __str__(self) -> str: ...
    def __repr__(self) -> str: ...
    def __init__(
        self
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> PrivateKey: ...
    def __copy__(self) -> PrivateKey: ...
    @staticmethod
    def from_bytes(bytes) -> PrivateKey: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> PrivateKey: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[PrivateKey, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> PrivateKey: ...

class Spend:
    coin_id: bytes
    parent_id: bytes
    puzzle_hash: bytes
    coin_amount: int
    height_relative: Optional[int]
    seconds_relative: Optional[int]
    before_height_relative: Optional[int]
    before_seconds_relative: Optional[int]
    birth_height: Optional[int]
    birth_seconds: Optional[int]
    create_coin: List[Tuple[bytes, int, Optional[bytes]]]
    agg_sig_me: List[Tuple[bytes, bytes]]
    agg_sig_parent: List[Tuple[bytes, bytes]]
    agg_sig_puzzle: List[Tuple[bytes, bytes]]
    agg_sig_amount: List[Tuple[bytes, bytes]]
    agg_sig_puzzle_amount: List[Tuple[bytes, bytes]]
    agg_sig_parent_amount: List[Tuple[bytes, bytes]]
    agg_sig_parent_puzzle: List[Tuple[bytes, bytes]]
    flags: int
    def __init__(
        self,
        coin_id: bytes,
        parent_id: bytes,
        puzzle_hash: bytes,
        coin_amount: int,
        height_relative: Optional[int],
        seconds_relative: Optional[int],
        before_height_relative: Optional[int],
        before_seconds_relative: Optional[int],
        birth_height: Optional[int],
        birth_seconds: Optional[int],
        create_coin: Sequence[Tuple[bytes, int, Optional[bytes]]],
        agg_sig_me: Sequence[Tuple[bytes, bytes]],
        agg_sig_parent: Sequence[Tuple[bytes, bytes]],
        agg_sig_puzzle: Sequence[Tuple[bytes, bytes]],
        agg_sig_amount: Sequence[Tuple[bytes, bytes]],
        agg_sig_puzzle_amount: Sequence[Tuple[bytes, bytes]],
        agg_sig_parent_amount: Sequence[Tuple[bytes, bytes]],
        agg_sig_parent_puzzle: Sequence[Tuple[bytes, bytes]],
        flags: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> Spend: ...
    def __copy__(self) -> Spend: ...
    @staticmethod
    def from_bytes(bytes) -> Spend: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> Spend: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[Spend, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> Spend: ...
    def replace(self, *, coin_id: Union[ bytes, _Unspec] = _Unspec(),
        parent_id: Union[ bytes, _Unspec] = _Unspec(),
        puzzle_hash: Union[ bytes, _Unspec] = _Unspec(),
        coin_amount: Union[ int, _Unspec] = _Unspec(),
        height_relative: Union[ Optional[int], _Unspec] = _Unspec(),
        seconds_relative: Union[ Optional[int], _Unspec] = _Unspec(),
        before_height_relative: Union[ Optional[int], _Unspec] = _Unspec(),
        before_seconds_relative: Union[ Optional[int], _Unspec] = _Unspec(),
        birth_height: Union[ Optional[int], _Unspec] = _Unspec(),
        birth_seconds: Union[ Optional[int], _Unspec] = _Unspec(),
        create_coin: Union[ List[Tuple[bytes, int, Optional[bytes]]], _Unspec] = _Unspec(),
        agg_sig_me: Union[ List[Tuple[bytes, bytes]], _Unspec] = _Unspec(),
        agg_sig_parent: Union[ List[Tuple[bytes, bytes]], _Unspec] = _Unspec(),
        agg_sig_puzzle: Union[ List[Tuple[bytes, bytes]], _Unspec] = _Unspec(),
        agg_sig_amount: Union[ List[Tuple[bytes, bytes]], _Unspec] = _Unspec(),
        agg_sig_puzzle_amount: Union[ List[Tuple[bytes, bytes]], _Unspec] = _Unspec(),
        agg_sig_parent_amount: Union[ List[Tuple[bytes, bytes]], _Unspec] = _Unspec(),
        agg_sig_parent_puzzle: Union[ List[Tuple[bytes, bytes]], _Unspec] = _Unspec(),
        flags: Union[ int, _Unspec] = _Unspec()) -> Spend: ...

class SpendBundleConditions:
    spends: List[Spend]
    reserve_fee: int
    height_absolute: int
    seconds_absolute: int
    before_height_absolute: Optional[int]
    before_seconds_absolute: Optional[int]
    agg_sig_unsafe: List[Tuple[bytes, bytes]]
    cost: int
    removal_amount: int
    addition_amount: int
    def __init__(
        self,
        spends: Sequence[Spend],
        reserve_fee: int,
        height_absolute: int,
        seconds_absolute: int,
        before_height_absolute: Optional[int],
        before_seconds_absolute: Optional[int],
        agg_sig_unsafe: Sequence[Tuple[bytes, bytes]],
        cost: int,
        removal_amount: int,
        addition_amount: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SpendBundleConditions: ...
    def __copy__(self) -> SpendBundleConditions: ...
    @staticmethod
    def from_bytes(bytes) -> SpendBundleConditions: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SpendBundleConditions: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SpendBundleConditions, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SpendBundleConditions: ...
    def replace(self, *, spends: Union[ List[Spend], _Unspec] = _Unspec(),
        reserve_fee: Union[ int, _Unspec] = _Unspec(),
        height_absolute: Union[ int, _Unspec] = _Unspec(),
        seconds_absolute: Union[ int, _Unspec] = _Unspec(),
        before_height_absolute: Union[ Optional[int], _Unspec] = _Unspec(),
        before_seconds_absolute: Union[ Optional[int], _Unspec] = _Unspec(),
        agg_sig_unsafe: Union[ List[Tuple[bytes, bytes]], _Unspec] = _Unspec(),
        cost: Union[ int, _Unspec] = _Unspec(),
        removal_amount: Union[ int, _Unspec] = _Unspec(),
        addition_amount: Union[ int, _Unspec] = _Unspec()) -> SpendBundleConditions: ...

class BlockRecord:
    header_hash: bytes32
    prev_hash: bytes32
    height: int
    weight: int
    total_iters: int
    signage_point_index: int
    challenge_vdf_output: ClassgroupElement
    infused_challenge_vdf_output: Optional[ClassgroupElement]
    reward_infusion_new_challenge: bytes32
    challenge_block_info_hash: bytes32
    sub_slot_iters: int
    pool_puzzle_hash: bytes32
    farmer_puzzle_hash: bytes32
    required_iters: int
    deficit: int
    overflow: bool
    prev_transaction_block_height: int
    timestamp: Optional[int]
    prev_transaction_block_hash: Optional[bytes32]
    fees: Optional[int]
    reward_claims_incorporated: Optional[List[Coin]]
    finished_challenge_slot_hashes: Optional[List[bytes32]]
    finished_infused_challenge_slot_hashes: Optional[List[bytes32]]
    finished_reward_slot_hashes: Optional[List[bytes32]]
    sub_epoch_summary_included: Optional[SubEpochSummary]
    is_transaction_block: bool
    first_in_sub_slot: bool
    def is_challenge_block(self, constants: ConsensusConstants) -> bool: ...
    def sp_sub_slot_total_iters(self, constants: ConsensusConstants) -> int: ...
    def ip_sub_slot_total_iters(self, constants: ConsensusConstants) -> int: ...
    def sp_iters(self, constants: ConsensusConstants) -> int: ...
    def ip_iters(self, constants: ConsensusConstants) -> int: ...
    def sp_total_iters(self, constants: ConsensusConstants) -> int: ...
    def __init__(
        self,
        header_hash: bytes,
        prev_hash: bytes,
        height: int,
        weight: int,
        total_iters: int,
        signage_point_index: int,
        challenge_vdf_output: ClassgroupElement,
        infused_challenge_vdf_output: Optional[ClassgroupElement],
        reward_infusion_new_challenge: bytes,
        challenge_block_info_hash: bytes,
        sub_slot_iters: int,
        pool_puzzle_hash: bytes,
        farmer_puzzle_hash: bytes,
        required_iters: int,
        deficit: int,
        overflow: bool,
        prev_transaction_block_height: int,
        timestamp: Optional[int],
        prev_transaction_block_hash: Optional[bytes32],
        fees: Optional[int],
        reward_claims_incorporated: Optional[Sequence[Coin]],
        finished_challenge_slot_hashes: Optional[Sequence[bytes32]],
        finished_infused_challenge_slot_hashes: Optional[Sequence[bytes32]],
        finished_reward_slot_hashes: Optional[Sequence[bytes32]],
        sub_epoch_summary_included: Optional[SubEpochSummary]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> BlockRecord: ...
    def __copy__(self) -> BlockRecord: ...
    @staticmethod
    def from_bytes(bytes) -> BlockRecord: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> BlockRecord: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[BlockRecord, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> BlockRecord: ...
    def replace(self, *, header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        prev_hash: Union[ bytes32, _Unspec] = _Unspec(),
        height: Union[ int, _Unspec] = _Unspec(),
        weight: Union[ int, _Unspec] = _Unspec(),
        total_iters: Union[ int, _Unspec] = _Unspec(),
        signage_point_index: Union[ int, _Unspec] = _Unspec(),
        challenge_vdf_output: Union[ ClassgroupElement, _Unspec] = _Unspec(),
        infused_challenge_vdf_output: Union[ Optional[ClassgroupElement], _Unspec] = _Unspec(),
        reward_infusion_new_challenge: Union[ bytes32, _Unspec] = _Unspec(),
        challenge_block_info_hash: Union[ bytes32, _Unspec] = _Unspec(),
        sub_slot_iters: Union[ int, _Unspec] = _Unspec(),
        pool_puzzle_hash: Union[ bytes32, _Unspec] = _Unspec(),
        farmer_puzzle_hash: Union[ bytes32, _Unspec] = _Unspec(),
        required_iters: Union[ int, _Unspec] = _Unspec(),
        deficit: Union[ int, _Unspec] = _Unspec(),
        overflow: Union[ bool, _Unspec] = _Unspec(),
        prev_transaction_block_height: Union[ int, _Unspec] = _Unspec(),
        timestamp: Union[ Optional[int], _Unspec] = _Unspec(),
        prev_transaction_block_hash: Union[ Optional[bytes32], _Unspec] = _Unspec(),
        fees: Union[ Optional[int], _Unspec] = _Unspec(),
        reward_claims_incorporated: Union[ Optional[List[Coin]], _Unspec] = _Unspec(),
        finished_challenge_slot_hashes: Union[ Optional[List[bytes32]], _Unspec] = _Unspec(),
        finished_infused_challenge_slot_hashes: Union[ Optional[List[bytes32]], _Unspec] = _Unspec(),
        finished_reward_slot_hashes: Union[ Optional[List[bytes32]], _Unspec] = _Unspec(),
        sub_epoch_summary_included: Union[ Optional[SubEpochSummary], _Unspec] = _Unspec()) -> BlockRecord: ...

class Message:
    msg_type: int
    id: Optional[int]
    data: bytes
    def __init__(
        self,
        msg_type: int,
        id: Optional[int],
        data: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> Message: ...
    def __copy__(self) -> Message: ...
    @staticmethod
    def from_bytes(bytes) -> Message: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> Message: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[Message, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> Message: ...
    def replace(self, *, msg_type: Union[ int, _Unspec] = _Unspec(),
        id: Union[ Optional[int], _Unspec] = _Unspec(),
        data: Union[ bytes, _Unspec] = _Unspec()) -> Message: ...

class Handshake:
    network_id: String
    protocol_version: String
    software_version: String
    server_port: int
    node_type: int
    capabilities: List[(int, String)]
    def __init__(
        self,
        network_id: String,
        protocol_version: String,
        software_version: String,
        server_port: int,
        node_type: int,
        capabilities: Sequence[(int, String)]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> Handshake: ...
    def __copy__(self) -> Handshake: ...
    @staticmethod
    def from_bytes(bytes) -> Handshake: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> Handshake: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[Handshake, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> Handshake: ...
    def replace(self, *, network_id: Union[ String, _Unspec] = _Unspec(),
        protocol_version: Union[ String, _Unspec] = _Unspec(),
        software_version: Union[ String, _Unspec] = _Unspec(),
        server_port: Union[ int, _Unspec] = _Unspec(),
        node_type: Union[ int, _Unspec] = _Unspec(),
        capabilities: Union[ List[(int, String)], _Unspec] = _Unspec()) -> Handshake: ...

class ClassgroupElement:
    data: bytes100
    @staticmethod
    def create(bytes) -> ClassgroupElement: ...
    @staticmethod
    def get_default_element() -> ClassgroupElement: ...
    @staticmethod
    def get_size() -> int: ...
    def __init__(
        self,
        data: bytes100
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> ClassgroupElement: ...
    def __copy__(self) -> ClassgroupElement: ...
    @staticmethod
    def from_bytes(bytes) -> ClassgroupElement: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> ClassgroupElement: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[ClassgroupElement, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> ClassgroupElement: ...
    def replace(self, *, data: Union[ bytes100, _Unspec] = _Unspec()) -> ClassgroupElement: ...

class Coin:
    parent_coin_info: bytes32
    puzzle_hash: bytes32
    amount: int
    def name(self) -> bytes32: ...
    def __init__(
        self,
        parent_coin_info: bytes,
        puzzle_hash: bytes,
        amount: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> Coin: ...
    def __copy__(self) -> Coin: ...
    @staticmethod
    def from_bytes(bytes) -> Coin: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> Coin: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[Coin, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> Coin: ...
    def replace(self, *, parent_coin_info: Union[ bytes32, _Unspec] = _Unspec(),
        puzzle_hash: Union[ bytes32, _Unspec] = _Unspec(),
        amount: Union[ int, _Unspec] = _Unspec()) -> Coin: ...

class CoinSpend:
    coin: Coin
    puzzle_reveal: Program
    solution: Program
    def __init__(
        self,
        coin: Coin,
        puzzle_reveal: Program,
        solution: Program
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> CoinSpend: ...
    def __copy__(self) -> CoinSpend: ...
    @staticmethod
    def from_bytes(bytes) -> CoinSpend: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> CoinSpend: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[CoinSpend, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> CoinSpend: ...
    def replace(self, *, coin: Union[ Coin, _Unspec] = _Unspec(),
        puzzle_reveal: Union[ Program, _Unspec] = _Unspec(),
        solution: Union[ Program, _Unspec] = _Unspec()) -> CoinSpend: ...

class CoinState:
    coin: Coin
    spent_height: Optional[int]
    created_height: Optional[int]
    def __init__(
        self,
        coin: Coin,
        spent_height: Optional[int],
        created_height: Optional[int]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> CoinState: ...
    def __copy__(self) -> CoinState: ...
    @staticmethod
    def from_bytes(bytes) -> CoinState: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> CoinState: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[CoinState, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> CoinState: ...
    def replace(self, *, coin: Union[ Coin, _Unspec] = _Unspec(),
        spent_height: Union[ Optional[int], _Unspec] = _Unspec(),
        created_height: Union[ Optional[int], _Unspec] = _Unspec()) -> CoinState: ...

class EndOfSubSlotBundle:
    challenge_chain: ChallengeChainSubSlot
    infused_challenge_chain: Optional[InfusedChallengeChainSubSlot]
    reward_chain: RewardChainSubSlot
    proofs: SubSlotProofs
    def __init__(
        self,
        challenge_chain: ChallengeChainSubSlot,
        infused_challenge_chain: Optional[InfusedChallengeChainSubSlot],
        reward_chain: RewardChainSubSlot,
        proofs: SubSlotProofs
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> EndOfSubSlotBundle: ...
    def __copy__(self) -> EndOfSubSlotBundle: ...
    @staticmethod
    def from_bytes(bytes) -> EndOfSubSlotBundle: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> EndOfSubSlotBundle: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[EndOfSubSlotBundle, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> EndOfSubSlotBundle: ...
    def replace(self, *, challenge_chain: Union[ ChallengeChainSubSlot, _Unspec] = _Unspec(),
        infused_challenge_chain: Union[ Optional[InfusedChallengeChainSubSlot], _Unspec] = _Unspec(),
        reward_chain: Union[ RewardChainSubSlot, _Unspec] = _Unspec(),
        proofs: Union[ SubSlotProofs, _Unspec] = _Unspec()) -> EndOfSubSlotBundle: ...

class FeeRate:
    mojos_per_klvm_cost: int
    def __init__(
        self,
        mojos_per_klvm_cost: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> FeeRate: ...
    def __copy__(self) -> FeeRate: ...
    @staticmethod
    def from_bytes(bytes) -> FeeRate: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> FeeRate: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[FeeRate, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> FeeRate: ...
    def replace(self, *, mojos_per_klvm_cost: Union[ int, _Unspec] = _Unspec()) -> FeeRate: ...

class FeeEstimate:
    error: Optional[String]
    time_target: int
    estimated_fee_rate: FeeRate
    def __init__(
        self,
        error: Optional[String],
        time_target: int,
        estimated_fee_rate: FeeRate
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> FeeEstimate: ...
    def __copy__(self) -> FeeEstimate: ...
    @staticmethod
    def from_bytes(bytes) -> FeeEstimate: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> FeeEstimate: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[FeeEstimate, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> FeeEstimate: ...
    def replace(self, *, error: Union[ Optional[String], _Unspec] = _Unspec(),
        time_target: Union[ int, _Unspec] = _Unspec(),
        estimated_fee_rate: Union[ FeeRate, _Unspec] = _Unspec()) -> FeeEstimate: ...

class FeeEstimateGroup:
    error: Optional[String]
    estimates: List[FeeEstimate]
    def __init__(
        self,
        error: Optional[String],
        estimates: Sequence[FeeEstimate]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> FeeEstimateGroup: ...
    def __copy__(self) -> FeeEstimateGroup: ...
    @staticmethod
    def from_bytes(bytes) -> FeeEstimateGroup: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> FeeEstimateGroup: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[FeeEstimateGroup, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> FeeEstimateGroup: ...
    def replace(self, *, error: Union[ Optional[String], _Unspec] = _Unspec(),
        estimates: Union[ List[FeeEstimate], _Unspec] = _Unspec()) -> FeeEstimateGroup: ...

class TransactionsInfo:
    generator_root: bytes32
    generator_refs_root: bytes32
    aggregated_signature: G2Element
    fees: int
    cost: int
    reward_claims_incorporated: List[Coin]
    def __init__(
        self,
        generator_root: bytes,
        generator_refs_root: bytes,
        aggregated_signature: G2Element,
        fees: int,
        cost: int,
        reward_claims_incorporated: Sequence[Coin]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> TransactionsInfo: ...
    def __copy__(self) -> TransactionsInfo: ...
    @staticmethod
    def from_bytes(bytes) -> TransactionsInfo: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> TransactionsInfo: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[TransactionsInfo, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> TransactionsInfo: ...
    def replace(self, *, generator_root: Union[ bytes32, _Unspec] = _Unspec(),
        generator_refs_root: Union[ bytes32, _Unspec] = _Unspec(),
        aggregated_signature: Union[ G2Element, _Unspec] = _Unspec(),
        fees: Union[ int, _Unspec] = _Unspec(),
        cost: Union[ int, _Unspec] = _Unspec(),
        reward_claims_incorporated: Union[ List[Coin], _Unspec] = _Unspec()) -> TransactionsInfo: ...

class FoliageTransactionBlock:
    prev_transaction_block_hash: bytes32
    timestamp: int
    filter_hash: bytes32
    additions_root: bytes32
    removals_root: bytes32
    transactions_info_hash: bytes32
    def __init__(
        self,
        prev_transaction_block_hash: bytes,
        timestamp: int,
        filter_hash: bytes,
        additions_root: bytes,
        removals_root: bytes,
        transactions_info_hash: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> FoliageTransactionBlock: ...
    def __copy__(self) -> FoliageTransactionBlock: ...
    @staticmethod
    def from_bytes(bytes) -> FoliageTransactionBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> FoliageTransactionBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[FoliageTransactionBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> FoliageTransactionBlock: ...
    def replace(self, *, prev_transaction_block_hash: Union[ bytes32, _Unspec] = _Unspec(),
        timestamp: Union[ int, _Unspec] = _Unspec(),
        filter_hash: Union[ bytes32, _Unspec] = _Unspec(),
        additions_root: Union[ bytes32, _Unspec] = _Unspec(),
        removals_root: Union[ bytes32, _Unspec] = _Unspec(),
        transactions_info_hash: Union[ bytes32, _Unspec] = _Unspec()) -> FoliageTransactionBlock: ...

class FoliageBlockData:
    unfinished_reward_block_hash: bytes32
    pool_target: PoolTarget
    pool_signature: Optional[G2Element]
    farmer_reward_puzzle_hash: bytes32
    extension_data: bytes32
    def __init__(
        self,
        unfinished_reward_block_hash: bytes,
        pool_target: PoolTarget,
        pool_signature: Optional[G2Element],
        farmer_reward_puzzle_hash: bytes,
        extension_data: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> FoliageBlockData: ...
    def __copy__(self) -> FoliageBlockData: ...
    @staticmethod
    def from_bytes(bytes) -> FoliageBlockData: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> FoliageBlockData: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[FoliageBlockData, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> FoliageBlockData: ...
    def replace(self, *, unfinished_reward_block_hash: Union[ bytes32, _Unspec] = _Unspec(),
        pool_target: Union[ PoolTarget, _Unspec] = _Unspec(),
        pool_signature: Union[ Optional[G2Element], _Unspec] = _Unspec(),
        farmer_reward_puzzle_hash: Union[ bytes32, _Unspec] = _Unspec(),
        extension_data: Union[ bytes32, _Unspec] = _Unspec()) -> FoliageBlockData: ...

class Foliage:
    prev_block_hash: bytes32
    reward_block_hash: bytes32
    foliage_block_data: FoliageBlockData
    foliage_block_data_signature: G2Element
    foliage_transaction_block_hash: Optional[bytes32]
    foliage_transaction_block_signature: Optional[G2Element]
    def __init__(
        self,
        prev_block_hash: bytes,
        reward_block_hash: bytes,
        foliage_block_data: FoliageBlockData,
        foliage_block_data_signature: G2Element,
        foliage_transaction_block_hash: Optional[bytes32],
        foliage_transaction_block_signature: Optional[G2Element]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> Foliage: ...
    def __copy__(self) -> Foliage: ...
    @staticmethod
    def from_bytes(bytes) -> Foliage: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> Foliage: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[Foliage, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> Foliage: ...
    def replace(self, *, prev_block_hash: Union[ bytes32, _Unspec] = _Unspec(),
        reward_block_hash: Union[ bytes32, _Unspec] = _Unspec(),
        foliage_block_data: Union[ FoliageBlockData, _Unspec] = _Unspec(),
        foliage_block_data_signature: Union[ G2Element, _Unspec] = _Unspec(),
        foliage_transaction_block_hash: Union[ Optional[bytes32], _Unspec] = _Unspec(),
        foliage_transaction_block_signature: Union[ Optional[G2Element], _Unspec] = _Unspec()) -> Foliage: ...

class NewPeak:
    header_hash: bytes32
    height: int
    weight: int
    fork_point_with_previous_peak: int
    unfinished_reward_block_hash: bytes32
    def __init__(
        self,
        header_hash: bytes,
        height: int,
        weight: int,
        fork_point_with_previous_peak: int,
        unfinished_reward_block_hash: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> NewPeak: ...
    def __copy__(self) -> NewPeak: ...
    @staticmethod
    def from_bytes(bytes) -> NewPeak: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> NewPeak: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[NewPeak, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> NewPeak: ...
    def replace(self, *, header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        height: Union[ int, _Unspec] = _Unspec(),
        weight: Union[ int, _Unspec] = _Unspec(),
        fork_point_with_previous_peak: Union[ int, _Unspec] = _Unspec(),
        unfinished_reward_block_hash: Union[ bytes32, _Unspec] = _Unspec()) -> NewPeak: ...

class NewTransaction:
    transaction_id: bytes32
    cost: int
    fees: int
    def __init__(
        self,
        transaction_id: bytes,
        cost: int,
        fees: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> NewTransaction: ...
    def __copy__(self) -> NewTransaction: ...
    @staticmethod
    def from_bytes(bytes) -> NewTransaction: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> NewTransaction: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[NewTransaction, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> NewTransaction: ...
    def replace(self, *, transaction_id: Union[ bytes32, _Unspec] = _Unspec(),
        cost: Union[ int, _Unspec] = _Unspec(),
        fees: Union[ int, _Unspec] = _Unspec()) -> NewTransaction: ...

class RequestTransaction:
    transaction_id: bytes32
    def __init__(
        self,
        transaction_id: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestTransaction: ...
    def __copy__(self) -> RequestTransaction: ...
    @staticmethod
    def from_bytes(bytes) -> RequestTransaction: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestTransaction: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestTransaction, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestTransaction: ...
    def replace(self, *, transaction_id: Union[ bytes32, _Unspec] = _Unspec()) -> RequestTransaction: ...

class RespondTransaction:
    transaction: SpendBundle
    def __init__(
        self,
        transaction: SpendBundle
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondTransaction: ...
    def __copy__(self) -> RespondTransaction: ...
    @staticmethod
    def from_bytes(bytes) -> RespondTransaction: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondTransaction: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondTransaction, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondTransaction: ...
    def replace(self, *, transaction: Union[ SpendBundle, _Unspec] = _Unspec()) -> RespondTransaction: ...

class RequestProofOfWeight:
    total_number_of_blocks: int
    tip: bytes32
    def __init__(
        self,
        total_number_of_blocks: int,
        tip: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestProofOfWeight: ...
    def __copy__(self) -> RequestProofOfWeight: ...
    @staticmethod
    def from_bytes(bytes) -> RequestProofOfWeight: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestProofOfWeight: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestProofOfWeight, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestProofOfWeight: ...
    def replace(self, *, total_number_of_blocks: Union[ int, _Unspec] = _Unspec(),
        tip: Union[ bytes32, _Unspec] = _Unspec()) -> RequestProofOfWeight: ...

class RespondProofOfWeight:
    wp: WeightProof
    tip: bytes32
    def __init__(
        self,
        wp: WeightProof,
        tip: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondProofOfWeight: ...
    def __copy__(self) -> RespondProofOfWeight: ...
    @staticmethod
    def from_bytes(bytes) -> RespondProofOfWeight: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondProofOfWeight: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondProofOfWeight, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondProofOfWeight: ...
    def replace(self, *, wp: Union[ WeightProof, _Unspec] = _Unspec(),
        tip: Union[ bytes32, _Unspec] = _Unspec()) -> RespondProofOfWeight: ...

class RequestBlock:
    height: int
    include_transaction_block: bool
    def __init__(
        self,
        height: int,
        include_transaction_block: bool
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestBlock: ...
    def __copy__(self) -> RequestBlock: ...
    @staticmethod
    def from_bytes(bytes) -> RequestBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestBlock: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        include_transaction_block: Union[ bool, _Unspec] = _Unspec()) -> RequestBlock: ...

class RejectBlock:
    height: int
    def __init__(
        self,
        height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RejectBlock: ...
    def __copy__(self) -> RejectBlock: ...
    @staticmethod
    def from_bytes(bytes) -> RejectBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RejectBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RejectBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RejectBlock: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec()) -> RejectBlock: ...

class RequestBlocks:
    start_height: int
    end_height: int
    include_transaction_block: bool
    def __init__(
        self,
        start_height: int,
        end_height: int,
        include_transaction_block: bool
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestBlocks: ...
    def __copy__(self) -> RequestBlocks: ...
    @staticmethod
    def from_bytes(bytes) -> RequestBlocks: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestBlocks: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestBlocks, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestBlocks: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec(),
        include_transaction_block: Union[ bool, _Unspec] = _Unspec()) -> RequestBlocks: ...

class RespondBlocks:
    start_height: int
    end_height: int
    blocks: List[FullBlock]
    def __init__(
        self,
        start_height: int,
        end_height: int,
        blocks: Sequence[FullBlock]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondBlocks: ...
    def __copy__(self) -> RespondBlocks: ...
    @staticmethod
    def from_bytes(bytes) -> RespondBlocks: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondBlocks: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondBlocks, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondBlocks: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec(),
        blocks: Union[ List[FullBlock], _Unspec] = _Unspec()) -> RespondBlocks: ...

class RejectBlocks:
    start_height: int
    end_height: int
    def __init__(
        self,
        start_height: int,
        end_height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RejectBlocks: ...
    def __copy__(self) -> RejectBlocks: ...
    @staticmethod
    def from_bytes(bytes) -> RejectBlocks: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RejectBlocks: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RejectBlocks, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RejectBlocks: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec()) -> RejectBlocks: ...

class RespondBlock:
    block: FullBlock
    def __init__(
        self,
        block: FullBlock
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondBlock: ...
    def __copy__(self) -> RespondBlock: ...
    @staticmethod
    def from_bytes(bytes) -> RespondBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondBlock: ...
    def replace(self, *, block: Union[ FullBlock, _Unspec] = _Unspec()) -> RespondBlock: ...

class NewUnfinishedBlock:
    unfinished_reward_hash: bytes32
    def __init__(
        self,
        unfinished_reward_hash: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> NewUnfinishedBlock: ...
    def __copy__(self) -> NewUnfinishedBlock: ...
    @staticmethod
    def from_bytes(bytes) -> NewUnfinishedBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> NewUnfinishedBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[NewUnfinishedBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> NewUnfinishedBlock: ...
    def replace(self, *, unfinished_reward_hash: Union[ bytes32, _Unspec] = _Unspec()) -> NewUnfinishedBlock: ...

class RequestUnfinishedBlock:
    unfinished_reward_hash: bytes32
    def __init__(
        self,
        unfinished_reward_hash: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestUnfinishedBlock: ...
    def __copy__(self) -> RequestUnfinishedBlock: ...
    @staticmethod
    def from_bytes(bytes) -> RequestUnfinishedBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestUnfinishedBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestUnfinishedBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestUnfinishedBlock: ...
    def replace(self, *, unfinished_reward_hash: Union[ bytes32, _Unspec] = _Unspec()) -> RequestUnfinishedBlock: ...

class RespondUnfinishedBlock:
    unfinished_block: UnfinishedBlock
    def __init__(
        self,
        unfinished_block: UnfinishedBlock
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondUnfinishedBlock: ...
    def __copy__(self) -> RespondUnfinishedBlock: ...
    @staticmethod
    def from_bytes(bytes) -> RespondUnfinishedBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondUnfinishedBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondUnfinishedBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondUnfinishedBlock: ...
    def replace(self, *, unfinished_block: Union[ UnfinishedBlock, _Unspec] = _Unspec()) -> RespondUnfinishedBlock: ...

class NewSignagePointOrEndOfSubSlot:
    prev_challenge_hash: Optional[bytes32]
    challenge_hash: bytes32
    index_from_challenge: int
    last_rc_infusion: bytes32
    def __init__(
        self,
        prev_challenge_hash: Optional[bytes32],
        challenge_hash: bytes,
        index_from_challenge: int,
        last_rc_infusion: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> NewSignagePointOrEndOfSubSlot: ...
    def __copy__(self) -> NewSignagePointOrEndOfSubSlot: ...
    @staticmethod
    def from_bytes(bytes) -> NewSignagePointOrEndOfSubSlot: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> NewSignagePointOrEndOfSubSlot: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[NewSignagePointOrEndOfSubSlot, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> NewSignagePointOrEndOfSubSlot: ...
    def replace(self, *, prev_challenge_hash: Union[ Optional[bytes32], _Unspec] = _Unspec(),
        challenge_hash: Union[ bytes32, _Unspec] = _Unspec(),
        index_from_challenge: Union[ int, _Unspec] = _Unspec(),
        last_rc_infusion: Union[ bytes32, _Unspec] = _Unspec()) -> NewSignagePointOrEndOfSubSlot: ...

class RequestSignagePointOrEndOfSubSlot:
    challenge_hash: bytes32
    index_from_challenge: int
    last_rc_infusion: bytes32
    def __init__(
        self,
        challenge_hash: bytes,
        index_from_challenge: int,
        last_rc_infusion: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestSignagePointOrEndOfSubSlot: ...
    def __copy__(self) -> RequestSignagePointOrEndOfSubSlot: ...
    @staticmethod
    def from_bytes(bytes) -> RequestSignagePointOrEndOfSubSlot: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestSignagePointOrEndOfSubSlot: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestSignagePointOrEndOfSubSlot, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestSignagePointOrEndOfSubSlot: ...
    def replace(self, *, challenge_hash: Union[ bytes32, _Unspec] = _Unspec(),
        index_from_challenge: Union[ int, _Unspec] = _Unspec(),
        last_rc_infusion: Union[ bytes32, _Unspec] = _Unspec()) -> RequestSignagePointOrEndOfSubSlot: ...

class RespondSignagePoint:
    index_from_challenge: int
    challenge_chain_vdf: VDFInfo
    challenge_chain_proof: VDFProof
    reward_chain_vdf: VDFInfo
    reward_chain_proof: VDFProof
    def __init__(
        self,
        index_from_challenge: int,
        challenge_chain_vdf: VDFInfo,
        challenge_chain_proof: VDFProof,
        reward_chain_vdf: VDFInfo,
        reward_chain_proof: VDFProof
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondSignagePoint: ...
    def __copy__(self) -> RespondSignagePoint: ...
    @staticmethod
    def from_bytes(bytes) -> RespondSignagePoint: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondSignagePoint: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondSignagePoint, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondSignagePoint: ...
    def replace(self, *, index_from_challenge: Union[ int, _Unspec] = _Unspec(),
        challenge_chain_vdf: Union[ VDFInfo, _Unspec] = _Unspec(),
        challenge_chain_proof: Union[ VDFProof, _Unspec] = _Unspec(),
        reward_chain_vdf: Union[ VDFInfo, _Unspec] = _Unspec(),
        reward_chain_proof: Union[ VDFProof, _Unspec] = _Unspec()) -> RespondSignagePoint: ...

class RespondEndOfSubSlot:
    end_of_slot_bundle: EndOfSubSlotBundle
    def __init__(
        self,
        end_of_slot_bundle: EndOfSubSlotBundle
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondEndOfSubSlot: ...
    def __copy__(self) -> RespondEndOfSubSlot: ...
    @staticmethod
    def from_bytes(bytes) -> RespondEndOfSubSlot: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondEndOfSubSlot: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondEndOfSubSlot, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondEndOfSubSlot: ...
    def replace(self, *, end_of_slot_bundle: Union[ EndOfSubSlotBundle, _Unspec] = _Unspec()) -> RespondEndOfSubSlot: ...

class RequestMempoolTransactions:
    filter: bytes
    def __init__(
        self,
        filter: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestMempoolTransactions: ...
    def __copy__(self) -> RequestMempoolTransactions: ...
    @staticmethod
    def from_bytes(bytes) -> RequestMempoolTransactions: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestMempoolTransactions: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestMempoolTransactions, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestMempoolTransactions: ...
    def replace(self, *, filter: Union[ bytes, _Unspec] = _Unspec()) -> RequestMempoolTransactions: ...

class NewCompactVDF:
    height: int
    header_hash: bytes32
    field_vdf: int
    vdf_info: VDFInfo
    def __init__(
        self,
        height: int,
        header_hash: bytes,
        field_vdf: int,
        vdf_info: VDFInfo
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> NewCompactVDF: ...
    def __copy__(self) -> NewCompactVDF: ...
    @staticmethod
    def from_bytes(bytes) -> NewCompactVDF: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> NewCompactVDF: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[NewCompactVDF, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> NewCompactVDF: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        field_vdf: Union[ int, _Unspec] = _Unspec(),
        vdf_info: Union[ VDFInfo, _Unspec] = _Unspec()) -> NewCompactVDF: ...

class RequestCompactVDF:
    height: int
    header_hash: bytes32
    field_vdf: int
    vdf_info: VDFInfo
    def __init__(
        self,
        height: int,
        header_hash: bytes,
        field_vdf: int,
        vdf_info: VDFInfo
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestCompactVDF: ...
    def __copy__(self) -> RequestCompactVDF: ...
    @staticmethod
    def from_bytes(bytes) -> RequestCompactVDF: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestCompactVDF: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestCompactVDF, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestCompactVDF: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        field_vdf: Union[ int, _Unspec] = _Unspec(),
        vdf_info: Union[ VDFInfo, _Unspec] = _Unspec()) -> RequestCompactVDF: ...

class RespondCompactVDF:
    height: int
    header_hash: bytes32
    field_vdf: int
    vdf_info: VDFInfo
    vdf_proof: VDFProof
    def __init__(
        self,
        height: int,
        header_hash: bytes,
        field_vdf: int,
        vdf_info: VDFInfo,
        vdf_proof: VDFProof
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondCompactVDF: ...
    def __copy__(self) -> RespondCompactVDF: ...
    @staticmethod
    def from_bytes(bytes) -> RespondCompactVDF: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondCompactVDF: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondCompactVDF, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondCompactVDF: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        field_vdf: Union[ int, _Unspec] = _Unspec(),
        vdf_info: Union[ VDFInfo, _Unspec] = _Unspec(),
        vdf_proof: Union[ VDFProof, _Unspec] = _Unspec()) -> RespondCompactVDF: ...

class RequestPeers:
    def __init__(
        self
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestPeers: ...
    def __copy__(self) -> RequestPeers: ...
    @staticmethod
    def from_bytes(bytes) -> RequestPeers: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestPeers: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestPeers, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestPeers: ...

class RespondPeers:
    peer_list: List[TimestampedPeerInfo]
    def __init__(
        self,
        peer_list: Sequence[TimestampedPeerInfo]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondPeers: ...
    def __copy__(self) -> RespondPeers: ...
    @staticmethod
    def from_bytes(bytes) -> RespondPeers: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondPeers: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondPeers, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondPeers: ...
    def replace(self, *, peer_list: Union[ List[TimestampedPeerInfo], _Unspec] = _Unspec()) -> RespondPeers: ...

class FullBlock:
    finished_sub_slots: List[EndOfSubSlotBundle]
    reward_chain_block: RewardChainBlock
    challenge_chain_sp_proof: Optional[VDFProof]
    challenge_chain_ip_proof: VDFProof
    reward_chain_sp_proof: Optional[VDFProof]
    reward_chain_ip_proof: VDFProof
    infused_challenge_chain_ip_proof: Optional[VDFProof]
    foliage: Foliage
    foliage_transaction_block: Optional[FoliageTransactionBlock]
    transactions_info: Optional[TransactionsInfo]
    transactions_generator: Optional[Program]
    transactions_generator_ref_list: List[int]
    prev_header_hash: bytes32
    header_hash: bytes32
    def is_transaction_block(self) -> bool: ...
    total_iters: int
    height: int
    weight: int
    def get_included_reward_coins(self) -> List[Coin]: ...
    def is_fully_compactified(self) -> bool: ...
    def __init__(
        self,
        finished_sub_slots: Sequence[EndOfSubSlotBundle],
        reward_chain_block: RewardChainBlock,
        challenge_chain_sp_proof: Optional[VDFProof],
        challenge_chain_ip_proof: VDFProof,
        reward_chain_sp_proof: Optional[VDFProof],
        reward_chain_ip_proof: VDFProof,
        infused_challenge_chain_ip_proof: Optional[VDFProof],
        foliage: Foliage,
        foliage_transaction_block: Optional[FoliageTransactionBlock],
        transactions_info: Optional[TransactionsInfo],
        transactions_generator: Optional[Program],
        transactions_generator_ref_list: Sequence[int]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> FullBlock: ...
    def __copy__(self) -> FullBlock: ...
    @staticmethod
    def from_bytes(bytes) -> FullBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> FullBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[FullBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> FullBlock: ...
    def replace(self, *, finished_sub_slots: Union[ List[EndOfSubSlotBundle], _Unspec] = _Unspec(),
        reward_chain_block: Union[ RewardChainBlock, _Unspec] = _Unspec(),
        challenge_chain_sp_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        challenge_chain_ip_proof: Union[ VDFProof, _Unspec] = _Unspec(),
        reward_chain_sp_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        reward_chain_ip_proof: Union[ VDFProof, _Unspec] = _Unspec(),
        infused_challenge_chain_ip_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        foliage: Union[ Foliage, _Unspec] = _Unspec(),
        foliage_transaction_block: Union[ Optional[FoliageTransactionBlock], _Unspec] = _Unspec(),
        transactions_info: Union[ Optional[TransactionsInfo], _Unspec] = _Unspec(),
        transactions_generator: Union[ Optional[Program], _Unspec] = _Unspec(),
        transactions_generator_ref_list: Union[ List[int], _Unspec] = _Unspec()) -> FullBlock: ...

class HeaderBlock:
    finished_sub_slots: List[EndOfSubSlotBundle]
    reward_chain_block: RewardChainBlock
    challenge_chain_sp_proof: Optional[VDFProof]
    challenge_chain_ip_proof: VDFProof
    reward_chain_sp_proof: Optional[VDFProof]
    reward_chain_ip_proof: VDFProof
    infused_challenge_chain_ip_proof: Optional[VDFProof]
    foliage: Foliage
    foliage_transaction_block: Optional[FoliageTransactionBlock]
    transactions_filter: bytes
    transactions_info: Optional[TransactionsInfo]
    prev_header_hash: bytes32
    prev_hash: bytes32
    header_hash: bytes32
    height: int
    weight: int
    header_hash: bytes32
    total_iters: int
    log_string: str
    is_transaction_block: bool
    first_in_sub_slot: bool
    def __init__(
        self,
        finished_sub_slots: Sequence[EndOfSubSlotBundle],
        reward_chain_block: RewardChainBlock,
        challenge_chain_sp_proof: Optional[VDFProof],
        challenge_chain_ip_proof: VDFProof,
        reward_chain_sp_proof: Optional[VDFProof],
        reward_chain_ip_proof: VDFProof,
        infused_challenge_chain_ip_proof: Optional[VDFProof],
        foliage: Foliage,
        foliage_transaction_block: Optional[FoliageTransactionBlock],
        transactions_filter: bytes,
        transactions_info: Optional[TransactionsInfo]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> HeaderBlock: ...
    def __copy__(self) -> HeaderBlock: ...
    @staticmethod
    def from_bytes(bytes) -> HeaderBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> HeaderBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[HeaderBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> HeaderBlock: ...
    def replace(self, *, finished_sub_slots: Union[ List[EndOfSubSlotBundle], _Unspec] = _Unspec(),
        reward_chain_block: Union[ RewardChainBlock, _Unspec] = _Unspec(),
        challenge_chain_sp_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        challenge_chain_ip_proof: Union[ VDFProof, _Unspec] = _Unspec(),
        reward_chain_sp_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        reward_chain_ip_proof: Union[ VDFProof, _Unspec] = _Unspec(),
        infused_challenge_chain_ip_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        foliage: Union[ Foliage, _Unspec] = _Unspec(),
        foliage_transaction_block: Union[ Optional[FoliageTransactionBlock], _Unspec] = _Unspec(),
        transactions_filter: Union[ bytes, _Unspec] = _Unspec(),
        transactions_info: Union[ Optional[TransactionsInfo], _Unspec] = _Unspec()) -> HeaderBlock: ...

class TimestampedPeerInfo:
    host: String
    port: int
    timestamp: int
    def __init__(
        self,
        host: String,
        port: int,
        timestamp: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> TimestampedPeerInfo: ...
    def __copy__(self) -> TimestampedPeerInfo: ...
    @staticmethod
    def from_bytes(bytes) -> TimestampedPeerInfo: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> TimestampedPeerInfo: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[TimestampedPeerInfo, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> TimestampedPeerInfo: ...
    def replace(self, *, host: Union[ String, _Unspec] = _Unspec(),
        port: Union[ int, _Unspec] = _Unspec(),
        timestamp: Union[ int, _Unspec] = _Unspec()) -> TimestampedPeerInfo: ...

class PoolTarget:
    puzzle_hash: bytes32
    max_height: int
    def __init__(
        self,
        puzzle_hash: bytes,
        max_height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> PoolTarget: ...
    def __copy__(self) -> PoolTarget: ...
    @staticmethod
    def from_bytes(bytes) -> PoolTarget: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> PoolTarget: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[PoolTarget, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> PoolTarget: ...
    def replace(self, *, puzzle_hash: Union[ bytes32, _Unspec] = _Unspec(),
        max_height: Union[ int, _Unspec] = _Unspec()) -> PoolTarget: ...

class Program:
    a0: bytes
    def get_tree_hash(self) -> bytes32: ...
    @staticmethod
    def default() -> Program: ...
    @staticmethod
    def fromhex(hex) -> Program: ...
    def run_mempool_with_cost(self, max_cost: int, args: object) -> Tuple[int, ChikProgram]: ...
    def run_with_cost(self, max_cost: int, args: object) -> Tuple[int, ChikProgram]: ...
    def _run(self, max_cost: int, flags: int, args: object) -> Tuple[int, ChikProgram]: ...
    @staticmethod
    def to(o: object) -> Program: ...
    @staticmethod
    def from_program(p: ChikProgram) -> Program: ...
    def to_program(self) -> ChikProgram: ...
    def uncurry(self) -> Tuple[ChikProgram, ChikProgram]: ...
    def __init__(
        self,
        a0: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> Program: ...
    def __copy__(self) -> Program: ...
    @staticmethod
    def from_bytes(bytes) -> Program: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> Program: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[Program, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> Program: ...
    def replace(self, *, a0: Union[ bytes, _Unspec] = _Unspec()) -> Program: ...

class ProofOfSpace:
    challenge: bytes32
    pool_public_key: Optional[G1Element]
    pool_contract_puzzle_hash: Optional[bytes32]
    plot_public_key: G1Element
    size: int
    proof: bytes
    def __init__(
        self,
        challenge: bytes,
        pool_public_key: Optional[G1Element],
        pool_contract_puzzle_hash: Optional[bytes32],
        plot_public_key: G1Element,
        size: int,
        proof: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> ProofOfSpace: ...
    def __copy__(self) -> ProofOfSpace: ...
    @staticmethod
    def from_bytes(bytes) -> ProofOfSpace: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> ProofOfSpace: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[ProofOfSpace, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> ProofOfSpace: ...
    def replace(self, *, challenge: Union[ bytes32, _Unspec] = _Unspec(),
        pool_public_key: Union[ Optional[G1Element], _Unspec] = _Unspec(),
        pool_contract_puzzle_hash: Union[ Optional[bytes32], _Unspec] = _Unspec(),
        plot_public_key: Union[ G1Element, _Unspec] = _Unspec(),
        size: Union[ int, _Unspec] = _Unspec(),
        proof: Union[ bytes, _Unspec] = _Unspec()) -> ProofOfSpace: ...

class RewardChainBlockUnfinished:
    total_iters: int
    signage_point_index: int
    pos_ss_cc_challenge_hash: bytes32
    proof_of_space: ProofOfSpace
    challenge_chain_sp_vdf: Optional[VDFInfo]
    challenge_chain_sp_signature: G2Element
    reward_chain_sp_vdf: Optional[VDFInfo]
    reward_chain_sp_signature: G2Element
    def __init__(
        self,
        total_iters: int,
        signage_point_index: int,
        pos_ss_cc_challenge_hash: bytes,
        proof_of_space: ProofOfSpace,
        challenge_chain_sp_vdf: Optional[VDFInfo],
        challenge_chain_sp_signature: G2Element,
        reward_chain_sp_vdf: Optional[VDFInfo],
        reward_chain_sp_signature: G2Element
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RewardChainBlockUnfinished: ...
    def __copy__(self) -> RewardChainBlockUnfinished: ...
    @staticmethod
    def from_bytes(bytes) -> RewardChainBlockUnfinished: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RewardChainBlockUnfinished: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RewardChainBlockUnfinished, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RewardChainBlockUnfinished: ...
    def replace(self, *, total_iters: Union[ int, _Unspec] = _Unspec(),
        signage_point_index: Union[ int, _Unspec] = _Unspec(),
        pos_ss_cc_challenge_hash: Union[ bytes32, _Unspec] = _Unspec(),
        proof_of_space: Union[ ProofOfSpace, _Unspec] = _Unspec(),
        challenge_chain_sp_vdf: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        challenge_chain_sp_signature: Union[ G2Element, _Unspec] = _Unspec(),
        reward_chain_sp_vdf: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        reward_chain_sp_signature: Union[ G2Element, _Unspec] = _Unspec()) -> RewardChainBlockUnfinished: ...

class RewardChainBlock:
    weight: int
    height: int
    total_iters: int
    signage_point_index: int
    pos_ss_cc_challenge_hash: bytes32
    proof_of_space: ProofOfSpace
    challenge_chain_sp_vdf: Optional[VDFInfo]
    challenge_chain_sp_signature: G2Element
    challenge_chain_ip_vdf: VDFInfo
    reward_chain_sp_vdf: Optional[VDFInfo]
    reward_chain_sp_signature: G2Element
    reward_chain_ip_vdf: VDFInfo
    infused_challenge_chain_ip_vdf: Optional[VDFInfo]
    is_transaction_block: bool
    def get_unfinished(self) -> RewardChainBlockUnfinished: ...
    def __init__(
        self,
        weight: int,
        height: int,
        total_iters: int,
        signage_point_index: int,
        pos_ss_cc_challenge_hash: bytes,
        proof_of_space: ProofOfSpace,
        challenge_chain_sp_vdf: Optional[VDFInfo],
        challenge_chain_sp_signature: G2Element,
        challenge_chain_ip_vdf: VDFInfo,
        reward_chain_sp_vdf: Optional[VDFInfo],
        reward_chain_sp_signature: G2Element,
        reward_chain_ip_vdf: VDFInfo,
        infused_challenge_chain_ip_vdf: Optional[VDFInfo],
        is_transaction_block: bool
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RewardChainBlock: ...
    def __copy__(self) -> RewardChainBlock: ...
    @staticmethod
    def from_bytes(bytes) -> RewardChainBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RewardChainBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RewardChainBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RewardChainBlock: ...
    def replace(self, *, weight: Union[ int, _Unspec] = _Unspec(),
        height: Union[ int, _Unspec] = _Unspec(),
        total_iters: Union[ int, _Unspec] = _Unspec(),
        signage_point_index: Union[ int, _Unspec] = _Unspec(),
        pos_ss_cc_challenge_hash: Union[ bytes32, _Unspec] = _Unspec(),
        proof_of_space: Union[ ProofOfSpace, _Unspec] = _Unspec(),
        challenge_chain_sp_vdf: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        challenge_chain_sp_signature: Union[ G2Element, _Unspec] = _Unspec(),
        challenge_chain_ip_vdf: Union[ VDFInfo, _Unspec] = _Unspec(),
        reward_chain_sp_vdf: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        reward_chain_sp_signature: Union[ G2Element, _Unspec] = _Unspec(),
        reward_chain_ip_vdf: Union[ VDFInfo, _Unspec] = _Unspec(),
        infused_challenge_chain_ip_vdf: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        is_transaction_block: Union[ bool, _Unspec] = _Unspec()) -> RewardChainBlock: ...

class ChallengeBlockInfo:
    proof_of_space: ProofOfSpace
    challenge_chain_sp_vdf: Optional[VDFInfo]
    challenge_chain_sp_signature: G2Element
    challenge_chain_ip_vdf: VDFInfo
    def __init__(
        self,
        proof_of_space: ProofOfSpace,
        challenge_chain_sp_vdf: Optional[VDFInfo],
        challenge_chain_sp_signature: G2Element,
        challenge_chain_ip_vdf: VDFInfo
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> ChallengeBlockInfo: ...
    def __copy__(self) -> ChallengeBlockInfo: ...
    @staticmethod
    def from_bytes(bytes) -> ChallengeBlockInfo: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> ChallengeBlockInfo: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[ChallengeBlockInfo, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> ChallengeBlockInfo: ...
    def replace(self, *, proof_of_space: Union[ ProofOfSpace, _Unspec] = _Unspec(),
        challenge_chain_sp_vdf: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        challenge_chain_sp_signature: Union[ G2Element, _Unspec] = _Unspec(),
        challenge_chain_ip_vdf: Union[ VDFInfo, _Unspec] = _Unspec()) -> ChallengeBlockInfo: ...

class ChallengeChainSubSlot:
    challenge_chain_end_of_slot_vdf: VDFInfo
    infused_challenge_chain_sub_slot_hash: Optional[bytes32]
    subepoch_summary_hash: Optional[bytes32]
    new_sub_slot_iters: Optional[int]
    new_difficulty: Optional[int]
    def __init__(
        self,
        challenge_chain_end_of_slot_vdf: VDFInfo,
        infused_challenge_chain_sub_slot_hash: Optional[bytes32],
        subepoch_summary_hash: Optional[bytes32],
        new_sub_slot_iters: Optional[int],
        new_difficulty: Optional[int]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> ChallengeChainSubSlot: ...
    def __copy__(self) -> ChallengeChainSubSlot: ...
    @staticmethod
    def from_bytes(bytes) -> ChallengeChainSubSlot: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> ChallengeChainSubSlot: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[ChallengeChainSubSlot, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> ChallengeChainSubSlot: ...
    def replace(self, *, challenge_chain_end_of_slot_vdf: Union[ VDFInfo, _Unspec] = _Unspec(),
        infused_challenge_chain_sub_slot_hash: Union[ Optional[bytes32], _Unspec] = _Unspec(),
        subepoch_summary_hash: Union[ Optional[bytes32], _Unspec] = _Unspec(),
        new_sub_slot_iters: Union[ Optional[int], _Unspec] = _Unspec(),
        new_difficulty: Union[ Optional[int], _Unspec] = _Unspec()) -> ChallengeChainSubSlot: ...

class InfusedChallengeChainSubSlot:
    infused_challenge_chain_end_of_slot_vdf: VDFInfo
    def __init__(
        self,
        infused_challenge_chain_end_of_slot_vdf: VDFInfo
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> InfusedChallengeChainSubSlot: ...
    def __copy__(self) -> InfusedChallengeChainSubSlot: ...
    @staticmethod
    def from_bytes(bytes) -> InfusedChallengeChainSubSlot: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> InfusedChallengeChainSubSlot: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[InfusedChallengeChainSubSlot, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> InfusedChallengeChainSubSlot: ...
    def replace(self, *, infused_challenge_chain_end_of_slot_vdf: Union[ VDFInfo, _Unspec] = _Unspec()) -> InfusedChallengeChainSubSlot: ...

class RewardChainSubSlot:
    end_of_slot_vdf: VDFInfo
    challenge_chain_sub_slot_hash: bytes32
    infused_challenge_chain_sub_slot_hash: Optional[bytes32]
    deficit: int
    def __init__(
        self,
        end_of_slot_vdf: VDFInfo,
        challenge_chain_sub_slot_hash: bytes,
        infused_challenge_chain_sub_slot_hash: Optional[bytes32],
        deficit: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RewardChainSubSlot: ...
    def __copy__(self) -> RewardChainSubSlot: ...
    @staticmethod
    def from_bytes(bytes) -> RewardChainSubSlot: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RewardChainSubSlot: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RewardChainSubSlot, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RewardChainSubSlot: ...
    def replace(self, *, end_of_slot_vdf: Union[ VDFInfo, _Unspec] = _Unspec(),
        challenge_chain_sub_slot_hash: Union[ bytes32, _Unspec] = _Unspec(),
        infused_challenge_chain_sub_slot_hash: Union[ Optional[bytes32], _Unspec] = _Unspec(),
        deficit: Union[ int, _Unspec] = _Unspec()) -> RewardChainSubSlot: ...

class SubSlotProofs:
    challenge_chain_slot_proof: VDFProof
    infused_challenge_chain_slot_proof: Optional[VDFProof]
    reward_chain_slot_proof: VDFProof
    def __init__(
        self,
        challenge_chain_slot_proof: VDFProof,
        infused_challenge_chain_slot_proof: Optional[VDFProof],
        reward_chain_slot_proof: VDFProof
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SubSlotProofs: ...
    def __copy__(self) -> SubSlotProofs: ...
    @staticmethod
    def from_bytes(bytes) -> SubSlotProofs: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SubSlotProofs: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SubSlotProofs, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SubSlotProofs: ...
    def replace(self, *, challenge_chain_slot_proof: Union[ VDFProof, _Unspec] = _Unspec(),
        infused_challenge_chain_slot_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        reward_chain_slot_proof: Union[ VDFProof, _Unspec] = _Unspec()) -> SubSlotProofs: ...

class SpendBundle:
    coin_spends: List[CoinSpend]
    aggregated_signature: G2Element
    @staticmethod
    def aggregate(sbs: List[SpendBundle]) -> SpendBundle: ...
    def name(self) -> bytes32: ...
    def removals(self) -> List[Coin]: ...
    def additions(self) -> List[Coin]: ...
    def debug(self) -> None: ...
    def __init__(
        self,
        coin_spends: Sequence[CoinSpend],
        aggregated_signature: G2Element
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SpendBundle: ...
    def __copy__(self) -> SpendBundle: ...
    @staticmethod
    def from_bytes(bytes) -> SpendBundle: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SpendBundle: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SpendBundle, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SpendBundle: ...
    def replace(self, *, coin_spends: Union[ List[CoinSpend], _Unspec] = _Unspec(),
        aggregated_signature: Union[ G2Element, _Unspec] = _Unspec()) -> SpendBundle: ...

class SubEpochSummary:
    prev_subepoch_summary_hash: bytes32
    reward_chain_hash: bytes32
    num_blocks_overflow: int
    new_difficulty: Optional[int]
    new_sub_slot_iters: Optional[int]
    def __init__(
        self,
        prev_subepoch_summary_hash: bytes,
        reward_chain_hash: bytes,
        num_blocks_overflow: int,
        new_difficulty: Optional[int],
        new_sub_slot_iters: Optional[int]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SubEpochSummary: ...
    def __copy__(self) -> SubEpochSummary: ...
    @staticmethod
    def from_bytes(bytes) -> SubEpochSummary: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SubEpochSummary: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SubEpochSummary, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SubEpochSummary: ...
    def replace(self, *, prev_subepoch_summary_hash: Union[ bytes32, _Unspec] = _Unspec(),
        reward_chain_hash: Union[ bytes32, _Unspec] = _Unspec(),
        num_blocks_overflow: Union[ int, _Unspec] = _Unspec(),
        new_difficulty: Union[ Optional[int], _Unspec] = _Unspec(),
        new_sub_slot_iters: Union[ Optional[int], _Unspec] = _Unspec()) -> SubEpochSummary: ...

class UnfinishedBlock:
    finished_sub_slots: List[EndOfSubSlotBundle]
    reward_chain_block: RewardChainBlockUnfinished
    challenge_chain_sp_proof: Optional[VDFProof]
    reward_chain_sp_proof: Optional[VDFProof]
    foliage: Foliage
    foliage_transaction_block: Optional[FoliageTransactionBlock]
    transactions_info: Optional[TransactionsInfo]
    transactions_generator: Optional[Program]
    transactions_generator_ref_list: List[int]
    prev_header_hash: bytes32
    partial_hash: bytes32
    def is_transaction_block(self) -> bool: ...
    total_iters: int
    def __init__(
        self,
        finished_sub_slots: Sequence[EndOfSubSlotBundle],
        reward_chain_block: RewardChainBlockUnfinished,
        challenge_chain_sp_proof: Optional[VDFProof],
        reward_chain_sp_proof: Optional[VDFProof],
        foliage: Foliage,
        foliage_transaction_block: Optional[FoliageTransactionBlock],
        transactions_info: Optional[TransactionsInfo],
        transactions_generator: Optional[Program],
        transactions_generator_ref_list: Sequence[int]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> UnfinishedBlock: ...
    def __copy__(self) -> UnfinishedBlock: ...
    @staticmethod
    def from_bytes(bytes) -> UnfinishedBlock: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> UnfinishedBlock: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[UnfinishedBlock, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> UnfinishedBlock: ...
    def replace(self, *, finished_sub_slots: Union[ List[EndOfSubSlotBundle], _Unspec] = _Unspec(),
        reward_chain_block: Union[ RewardChainBlockUnfinished, _Unspec] = _Unspec(),
        challenge_chain_sp_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        reward_chain_sp_proof: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        foliage: Union[ Foliage, _Unspec] = _Unspec(),
        foliage_transaction_block: Union[ Optional[FoliageTransactionBlock], _Unspec] = _Unspec(),
        transactions_info: Union[ Optional[TransactionsInfo], _Unspec] = _Unspec(),
        transactions_generator: Union[ Optional[Program], _Unspec] = _Unspec(),
        transactions_generator_ref_list: Union[ List[int], _Unspec] = _Unspec()) -> UnfinishedBlock: ...

class VDFInfo:
    challenge: bytes32
    number_of_iterations: int
    output: ClassgroupElement
    def __init__(
        self,
        challenge: bytes,
        number_of_iterations: int,
        output: ClassgroupElement
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> VDFInfo: ...
    def __copy__(self) -> VDFInfo: ...
    @staticmethod
    def from_bytes(bytes) -> VDFInfo: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> VDFInfo: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[VDFInfo, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> VDFInfo: ...
    def replace(self, *, challenge: Union[ bytes32, _Unspec] = _Unspec(),
        number_of_iterations: Union[ int, _Unspec] = _Unspec(),
        output: Union[ ClassgroupElement, _Unspec] = _Unspec()) -> VDFInfo: ...

class VDFProof:
    witness_type: int
    witness: bytes
    normalized_to_identity: bool
    def __init__(
        self,
        witness_type: int,
        witness: bytes,
        normalized_to_identity: bool
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> VDFProof: ...
    def __copy__(self) -> VDFProof: ...
    @staticmethod
    def from_bytes(bytes) -> VDFProof: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> VDFProof: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[VDFProof, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> VDFProof: ...
    def replace(self, *, witness_type: Union[ int, _Unspec] = _Unspec(),
        witness: Union[ bytes, _Unspec] = _Unspec(),
        normalized_to_identity: Union[ bool, _Unspec] = _Unspec()) -> VDFProof: ...

class RequestPuzzleSolution:
    coin_name: bytes32
    height: int
    def __init__(
        self,
        coin_name: bytes,
        height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestPuzzleSolution: ...
    def __copy__(self) -> RequestPuzzleSolution: ...
    @staticmethod
    def from_bytes(bytes) -> RequestPuzzleSolution: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestPuzzleSolution: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestPuzzleSolution, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestPuzzleSolution: ...
    def replace(self, *, coin_name: Union[ bytes32, _Unspec] = _Unspec(),
        height: Union[ int, _Unspec] = _Unspec()) -> RequestPuzzleSolution: ...

class PuzzleSolutionResponse:
    coin_name: bytes32
    height: int
    puzzle: Program
    solution: Program
    def __init__(
        self,
        coin_name: bytes,
        height: int,
        puzzle: Program,
        solution: Program
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> PuzzleSolutionResponse: ...
    def __copy__(self) -> PuzzleSolutionResponse: ...
    @staticmethod
    def from_bytes(bytes) -> PuzzleSolutionResponse: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> PuzzleSolutionResponse: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[PuzzleSolutionResponse, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> PuzzleSolutionResponse: ...
    def replace(self, *, coin_name: Union[ bytes32, _Unspec] = _Unspec(),
        height: Union[ int, _Unspec] = _Unspec(),
        puzzle: Union[ Program, _Unspec] = _Unspec(),
        solution: Union[ Program, _Unspec] = _Unspec()) -> PuzzleSolutionResponse: ...

class RespondPuzzleSolution:
    response: PuzzleSolutionResponse
    def __init__(
        self,
        response: PuzzleSolutionResponse
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondPuzzleSolution: ...
    def __copy__(self) -> RespondPuzzleSolution: ...
    @staticmethod
    def from_bytes(bytes) -> RespondPuzzleSolution: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondPuzzleSolution: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondPuzzleSolution, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondPuzzleSolution: ...
    def replace(self, *, response: Union[ PuzzleSolutionResponse, _Unspec] = _Unspec()) -> RespondPuzzleSolution: ...

class RejectPuzzleSolution:
    coin_name: bytes32
    height: int
    def __init__(
        self,
        coin_name: bytes,
        height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RejectPuzzleSolution: ...
    def __copy__(self) -> RejectPuzzleSolution: ...
    @staticmethod
    def from_bytes(bytes) -> RejectPuzzleSolution: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RejectPuzzleSolution: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RejectPuzzleSolution, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RejectPuzzleSolution: ...
    def replace(self, *, coin_name: Union[ bytes32, _Unspec] = _Unspec(),
        height: Union[ int, _Unspec] = _Unspec()) -> RejectPuzzleSolution: ...

class SendTransaction:
    transaction: SpendBundle
    def __init__(
        self,
        transaction: SpendBundle
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SendTransaction: ...
    def __copy__(self) -> SendTransaction: ...
    @staticmethod
    def from_bytes(bytes) -> SendTransaction: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SendTransaction: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SendTransaction, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SendTransaction: ...
    def replace(self, *, transaction: Union[ SpendBundle, _Unspec] = _Unspec()) -> SendTransaction: ...

class TransactionAck:
    txid: bytes32
    status: int
    error: Optional[String]
    def __init__(
        self,
        txid: bytes,
        status: int,
        error: Optional[String]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> TransactionAck: ...
    def __copy__(self) -> TransactionAck: ...
    @staticmethod
    def from_bytes(bytes) -> TransactionAck: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> TransactionAck: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[TransactionAck, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> TransactionAck: ...
    def replace(self, *, txid: Union[ bytes32, _Unspec] = _Unspec(),
        status: Union[ int, _Unspec] = _Unspec(),
        error: Union[ Optional[String], _Unspec] = _Unspec()) -> TransactionAck: ...

class NewPeakWallet:
    header_hash: bytes32
    height: int
    weight: int
    fork_point_with_previous_peak: int
    def __init__(
        self,
        header_hash: bytes,
        height: int,
        weight: int,
        fork_point_with_previous_peak: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> NewPeakWallet: ...
    def __copy__(self) -> NewPeakWallet: ...
    @staticmethod
    def from_bytes(bytes) -> NewPeakWallet: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> NewPeakWallet: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[NewPeakWallet, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> NewPeakWallet: ...
    def replace(self, *, header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        height: Union[ int, _Unspec] = _Unspec(),
        weight: Union[ int, _Unspec] = _Unspec(),
        fork_point_with_previous_peak: Union[ int, _Unspec] = _Unspec()) -> NewPeakWallet: ...

class RequestBlockHeader:
    height: int
    def __init__(
        self,
        height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestBlockHeader: ...
    def __copy__(self) -> RequestBlockHeader: ...
    @staticmethod
    def from_bytes(bytes) -> RequestBlockHeader: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestBlockHeader: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestBlockHeader, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestBlockHeader: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec()) -> RequestBlockHeader: ...

class RespondBlockHeader:
    header_block: HeaderBlock
    def __init__(
        self,
        header_block: HeaderBlock
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondBlockHeader: ...
    def __copy__(self) -> RespondBlockHeader: ...
    @staticmethod
    def from_bytes(bytes) -> RespondBlockHeader: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondBlockHeader: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondBlockHeader, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondBlockHeader: ...
    def replace(self, *, header_block: Union[ HeaderBlock, _Unspec] = _Unspec()) -> RespondBlockHeader: ...

class RejectHeaderRequest:
    height: int
    def __init__(
        self,
        height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RejectHeaderRequest: ...
    def __copy__(self) -> RejectHeaderRequest: ...
    @staticmethod
    def from_bytes(bytes) -> RejectHeaderRequest: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RejectHeaderRequest: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RejectHeaderRequest, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RejectHeaderRequest: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec()) -> RejectHeaderRequest: ...

class RequestRemovals:
    height: int
    header_hash: bytes32
    coin_names: Optional[List[bytes32]]
    def __init__(
        self,
        height: int,
        header_hash: bytes,
        coin_names: Optional[Sequence[bytes32]]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestRemovals: ...
    def __copy__(self) -> RequestRemovals: ...
    @staticmethod
    def from_bytes(bytes) -> RequestRemovals: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestRemovals: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestRemovals, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestRemovals: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        coin_names: Union[ Optional[List[bytes32]], _Unspec] = _Unspec()) -> RequestRemovals: ...

class RespondRemovals:
    height: int
    header_hash: bytes32
    coins: List[(bytes32, Optional[Coin])]
    proofs: Optional[List[(bytes32, bytes)]]
    def __init__(
        self,
        height: int,
        header_hash: bytes,
        coins: Sequence[(bytes32, Optional[Coin])],
        proofs: Optional[Sequence[(bytes32, bytes)]]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondRemovals: ...
    def __copy__(self) -> RespondRemovals: ...
    @staticmethod
    def from_bytes(bytes) -> RespondRemovals: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondRemovals: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondRemovals, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondRemovals: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        coins: Union[ List[(bytes32, Optional[Coin])], _Unspec] = _Unspec(),
        proofs: Union[ Optional[List[(bytes32, bytes)]], _Unspec] = _Unspec()) -> RespondRemovals: ...

class RejectRemovalsRequest:
    height: int
    header_hash: bytes32
    def __init__(
        self,
        height: int,
        header_hash: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RejectRemovalsRequest: ...
    def __copy__(self) -> RejectRemovalsRequest: ...
    @staticmethod
    def from_bytes(bytes) -> RejectRemovalsRequest: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RejectRemovalsRequest: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RejectRemovalsRequest, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RejectRemovalsRequest: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ bytes32, _Unspec] = _Unspec()) -> RejectRemovalsRequest: ...

class RequestAdditions:
    height: int
    header_hash: Optional[bytes32]
    puzzle_hashes: Optional[List[bytes32]]
    def __init__(
        self,
        height: int,
        header_hash: Optional[bytes32],
        puzzle_hashes: Optional[Sequence[bytes32]]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestAdditions: ...
    def __copy__(self) -> RequestAdditions: ...
    @staticmethod
    def from_bytes(bytes) -> RequestAdditions: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestAdditions: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestAdditions, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestAdditions: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ Optional[bytes32], _Unspec] = _Unspec(),
        puzzle_hashes: Union[ Optional[List[bytes32]], _Unspec] = _Unspec()) -> RequestAdditions: ...

class RespondAdditions:
    height: int
    header_hash: bytes32
    coins: List[(bytes32, List[Coin])]
    proofs: Optional[List[(bytes32, bytes, Optional[bytes])]]
    def __init__(
        self,
        height: int,
        header_hash: bytes,
        coins: Sequence[(bytes32, Sequence[Coin])],
        proofs: Optional[Sequence[(bytes32, bytes, Optional[bytes])]]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondAdditions: ...
    def __copy__(self) -> RespondAdditions: ...
    @staticmethod
    def from_bytes(bytes) -> RespondAdditions: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondAdditions: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondAdditions, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondAdditions: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ bytes32, _Unspec] = _Unspec(),
        coins: Union[ List[(bytes32, List[Coin])], _Unspec] = _Unspec(),
        proofs: Union[ Optional[List[(bytes32, bytes, Optional[bytes])]], _Unspec] = _Unspec()) -> RespondAdditions: ...

class RejectAdditionsRequest:
    height: int
    header_hash: bytes32
    def __init__(
        self,
        height: int,
        header_hash: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RejectAdditionsRequest: ...
    def __copy__(self) -> RejectAdditionsRequest: ...
    @staticmethod
    def from_bytes(bytes) -> RejectAdditionsRequest: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RejectAdditionsRequest: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RejectAdditionsRequest, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RejectAdditionsRequest: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        header_hash: Union[ bytes32, _Unspec] = _Unspec()) -> RejectAdditionsRequest: ...

class RespondBlockHeaders:
    start_height: int
    end_height: int
    header_blocks: List[HeaderBlock]
    def __init__(
        self,
        start_height: int,
        end_height: int,
        header_blocks: Sequence[HeaderBlock]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondBlockHeaders: ...
    def __copy__(self) -> RespondBlockHeaders: ...
    @staticmethod
    def from_bytes(bytes) -> RespondBlockHeaders: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondBlockHeaders: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondBlockHeaders, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondBlockHeaders: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec(),
        header_blocks: Union[ List[HeaderBlock], _Unspec] = _Unspec()) -> RespondBlockHeaders: ...

class RejectBlockHeaders:
    start_height: int
    end_height: int
    def __init__(
        self,
        start_height: int,
        end_height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RejectBlockHeaders: ...
    def __copy__(self) -> RejectBlockHeaders: ...
    @staticmethod
    def from_bytes(bytes) -> RejectBlockHeaders: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RejectBlockHeaders: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RejectBlockHeaders, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RejectBlockHeaders: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec()) -> RejectBlockHeaders: ...

class RequestBlockHeaders:
    start_height: int
    end_height: int
    return_filter: bool
    def __init__(
        self,
        start_height: int,
        end_height: int,
        return_filter: bool
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestBlockHeaders: ...
    def __copy__(self) -> RequestBlockHeaders: ...
    @staticmethod
    def from_bytes(bytes) -> RequestBlockHeaders: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestBlockHeaders: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestBlockHeaders, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestBlockHeaders: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec(),
        return_filter: Union[ bool, _Unspec] = _Unspec()) -> RequestBlockHeaders: ...

class RequestHeaderBlocks:
    start_height: int
    end_height: int
    def __init__(
        self,
        start_height: int,
        end_height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestHeaderBlocks: ...
    def __copy__(self) -> RequestHeaderBlocks: ...
    @staticmethod
    def from_bytes(bytes) -> RequestHeaderBlocks: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestHeaderBlocks: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestHeaderBlocks, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestHeaderBlocks: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec()) -> RequestHeaderBlocks: ...

class RejectHeaderBlocks:
    start_height: int
    end_height: int
    def __init__(
        self,
        start_height: int,
        end_height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RejectHeaderBlocks: ...
    def __copy__(self) -> RejectHeaderBlocks: ...
    @staticmethod
    def from_bytes(bytes) -> RejectHeaderBlocks: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RejectHeaderBlocks: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RejectHeaderBlocks, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RejectHeaderBlocks: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec()) -> RejectHeaderBlocks: ...

class RespondHeaderBlocks:
    start_height: int
    end_height: int
    header_blocks: List[HeaderBlock]
    def __init__(
        self,
        start_height: int,
        end_height: int,
        header_blocks: Sequence[HeaderBlock]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondHeaderBlocks: ...
    def __copy__(self) -> RespondHeaderBlocks: ...
    @staticmethod
    def from_bytes(bytes) -> RespondHeaderBlocks: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondHeaderBlocks: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondHeaderBlocks, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondHeaderBlocks: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec(),
        header_blocks: Union[ List[HeaderBlock], _Unspec] = _Unspec()) -> RespondHeaderBlocks: ...

class RegisterForPhUpdates:
    puzzle_hashes: List[bytes32]
    min_height: int
    def __init__(
        self,
        puzzle_hashes: Sequence[bytes32],
        min_height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RegisterForPhUpdates: ...
    def __copy__(self) -> RegisterForPhUpdates: ...
    @staticmethod
    def from_bytes(bytes) -> RegisterForPhUpdates: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RegisterForPhUpdates: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RegisterForPhUpdates, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RegisterForPhUpdates: ...
    def replace(self, *, puzzle_hashes: Union[ List[bytes32], _Unspec] = _Unspec(),
        min_height: Union[ int, _Unspec] = _Unspec()) -> RegisterForPhUpdates: ...

class RespondToPhUpdates:
    puzzle_hashes: List[bytes32]
    min_height: int
    coin_states: List[CoinState]
    def __init__(
        self,
        puzzle_hashes: Sequence[bytes32],
        min_height: int,
        coin_states: Sequence[CoinState]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondToPhUpdates: ...
    def __copy__(self) -> RespondToPhUpdates: ...
    @staticmethod
    def from_bytes(bytes) -> RespondToPhUpdates: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondToPhUpdates: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondToPhUpdates, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondToPhUpdates: ...
    def replace(self, *, puzzle_hashes: Union[ List[bytes32], _Unspec] = _Unspec(),
        min_height: Union[ int, _Unspec] = _Unspec(),
        coin_states: Union[ List[CoinState], _Unspec] = _Unspec()) -> RespondToPhUpdates: ...

class RegisterForCoinUpdates:
    coin_ids: List[bytes32]
    min_height: int
    def __init__(
        self,
        coin_ids: Sequence[bytes32],
        min_height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RegisterForCoinUpdates: ...
    def __copy__(self) -> RegisterForCoinUpdates: ...
    @staticmethod
    def from_bytes(bytes) -> RegisterForCoinUpdates: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RegisterForCoinUpdates: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RegisterForCoinUpdates, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RegisterForCoinUpdates: ...
    def replace(self, *, coin_ids: Union[ List[bytes32], _Unspec] = _Unspec(),
        min_height: Union[ int, _Unspec] = _Unspec()) -> RegisterForCoinUpdates: ...

class RespondToCoinUpdates:
    coin_ids: List[bytes32]
    min_height: int
    coin_states: List[CoinState]
    def __init__(
        self,
        coin_ids: Sequence[bytes32],
        min_height: int,
        coin_states: Sequence[CoinState]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondToCoinUpdates: ...
    def __copy__(self) -> RespondToCoinUpdates: ...
    @staticmethod
    def from_bytes(bytes) -> RespondToCoinUpdates: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondToCoinUpdates: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondToCoinUpdates, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondToCoinUpdates: ...
    def replace(self, *, coin_ids: Union[ List[bytes32], _Unspec] = _Unspec(),
        min_height: Union[ int, _Unspec] = _Unspec(),
        coin_states: Union[ List[CoinState], _Unspec] = _Unspec()) -> RespondToCoinUpdates: ...

class CoinStateUpdate:
    height: int
    fork_height: int
    peak_hash: bytes32
    items: List[CoinState]
    def __init__(
        self,
        height: int,
        fork_height: int,
        peak_hash: bytes,
        items: Sequence[CoinState]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> CoinStateUpdate: ...
    def __copy__(self) -> CoinStateUpdate: ...
    @staticmethod
    def from_bytes(bytes) -> CoinStateUpdate: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> CoinStateUpdate: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[CoinStateUpdate, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> CoinStateUpdate: ...
    def replace(self, *, height: Union[ int, _Unspec] = _Unspec(),
        fork_height: Union[ int, _Unspec] = _Unspec(),
        peak_hash: Union[ bytes32, _Unspec] = _Unspec(),
        items: Union[ List[CoinState], _Unspec] = _Unspec()) -> CoinStateUpdate: ...

class RequestChildren:
    coin_name: bytes32
    def __init__(
        self,
        coin_name: bytes
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestChildren: ...
    def __copy__(self) -> RequestChildren: ...
    @staticmethod
    def from_bytes(bytes) -> RequestChildren: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestChildren: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestChildren, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestChildren: ...
    def replace(self, *, coin_name: Union[ bytes32, _Unspec] = _Unspec()) -> RequestChildren: ...

class RespondChildren:
    coin_states: List[CoinState]
    def __init__(
        self,
        coin_states: Sequence[CoinState]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondChildren: ...
    def __copy__(self) -> RespondChildren: ...
    @staticmethod
    def from_bytes(bytes) -> RespondChildren: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondChildren: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondChildren, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondChildren: ...
    def replace(self, *, coin_states: Union[ List[CoinState], _Unspec] = _Unspec()) -> RespondChildren: ...

class RequestSesInfo:
    start_height: int
    end_height: int
    def __init__(
        self,
        start_height: int,
        end_height: int
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestSesInfo: ...
    def __copy__(self) -> RequestSesInfo: ...
    @staticmethod
    def from_bytes(bytes) -> RequestSesInfo: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestSesInfo: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestSesInfo, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestSesInfo: ...
    def replace(self, *, start_height: Union[ int, _Unspec] = _Unspec(),
        end_height: Union[ int, _Unspec] = _Unspec()) -> RequestSesInfo: ...

class RespondSesInfo:
    reward_chain_hash: List[bytes32]
    heights: List[List[int]]
    def __init__(
        self,
        reward_chain_hash: Sequence[bytes32],
        heights: Sequence[Sequence[int]]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondSesInfo: ...
    def __copy__(self) -> RespondSesInfo: ...
    @staticmethod
    def from_bytes(bytes) -> RespondSesInfo: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondSesInfo: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondSesInfo, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondSesInfo: ...
    def replace(self, *, reward_chain_hash: Union[ List[bytes32], _Unspec] = _Unspec(),
        heights: Union[ List[List[int]], _Unspec] = _Unspec()) -> RespondSesInfo: ...

class RequestFeeEstimates:
    time_targets: List[int]
    def __init__(
        self,
        time_targets: Sequence[int]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RequestFeeEstimates: ...
    def __copy__(self) -> RequestFeeEstimates: ...
    @staticmethod
    def from_bytes(bytes) -> RequestFeeEstimates: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RequestFeeEstimates: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RequestFeeEstimates, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RequestFeeEstimates: ...
    def replace(self, *, time_targets: Union[ List[int], _Unspec] = _Unspec()) -> RequestFeeEstimates: ...

class RespondFeeEstimates:
    estimates: FeeEstimateGroup
    def __init__(
        self,
        estimates: FeeEstimateGroup
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RespondFeeEstimates: ...
    def __copy__(self) -> RespondFeeEstimates: ...
    @staticmethod
    def from_bytes(bytes) -> RespondFeeEstimates: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RespondFeeEstimates: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RespondFeeEstimates, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RespondFeeEstimates: ...
    def replace(self, *, estimates: Union[ FeeEstimateGroup, _Unspec] = _Unspec()) -> RespondFeeEstimates: ...

class SubEpochData:
    reward_chain_hash: bytes32
    num_blocks_overflow: int
    new_sub_slot_iters: Optional[int]
    new_difficulty: Optional[int]
    def __init__(
        self,
        reward_chain_hash: bytes,
        num_blocks_overflow: int,
        new_sub_slot_iters: Optional[int],
        new_difficulty: Optional[int]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SubEpochData: ...
    def __copy__(self) -> SubEpochData: ...
    @staticmethod
    def from_bytes(bytes) -> SubEpochData: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SubEpochData: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SubEpochData, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SubEpochData: ...
    def replace(self, *, reward_chain_hash: Union[ bytes32, _Unspec] = _Unspec(),
        num_blocks_overflow: Union[ int, _Unspec] = _Unspec(),
        new_sub_slot_iters: Union[ Optional[int], _Unspec] = _Unspec(),
        new_difficulty: Union[ Optional[int], _Unspec] = _Unspec()) -> SubEpochData: ...

class SubSlotData:
    proof_of_space: Optional[ProofOfSpace]
    cc_signage_point: Optional[VDFProof]
    cc_infusion_point: Optional[VDFProof]
    icc_infusion_point: Optional[VDFProof]
    cc_sp_vdf_info: Optional[VDFInfo]
    signage_point_index: Optional[int]
    cc_slot_end: Optional[VDFProof]
    icc_slot_end: Optional[VDFProof]
    cc_slot_end_info: Optional[VDFInfo]
    icc_slot_end_info: Optional[VDFInfo]
    cc_ip_vdf_info: Optional[VDFInfo]
    icc_ip_vdf_info: Optional[VDFInfo]
    total_iters: Optional[int]
    def is_end_of_slot(self) -> bool: ...
    def is_challenge(self) -> bool: ...
    def __init__(
        self,
        proof_of_space: Optional[ProofOfSpace],
        cc_signage_point: Optional[VDFProof],
        cc_infusion_point: Optional[VDFProof],
        icc_infusion_point: Optional[VDFProof],
        cc_sp_vdf_info: Optional[VDFInfo],
        signage_point_index: Optional[int],
        cc_slot_end: Optional[VDFProof],
        icc_slot_end: Optional[VDFProof],
        cc_slot_end_info: Optional[VDFInfo],
        icc_slot_end_info: Optional[VDFInfo],
        cc_ip_vdf_info: Optional[VDFInfo],
        icc_ip_vdf_info: Optional[VDFInfo],
        total_iters: Optional[int]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SubSlotData: ...
    def __copy__(self) -> SubSlotData: ...
    @staticmethod
    def from_bytes(bytes) -> SubSlotData: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SubSlotData: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SubSlotData, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SubSlotData: ...
    def replace(self, *, proof_of_space: Union[ Optional[ProofOfSpace], _Unspec] = _Unspec(),
        cc_signage_point: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        cc_infusion_point: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        icc_infusion_point: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        cc_sp_vdf_info: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        signage_point_index: Union[ Optional[int], _Unspec] = _Unspec(),
        cc_slot_end: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        icc_slot_end: Union[ Optional[VDFProof], _Unspec] = _Unspec(),
        cc_slot_end_info: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        icc_slot_end_info: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        cc_ip_vdf_info: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        icc_ip_vdf_info: Union[ Optional[VDFInfo], _Unspec] = _Unspec(),
        total_iters: Union[ Optional[int], _Unspec] = _Unspec()) -> SubSlotData: ...

class SubEpochChallengeSegment:
    sub_epoch_n: int
    sub_slots: List[SubSlotData]
    rc_slot_end_info: Optional[VDFInfo]
    def __init__(
        self,
        sub_epoch_n: int,
        sub_slots: Sequence[SubSlotData],
        rc_slot_end_info: Optional[VDFInfo]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SubEpochChallengeSegment: ...
    def __copy__(self) -> SubEpochChallengeSegment: ...
    @staticmethod
    def from_bytes(bytes) -> SubEpochChallengeSegment: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SubEpochChallengeSegment: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SubEpochChallengeSegment, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SubEpochChallengeSegment: ...
    def replace(self, *, sub_epoch_n: Union[ int, _Unspec] = _Unspec(),
        sub_slots: Union[ List[SubSlotData], _Unspec] = _Unspec(),
        rc_slot_end_info: Union[ Optional[VDFInfo], _Unspec] = _Unspec()) -> SubEpochChallengeSegment: ...

class SubEpochSegments:
    challenge_segments: List[SubEpochChallengeSegment]
    def __init__(
        self,
        challenge_segments: Sequence[SubEpochChallengeSegment]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> SubEpochSegments: ...
    def __copy__(self) -> SubEpochSegments: ...
    @staticmethod
    def from_bytes(bytes) -> SubEpochSegments: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> SubEpochSegments: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[SubEpochSegments, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> SubEpochSegments: ...
    def replace(self, *, challenge_segments: Union[ List[SubEpochChallengeSegment], _Unspec] = _Unspec()) -> SubEpochSegments: ...

class RecentChainData:
    recent_chain_data: List[HeaderBlock]
    def __init__(
        self,
        recent_chain_data: Sequence[HeaderBlock]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> RecentChainData: ...
    def __copy__(self) -> RecentChainData: ...
    @staticmethod
    def from_bytes(bytes) -> RecentChainData: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> RecentChainData: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[RecentChainData, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> RecentChainData: ...
    def replace(self, *, recent_chain_data: Union[ List[HeaderBlock], _Unspec] = _Unspec()) -> RecentChainData: ...

class ProofBlockHeader:
    finished_sub_slots: List[EndOfSubSlotBundle]
    reward_chain_block: RewardChainBlock
    def __init__(
        self,
        finished_sub_slots: Sequence[EndOfSubSlotBundle],
        reward_chain_block: RewardChainBlock
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> ProofBlockHeader: ...
    def __copy__(self) -> ProofBlockHeader: ...
    @staticmethod
    def from_bytes(bytes) -> ProofBlockHeader: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> ProofBlockHeader: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[ProofBlockHeader, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> ProofBlockHeader: ...
    def replace(self, *, finished_sub_slots: Union[ List[EndOfSubSlotBundle], _Unspec] = _Unspec(),
        reward_chain_block: Union[ RewardChainBlock, _Unspec] = _Unspec()) -> ProofBlockHeader: ...

class WeightProof:
    sub_epochs: List[SubEpochData]
    sub_epoch_segments: List[SubEpochChallengeSegment]
    recent_chain_data: List[HeaderBlock]
    def __init__(
        self,
        sub_epochs: Sequence[SubEpochData],
        sub_epoch_segments: Sequence[SubEpochChallengeSegment],
        recent_chain_data: Sequence[HeaderBlock]
    ) -> None: ...
    def __hash__(self) -> int: ...
    def __repr__(self) -> str: ...
    def __richcmp__(self) -> Any: ...
    def __deepcopy__(self) -> WeightProof: ...
    def __copy__(self) -> WeightProof: ...
    @staticmethod
    def from_bytes(bytes) -> WeightProof: ...
    @staticmethod
    def from_bytes_unchecked(bytes) -> WeightProof: ...
    @staticmethod
    def parse_rust(ReadableBuffer, bool = False) -> Tuple[WeightProof, int]: ...
    def to_bytes(self) -> bytes: ...
    def __bytes__(self) -> bytes: ...
    def stream_to_bytes(self) -> bytes: ...
    def get_hash(self) -> bytes32: ...
    def to_json_dict(self) -> Dict[str, Any]: ...
    @staticmethod
    def from_json_dict(json_dict: Dict[str, Any]) -> WeightProof: ...
    def replace(self, *, sub_epochs: Union[ List[SubEpochData], _Unspec] = _Unspec(),
        sub_epoch_segments: Union[ List[SubEpochChallengeSegment], _Unspec] = _Unspec(),
        recent_chain_data: Union[ List[HeaderBlock], _Unspec] = _Unspec()) -> WeightProof: ...
