CAKE-356 | fixed fetching address from yat for specified crypto currency
OleksandrSobol committed
Aug 27, 2021 at 22:56 UTC
cbec9d506781f9bc126ccb573b30245d6a00c0f0
2 files changed
+30
-4
lib/entities/parse_address_from_domain.dart
+1
-1
@@ -24,7 +24,7 @@ Future<ParsedAddress> parseAddressFromDomain(
24
25
if (domainParts.length <= 1 || domainParts.first.isEmpty || name.isEmpty) {
26
try {
27
- final address = await fetchYatAddress(domain);
27
+ final address = await fetchYatAddress(domain, ticker);
28
29
if (address?.isEmpty ?? true) {
30
return ParsedAddress(address: domain);
lib/yat/yat_record.dart
+29
-3
@@ -2,8 +2,15 @@ import 'dart:convert';
2
import 'package:cake_wallet/yat/yat_exception.dart';
3
import 'package:http/http.dart';
4
5
-Future<String> fetchYatAddress(String emojiId) async {
5
+Future<String> fetchYatAddress(String emojiId, String ticker) async {
6
const _requestURL = 'https://a.y.at/emoji_id/';
7
+ final classValue = '0x10';
8
+ final tagValues = {'xmr' : ['01', '02'], 'btc' : ['03'], 'eth' : ['04']};
9
+ final tagValue = tagValues[ticker];
10
+
11
+ if (tagValue == null) {
12
+ return '';
13
+ }
14
15
final url = _requestURL + emojiId;
16
final response = await get(url);
@@ -13,6 +20,25 @@ Future<String> fetchYatAddress(String emojiId) async {
20
}
21
22
final responseJSON = json.decode(response.body) as Map<String, dynamic>;
16
- final yatAddress = responseJSON['result'][2]['data'] as String;
17
- return yatAddress;
23
+ final result = responseJSON['result'] as List<dynamic>;
24
+
25
+ if (result == null) {
26
+ return '';
27
+ }
28
+
29
+ for (var value in tagValue) {
30
+ for (int i = 0; i < result.length; i++) {
31
+ final record = result[i] as Map<String, dynamic>;
32
+ final tag = record['tag'] as String;
33
+ if (tag?.contains(classValue + value) ?? false) {
34
+ final yatAddress = record['data'] as String;
35
+ return yatAddress;
36
+ }
37
+ }
38
+ }
39
+
40
+ return '';
41
+
42
+ //final yatAddress = responseJSON['result'][2]['data'] as String;
43
+ //return yatAddress;
44
}
\ No newline at end of file