import 'dart:async';
import 'dart:convert';
import 'dart:math';
import 'dart:typed_data';
import 'package:collection/collection.dart';
import 'package:crypto/crypto.dart';
import 'package:fixnum/fixnum.dart';
import "package:pointycastle/export.dart";
import 'package:protobuf/protobuf.dart';
import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart';
import 'comms.dart';
import 'connection.dart';
import 'covert.dart';
import 'encrypt.dart';
import 'fusion.pb.dart';
import 'pedersen.dart';
import 'protocol.dart';
import 'socketwrapper.dart';
import 'util.dart';
import 'validation.dart';
class FusionError implements Exception {
final String message;
FusionError(this.message);
String toString() => "FusionError: $message";
}
class ComponentResult {
final Uint8List commitment;
final int counter;
final Uint8List component;
final Proof proof;
final Uint8List privateKey;
final dynamic pedersenAmount; // replace dynamic with actual type
final dynamic pedersenNonce; // replace dynamic with actual type
ComponentResult(this.commitment, this.counter, this.component, this.proof,
this.privateKey,
{this.pedersenAmount, this.pedersenNonce});
}
class Transaction {
List Inputs = [];
List