Signer implementation for the MultiKey authentication scheme.

This account utilizes an M of N signing scheme, where M and N are specified in the MultiKey. It signs messages using an array of M accounts, each corresponding to a public key in the MultiKey.

Note: Generating a signer instance does not create the account on-chain.

Implements

Implementation - Account (On-Chain Model)

accountAddress: AccountAddress

Account address associated with the account

publicKey: MultiKey

Public key associated with the account

signerIndicies: number[]

An array of indices where for signer[i], signerIndicies[i] is the index of the corresponding public key in publicKey.publicKeys. Used to derive the right public key to use for verification.

signers: Account[]

The signers used to sign messages. These signers should correspond to public keys in the MultiKeyAccount's public key. The number of signers should be equal to this.publicKey.signaturesRequired.

signingScheme: SigningScheme = SigningScheme.MultiKey

Signing scheme used to sign transactions

  • Verify the given message and signature with the public keys.

    This function checks if the provided signatures are valid for the given message using the corresponding public keys. Note: If you are using KeylessAccounts, you must use verifySignatureAsync instead.

    Parameters

    • args: { message: HexInput; signature: MultiKeySignature }

      The arguments for verifying the signature.

      • message: HexInput

        The raw message data in HexInput format.

      • signature: MultiKeySignature

        The signed message MultiKeySignature containing multiple signatures.

    Returns boolean

    A boolean indicating whether the signatures are valid for the message.

  • Verify the given message and signature with the public keys.

    This function checks if the provided signatures are valid for the given message using the corresponding public keys.

    Parameters

    • args: {
          aptosConfig: AptosConfig;
          message: HexInput;
          options?: { throwErrorWithReason?: boolean };
          signature: MultiKeySignature;
      }

      The arguments for verifying the signature.

      • aptosConfig: AptosConfig
      • message: HexInput

        The raw message data in HexInput format.

      • Optionaloptions?: { throwErrorWithReason?: boolean }
        • OptionalthrowErrorWithReason?: boolean

          Whether to throw an error with the reason for the verification failure.

      • signature: MultiKeySignature

        The signed message MultiKeySignature containing multiple signatures.

    Returns Promise<boolean>

    A boolean indicating whether the signatures are valid for the message.

  • Waits for any proofs on KeylessAccount signers to be fetched. This ensures that signing with the KeylessAccount does not fail due to missing proofs.

    Returns Promise<void>

    A promise that resolves when all proofs have been fetched.

Properties

signaturesBitmap: Uint8Array
MMNEPVFCICPMFPCPTTAAATR