getBalance method

  1. @override
Future<String> getBalance(
  1. String address, [
  2. TonNetwork? network
])
override

Returns the native balance in nanoton.

Implementation

@override
Future<String> getBalance(String address, [TonNetwork? network]) async {
  Future<String> instrumentationOperation() async {
    final operationScope = _state.flowScope.capture(replace: false);
    await operationScope.ready();
    operationScope.check();
    final configured = _tonService.getNetworks((_state.projectSettings?.networks?.map((networkGroup) => (networkGroup.chainName == "ton" ? networkGroup.networks?.map((networkConfiguration) => NetworkData(chain: "TON", networkId: networkConfiguration.networkId, name: networkConfiguration.name, displayName: (networkConfiguration.vanityName == "" ? networkConfiguration.name : (networkConfiguration.vanityName ?? networkConfiguration.name)), rpcUrls: NetworkRpcUrls(http: [...(networkConfiguration.privateCustomerRpcUrls ?? <String>[]), ...networkConfiguration.rpcUrls]), blockExplorerUrls: (networkConfiguration.blockExplorerUrls ?? <String>[]), iconUrl: firstOrNull(networkConfiguration.iconUrls), nativeCurrency: networkConfiguration.nativeCurrency, cluster: networkConfiguration.cluster, genesisHash: networkConfiguration.genesisHash, testnet: (networkConfiguration.testnet ?? false))).toList() ?? const [] : <NetworkData>[])).toList() ?? const []).expand((items) => items).toList(), (_tonState.tonNetworks ?? <TonNetwork>[]));
    operationScope.check();
    final resolvedNetwork = (network ?? firstOrNull(configured));
    if (resolvedNetwork == null) {
      throw DynamicStateException("no TON networks configured; provide one with useTon");
    }
    operationScope.check();
    final balance = await _tonService.getBalance(address, resolvedNetwork);
    operationScope.check();
    return balance;
  }
  return await _api.instrumentation.runAsync("ton.getBalance", instrumentationOperation);
}