AptosMultiEd25519Signature.fromStruct constructor
AptosMultiEd25519Signature.fromStruct(
- Map<String, dynamic> json
)
Implementation
factory AptosMultiEd25519Signature.fromStruct(Map<String, dynamic> json) {
final List<int> signature = json.asBytes("signature");
if ((signature.length - AptosConstants.bitmapLength) %
CryptoSignerConst.ed25519SignatureLength !=
0) {
throw DartAptosPluginException(
"Invalid MultiEd25519 signature bytes length.",
details: {"length": signature.length});
}
final signatureLength = (signature.length - AptosConstants.bitmapLength) ~/
CryptoSignerConst.ed25519SignatureLength;
return AptosMultiEd25519Signature(
signatures: List.generate(signatureLength, (i) {
final index = i * CryptoSignerConst.ed25519SignatureLength;
return AptosEd25519Signature(signature.sublist(
index, index + CryptoSignerConst.ed25519SignatureLength));
}),
bitmap: signature.sublist(
signatureLength * CryptoSignerConst.ed25519SignatureLength));
}