import 'package:stackwallet/dto/ordinals/inscription_link.dart'; class TransactionResponse { final TransactionLinks links; final List inputs; final InscriptionLink inscription; final List outputs; final TransactionLink self; final String transaction; TransactionResponse({ required this.links, required this.inputs, required this.inscription, required this.outputs, required this.self, required this.transaction, }); factory TransactionResponse.fromJson(Map json) { final inputsJson = json['_links']['inputs'] as List; final inputs = inputsJson .map((inputJson) => OutputLink.fromJson(inputJson as Map)) .toList(); final outputsJson = json['_links']['outputs'] as List; final outputs = outputsJson .map((outputJson) => OutputLink.fromJson(outputJson as Map)) .toList(); return TransactionResponse( links: TransactionLinks.fromJson(json['_links'] as Map), inputs: inputs, inscription: InscriptionLink.fromJson(json['_links']['inscription'] as Map), outputs: outputs, self: TransactionLink.fromJson(json['_links']['self'] as Map), transaction: json['transaction'] as String, ); } } class TransactionLinks { final TransactionLink? block; final InscriptionLink? inscription; final TransactionLink? self; TransactionLinks({ this.block, this.inscription, this.self, }); factory TransactionLinks.fromJson(Map json) { return TransactionLinks( block: TransactionLink.fromJson(json['block'] as Map), inscription: InscriptionLink.fromJson(json['inscription'] as Map), self: TransactionLink.fromJson(json['self'] as Map), ); } } class TransactionLink { final String href; TransactionLink({required this.href}); factory TransactionLink.fromJson(Map json) { return TransactionLink(href: json['href'] as String); } } class OutputLink { final String href; OutputLink({required this.href}); factory OutputLink.fromJson(Map json) { return OutputLink(href: json['href'] as String); } }