Updated show-token-balance to work with any wallet address and mint.
This commit is contained in:
parent
43be1fa192
commit
3ac729ac5c
|
@ -3,6 +3,10 @@
|
|||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import typing
|
||||
|
||||
from decimal import Decimal
|
||||
from solana.publickey import PublicKey
|
||||
|
||||
sys.path.insert(0, os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), "..")))
|
||||
|
@ -13,13 +17,24 @@ mango.ContextBuilder.add_command_line_parameters(parser)
|
|||
mango.Wallet.add_command_line_parameters(parser)
|
||||
parser.add_argument("--symbol", type=str, required=True,
|
||||
help="symbol of the token to look up, e.g. 'ETH'")
|
||||
parser.add_argument("--owner", type=PublicKey,
|
||||
help="wallet address of the wallet owner")
|
||||
parser.add_argument("--mint", type=PublicKey,
|
||||
help="mint address of the token")
|
||||
parser.add_argument("--decimals", type=Decimal, default=Decimal(6),
|
||||
help="number of decimal places for token values")
|
||||
args: argparse.Namespace = mango.parse_args(parser)
|
||||
|
||||
context = mango.ContextBuilder.from_command_line_parameters(args)
|
||||
wallet = mango.Wallet.from_command_line_parameters_or_raise(args)
|
||||
context: mango.Context = mango.ContextBuilder.from_command_line_parameters(args)
|
||||
wallet: mango.Wallet = mango.Wallet.from_command_line_parameters_or_raise(args)
|
||||
owner_address: PublicKey = args.owner or wallet.address
|
||||
|
||||
if args.mint is not None:
|
||||
token: mango.Token = mango.Token(args.symbol, args.symbol, args.mint, args.decimals)
|
||||
else:
|
||||
token = context.token_lookup.find_by_symbol_or_raise(args.symbol.upper())
|
||||
token_accounts = mango.TokenAccount.fetch_all_for_owner_and_token(context, wallet.address, token)
|
||||
token_accounts: typing.Sequence[mango.TokenAccount] = mango.TokenAccount.fetch_all_for_owner_and_token(
|
||||
context, owner_address, token)
|
||||
|
||||
if len(token_accounts) == 0:
|
||||
print("No wrapped SOL accounts.")
|
||||
|
|
|
@ -53,7 +53,7 @@ class TokenAccount(AddressableAccount):
|
|||
return TokenAccount.load(context, new_account_address)
|
||||
|
||||
@staticmethod
|
||||
def fetch_all_for_owner_and_token(context: Context, owner_public_key: PublicKey, token: Token) -> typing.List["TokenAccount"]:
|
||||
def fetch_all_for_owner_and_token(context: Context, owner_public_key: PublicKey, token: Token) -> typing.Sequence["TokenAccount"]:
|
||||
opts = TokenAccountOpts(mint=token.mint)
|
||||
|
||||
token_accounts = context.client.get_token_accounts_by_owner(owner_public_key, opts)
|
||||
|
|
Loading…
Reference in New Issue