SuiPublicKeyAndWeight constructor

SuiPublicKeyAndWeight({
  1. required IPublicKey publicKey,
  2. required int weight,
})

Implementation

factory SuiPublicKeyAndWeight(
    {required IPublicKey publicKey, required int weight}) {
  if (weight < 1 || weight > mask8) {
    throw AddressConverterException(
        "Invalid signer wieght. weight must be between 1 and $mask8 .");
  }
  switch (publicKey.curve) {
    case EllipticCurveTypes.ed25519:
    case EllipticCurveTypes.secp256k1:
    case EllipticCurveTypes.nist256p1:
    case EllipticCurveTypes.nist256p1Hybrid:
      break;
    default:
      throw AddressConverterException(
          "Unsupported public key: sui Multikey address can only be generated from secp256k1, ed25519 or nist256p1 public keys.");
  }
  return SuiPublicKeyAndWeight._(publicKey: publicKey, weight: weight);
}