SplitUTXOsToBenfordCommand class

Command to split wallet UTXOs into Benford distribution for privacy

This command processes each available UTXO individually, splitting it into multiple outputs whose amounts follow Benford's Law distribution. This makes transaction patterns appear more natural and organic, improving privacy.

Each source UTXO will be split into targetUtxoCount new UTXOs through a single transaction (1 input -> N outputs). The outputs are sent to newly generated addresses within the same wallet.

This is NOT part of the SPV flow - we broadcast our own transactions directly via ArcService and handle CQRS integration manually.

Inheritance

Constructors

SplitUTXOsToBenfordCommand({required String walletId, required int targetUtxoCount, BigInt? feeRate, int? maxUtxosToSplit, String? commandId, DateTime? timestamp, Map<String, dynamic>? metadata})

Properties

commandId String
Unique identifier for this command Used for deduplication and tracing
no setterinherited
commandType String
Command type identifier for logging and debugging
no setteroverride
correlationId String
finalinherited
feeRate BigInt?
Optional fee rate in satoshis per byte (default: 1 for BSV)
final
hashCode int
The hash code for this object.
no setterinherited
maxUtxosToSplit int?
Maximum number of UTXOs to split (null = split all available) This allows users to keep some UTXOs available for transactions
final
metadata Map<String, dynamic>
finalinherited
payload → dynamic
Override payload to return the command itself for LocalMessage compatibility
no setterinherited
replyTo → ActorRef?
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
sender → ActorRef?
finalinherited
targetUtxoCount int
Number of outputs to create per source UTXO
final
timestamp DateTime
finalinherited
walletId String
finalinherited

Methods

getValidationErrors() List<String>
Get validation errors Override in subclasses to provide specific error messages
inherited
isValid() bool
Validate the command Override in subclasses for custom validation
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toCbor() List<int>
Serialize command to CBOR bytes
inherited
toMap() Map<String, dynamic>
Convert command to a map for serialization Override in subclasses to include command-specific data
inherited
toString() String
A string representation of this object.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited