SuiPublicKeyAndWeight constructor

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

Implementation

factory SuiPublicKeyAndWeight({
  required IPublicKey publicKey,
  required int weight,
}) {
  if (weight < 1 || weight > BinaryOps.mask8) {
    throw AddressConverterException.addressKeyValidationFailed(
      reason:
          "Invalid signer wieght. weight must be between 1 and ${BinaryOps.mask8} .",
    );
  }
  switch (publicKey.curve) {
    case EllipticCurveTypes.ed25519:
    case EllipticCurveTypes.secp256k1:
    case EllipticCurveTypes.nist256p1:
    case EllipticCurveTypes.nist256p1Hybrid:
      break;
    default:
      throw AddressConverterException.addressBytesValidationFailed(
        reason: "Unsupported ${publicKey.curve.name} public key",
      );
  }
  return SuiPublicKeyAndWeight._(publicKey: publicKey, weight: weight);
}