Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 15 additions & 49 deletions bittensor_cli/src/bittensor/subtensor_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import time
from typing import Optional, Any, Union, TypedDict, Iterable

import aiohttp
from async_substrate_interface import AsyncExtrinsicReceipt
from async_substrate_interface.async_substrate import (
DiskCachedAsyncSubstrateInterface,
Expand Down Expand Up @@ -1301,56 +1300,23 @@ async def get_delegate_identities(
:return: {ss58: DelegatesDetails, ...}

"""
timeout = aiohttp.ClientTimeout(10.0)
async with aiohttp.ClientSession(timeout=timeout) as session:
identities_info, response = await asyncio.gather(
self.substrate.query_map(
module="Registry",
storage_function="IdentityOf",
block_hash=block_hash,
),
session.get(Constants.delegates_detail_url),
)

all_delegates_details = {}
async for ss58_address, identity in identities_info:
all_delegates_details.update(
{
decode_account_id(
ss58_address[0]
): DelegatesDetails.from_chain_data(
decode_hex_identity_dict(identity.value["info"])
)
}
)
identities_info = await self.substrate.query_map(
module="Registry",
storage_function="IdentityOf",
block_hash=block_hash,
)

if response.ok:
all_delegates: dict[str, Any] = await response.json(content_type=None)

for delegate_hotkey, delegate_details in all_delegates.items():
delegate_info = all_delegates_details.setdefault(
delegate_hotkey,
DelegatesDetails(
display=delegate_details.get("name", ""),
web=delegate_details.get("url", ""),
additional=delegate_details.get("description", ""),
pgp_fingerprint=delegate_details.get("fingerprint", ""),
),
)
delegate_info.display = (
delegate_info.display or delegate_details.get("name", "")
)
delegate_info.web = delegate_info.web or delegate_details.get(
"url", ""
)
delegate_info.additional = (
delegate_info.additional
or delegate_details.get("description", "")
)
delegate_info.pgp_fingerprint = (
delegate_info.pgp_fingerprint
or delegate_details.get("fingerprint", "")
all_delegates_details = {}
async for ss58_address, identity in identities_info:
all_delegates_details.update(
{
decode_account_id(
ss58_address[0]
): DelegatesDetails.from_chain_data(
decode_hex_identity_dict(identity.value["info"])
)
}
)

return all_delegates_details

Expand Down
Loading