AptosMultiKeyAccountPublicKey constructor

AptosMultiKeyAccountPublicKey({
  1. required List<AptosCryptoPublicKey<IPublicKey>> publicKeys,
  2. required int requiredSignature,
})

Implementation

factory AptosMultiKeyAccountPublicKey(
    {required List<AptosCryptoPublicKey> publicKeys,
    required int requiredSignature}) {
  final keys = publicKeys.toSet();
  if (keys.length != publicKeys.length) {
    throw DartAptosPluginException("Duplicate public key detected.");
  }
  if (requiredSignature < AptosAccountConst.mulitKeyMinRequiredSignature ||
      requiredSignature > AptosAccountConst.multiKeyMaxRequiredSignature) {
    throw DartAptosPluginException(
        "Invalid required signature. The required signature must be between ${AptosAccountConst.mulitKeyMinRequiredSignature} and ${AptosAccountConst.multiKeyMaxRequiredSignature}.");
  }
  if (publicKeys.length < AptosAccountConst.mulitKeyMinRequiredSignature ||
      publicKeys.length > AptosAccountConst.multiKeyMaxKeys) {
    throw DartAptosPluginException(
        "The number of public keys provided is invalid. It must be between ${AptosAccountConst.mulitKeyMinRequiredSignature} and ${AptosAccountConst.multiKeyMaxKeys}.");
  }
  if (publicKeys.length < requiredSignature) {
    throw DartAptosPluginException(
        "The number of public keys must be at least equal to the required signatures.");
  }

  return AptosMultiKeyAccountPublicKey._(
      publicKeys: publicKeys, requiredSignature: requiredSignature);
}