2
2
3
3
from typing import TYPE_CHECKING
4
4
5
- from async_substrate_interface .errors import SubstrateRequestException
6
-
7
- from bittensor .utils import format_error_message
8
5
from bittensor .utils .balance import Balance
9
- from bittensor .utils .btlogging import logging
10
6
11
7
if TYPE_CHECKING :
12
8
from bittensor_wallet import Wallet
13
- from bittensor .core .async_subtensor import AsyncSubtensor
14
- from async_substrate_interface import (
15
- AsyncExtrinsicReceipt ,
16
- ExtrinsicReceipt ,
17
- )
18
- from bittensor .core .subtensor import Subtensor
19
9
from bittensor .core .chain_data import StakeInfo
20
- from scalecodec .types import GenericExtrinsic
21
-
22
-
23
- def submit_extrinsic (
24
- subtensor : "Subtensor" ,
25
- extrinsic : "GenericExtrinsic" ,
26
- wait_for_inclusion : bool ,
27
- wait_for_finalization : bool ,
28
- ) -> "ExtrinsicReceipt" :
29
- """
30
- Submits an extrinsic to the substrate blockchain and handles potential exceptions.
31
-
32
- This function attempts to submit an extrinsic to the substrate blockchain with specified options
33
- for waiting for inclusion in a block and/or finalization. If an exception occurs during submission,
34
- it logs the error and re-raises the exception.
35
-
36
- Args:
37
- subtensor: The Subtensor instance used to interact with the blockchain.
38
- extrinsic (scalecodec.types.GenericExtrinsic): The extrinsic to be submitted to the blockchain.
39
- wait_for_inclusion (bool): Whether to wait for the extrinsic to be included in a block.
40
- wait_for_finalization (bool): Whether to wait for the extrinsic to be finalized on the blockchain.
41
-
42
- Returns:
43
- response: The response from the substrate after submitting the extrinsic.
44
-
45
- Raises:
46
- SubstrateRequestException: If the submission of the extrinsic fails, the error is logged and re-raised.
47
- """
48
- try :
49
- return subtensor .substrate .submit_extrinsic (
50
- extrinsic ,
51
- wait_for_inclusion = wait_for_inclusion ,
52
- wait_for_finalization = wait_for_finalization ,
53
- )
54
- except SubstrateRequestException as e :
55
- logging .error (format_error_message (e .args [0 ]))
56
- # Re-raise the exception for retrying of the extrinsic call. If we remove the retry logic,
57
- # the raise will need to be removed.
58
- raise
59
-
60
-
61
- async def async_submit_extrinsic (
62
- subtensor : "AsyncSubtensor" ,
63
- extrinsic : "GenericExtrinsic" ,
64
- wait_for_inclusion : bool ,
65
- wait_for_finalization : bool ,
66
- ) -> "AsyncExtrinsicReceipt" :
67
- """
68
- Submits an extrinsic to the substrate blockchain and handles potential exceptions.
69
-
70
- This function attempts to submit an extrinsic to the substrate blockchain with specified options
71
- for waiting for inclusion in a block and/or finalization. If an exception occurs during submission,
72
- it logs the error and re-raises the exception.
73
-
74
- Args:
75
- subtensor: The AsyncSubtensor instance used to interact with the blockchain.
76
- extrinsic: The extrinsic to be submitted to the blockchain.
77
- wait_for_inclusion: Whether to wait for the extrinsic to be included in a block.
78
- wait_for_finalization: Whether to wait for the extrinsic to be finalized on the blockchain.
79
-
80
- Returns:
81
- response: The response from the substrate after submitting the extrinsic.
82
-
83
- Raises:
84
- SubstrateRequestException: If the submission of the extrinsic fails, the error is logged and re-raised.
85
- """
86
- try :
87
- return await subtensor .substrate .submit_extrinsic (
88
- extrinsic ,
89
- wait_for_inclusion = wait_for_inclusion ,
90
- wait_for_finalization = wait_for_finalization ,
91
- )
92
- except SubstrateRequestException as e :
93
- logging .error (format_error_message (e .args [0 ]))
94
- # Re-raise the exception for retrying of the extrinsic call. If we remove the retry logic,
95
- # the raise will need to be removed.
96
- raise
97
10
98
11
99
12
def get_old_stakes (
100
13
wallet : "Wallet" ,
101
14
hotkey_ss58s : list [str ],
102
15
netuids : list [int ],
103
16
all_stakes : list ["StakeInfo" ],
104
- ) -> list [Balance ]:
17
+ ) -> list [" Balance" ]:
105
18
"""
106
19
Retrieve the previous staking balances for a wallet's hotkeys across given netuids.
107
20
@@ -110,10 +23,10 @@ def get_old_stakes(
110
23
is found for a particular hotkey and netuid combination, a default balance of zero is returned.
111
24
112
25
Args:
113
- wallet (Wallet) : The wallet containing the coldkey to compare with stake data.
114
- hotkey_ss58s (list[str]) : List of hotkey SS58 addresses for which stakes are retrieved.
115
- netuids (list[int]) : List of network unique identifiers (netuids) corresponding to the hotkeys.
116
- all_stakes (list[StakeInfo]) : A collection of all staking information to search through.
26
+ wallet: The wallet containing the coldkey to compare with stake data.
27
+ hotkey_ss58s: List of hotkey SS58 addresses for which stakes are retrieved.
28
+ netuids: List of network unique identifiers (netuids) corresponding to the hotkeys.
29
+ all_stakes: A collection of all staking information to search through.
117
30
118
31
Returns:
119
32
list[Balance]: A list of Balances, each representing the stake for a given hotkey and netuid.
0 commit comments