SuiAccountPublicKey.fromStruct constructor

SuiAccountPublicKey.fromStruct(
  1. Map<String, dynamic> json
)

Implementation

factory SuiAccountPublicKey.fromStruct(Map<String, dynamic> json) {
  final decode = BcsVariantSerialization.toVariantDecodeResult(json);
  final algorithm = SuiSigningScheme.fromName(decode.variantName);
  return switch (algorithm) {
    SuiSigningScheme.ed25519 =>
      SuiEd25519AccountPublicKey.fromStruct(decode.value),
    SuiSigningScheme.secp256k1 =>
      SuiSecp256k1AccountPublicKey.fromStruct(decode.value),
    SuiSigningScheme.secp256r1 =>
      SuiSecp256r1AccountPublicKey.fromStruct(decode.value),
    SuiSigningScheme.multisig =>
      SuiMultisigAccountPublicKey.fromStruct(decode.value),
    _ => throw DartSuiPluginException("Unsupported account type.",
        details: {"account": algorithm.name})
  };
}