UnifiedIncomingViewingKey.fromUnifiedFullViewKey constructor
UnifiedIncomingViewingKey.fromUnifiedFullViewKey({
- required String ifvk,
- required ZCashNetwork network,
Implementation
factory UnifiedIncomingViewingKey.fromUnifiedFullViewKey({
required String ifvk,
required ZCashNetwork network,
}) {
final config = ZcashConf().fromNetwork(network);
final key = ZCashEncodingUtils.decodeUnifiedObject(
address: ifvk,
mode: UnifiedReceiverMode.ivk,
expectedHrp: config.hrpUnifiedFvk,
);
if (key == null) {
throw ArgumentException.invalidOperationArguments(
"UnifiedIncomingViewingKey",
reason: "Invalid UIVK encoded string.",
);
}
final r = key.$1;
final sapling = r.firstWhereNullable((e) => e.type == Typecode.sapling);
final orchard = r.firstWhereNullable((e) => e.type == Typecode.orchard);
final transparent = r.firstWhereNullable((e) => e.type == Typecode.p2pkh);
final unknown = r.firstWhereNullable((e) => e.type == Typecode.unknown);
return UnifiedIncomingViewingKey._(
config: config,
sapling:
sapling == null
? null
: SaplingIncomingViewingKey.fromBytes(sapling.data),
orchard:
orchard == null
? null
: OrchardIncomingViewingKey.fromBytes(orchard.data),
transparent:
transparent == null
? null
: ZCashEncodingUtils.decodeBip44Fvk(transparent.data),
unknown: unknown?.cast<ReceiverUnknown>().copyWith(
mode: UnifiedReceiverMode.ivk,
),
);
}