AptosMultiEd25519AccountPublicKey constructor

AptosMultiEd25519AccountPublicKey({
  1. required List<AptosED25519PublicKey> publicKeys,
  2. required int threshold,
})

Implementation

factory AptosMultiEd25519AccountPublicKey(
    {required List<AptosED25519PublicKey> publicKeys,
    required int threshold}) {
  final keys = publicKeys.toSet();
  if (keys.length != publicKeys.length) {
    throw DartAptosPluginException("Duplicate public key detected.");
  }
  if (publicKeys.length < AptosAccountConst.multiEd25519MinKeys ||
      publicKeys.length > AptosAccountConst.multiEd25519MaxKeys) {
    throw DartAptosPluginException(
        "The number of public keys provided is invalid. It must be between ${AptosAccountConst.multiEd25519MinKeys} and ${AptosAccountConst.multiEd25519MaxKeys}.");
  }
  if (threshold < AptosAccountConst.multiEd25519MinThreshold ||
      threshold > publicKeys.length) {
    throw DartAptosPluginException(
        "Invalid threshold. The threshold must be between ${AptosAccountConst.multiEd25519MinThreshold} and the number of provided public keys (${publicKeys.length}).");
  }
  return AptosMultiEd25519AccountPublicKey._(
      publicKeys: publicKeys, threshold: threshold);
}