Skip to content

Commit 1cbee12

Browse files
authored
Merge pull request #116 from threefoldtech/development_getBalance_accountId
support getting balance by account id
2 parents 6f693cd + 96e92bf commit 1cbee12

File tree

3 files changed

+42
-16
lines changed

3 files changed

+42
-16
lines changed

packages/stellar_client/lib/src/client.dart

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -417,23 +417,13 @@ class Client {
417417
}
418418

419419
Future<List<BalanceInfo>> getBalance() async {
420-
List<BalanceInfo> balancesList = [];
421-
AccountResponse account = await _sdk.accounts.account(accountId);
422-
423-
for (Balance balance in account.balances) {
424-
BalanceData balanceData;
425-
switch (balance.assetType) {
426-
case Asset.TYPE_NATIVE:
427-
balanceData = BalanceData(assetCode: 'XLM', balance: balance.balance);
428-
break;
429-
default:
430-
balanceData = BalanceData(
431-
assetCode: balance.assetCode!, balance: balance.balance);
432-
}
433-
balancesList.add(balanceData);
420+
try {
421+
List<BalanceInfo> balancesList =
422+
await getBalanceByAccountID(network: _network, accountId: accountId);
423+
return balancesList;
424+
} catch (error) {
425+
throw Exception('Could not get balance due to $error');
434426
}
435-
436-
return balancesList;
437427
}
438428

439429
Future<List<VestingAccount>?> getVestingAccounts() async {
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import 'package:stellar_client/models/balance.dart';
2+
import 'package:stellar_client/stellar_client.dart';
3+
import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart';
4+
5+
Future<List<BalanceInfo>> getBalanceByAccountID(
6+
{required NetworkType network, required String accountId}) async {
7+
late StellarSDK _sdk;
8+
9+
switch (network) {
10+
case NetworkType.TESTNET:
11+
_sdk = StellarSDK.TESTNET;
12+
break;
13+
case NetworkType.PUBLIC:
14+
_sdk = StellarSDK.PUBLIC;
15+
break;
16+
}
17+
18+
List<BalanceInfo> balancesList = [];
19+
AccountResponse account = await _sdk.accounts.account(accountId);
20+
21+
for (Balance balance in account.balances) {
22+
BalanceData balanceData;
23+
switch (balance.assetType) {
24+
case Asset.TYPE_NATIVE:
25+
balanceData = BalanceData(assetCode: 'XLM', balance: balance.balance);
26+
break;
27+
default:
28+
balanceData = BalanceData(
29+
assetCode: balance.assetCode!, balance: balance.balance);
30+
}
31+
balancesList.add(balanceData);
32+
}
33+
34+
return balancesList;
35+
}

packages/stellar_client/lib/stellar_client.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:stellar_client/models/currency.dart' as currency;
88
import 'package:stellar_client/models/transaction_data.dart';
99
import 'package:stellar_client/models/vesting_account.dart';
1010
import 'package:stellar_client/models/transaction.dart';
11+
import 'package:stellar_client/src/helpers.dart';
1112
import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart';
1213
import 'package:http/http.dart' as http;
1314
import 'package:convert/convert.dart';

0 commit comments

Comments
 (0)