Skip to content

Commit 6b8a88a

Browse files
authored
Merge pull request #2772 from opentensor/fix/zyzniewski/async_set_subnet_identity_extrinsic
Fix: async set_subnet_identity_extrinsic doesn't sign the extrinsic
2 parents 18f17ae + 3623eac commit 6b8a88a

File tree

2 files changed

+55
-30
lines changed

2 files changed

+55
-30
lines changed

bittensor/core/extrinsics/asyncex/registration.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ async def set_subnet_identity_extrinsic(
498498
},
499499
)
500500

501-
response = await subtensor.substrate.submit_extrinsic(
501+
success, error_message = await subtensor.sign_and_send_extrinsic(
502502
call=call,
503503
wallet=wallet,
504504
wait_for_inclusion=wait_for_inclusion,
@@ -508,14 +508,13 @@ async def set_subnet_identity_extrinsic(
508508
if not wait_for_finalization and not wait_for_inclusion:
509509
return True, f"Identities for subnet {netuid} are sent to the chain."
510510

511-
if await response.is_success:
511+
if success:
512512
logging.success(
513513
f":white_heavy_check_mark: [green]Identities for subnet[/green] [blue]{netuid}[/blue] [green]are set.[/green]"
514514
)
515515
return True, f"Identities for subnet {netuid} are set."
516-
else:
517-
error_message = await response.error_message
518-
logging.error(
519-
f":cross_mark: Failed to set identity for subnet [blue]{netuid}[/blue]: {error_message}"
520-
)
521-
return False, f"Failed to set identity for subnet {netuid}: {error_message}"
516+
517+
logging.error(
518+
f":cross_mark: Failed to set identity for subnet [blue]{netuid}[/blue]: {error_message}"
519+
)
520+
return False, f"Failed to set identity for subnet {netuid}: {error_message}"

tests/unit_tests/extrinsics/asyncex/test_registration.py

Lines changed: 48 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,21 @@ async def test_do_pow_register_success(subtensor, fake_wallet, mocker):
4141
)
4242

4343
# Asserts
44-
subtensor.substrate.compose_call.asseert_awaited_once_with(
44+
subtensor.substrate.compose_call.assert_awaited_once_with(
4545
call_module="SubtensorModule",
4646
call_function="register",
4747
call_params={
4848
"netuid": 1,
4949
"block_number": 12345,
5050
"nonce": 67890,
51-
"work": [int(byte_) for byte_ in b"fake_seal"],
51+
"work": list(b"fake_seal"),
5252
"hotkey": "hotkey_ss58",
5353
"coldkey": "coldkey_ss58",
5454
},
5555
)
56-
subtensor.substrate.create_signed_extrinsic.asseert_awaited_once_with(
57-
call=fake_call, keypair=fake_wallet.hotkey
56+
subtensor.substrate.create_signed_extrinsic.assert_awaited_once_with(
57+
call=fake_call,
58+
keypair=fake_wallet.coldkey,
5859
)
5960
subtensor.substrate.submit_extrinsic.assert_awaited_once_with(
6061
fake_extrinsic, wait_for_inclusion=True, wait_for_finalization=True
@@ -105,11 +106,23 @@ async def test_do_pow_register_failure(subtensor, fake_wallet, mocker):
105106
)
106107

107108
# Asserts
108-
subtensor.substrate.compose_call.asseert_awaited_once_with()
109-
subtensor.substrate.create_signed_extrinsic.asseert_awaited_once_with(
110-
call=fake_call, keypair=fake_wallet.hotkey
109+
subtensor.substrate.compose_call.assert_awaited_once_with(
110+
call_module="SubtensorModule",
111+
call_function="register",
112+
call_params={
113+
"netuid": 1,
114+
"block_number": 12345,
115+
"nonce": 67890,
116+
"work": list(b"fake_seal"),
117+
"hotkey": "hotkey_ss58",
118+
"coldkey": "coldkey_ss58",
119+
},
120+
)
121+
subtensor.substrate.create_signed_extrinsic.assert_awaited_once_with(
122+
call=fake_call,
123+
keypair=fake_wallet.coldkey,
111124
)
112-
subtensor.substrate.submit_extrinsic.asseert_awaited_once_with(
125+
subtensor.substrate.submit_extrinsic.assert_awaited_once_with(
113126
fake_extrinsic, wait_for_inclusion=True, wait_for_finalization=True
114127
)
115128

@@ -152,9 +165,23 @@ async def test_do_pow_register_no_waiting(subtensor, fake_wallet, mocker):
152165
)
153166

154167
# Asserts
155-
subtensor.substrate.compose_call.asseert_awaited_once_with()
156-
subtensor.substrate.create_signed_extrinsic.asseert_awaited_once_with()
157-
subtensor.substrate.submit_extrinsic.asseert_awaited_once_with(
168+
subtensor.substrate.compose_call.assert_awaited_once_with(
169+
call_module="SubtensorModule",
170+
call_function="register",
171+
call_params={
172+
"netuid": 1,
173+
"block_number": 12345,
174+
"nonce": 67890,
175+
"work": list(b"fake_seal"),
176+
"hotkey": "hotkey_ss58",
177+
"coldkey": "coldkey_ss58",
178+
},
179+
)
180+
subtensor.substrate.create_signed_extrinsic.assert_awaited_once_with(
181+
call=fake_call,
182+
keypair=fake_wallet.coldkey,
183+
)
184+
subtensor.substrate.submit_extrinsic.assert_awaited_once_with(
158185
fake_extrinsic, wait_for_inclusion=False, wait_for_finalization=False
159186
)
160187
assert result is True
@@ -442,10 +469,10 @@ async def test_set_subnet_identity_extrinsic_is_success(subtensor, fake_wallet,
442469

443470
mocked_compose_call = mocker.patch.object(subtensor.substrate, "compose_call")
444471

445-
fake_response = mocker.Mock()
446-
fake_response.is_success = mocker.AsyncMock(return_value=True)()
447-
mocked_submit_extrinsic = mocker.patch.object(
448-
subtensor.substrate, "submit_extrinsic", return_value=fake_response
472+
mocked_sign_and_send_extrinsic = mocker.patch.object(
473+
subtensor,
474+
"sign_and_send_extrinsic",
475+
return_value=[True, ""],
449476
)
450477

451478
# Call
@@ -478,7 +505,7 @@ async def test_set_subnet_identity_extrinsic_is_success(subtensor, fake_wallet,
478505
"additional": additional,
479506
},
480507
)
481-
mocked_submit_extrinsic.assert_awaited_once_with(
508+
mocked_sign_and_send_extrinsic.assert_awaited_once_with(
482509
call=mocked_compose_call.return_value,
483510
wallet=fake_wallet,
484511
wait_for_inclusion=False,
@@ -504,11 +531,10 @@ async def test_set_subnet_identity_extrinsic_is_failed(subtensor, fake_wallet, m
504531

505532
mocked_compose_call = mocker.patch.object(subtensor.substrate, "compose_call")
506533

507-
fake_response = mocker.Mock()
508-
fake_response.is_success = mocker.AsyncMock(return_value=False)()
509-
fake_response.error_message = mocker.AsyncMock(return_value=fake_error_message)()
510-
mocked_submit_extrinsic = mocker.patch.object(
511-
subtensor.substrate, "submit_extrinsic", return_value=fake_response
534+
mocked_sign_and_send_extrinsic = mocker.patch.object(
535+
subtensor,
536+
"sign_and_send_extrinsic",
537+
return_value=[False, fake_error_message],
512538
)
513539

514540
# Call
@@ -543,7 +569,7 @@ async def test_set_subnet_identity_extrinsic_is_failed(subtensor, fake_wallet, m
543569
"additional": additional,
544570
},
545571
)
546-
mocked_submit_extrinsic.assert_awaited_once_with(
572+
mocked_sign_and_send_extrinsic.assert_awaited_once_with(
547573
call=mocked_compose_call.return_value,
548574
wallet=fake_wallet,
549575
wait_for_inclusion=True,

0 commit comments

Comments
 (0)