diff --git a/lib/services/coins/tezos/api/tezos_api.dart b/lib/services/coins/tezos/api/tezos_api.dart index fdbd97581..02c61aae2 100644 --- a/lib/services/coins/tezos/api/tezos_api.dart +++ b/lib/services/coins/tezos/api/tezos_api.dart @@ -9,22 +9,43 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; class TezosAPI { static const String _baseURL = 'https://api.tzstats.com'; - Future?> getTransactions(String address) async { + Future?> getTransactions(String address) async { try { String transactionsCall = "$_baseURL/explorer/account/$address/operations"; var response = jsonDecode( await get(Uri.parse(transactionsCall)).then((value) => value.body)); - List txs = []; + List txs = []; for (var tx in response as List) { if (tx["type"] == "transaction") { - final theTx = TezosTransaction( + int? burnedAmountInMicroTez; + int? storage_limit; + if (tx["burned"] != null) { + burnedAmountInMicroTez = double.parse((tx["burned"] * pow(10, Coin.tezos.decimals)).toString()).toInt(); + } + if (tx["storage_limit"] != null) { + storage_limit = tx["storage_limit"] as int; + } + final theTx = TezosOperation( + id: tx["id"] as int, hash: tx["hash"] as String, + type: tx["type"] as String, height: tx["height"] as int, timestamp: DateTime.parse(tx["time"].toString()).toUtc().millisecondsSinceEpoch ~/ 1000, + cycle: tx["cycle"] as int, + counter: tx["counter"] as int, + op_n: tx["op_n"] as int, + op_p: tx["op_p"] as int, + status: tx["status"] as String, + is_success: tx["is_success"] as bool, + gas_limit: tx["gas_limit"] as int, + gas_used: tx["gas_used"] as int, + storage_limit: storage_limit, amountInMicroTez: double.parse((tx["volume"] * pow(10, Coin.tezos.decimals)).toString()).toInt(), feeInMicroTez: double.parse((tx["fee"] * pow(10, Coin.tezos.decimals)).toString()).toInt(), + burnedAmountInMicroTez: burnedAmountInMicroTez, senderAddress: tx["sender"] as String, - receiverAddress: tx["receiver"] as String + receiverAddress: tx["receiver"] as String, + confirmations: tx["confirmations"] as int, ); txs.add(theTx); } diff --git a/lib/services/coins/tezos/api/tezos_transaction.dart b/lib/services/coins/tezos/api/tezos_transaction.dart index 2c67fca6f..ab40a9386 100644 --- a/lib/services/coins/tezos/api/tezos_transaction.dart +++ b/lib/services/coins/tezos/api/tezos_transaction.dart @@ -1,19 +1,45 @@ -class TezosTransaction { - final String hash; - final int height; - final int timestamp; - final int amountInMicroTez; - final int feeInMicroTez; - final String senderAddress; - final String receiverAddress; +class TezosOperation { + int? id; + String hash; + String? type; + int height; + int timestamp; + int? cycle; + int? counter; + int? op_n; + int? op_p; + String? status; + bool? is_success; + int? gas_limit; + int? gas_used; + int? storage_limit; + int amountInMicroTez; + int feeInMicroTez; + int? burnedAmountInMicroTez; + String senderAddress; + String receiverAddress; + int? confirmations; - TezosTransaction({ + TezosOperation({ + this.id, required this.hash, + this.type, required this.height, required this.timestamp, + this.cycle, + this.counter, + this.op_n, + this.op_p, + this.status, + this.is_success, + this.gas_limit, + this.gas_used, + this.storage_limit, required this.amountInMicroTez, required this.feeInMicroTez, + this.burnedAmountInMicroTez, required this.senderAddress, required this.receiverAddress, + this.confirmations }); } \ No newline at end of file diff --git a/lib/services/coins/tezos/tezos_wallet.dart b/lib/services/coins/tezos/tezos_wallet.dart index ae25e5407..f568cdc62 100644 --- a/lib/services/coins/tezos/tezos_wallet.dart +++ b/lib/services/coins/tezos/tezos_wallet.dart @@ -517,7 +517,7 @@ class TezosWallet extends CoinServiceAPI with WalletCache, WalletDB { } Future updateTransactions() async { - List? txs = + List? txs = await tezosAPI.getTransactions(await currentReceivingAddress); Logging.instance.log("Transactions: $txs", level: LogLevel.Info); if (txs == null) {