pyopenbook/pyserum/async_utils.py

20 lines
641 B
Python

from solana.publickey import PublicKey
from solana.rpc.async_api import AsyncClient
from spl.token.constants import WRAPPED_SOL_MINT
from pyserum.utils import parse_bytes_data, parse_mint_decimals
async def load_bytes_data(addr: PublicKey, conn: AsyncClient) -> bytes:
res = await conn.get_account_info(addr)
return parse_bytes_data(res)
async def get_mint_decimals(conn: AsyncClient, mint_pub_key: PublicKey) -> int:
"""Get the mint decimals for a token mint"""
if mint_pub_key == WRAPPED_SOL_MINT:
return 9
bytes_data = await load_bytes_data(mint_pub_key, conn)
return parse_mint_decimals(bytes_data)