UnifiedFullViewingKey.fromUnifiedFullViewKey constructor
UnifiedFullViewingKey.fromUnifiedFullViewKey({
- required String ufvk,
- required ZCashNetwork network,
- required ZCryptoContext context,
Implementation
factory UnifiedFullViewingKey.fromUnifiedFullViewKey({
required String ufvk,
required ZCashNetwork network,
required ZCryptoContext context,
}) {
final config = ZcashConf().fromNetwork(network);
final key = ZCashEncodingUtils.decodeUnifiedObject(
address: ufvk,
mode: UnifiedReceiverMode.fvk,
expectedHrp: config.hrpUnifiedFvk,
);
if (key == null) {
throw ArgumentException.invalidOperationArguments(
"fromUnifiedFullViewKey",
reason: "Invalid UFVK 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 UnifiedFullViewingKey._(
config: config,
sapling:
sapling == null
? null
: SaplingDiversifiableFullViewingKey.fromBytes(sapling.data),
orchard:
orchard == null
? null
: OrchardFullViewingKey.fromBytes(
bytes: orchard.data,
context: context,
),
transparent:
transparent == null
? null
: ZCashEncodingUtils.decodeBip44Fvk(transparent.data),
unknown: unknown?.cast<ReceiverUnknown>().copyWith(
mode: UnifiedReceiverMode.fvk,
),
);
}