diff --git a/wheel/generate_type_stubs.py b/wheel/generate_type_stubs.py
index 0939244fc..46e4dc687 100644
--- a/wheel/generate_type_stubs.py
+++ b/wheel/generate_type_stubs.py
@@ -68,8 +68,8 @@ def __init__(
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> {name}: ...
-    def __copy__(self) -> {name}: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
diff --git a/wheel/python/chia_rs/chia_rs.pyi b/wheel/python/chia_rs/chia_rs.pyi
index 6a2ab1aed..eb967f3fe 100644
--- a/wheel/python/chia_rs/chia_rs.pyi
+++ b/wheel/python/chia_rs/chia_rs.pyi
@@ -155,8 +155,8 @@ class G1Element:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> G1Element: ...
-    def __copy__(self) -> G1Element: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -186,8 +186,8 @@ class G2Element:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> G2Element: ...
-    def __copy__(self) -> G2Element: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -213,8 +213,8 @@ class GTElement:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> GTElement: ...
-    def __copy__(self) -> GTElement: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -245,8 +245,8 @@ class PrivateKey:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> PrivateKey: ...
-    def __copy__(self) -> PrivateKey: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -306,8 +306,8 @@ class SpendConditions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SpendConditions: ...
-    def __copy__(self) -> SpendConditions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -374,8 +374,8 @@ class SpendBundleConditions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SpendBundleConditions: ...
-    def __copy__(self) -> SpendBundleConditions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -468,8 +468,8 @@ class BlockRecord:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> BlockRecord: ...
-    def __copy__(self) -> BlockRecord: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -522,8 +522,8 @@ class Message:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> Message: ...
-    def __copy__(self) -> Message: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -560,8 +560,8 @@ class Handshake:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> Handshake: ...
-    def __copy__(self) -> Handshake: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -597,8 +597,8 @@ class ClassgroupElement:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> ClassgroupElement: ...
-    def __copy__(self) -> ClassgroupElement: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -628,8 +628,8 @@ class Coin:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> Coin: ...
-    def __copy__(self) -> Coin: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -660,8 +660,8 @@ class CoinSpend:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> CoinSpend: ...
-    def __copy__(self) -> CoinSpend: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -692,8 +692,8 @@ class CoinState:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> CoinState: ...
-    def __copy__(self) -> CoinState: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -726,8 +726,8 @@ class EndOfSubSlotBundle:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> EndOfSubSlotBundle: ...
-    def __copy__(self) -> EndOfSubSlotBundle: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -755,8 +755,8 @@ class FeeRate:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> FeeRate: ...
-    def __copy__(self) -> FeeRate: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -785,8 +785,8 @@ class FeeEstimate:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> FeeEstimate: ...
-    def __copy__(self) -> FeeEstimate: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -815,8 +815,8 @@ class FeeEstimateGroup:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> FeeEstimateGroup: ...
-    def __copy__(self) -> FeeEstimateGroup: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -852,8 +852,8 @@ class TransactionsInfo:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> TransactionsInfo: ...
-    def __copy__(self) -> TransactionsInfo: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -893,8 +893,8 @@ class FoliageTransactionBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> FoliageTransactionBlock: ...
-    def __copy__(self) -> FoliageTransactionBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -932,8 +932,8 @@ class FoliageBlockData:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> FoliageBlockData: ...
-    def __copy__(self) -> FoliageBlockData: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -972,8 +972,8 @@ class Foliage:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> Foliage: ...
-    def __copy__(self) -> Foliage: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1011,8 +1011,8 @@ class NewPeak:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> NewPeak: ...
-    def __copy__(self) -> NewPeak: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1045,8 +1045,8 @@ class NewTransaction:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> NewTransaction: ...
-    def __copy__(self) -> NewTransaction: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1073,8 +1073,8 @@ class RequestTransaction:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestTransaction: ...
-    def __copy__(self) -> RequestTransaction: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1099,8 +1099,8 @@ class RespondTransaction:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondTransaction: ...
-    def __copy__(self) -> RespondTransaction: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1127,8 +1127,8 @@ class RequestProofOfWeight:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestProofOfWeight: ...
-    def __copy__(self) -> RequestProofOfWeight: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1156,8 +1156,8 @@ class RespondProofOfWeight:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondProofOfWeight: ...
-    def __copy__(self) -> RespondProofOfWeight: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1185,8 +1185,8 @@ class RequestBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestBlock: ...
-    def __copy__(self) -> RequestBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1212,8 +1212,8 @@ class RejectBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectBlock: ...
-    def __copy__(self) -> RejectBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1242,8 +1242,8 @@ class RequestBlocks:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestBlocks: ...
-    def __copy__(self) -> RequestBlocks: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1274,8 +1274,8 @@ class RespondBlocks:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondBlocks: ...
-    def __copy__(self) -> RespondBlocks: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1304,8 +1304,8 @@ class RejectBlocks:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectBlocks: ...
-    def __copy__(self) -> RejectBlocks: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1331,8 +1331,8 @@ class RespondBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondBlock: ...
-    def __copy__(self) -> RespondBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1357,8 +1357,8 @@ class NewUnfinishedBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> NewUnfinishedBlock: ...
-    def __copy__(self) -> NewUnfinishedBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1383,8 +1383,8 @@ class RequestUnfinishedBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestUnfinishedBlock: ...
-    def __copy__(self) -> RequestUnfinishedBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1409,8 +1409,8 @@ class RespondUnfinishedBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondUnfinishedBlock: ...
-    def __copy__(self) -> RespondUnfinishedBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1441,8 +1441,8 @@ class NewSignagePointOrEndOfSubSlot:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> NewSignagePointOrEndOfSubSlot: ...
-    def __copy__(self) -> NewSignagePointOrEndOfSubSlot: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1474,8 +1474,8 @@ class RequestSignagePointOrEndOfSubSlot:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestSignagePointOrEndOfSubSlot: ...
-    def __copy__(self) -> RequestSignagePointOrEndOfSubSlot: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1510,8 +1510,8 @@ class RespondSignagePoint:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondSignagePoint: ...
-    def __copy__(self) -> RespondSignagePoint: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1540,8 +1540,8 @@ class RespondEndOfSubSlot:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondEndOfSubSlot: ...
-    def __copy__(self) -> RespondEndOfSubSlot: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1566,8 +1566,8 @@ class RequestMempoolTransactions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestMempoolTransactions: ...
-    def __copy__(self) -> RequestMempoolTransactions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1598,8 +1598,8 @@ class NewCompactVDF:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> NewCompactVDF: ...
-    def __copy__(self) -> NewCompactVDF: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1633,8 +1633,8 @@ class RequestCompactVDF:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestCompactVDF: ...
-    def __copy__(self) -> RequestCompactVDF: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1670,8 +1670,8 @@ class RespondCompactVDF:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondCompactVDF: ...
-    def __copy__(self) -> RespondCompactVDF: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1698,8 +1698,8 @@ class RequestPeers:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestPeers: ...
-    def __copy__(self) -> RequestPeers: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1723,8 +1723,8 @@ class RespondPeers:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondPeers: ...
-    def __copy__(self) -> RespondPeers: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1751,8 +1751,8 @@ class NewUnfinishedBlock2:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> NewUnfinishedBlock2: ...
-    def __copy__(self) -> NewUnfinishedBlock2: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1780,8 +1780,8 @@ class RequestUnfinishedBlock2:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestUnfinishedBlock2: ...
-    def __copy__(self) -> RequestUnfinishedBlock2: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1837,8 +1837,8 @@ class FullBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> FullBlock: ...
-    def __copy__(self) -> FullBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1903,8 +1903,8 @@ class HeaderBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> HeaderBlock: ...
-    def __copy__(self) -> HeaderBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1943,8 +1943,8 @@ class TimestampedPeerInfo:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> TimestampedPeerInfo: ...
-    def __copy__(self) -> TimestampedPeerInfo: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -1973,8 +1973,8 @@ class PoolTarget:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> PoolTarget: ...
-    def __copy__(self) -> PoolTarget: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2014,8 +2014,8 @@ class Program:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> Program: ...
-    def __copy__(self) -> Program: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2049,8 +2049,8 @@ class ProofOfSpace:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> ProofOfSpace: ...
-    def __copy__(self) -> ProofOfSpace: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2094,8 +2094,8 @@ class RewardChainBlockUnfinished:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RewardChainBlockUnfinished: ...
-    def __copy__(self) -> RewardChainBlockUnfinished: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2154,8 +2154,8 @@ class RewardChainBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RewardChainBlock: ...
-    def __copy__(self) -> RewardChainBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2199,8 +2199,8 @@ class ChallengeBlockInfo:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> ChallengeBlockInfo: ...
-    def __copy__(self) -> ChallengeBlockInfo: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2236,8 +2236,8 @@ class ChallengeChainSubSlot:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> ChallengeChainSubSlot: ...
-    def __copy__(self) -> ChallengeChainSubSlot: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2266,8 +2266,8 @@ class InfusedChallengeChainSubSlot:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> InfusedChallengeChainSubSlot: ...
-    def __copy__(self) -> InfusedChallengeChainSubSlot: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2298,8 +2298,8 @@ class RewardChainSubSlot:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RewardChainSubSlot: ...
-    def __copy__(self) -> RewardChainSubSlot: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2331,8 +2331,8 @@ class SubSlotProofs:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SubSlotProofs: ...
-    def __copy__(self) -> SubSlotProofs: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2366,8 +2366,8 @@ class SpendBundle:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SpendBundle: ...
-    def __copy__(self) -> SpendBundle: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2401,8 +2401,8 @@ class SubEpochSummary:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SubEpochSummary: ...
-    def __copy__(self) -> SubEpochSummary: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2451,8 +2451,8 @@ class UnfinishedBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> UnfinishedBlock: ...
-    def __copy__(self) -> UnfinishedBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2500,8 +2500,8 @@ class UnfinishedHeaderBlock:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> UnfinishedHeaderBlock: ...
-    def __copy__(self) -> UnfinishedHeaderBlock: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2536,8 +2536,8 @@ class VDFInfo:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> VDFInfo: ...
-    def __copy__(self) -> VDFInfo: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2568,8 +2568,8 @@ class VDFProof:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> VDFProof: ...
-    def __copy__(self) -> VDFProof: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2598,8 +2598,8 @@ class RequestPuzzleSolution:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestPuzzleSolution: ...
-    def __copy__(self) -> RequestPuzzleSolution: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2631,8 +2631,8 @@ class PuzzleSolutionResponse:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> PuzzleSolutionResponse: ...
-    def __copy__(self) -> PuzzleSolutionResponse: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2660,8 +2660,8 @@ class RespondPuzzleSolution:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondPuzzleSolution: ...
-    def __copy__(self) -> RespondPuzzleSolution: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2688,8 +2688,8 @@ class RejectPuzzleSolution:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectPuzzleSolution: ...
-    def __copy__(self) -> RejectPuzzleSolution: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2715,8 +2715,8 @@ class SendTransaction:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SendTransaction: ...
-    def __copy__(self) -> SendTransaction: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2745,8 +2745,8 @@ class TransactionAck:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> TransactionAck: ...
-    def __copy__(self) -> TransactionAck: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2779,8 +2779,8 @@ class NewPeakWallet:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> NewPeakWallet: ...
-    def __copy__(self) -> NewPeakWallet: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2808,8 +2808,8 @@ class RequestBlockHeader:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestBlockHeader: ...
-    def __copy__(self) -> RequestBlockHeader: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2834,8 +2834,8 @@ class RespondBlockHeader:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondBlockHeader: ...
-    def __copy__(self) -> RespondBlockHeader: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2860,8 +2860,8 @@ class RejectHeaderRequest:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectHeaderRequest: ...
-    def __copy__(self) -> RejectHeaderRequest: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2890,8 +2890,8 @@ class RequestRemovals:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestRemovals: ...
-    def __copy__(self) -> RequestRemovals: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2924,8 +2924,8 @@ class RespondRemovals:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondRemovals: ...
-    def __copy__(self) -> RespondRemovals: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2955,8 +2955,8 @@ class RejectRemovalsRequest:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectRemovalsRequest: ...
-    def __copy__(self) -> RejectRemovalsRequest: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -2986,8 +2986,8 @@ class RequestAdditions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestAdditions: ...
-    def __copy__(self) -> RequestAdditions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3020,8 +3020,8 @@ class RespondAdditions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondAdditions: ...
-    def __copy__(self) -> RespondAdditions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3051,8 +3051,8 @@ class RejectAdditionsRequest:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectAdditionsRequest: ...
-    def __copy__(self) -> RejectAdditionsRequest: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3082,8 +3082,8 @@ class RespondBlockHeaders:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondBlockHeaders: ...
-    def __copy__(self) -> RespondBlockHeaders: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3112,8 +3112,8 @@ class RejectBlockHeaders:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectBlockHeaders: ...
-    def __copy__(self) -> RejectBlockHeaders: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3143,8 +3143,8 @@ class RequestBlockHeaders:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestBlockHeaders: ...
-    def __copy__(self) -> RequestBlockHeaders: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3173,8 +3173,8 @@ class RequestHeaderBlocks:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestHeaderBlocks: ...
-    def __copy__(self) -> RequestHeaderBlocks: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3202,8 +3202,8 @@ class RejectHeaderBlocks:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectHeaderBlocks: ...
-    def __copy__(self) -> RejectHeaderBlocks: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3233,8 +3233,8 @@ class RespondHeaderBlocks:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondHeaderBlocks: ...
-    def __copy__(self) -> RespondHeaderBlocks: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3263,8 +3263,8 @@ class RegisterForPhUpdates:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RegisterForPhUpdates: ...
-    def __copy__(self) -> RegisterForPhUpdates: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3294,8 +3294,8 @@ class RespondToPhUpdates:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondToPhUpdates: ...
-    def __copy__(self) -> RespondToPhUpdates: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3324,8 +3324,8 @@ class RegisterForCoinUpdates:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RegisterForCoinUpdates: ...
-    def __copy__(self) -> RegisterForCoinUpdates: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3355,8 +3355,8 @@ class RespondToCoinUpdates:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondToCoinUpdates: ...
-    def __copy__(self) -> RespondToCoinUpdates: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3389,8 +3389,8 @@ class CoinStateUpdate:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> CoinStateUpdate: ...
-    def __copy__(self) -> CoinStateUpdate: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3418,8 +3418,8 @@ class RequestChildren:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestChildren: ...
-    def __copy__(self) -> RequestChildren: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3444,8 +3444,8 @@ class RespondChildren:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondChildren: ...
-    def __copy__(self) -> RespondChildren: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3472,8 +3472,8 @@ class RequestSesInfo:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestSesInfo: ...
-    def __copy__(self) -> RequestSesInfo: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3501,8 +3501,8 @@ class RespondSesInfo:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondSesInfo: ...
-    def __copy__(self) -> RespondSesInfo: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3528,8 +3528,8 @@ class RequestFeeEstimates:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestFeeEstimates: ...
-    def __copy__(self) -> RequestFeeEstimates: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3554,8 +3554,8 @@ class RespondFeeEstimates:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondFeeEstimates: ...
-    def __copy__(self) -> RespondFeeEstimates: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3580,8 +3580,8 @@ class RequestRemovePuzzleSubscriptions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestRemovePuzzleSubscriptions: ...
-    def __copy__(self) -> RequestRemovePuzzleSubscriptions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3606,8 +3606,8 @@ class RespondRemovePuzzleSubscriptions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondRemovePuzzleSubscriptions: ...
-    def __copy__(self) -> RespondRemovePuzzleSubscriptions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3632,8 +3632,8 @@ class RequestRemoveCoinSubscriptions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestRemoveCoinSubscriptions: ...
-    def __copy__(self) -> RequestRemoveCoinSubscriptions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3658,8 +3658,8 @@ class RespondRemoveCoinSubscriptions:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondRemoveCoinSubscriptions: ...
-    def __copy__(self) -> RespondRemoveCoinSubscriptions: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3690,8 +3690,8 @@ class CoinStateFilters:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> CoinStateFilters: ...
-    def __copy__(self) -> CoinStateFilters: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3727,8 +3727,8 @@ class RequestPuzzleState:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestPuzzleState: ...
-    def __copy__(self) -> RequestPuzzleState: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3765,8 +3765,8 @@ class RespondPuzzleState:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondPuzzleState: ...
-    def __copy__(self) -> RespondPuzzleState: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3795,8 +3795,8 @@ class RejectPuzzleState:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectPuzzleState: ...
-    def __copy__(self) -> RejectPuzzleState: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3827,8 +3827,8 @@ class RequestCoinState:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestCoinState: ...
-    def __copy__(self) -> RequestCoinState: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3858,8 +3858,8 @@ class RespondCoinState:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondCoinState: ...
-    def __copy__(self) -> RespondCoinState: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3885,8 +3885,8 @@ class RejectCoinState:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RejectCoinState: ...
-    def __copy__(self) -> RejectCoinState: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3913,8 +3913,8 @@ class RemovedMempoolItem:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RemovedMempoolItem: ...
-    def __copy__(self) -> RemovedMempoolItem: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3940,8 +3940,8 @@ class MempoolItemsAdded:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> MempoolItemsAdded: ...
-    def __copy__(self) -> MempoolItemsAdded: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3966,8 +3966,8 @@ class MempoolItemsRemoved:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> MempoolItemsRemoved: ...
-    def __copy__(self) -> MempoolItemsRemoved: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -3990,8 +3990,8 @@ class RequestCostInfo:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RequestCostInfo: ...
-    def __copy__(self) -> RequestCostInfo: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4025,8 +4025,8 @@ class RespondCostInfo:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RespondCostInfo: ...
-    def __copy__(self) -> RespondCostInfo: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4062,8 +4062,8 @@ class SubEpochData:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SubEpochData: ...
-    def __copy__(self) -> SubEpochData: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4117,8 +4117,8 @@ class SubSlotData:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SubSlotData: ...
-    def __copy__(self) -> SubSlotData: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4159,8 +4159,8 @@ class SubEpochChallengeSegment:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SubEpochChallengeSegment: ...
-    def __copy__(self) -> SubEpochChallengeSegment: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4187,8 +4187,8 @@ class SubEpochSegments:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> SubEpochSegments: ...
-    def __copy__(self) -> SubEpochSegments: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4213,8 +4213,8 @@ class RecentChainData:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> RecentChainData: ...
-    def __copy__(self) -> RecentChainData: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4241,8 +4241,8 @@ class ProofBlockHeader:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> ProofBlockHeader: ...
-    def __copy__(self) -> ProofBlockHeader: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4272,8 +4272,8 @@ class WeightProof:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> WeightProof: ...
-    def __copy__(self) -> WeightProof: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod
@@ -4390,8 +4390,8 @@ class ConsensusConstants:
     ) -> None: ...
     def __hash__(self) -> int: ...
     def __repr__(self) -> str: ...
-    def __deepcopy__(self, memo: object) -> ConsensusConstants: ...
-    def __copy__(self) -> ConsensusConstants: ...
+    def __deepcopy__(self, memo: object) -> Self: ...
+    def __copy__(self) -> Self: ...
     @classmethod
     def from_bytes(cls, blob: bytes) -> Self: ...
     @classmethod