def GetBalance(self, wallet, address, as_string=False):
if type(address) is UInt160:
address = Crypto.ToAddress(address)
invoke_args = [self.ScriptHash.ToString(), parse_param('balanceOf'), [parse_param(address, wallet)]]
tx, fee, balanceResults, num_ops = TestInvokeContract(wallet, invoke_args, None, False)
try:
val = balanceResults[0].GetBigInteger()
precision_divisor = pow(10, self.decimals)
balance = Decimal(val) / Decimal(precision_divisor)
if as_string:
formatter_str = '.%sf' % self.decimals
balance_str = format(balance, formatter_str)
return balance_str
return balance
except Exception as e:
logger.error("could not get balance: %s " % e)
traceback.print_stack()
return 0
评论列表
文章目录