wip get ballances

This commit is contained in:
Dobromir Popov 2024-10-02 17:20:20 +03:00
parent 8c83ea6c87
commit 02c1ee7ed4

View File

@ -14,8 +14,7 @@ from solana.rpc.websocket_api import connect
from solana.rpc.async_api import AsyncClient from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Confirmed from solana.rpc.commitment import Confirmed
from solana.rpc.types import TokenAccountOpts from solana.rpc.types import TokenAccountOpts
import base64
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@ -75,12 +74,14 @@ async def get_token_balance(wallet_address, token_address):
return 0 return 0
async def get_wallet_balances(wallet_address): async def get_wallet_balances(wallet_address):
balances = {} balances = {}
logging.info(f"Getting balances for wallet: {wallet_address}") logging.info(f"Getting balances for wallet: {wallet_address}")
opts = TokenAccountOpts( opts = TokenAccountOpts(
program_id=Pubkey.from_string("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA") program_id=Pubkey.from_string("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),
encoding="jsonParsed" # Ensure encoding is set to jsonParsed
) )
# Get all token accounts for the wallet # Get all token accounts for the wallet
@ -89,7 +90,7 @@ async def get_wallet_balances(wallet_address):
opts, opts,
commitment=Confirmed commitment=Confirmed
) )
if response.value: if response.value:
for account in response.value: for account in response.value:
mint = account.account.data.parsed.info.mint mint = account.account.data.parsed.info.mint
@ -98,13 +99,14 @@ async def get_wallet_balances(wallet_address):
amount = float(balance_response.value.uiAmount) amount = float(balance_response.value.uiAmount)
balances[mint] = amount balances[mint] = amount
logging.debug(f"Balance for {mint}: {amount}") logging.debug(f"Balance for {mint}: {amount}")
sol_balance = await solana_client.get_balance(Pubkey.from_string(wallet_address)) sol_balance = await solana_client.get_balance(Pubkey.from_string(wallet_address))
if sol_balance.value: if sol_balance.value:
balances['SOL'] = sol_balance.value / 1e9 balances['SOL'] = sol_balance.value / 1e9
return balances return balances
async def get_non_zero_token_balances(wallet_address): async def get_non_zero_token_balances(wallet_address):
non_zero_balances = {} non_zero_balances = {}
logging.info(f"Getting non-zero balances for wallet: {wallet_address}") logging.info(f"Getting non-zero balances for wallet: {wallet_address}")