decodeUnifiedSpendKey static method
Implementation
static List<ZUnifiedReceiver> decodeUnifiedSpendKey(List<int> bytes) {
const int orchardEra = 5;
final layout = LayoutConst.struct([
LayoutConst.u32(property: "era"),
LayoutConst.dynamicVector(
ZUnifiedReceiver.layout(),
property: "receivers",
),
]);
final decode = layout.deserialize(bytes).value;
final int era = decode.valueAsInt("era");
final receiversJson = decode.valueEnsureAsList<Map<String, dynamic>>(
"receivers",
);
if (era != orchardEra) {
throw ZCashKeyEncodingError.invalidUnifiedBytes(
UnifiedReceiverMode.sk,
reason: "Duplicate receivers.",
);
}
List<ZUnifiedReceiver> receivers =
receiversJson
.map(
(e) =>
ZUnifiedReceiver.deserializeJson(e, UnifiedReceiverMode.sk),
)
.toList();
return validateUnifiedObjects(
mode: UnifiedReceiverMode.sk,
receivers: receivers,
);
}