| 1 | import 'package:cw_monero/api/account_list.dart'; |
| 2 | import 'package:cw_monero/monero_unspent.dart'; |
| 3 | |
| 4 | Map<String, Map<String, dynamic>> getAllUnspent() { |
| 5 | final coins = currentWallet!.coins(); |
| 6 | coins.refresh(); |
| 7 | final coinCount = coins.count(); |
| 8 | |
| 9 | final ret = <String, Map<String, dynamic>>{}; |
| 10 | ret["_count"] = {coinCount.toString(): coinCount}; |
| 11 | for (var i = 0; i < coinCount; i++) { |
| 12 | final coin = coins.coin(i); |
| 13 | final subaddr = coin.subaddrAccount(); |
| 14 | if (ret[subaddr.toString()] == null) { |
| 15 | ret[subaddr.toString()] = {}; |
| 16 | } |
| 17 | |
| 18 | final unspent = MoneroUnspent.fromUnspent( |
| 19 | address: coin.address(), |
| 20 | hash: coin.hash(), |
| 21 | keyImage: coin.keyImage(), |
| 22 | value: coin.amount(), |
| 23 | isFrozen: coin.frozen(), |
| 24 | isUnlocked: coin.unlocked(), |
| 25 | isSpent: coin.spent(), |
| 26 | ); |
| 27 | ret[subaddr.toString()]!["0x${coin.ffiAddress().toRadixString(16)}"] = unspent.toJson(); |
| 28 | } |
| 29 | return ret; |
| 30 | } |