SplitUTXOsToBenfordCommand constructor

SplitUTXOsToBenfordCommand({
  1. required String walletId,
  2. required int targetUtxoCount,
  3. int? maxUtxosToSplit,
  4. List<String>? utxoKeys,
  5. BigInt? partSats,
  6. BigInt? minPartSats,
  7. String? commandId,
  8. DateTime? timestamp,
  9. Map<String, dynamic>? metadata,
})

Implementation

SplitUTXOsToBenfordCommand({
  required String walletId,
  required this.targetUtxoCount,
  this.maxUtxosToSplit,
  List<String>? utxoKeys,
  this.partSats,
  this.minPartSats,
  String? commandId,
  DateTime? timestamp,
  Map<String, dynamic>? metadata,
})  : utxoKeys = frozenListOrNull(utxoKeys),
      super(
        walletId: walletId,
        commandId: commandId,
        timestamp: timestamp,
        metadata: metadata,
      ) {
  // Validation
  if (targetUtxoCount < 2) {
    throw ArgumentError('Target UTXO count must be at least 2');
  }
  if (targetUtxoCount > 100) {
    throw ArgumentError('Target UTXO count cannot exceed 100 (transaction size limits)');
  }
  if (maxUtxosToSplit != null && maxUtxosToSplit! < 1) {
    throw ArgumentError('maxUtxosToSplit must be at least 1');
  }
  if (partSats != null && partSats! <= BigInt.zero) {
    throw ArgumentError('partSats must be positive');
  }
  if (minPartSats != null && minPartSats! <= BigInt.zero) {
    throw ArgumentError('minPartSats must be positive');
  }
}