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