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