diff --git a/TonTools/Providers/TonCenterClient.py b/TonTools/Providers/TonCenterClient.py index 97849ec..fed25f7 100644 --- a/TonTools/Providers/TonCenterClient.py +++ b/TonTools/Providers/TonCenterClient.py @@ -11,7 +11,7 @@ from ..Contracts.Contract import Transaction from ..Contracts.Wallet import Wallet from ..Contracts.Jetton import Jetton, JettonWallet -from .utils import markets_adresses, get, process_jetton_data +from .utils import markets_adresses, get, process_jetton_data, from_nanotons from ._orbs_ton_access import get_http_endpoint @@ -303,7 +303,7 @@ async def get_wallet_seqno(self, address: str): data = await self.run_get_method(address=address, method='seqno', stack=[]) return int(data[0][1], 16) - async def get_balance(self, address: str): + async def get_balance(self, address: str,convert_nanotons=False): async with aiohttp.ClientSession() as session: url = self.base_url + 'getAddressBalance' params = { @@ -311,7 +311,49 @@ async def get_balance(self, address: str): } response = await session.get(url=url, params=params, headers=self.headers) response = await process_response(response) - return int(response['result']) + balance = int(response['result']) + + return balance if not convert_nanotons else from_nanotons(balance) + + async def get_address_information(self, address: str): + async with aiohttp.ClientSession() as session: + url = self.base_url + 'getAddressInformation' + params = { + 'address': address + } + response = await session.get(url=url, params=params, headers=self.headers) + response = await process_response(response) + return response['result'] + + async def get_wallet_information(self, address: str): + async with aiohttp.ClientSession() as session: + url = self.base_url + 'getWalletInformation' + params = { + 'address': address + } + response = await session.get(url=url, params=params, headers=self.headers) + response = await process_response(response) + return response['result'] + + async def get_extended_address_information(self, address: str): + async with aiohttp.ClientSession() as session: + url = self.base_url + 'getExtendedAddressInformation' + params = { + 'address': address + } + response = await session.get(url=url, params=params, headers=self.headers) + response = await process_response(response) + return response['result'] + + async def get_extended_address_information(self, address: str): + async with aiohttp.ClientSession() as session: + url = self.base_url + 'getExtendedAddressInformation' + params = { + 'address': address + } + response = await session.get(url=url, params=params, headers=self.headers) + response = await process_response(response) + return response['result'] async def get_state(self, address: str): async with aiohttp.ClientSession() as session: diff --git a/TonTools/Providers/utils.py b/TonTools/Providers/utils.py index b43d685..4705617 100644 --- a/TonTools/Providers/utils.py +++ b/TonTools/Providers/utils.py @@ -39,6 +39,12 @@ def process_jetton_data(data): 'decimals': int(decimals) } +def from_nanotons(amount): + return amount / 1000000000 + +def to_nanotons(amount): + return amount * 1000000000 + async def get(url: str): if 'ipfs' in url: