mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 12:29:51 +00:00
68 lines
1.2 KiB
Dart
68 lines
1.2 KiB
Dart
|
import 'package:cw_core/hive_type_ids.dart';
|
||
|
import 'package:hive/hive.dart';
|
||
|
|
||
|
part 'payjoin_session.g.dart';
|
||
|
|
||
|
@HiveType(typeId: PAYJOIN_SESSION_TYPE_ID)
|
||
|
class PayjoinSession extends HiveObject {
|
||
|
PayjoinSession({
|
||
|
required this.walletId,
|
||
|
this.receiver,
|
||
|
this.sender,
|
||
|
this.pjUri,
|
||
|
this.status = "created",
|
||
|
this.inProgressSince,
|
||
|
this.rawAmount,
|
||
|
}) {
|
||
|
if (receiver == null) {
|
||
|
assert(sender != null);
|
||
|
assert(pjUri != null);
|
||
|
} else {
|
||
|
assert(receiver != null);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static const typeId = PAYJOIN_SESSION_TYPE_ID;
|
||
|
static const boxName = 'PayjoinSessions';
|
||
|
|
||
|
@HiveField(0)
|
||
|
final String walletId;
|
||
|
|
||
|
@HiveField(1)
|
||
|
final String? sender;
|
||
|
|
||
|
@HiveField(2)
|
||
|
final String? receiver;
|
||
|
|
||
|
@HiveField(3)
|
||
|
final String? pjUri;
|
||
|
|
||
|
@HiveField(4)
|
||
|
String status;
|
||
|
|
||
|
@HiveField(5)
|
||
|
DateTime? inProgressSince;
|
||
|
|
||
|
@HiveField(6)
|
||
|
String? txId;
|
||
|
|
||
|
@HiveField(7)
|
||
|
String? rawAmount;
|
||
|
|
||
|
@HiveField(8)
|
||
|
String? error;
|
||
|
|
||
|
bool get isSenderSession => sender != null;
|
||
|
|
||
|
BigInt get amount => BigInt.parse(rawAmount ?? "0");
|
||
|
set amount(BigInt amount) => rawAmount = amount.toString();
|
||
|
|
||
|
}
|
||
|
|
||
|
enum PayjoinSessionStatus {
|
||
|
created,
|
||
|
inProgress,
|
||
|
success,
|
||
|
unrecoverable,
|
||
|
}
|