getBalance method

Future<double> getBalance({
  1. required String address,
  2. String? contractAddress,
  3. int? decimals = 18,
})

查询余额: 兼容 主链+token

Implementation

Future<double> getBalance({
  required String address, // 当前用户地址
  String? contractAddress, // 合约地址
  int? decimals = 18, // 转换精度位数: 默认 eth=18
}) async {
  var balance = 0.0;

  if (contractAddress != null) {
    /// token 查询:
    BigInt? ret = (await sdkWeb3.getTokenBalance(contractAddress, address: address)) as BigInt;

    /// 单位换算:
    balance = toEther(fromWei: ret, decimals: decimals!);
  } else {
    /// 主链查询:
    var ret = await sdkWeb3.getBalance(EthereumAddress.fromHex(address));

    /// 单位换算:
    balance = toEther(fromWei: ret.getInWei, decimals: decimals!);
  }
  print('getBalance: address=$address, contractAddress=$contractAddress, balance=$balance, decimals=$decimals');
  return balance;
}