stack_wallet/lib/models/paynym/paynym_account.dart

76 lines
2 KiB
Dart

import 'package:stackwallet/models/paynym/paynym_account_lite.dart';
import 'package:stackwallet/models/paynym/paynym_code.dart';
class PaynymAccount {
final String nymID;
final String nymName;
final bool segwit;
final List<PaynymCode> codes;
/// list of nymId
final List<PaynymAccountLite> followers;
/// list of nymId
final List<PaynymAccountLite> following;
PaynymCode get nonSegwitPaymentCode =>
codes.firstWhere((element) => !element.segwit);
PaynymAccount(
this.nymID,
this.nymName,
this.segwit,
this.codes,
this.followers,
this.following,
);
PaynymAccount.fromMap(Map<String, dynamic> map)
: nymID = map["nymID"] as String,
nymName = map["nymName"] as String,
segwit = map["segwit"] as bool,
codes = (map["codes"] as List<dynamic>)
.map((e) => PaynymCode.fromMap(Map<String, dynamic>.from(e as Map)))
.toList(),
followers = (map["followers"] as List<dynamic>)
.map((e) =>
PaynymAccountLite.fromMap(Map<String, dynamic>.from(e as Map)))
.toList(),
following = (map["following"] as List<dynamic>)
.map((e) =>
PaynymAccountLite.fromMap(Map<String, dynamic>.from(e as Map)))
.toList();
PaynymAccount copyWith({
String? nymID,
String? nymName,
bool? segwit,
List<PaynymCode>? codes,
List<PaynymAccountLite>? followers,
List<PaynymAccountLite>? following,
}) {
return PaynymAccount(
nymID ?? this.nymID,
nymName ?? this.nymName,
segwit ?? this.segwit,
codes ?? this.codes,
followers ?? this.followers,
following ?? this.following,
);
}
Map<String, dynamic> toMap() => {
"nymID": nymID,
"nymName": nymName,
"segwit": segwit,
"codes": codes.map((e) => e.toMap()),
"followers": followers.map((e) => e.toMap()),
"following": followers.map((e) => e.toMap()),
};
@override
String toString() {
return toMap().toString();
}
}