@aptos-labs/ts-sdk
Version:
Aptos TypeScript SDK
100 lines • 4.51 kB
TypeScript
import { AptosConfig } from "../api/aptosConfig.js";
import { AccountAddress, AccountAddressInput } from "../core/accountAddress.js";
import { Ed25519PrivateKey, Signature } from "../core/crypto/index.js";
import { MultiEd25519PublicKey, MultiEd25519Signature } from "../core/crypto/multiEd25519.js";
import { AccountAuthenticatorMultiEd25519 } from "../transactions/authenticator/account.js";
import { AnyRawTransaction } from "../transactions/types.js";
import { HexInput, SigningScheme } from "../types/index.js";
import type { Account } from "./Account.js";
export interface MultiEd25519SignerConstructorArgs {
publicKey: MultiEd25519PublicKey;
signers: Ed25519PrivateKey[];
address?: AccountAddressInput;
}
export interface VerifyMultiEd25519SignatureArgs {
message: HexInput;
signature: MultiEd25519Signature;
}
/**
* Signer implementation for the Multi-Ed25519 authentication scheme.
*
* Note: This authentication scheme is a legacy authentication scheme. Prefer using MultiKeyAccounts as a
* MultiKeyAccount can support any type of signer, not just Ed25519. Generating a signer instance does not
* create the account on-chain.
*/
export declare class MultiEd25519Account implements Account {
readonly publicKey: MultiEd25519PublicKey;
readonly accountAddress: AccountAddress;
readonly signingScheme = SigningScheme.MultiEd25519;
/**
* The signers used to sign messages. These signers should correspond to public keys in the
* MultiEd25519Account. The number of signers should be equal to this.publicKey.threshold.
* @group Implementation
* @category Account (On-Chain Model)
*/
readonly signers: Ed25519PrivateKey[];
/**
* 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.
* @group Implementation
* @category Account (On-Chain Model)
*/
readonly signerIndices: number[];
readonly signaturesBitmap: Uint8Array;
constructor(args: MultiEd25519SignerConstructorArgs);
/**
* Verify the given message and signature with the public key.
*
* @param args.message raw message data in HexInput format
* @param args.signature signed message Signature
* @returns
*/
verifySignature(args: VerifyMultiEd25519SignatureArgs): boolean;
/**
* Verify the given message and signature with the public key.
*
* MultiEd25519 signatures do not depend on chain state, so this function is
* equivalent to the synchronous verifySignature method.
*
* @param args - The arguments for verifying the signature.
* @param args.aptosConfig - The configuration object for connecting to the Aptos network
* @param args.message - Raw message data in HexInput format.
* @param args.signature - Signed message signature.
* @returns A boolean indicating whether the signature is valid.
* @group Implementation
* @category Account (On-Chain Model)
*/
verifySignatureAsync(args: {
aptosConfig: AptosConfig;
message: HexInput;
signature: Signature;
options?: {
throwErrorWithReason?: boolean;
};
}): Promise<boolean>;
/**
* Sign a message using the account's Ed25519 private key.
* @param message the signing message, as binary input
* @return the AccountAuthenticator containing the signature, together with the account's public key
*/
signWithAuthenticator(message: HexInput): AccountAuthenticatorMultiEd25519;
/**
* Sign a transaction using the account's Ed25519 private keys.
* @param transaction the raw transaction
* @return the AccountAuthenticator containing the signature of the transaction, together with the account's public key
*/
signTransactionWithAuthenticator(transaction: AnyRawTransaction): AccountAuthenticatorMultiEd25519;
/**
* Sign the given message using the account's Ed25519 private keys.
* @param message in HexInput format
* @returns MultiEd25519Signature
*/
sign(message: HexInput): MultiEd25519Signature;
/**
* Sign the given transaction using the available signing capabilities.
* @param transaction the transaction to be signed
* @returns Signature
*/
signTransaction(transaction: AnyRawTransaction): MultiEd25519Signature;
}
//# sourceMappingURL=MultiEd25519Account.d.ts.map