From 02c1ee7ed4e465bc3192dd0cf5b494d8414cdd85 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Wed, 2 Oct 2024 17:20:20 +0300 Subject: [PATCH] wip get ballances --- crypto/sol/app.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/crypto/sol/app.py b/crypto/sol/app.py index 3715762..50906f1 100644 --- a/crypto/sol/app.py +++ b/crypto/sol/app.py @@ -14,8 +14,7 @@ from solana.rpc.websocket_api import connect from solana.rpc.async_api import AsyncClient from solana.rpc.commitment import Confirmed from solana.rpc.types import TokenAccountOpts - - +import base64 import os from dotenv import load_dotenv @@ -75,12 +74,14 @@ async def get_token_balance(wallet_address, token_address): return 0 + async def get_wallet_balances(wallet_address): balances = {} logging.info(f"Getting balances for wallet: {wallet_address}") - + 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 @@ -89,7 +90,7 @@ async def get_wallet_balances(wallet_address): opts, commitment=Confirmed ) - + if response.value: for account in response.value: mint = account.account.data.parsed.info.mint @@ -98,13 +99,14 @@ async def get_wallet_balances(wallet_address): amount = float(balance_response.value.uiAmount) balances[mint] = amount logging.debug(f"Balance for {mint}: {amount}") - + sol_balance = await solana_client.get_balance(Pubkey.from_string(wallet_address)) if sol_balance.value: balances['SOL'] = sol_balance.value / 1e9 - + return balances + async def get_non_zero_token_balances(wallet_address): non_zero_balances = {} logging.info(f"Getting non-zero balances for wallet: {wallet_address}")