diff --git a/lib/services/litescribe_api.dart b/lib/services/litescribe_api.dart index 7fc92910d..d5cd3d733 100644 --- a/lib/services/litescribe_api.dart +++ b/lib/services/litescribe_api.dart @@ -44,7 +44,7 @@ class LitescribeAPI { // Check if the number of returned inscriptions equals the limit final list = response.data['result']['list']; final int total = response.data['result']['total'] as int; - final int currentSize = list.length; + final int currentSize = list.length as int; if (currentSize == size && currentSize < total) { // If the number of returned inscriptions equals the limit and there are more inscriptions available, diff --git a/lib/services/mixins/ordinals_interface.dart b/lib/services/mixins/ordinals_interface.dart index c7bc5ff28..51323fa0c 100644 --- a/lib/services/mixins/ordinals_interface.dart +++ b/lib/services/mixins/ordinals_interface.dart @@ -43,6 +43,12 @@ mixin OrdinalsInterface { // TODO save inscriptions to isar which gets watched by a FutureBuilder/StreamBuilder } + Future> getInscriptions() async { + final utxos = await _db.getUTXOs(_walletId).findAll(); + final uniqueAddresses = getUniqueAddressesFromUTXOs(utxos); + return await getInscriptionsFromAddresses(uniqueAddresses); + } + List getUniqueAddressesFromUTXOs(List utxos) { final Set uniqueAddresses = {}; for (var utxo in utxos) { diff --git a/lib/services/ordinals_api.dart b/lib/services/ordinals_api.dart deleted file mode 100644 index e6df3c05e..000000000 --- a/lib/services/ordinals_api.dart +++ /dev/null @@ -1,89 +0,0 @@ -import 'dart:convert'; -import 'package:http/http.dart' as http; - -import 'package:stackwallet/dto/ordinals/ordinals_response.dart'; -import 'package:stackwallet/dto/ordinals/feed_response.dart'; -import 'package:stackwallet/dto/ordinals/inscription_response.dart'; -import 'package:stackwallet/dto/ordinals/sat_response.dart'; -import 'package:stackwallet/dto/ordinals/transaction_response.dart'; -import 'package:stackwallet/dto/ordinals/output_response.dart'; -import 'package:stackwallet/dto/ordinals/address_response.dart'; -import 'package:stackwallet/dto/ordinals/block_response.dart'; -import 'package:stackwallet/dto/ordinals/content_response.dart'; -import 'package:stackwallet/dto/ordinals/preview_response.dart'; - -class OrdinalsAPI { - static final OrdinalsAPI _instance = OrdinalsAPI._internal(); - - factory OrdinalsAPI({required String baseUrl}) { - _instance.baseUrl = baseUrl; - return _instance; - } - - OrdinalsAPI._internal(); - - late String baseUrl; - - Future _getResponse(String endpoint) async { - final response = await http.get(Uri.parse('$baseUrl$endpoint')); - if (response.statusCode == 200) { - return OrdinalsResponse(data: _validateJson(response.body)); - } else { - throw Exception('Failed to load data'); - } - } - - Map _validateJson(String responseBody) { - final parsed = jsonDecode(responseBody); - if (parsed is Map) { - return parsed; - } else { - throw const FormatException('Invalid JSON format'); - } - } - - Future getLatestInscriptions() async { - final response = await _getResponse('/feed'); - return FeedResponse.fromJson(response); - } - - Future getInscriptionDetails(String inscriptionId) async { - final response = await _getResponse('/inscription/$inscriptionId'); - return InscriptionResponse.fromJson(response); - } - - Future getSatDetails(int satNumber) async { - final response = await _getResponse('/sat/$satNumber'); - return SatResponse.fromJson(response); - } - - Future getTransaction(String transactionId) async { - final response = await _getResponse('/tx/$transactionId'); - return TransactionResponse.fromJson(response); - } - - Future getTransactionOutputs(String transactionId) async { - final response = await _getResponse('/output/$transactionId'); - return OutputResponse.fromJson(response); - } - - Future getInscriptionsByAddress(String address) async { - final response = await _getResponse('/address/$address'); - return AddressResponse.fromJson(response); - } - - Future getBlock(String blockHash) async { - final response = await _getResponse('/block/$blockHash'); - return BlockResponse.fromJson(response); - } - - Future getInscriptionContent(String inscriptionId) async { - final response = await _getResponse('/content/$inscriptionId'); - return ContentResponse.fromJson(response); - } - - Future getInscriptionPreview(String inscriptionId) async { - final response = await _getResponse('/preview/$inscriptionId'); - return PreviewResponse.fromJson(response); - } -}