ChannelState class

State for a payment channel aggregate

Represents the current state of a payment channel at a specific point in time. This state is rebuilt from events during aggregate recovery.

NOTE: Fields are mutable to allow direct state updates in eventHandler. This follows the Eventador AggregateRoot pattern with imperative state management.

Constructors

ChannelState({required String channelId, String? walletId, ChannelStatus status = ChannelStatus.pending, ChannelRole? role, String? clientPeerId, String? serverPeerId, String? clientPubKeyHex, String? serverPubKeyHex, String? clientAddressB58, String? serverAddressB58, int? derivationIndex, BigInt? fundingAmountSats, String? fundingTxId, String? fundingTxHex, int? fundingOutputIndex, List<String>? fundingAncestorTxids, int? lockTimeUnix, String? refundTxHex, String? refundClientSigHex, String? refundServerSigHex, BigInt? clientBalanceSats, BigInt? serverBalanceSats, int latestSequenceNumber = 0, String? latestPaymentTxHex, String? latestPaymentTxId, String? context, DateTime? createdAt, DateTime? closedAt, int version = 0, DateTime? lastModified})
ChannelState.empty(String channelId)
Create empty initial state
factory

Properties

channelId → String
final
clientAddressB58 ↔ String?
getter/setter pair
clientBalanceSats ↔ BigInt
getter/setter pair
clientPeerId ↔ String?
getter/setter pair
clientPubKeyHex ↔ String?
getter/setter pair
closedAt ↔ DateTime?
getter/setter pair
context ↔ String?
getter/setter pair
createdAt ↔ DateTime?
getter/setter pair
derivationIndex ↔ int?
getter/setter pair
fundingAmountSats ↔ BigInt
getter/setter pair
fundingAncestorTxids ↔ List<String>
getter/setter pair
fundingOutputIndex ↔ int?
getter/setter pair
fundingTxHex ↔ String?
getter/setter pair
fundingTxId ↔ String?
getter/setter pair
hashCode → int
The hash code for this object.
no setterinherited
isClient → bool
no setter
isExpired → bool
no setter
isOpen → bool
no setter
isServer → bool
no setter
lastModified ↔ DateTime
Timestamp when this state was last modified
getter/setter pair
latestPaymentTxHex ↔ String?
getter/setter pair
latestPaymentTxId ↔ String?
getter/setter pair
latestSequenceNumber ↔ int
getter/setter pair
lockTimeUnix ↔ int?
getter/setter pair
refundClientSigHex ↔ String?
getter/setter pair
refundServerSigHex ↔ String?
getter/setter pair
refundTxHex ↔ String?
getter/setter pair
remainingBalance → BigInt
no setter
role ↔ ChannelRole?
getter/setter pair
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
serverAddressB58 ↔ String?
getter/setter pair
serverBalanceSats ↔ BigInt
getter/setter pair
serverPeerId ↔ String?
getter/setter pair
serverPubKeyHex ↔ String?
getter/setter pair
status ↔ ChannelStatus
getter/setter pair
totalPaid → BigInt
no setter
version ↔ int
Override parent State version/lastModified with mutable fields
getter/setter pair
walletId ↔ String?
getter/setter pair

Methods

copyWith({int? version, DateTime? lastModified}) → State
Create a copy of this state with updated version and timestamp Subclasses should override to provide type-safe copying
getValidationErrors() → List<String>
Get validation errors Override in subclasses to provide specific error messages
inherited
isNewerThan(State other) → bool
Check if this state is newer than another state
inherited
isSameVersion(State other) → bool
Check if this state is the same version as another state
inherited
isValid() → bool
Validate the state Override in subclasses for custom validation
inherited
nextVersion([DateTime? timestamp]) → State
Create a new version of this state with incremented version
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toMap() → Map<String, dynamic>
Convert state to a map for serialization Override in subclasses to include state-specific data
inherited
toString() → String
A string representation of this object.

Operators

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