gecko/lib/api.dart

76 lines
1.6 KiB
Dart

import "package:dio/dio.dart" as dio;
import 'package:gql/language.dart' as gqlLang;
import 'package:gql_dio_link/gql_dio_link.dart';
import 'package:gql_exec/gql_exec.dart';
import "package:gql_link/gql_link.dart";
const graphqlEndpoint = "https://g1.librelois.fr/gva";
const QcurrentUD = """{
currentUd {
amount
base
}
}""";
Future getBalance(String pubkey) async {
var qBalance = """{
balance(script: "$pubkey") {
amount
base
}
}""";
final client = dio.Dio();
final Link link = DioLink(
graphqlEndpoint,
client: client,
);
final res = await link
.request(Request(
operation: Operation(document: gqlLang.parseString(qBalance)),
))
.first;
final balance = res.data["balance"]["amount"] / 100;
return balance;
}
Future getHistory(String pubkey) async {
print(pubkey);
var qHistory = """{
transactionsHistory(pubkey: "$pubkey") {
received {
writtenTime
issuers
outputs
comment
}
}
}""";
final client = dio.Dio();
final Link link = DioLink(
graphqlEndpoint,
client: client,
);
final res = await link
.request(Request(
operation: Operation(document: gqlLang.parseString(qHistory)),
))
.first;
var result = res.data["transactionsHistory"]["received"];
String outPubkey;
for (var bloc in result) {
var output = bloc['outputs'][0];
outPubkey = output.split("SIG(")[1].replaceAll(')', '');
print(outPubkey);
}
final history = outPubkey;
return history;
}