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
-
- Object
- WalletCommand
- SplitUTXOsToBenfordCommand
Constructors
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
- hashCode → int
-
The hash code for this object.
no setterinherited
- maxUtxosToSplit → int?
-
Maximum number of UTXOs to split (null = split all available), the
largest first (bead libspiffy-5hnt).
This allows users to keep some UTXOs available for transactions
final
-
metadata
→ Map<
String, dynamic> -
finalinherited
- minPartSats → BigInt?
-
No piece is smaller than this: a UTXO makes fewer pieces, or is not
split when it cannot make two (bead libspiffy-5hnt). Null for no minimum.
final
- partSats → BigInt?
-
Split each UTXO into pieces of about this many satoshis, at least 2 and
at most targetUtxoCount of them; null for targetUtxoCount pieces
each (bead libspiffy-5hnt).
final
- payload → dynamic
-
Override payload to return the command itself for LocalMessage compatibility
no setterinherited
-
persistableMetadata
→ Map<
String, dynamic> -
metadataas it is persisted: transientActorRefentries removed.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
- typeName → String
-
Stable identity of this command type in storage.
no setterinherited
-
utxoKeys
→ List<
String> ? -
Split only these UTXOs (
txid:vout), the largest first; null for any (bead libspiffy-5hnt). One the wallet cannot spend is not split.final - 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.
inherited
-
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited