LocalAccountSigner

Defined in: aa-sdk/core/src/signer/local-account.ts:22

Represents a local account signer and provides methods to sign messages and transactions, as well as static methods to create the signer from mnemonic or private key.

Type Parameters

Type Parameter

T extends HDAccount | PrivateKeyAccount | LocalAccount

Implements

Constructors

Constructor

1new LocalAccountSigner<T>(inner): LocalAccountSigner<T>;

Defined in: aa-sdk/core/src/signer/local-account.ts:44

A function to initialize an object with an inner parameter and derive a signerType from it.

Example

1import { LocalAccountSigner } from "@aa-sdk/core";
2import { privateKeyToAccount, generatePrivateKey } from "viem";
3
4const signer = new LocalAccountSigner(
5 privateKeyToAccount(generatePrivateKey()),
6);

Parameters

ParameterTypeDescription

inner

T

The inner parameter containing the necessary data

Returns

LocalAccountSigner<T>

Properties

PropertyTypeDescription

inner

T

signerType

string

signMessage

(message) => Promise<`0x${string}`>

Signs the provided message using the inner signMessage function.

Example

1import { LocalAccountSigner } from "@aa-sdk/core";
2import { generatePrivateKey } from "viem";
3
4const signer = LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey());
5const signature = await signer.signMessage("Hello, world!");

Methods

getAddress()

1readonly getAddress(): Promise<`0x${string}`>;

Defined in: aa-sdk/core/src/signer/local-account.ts:140

Returns the address of the inner object in a specific hexadecimal format.

Example

1import { LocalAccountSigner } from "@aa-sdk/core";
2import { generatePrivateKey } from "viem";
3
4const signer =
5 LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey());
6const address = await signer.getAddress();

Returns

Promise<`0x${string}`>

A promise that resolves to the address in the format 0x{string}

Implementation of

SmartAccountSigner.getAddress


signAuthorization()

1signAuthorization(this, unsignedAuthorization): Promise<SignedAuthorization<number>>;

Defined in: aa-sdk/core/src/signer/local-account.ts:119

Signs an unsigned authorization using the provided private key account.

Example

import { 
class LocalAccountSigner<T extends HDAccount | PrivateKeyAccount | LocalAccount>

Represents a local account signer and provides methods to sign messages and transactions, as well as static methods to create the signer from mnemonic or private key.

LocalAccountSigner
} from "@aa-sdk/core";
import {
function generatePrivateKey(): Hex
generatePrivateKey
} from "viem/accounts";
const
const signer: LocalAccountSigner<{ address: Address; nonceManager?: NonceManager | undefined; sign: (parameters: { hash: Hash; }) => Promise<Hex>; ... 6 more ...; type: "local"; }>
signer
=
class LocalAccountSigner<T extends HDAccount | PrivateKeyAccount | LocalAccount>

Represents a local account signer and provides methods to sign messages and transactions, as well as static methods to create the signer from mnemonic or private key.

LocalAccountSigner
.
LocalAccountSigner<T extends HDAccount | PrivateKeyAccount | LocalAccount>.privateKeyToAccountSigner(key: Hex): LocalAccountSigner<PrivateKeyAccount>

Creates a LocalAccountSigner instance using the provided private key.

privateKeyToAccountSigner
(
function generatePrivateKey(): Hex
generatePrivateKey
());
const
const signedAuthorization: Authorization<number, true>
signedAuthorization
= await
const signer: LocalAccountSigner<{ address: Address; nonceManager?: NonceManager | undefined; sign: (parameters: { hash: Hash; }) => Promise<Hex>; ... 6 more ...; type: "local"; }>
signer
.
LocalAccountSigner<{ address: Address; nonceManager?: NonceManager | undefined; sign: (parameters: { hash: Hash; }) => Promise<Hex>; ... 6 more ...; type: "local"; }>.signAuthorization(this: LocalAccountSigner<PrivateKeyAccount>, unsignedAuthorization: Authorization<number, false>): Promise<Authorization<number, true>>

Signs an unsigned authorization using the provided private key account.

signAuthorization
({
contractAddress: string
contractAddress
: "0x1234123412341234123412341234123412341234",
chainId: number

Chain ID.

chainId
: 1,
nonce: number

Nonce of the EOA to delegate to.

nonce
: 3,
});

Parameters

ParameterTypeDescription

this

LocalAccountSigner<{ address: `0x${string}`; nonceManager?: NonceManager; publicKey: `0x${string}`; sign: (parameters) => Promise<`0x${string}`>; signAuthorization: (parameters) => Promise<SignAuthorizationReturnType>; signMessage: (__namedParameters) => Promise<`0x${string}`>; signTransaction: <serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<transaction>>, `0x${string}`> extends true ? TransactionSerialized<GetTransactionType<transaction>> : `0x${string}`>; signTypedData: <typedData, primaryType>(parameters) => Promise<`0x${string}`>; source: "privateKey"; type: "local"; }>

unsignedAuthorization

AuthorizationRequest<number>

The unsigned authorization to be signed.

Returns

Promise<SignedAuthorization<number>>

A promise that resolves to the signed authorization.

Implementation of

SmartAccountSigner.signAuthorization


signTypedData()

1readonly signTypedData<TTypedData, TPrimaryType>(params): Promise<`0x${string}`>;

Defined in: aa-sdk/core/src/signer/local-account.ts:90

Signs typed data using the given parameters.

Example

1import { LocalAccountSigner } from "@aa-sdk/core";
2import { generatePrivateKey } from "viem";
3
4const signer =
5 LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey());
6const signature = await signer.signTypedData({
7 domain: {},
8 types: {},
9 primaryType: "",
10 message: {},
11});

Type Parameters

Type ParameterDefault type

TTypedData extends | { [key: string]: readonly TypedDataParameter[]; [key: `string[${string}]`]: undefined; [key: `function[${string}]`]: undefined; [key: `address[${string}]`]: undefined; [key: `bool[${string}]`]: undefined; [key: `bytes[${string}]`]: undefined; [key: `bytes1[${string}]`]: undefined; [key: `bytes2[${string}]`]: undefined; [key: `bytes3[${string}]`]: undefined; [key: `bytes4[${string}]`]: undefined; [key: `bytes5[${string}]`]: undefined; [key: `bytes6[${string}]`]: undefined; [key: `bytes7[${string}]`]: undefined; [key: `bytes8[${string}]`]: undefined; [key: `bytes9[${string}]`]: undefined; [key: `bytes10[${string}]`]: undefined; [key: `bytes11[${string}]`]: undefined; [key: `bytes12[${string}]`]: undefined; [key: `bytes13[${string}]`]: undefined; [key: `bytes14[${string}]`]: undefined; [key: `bytes15[${string}]`]: undefined; [key: `bytes16[${string}]`]: undefined; [key: `bytes17[${string}]`]: undefined; [key: `bytes18[${string}]`]: undefined; [key: `bytes19[${string}]`]: undefined; [key: `bytes20[${string}]`]: undefined; [key: `bytes21[${string}]`]: undefined; [key: `bytes22[${string}]`]: undefined; [key: `bytes23[${string}]`]: undefined; [key: `bytes24[${string}]`]: undefined; [key: `bytes25[${string}]`]: undefined; [key: `bytes26[${string}]`]: undefined; [key: `bytes27[${string}]`]: undefined; [key: `bytes28[${string}]`]: undefined; [key: `bytes29[${string}]`]: undefined; [key: `bytes30[${string}]`]: undefined; [key: `bytes31[${string}]`]: undefined; [key: `bytes32[${string}]`]: undefined; [key: `int[${string}]`]: undefined; [key: `int8[${string}]`]: undefined; [key: `int16[${string}]`]: undefined; [key: `int24[${string}]`]: undefined; [key: `int32[${string}]`]: undefined; [key: `int40[${string}]`]: undefined; [key: `int48[${string}]`]: undefined; [key: `int56[${string}]`]: undefined; [key: `int64[${string}]`]: undefined; [key: `int72[${string}]`]: undefined; [key: `int80[${string}]`]: undefined; [key: `int88[${string}]`]: undefined; [key: `int96[${string}]`]: undefined; [key: `int104[${string}]`]: undefined; [key: `int112[${string}]`]: undefined; [key: `int120[${string}]`]: undefined; [key: `int128[${string}]`]: undefined; [key: `int136[${string}]`]: undefined; [key: `int144[${string}]`]: undefined; [key: `int152[${string}]`]: undefined; [key: `int160[${string}]`]: undefined; [key: `int168[${string}]`]: undefined; [key: `int176[${string}]`]: undefined; [key: `int184[${string}]`]: undefined; [key: `int192[${string}]`]: undefined; [key: `int200[${string}]`]: undefined; [key: `int208[${string}]`]: undefined; [key: `int216[${string}]`]: undefined; [key: `int224[${string}]`]: undefined; [key: `int232[${string}]`]: undefined; [key: `int240[${string}]`]: undefined; [key: `int248[${string}]`]: undefined; [key: `int256[${string}]`]: undefined; [key: `uint[${string}]`]: undefined; [key: `uint8[${string}]`]: undefined; [key: `uint16[${string}]`]: undefined; [key: `uint24[${string}]`]: undefined; [key: `uint32[${string}]`]: undefined; [key: `uint40[${string}]`]: undefined; [key: `uint48[${string}]`]: undefined; [key: `uint56[${string}]`]: undefined; [key: `uint64[${string}]`]: undefined; [key: `uint72[${string}]`]: undefined; [key: `uint80[${string}]`]: undefined; [key: `uint88[${string}]`]: undefined; [key: `uint96[${string}]`]: undefined; [key: `uint104[${string}]`]: undefined; [key: `uint112[${string}]`]: undefined; [key: `uint120[${string}]`]: undefined; [key: `uint128[${string}]`]: undefined; [key: `uint136[${string}]`]: undefined; [key: `uint144[${string}]`]: undefined; [key: `uint152[${string}]`]: undefined; [key: `uint160[${string}]`]: undefined; [key: `uint168[${string}]`]: undefined; [key: `uint176[${string}]`]: undefined; [key: `uint184[${string}]`]: undefined; [key: `uint192[${string}]`]: undefined; [key: `uint200[${string}]`]: undefined; [key: `uint208[${string}]`]: undefined; [key: `uint216[${string}]`]: undefined; [key: `uint224[${string}]`]: undefined; [key: `uint232[${string}]`]: undefined; [key: `uint240[${string}]`]: undefined; [key: `uint248[${string}]`]: undefined; [key: `uint256[${string}]`]: undefined; address?: undefined; bool?: undefined; bytes?: undefined; bytes1?: undefined; bytes10?: undefined; bytes11?: undefined; bytes12?: undefined; bytes13?: undefined; bytes14?: undefined; bytes15?: undefined; bytes16?: undefined; bytes17?: undefined; bytes18?: undefined; bytes19?: undefined; bytes2?: undefined; bytes20?: undefined; bytes21?: undefined; bytes22?: undefined; bytes23?: undefined; bytes24?: undefined; bytes25?: undefined; bytes26?: undefined; bytes27?: undefined; bytes28?: undefined; bytes29?: undefined; bytes3?: undefined; bytes30?: undefined; bytes31?: undefined; bytes32?: undefined; bytes4?: undefined; bytes5?: undefined; bytes6?: undefined; bytes7?: undefined; bytes8?: undefined; bytes9?: undefined; int104?: undefined; int112?: undefined; int120?: undefined; int128?: undefined; int136?: undefined; int144?: undefined; int152?: undefined; int16?: undefined; int160?: undefined; int168?: undefined; int176?: undefined; int184?: undefined; int192?: undefined; int200?: undefined; int208?: undefined; int216?: undefined; int224?: undefined; int232?: undefined; int24?: undefined; int240?: undefined; int248?: undefined; int256?: undefined; int32?: undefined; int40?: undefined; int48?: undefined; int56?: undefined; int64?: undefined; int72?: undefined; int8?: undefined; int80?: undefined; int88?: undefined; int96?: undefined; string?: undefined; uint104?: undefined; uint112?: undefined; uint120?: undefined; uint128?: undefined; uint136?: undefined; uint144?: undefined; uint152?: undefined; uint16?: undefined; uint160?: undefined; uint168?: undefined; uint176?: undefined; uint184?: undefined; uint192?: undefined; uint200?: undefined; uint208?: undefined; uint216?: undefined; uint224?: undefined; uint232?: undefined; uint24?: undefined; uint240?: undefined; uint248?: undefined; uint256?: undefined; uint32?: undefined; uint40?: undefined; uint48?: undefined; uint56?: undefined; uint64?: undefined; uint72?: undefined; uint8?: undefined; uint80?: undefined; uint88?: undefined; uint96?: undefined; } | Record<string, unknown>

TPrimaryType extends string | number | symbol

keyof TTypedData

Parameters

ParameterTypeDescription

params

TypedDataDefinition<TTypedData, TPrimaryType>

The parameters defining the typed data and primary type

Returns

Promise<`0x${string}`>

A promise that resolves to the signed data in hexadecimal format

Implementation of

SmartAccountSigner.signTypedData


generatePrivateKeySigner()

1static generatePrivateKeySigner(): LocalAccountSigner<{
2 address: `0x${string}`;
3 nonceManager?: NonceManager;
4 publicKey: `0x${string}`;
5 sign: (parameters) => Promise<`0x${string}`>;
6 signAuthorization: (parameters) => Promise<SignAuthorizationReturnType>;
7 signMessage: (__namedParameters) => Promise<`0x${string}`>;
8 signTransaction: <serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<transaction>>, `0x${string}`> extends true ? TransactionSerialized<GetTransactionType<transaction>> : `0x${string}`>;
9 signTypedData: <typedData, primaryType>(parameters) => Promise<`0x${string}`>;
10 source: "privateKey";
11 type: "local";
12}>;

Defined in: aa-sdk/core/src/signer/local-account.ts:200

Generates a new private key and creates a LocalAccountSigner for a PrivateKeyAccount.

Example

1import { LocalAccountSigner } from "@aa-sdk/core";
2
3const signer = LocalAccountSigner.generatePrivateKeySigner();

Returns

LocalAccountSigner<{ address: `0x${string}`; nonceManager?: NonceManager; publicKey: `0x${string}`; sign: (parameters) => Promise<`0x${string}`>; signAuthorization: (parameters) => Promise<SignAuthorizationReturnType>; signMessage: (__namedParameters) => Promise<`0x${string}`>; signTransaction: <serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<transaction>>, `0x${string}`> extends true ? TransactionSerialized<GetTransactionType<transaction>> : `0x${string}`>; signTypedData: <typedData, primaryType>(parameters) => Promise<`0x${string}`>; source: "privateKey"; type: "local"; }>

A LocalAccountSigner instance initialized with the generated private key account


mnemonicToAccountSigner()

1static mnemonicToAccountSigner(key, opts?): LocalAccountSigner<{
2 address: `0x${string}`;
3 nonceManager?: NonceManager;
4 publicKey: `0x${string}`;
5 sign: (parameters) => Promise<`0x${string}`>;
6 signAuthorization?: (parameters) => Promise<SignAuthorizationReturnType>;
7 signMessage: (__namedParameters) => Promise<`0x${string}`>;
8 signTransaction: <serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<transaction>>, `0x${string}`> extends true ? TransactionSerialized<GetTransactionType<transaction>> : `0x${string}`>;
9 signTypedData: <typedData, primaryType>(parameters) => Promise<`0x${string}`>;
10 source: "hd";
11 type: "local";
12 getHdKey: HDKey;
13}>;

Defined in: aa-sdk/core/src/signer/local-account.ts:159

Creates a LocalAccountSigner using the provided mnemonic key and optional HD options.

Example

1import { LocalAccountSigner } from "@aa-sdk/core";
2import { generateMnemonic } from "viem";
3
4const signer = LocalAccountSigner.mnemonicToAccountSigner(generateMnemonic());

Parameters

ParameterTypeDescription

key

string

The mnemonic key to derive the account from.

opts?

HDOptions

Optional HD options for deriving the account.

Returns

LocalAccountSigner<{ address: `0x${string}`; nonceManager?: NonceManager; publicKey: `0x${string}`; sign: (parameters) => Promise<`0x${string}`>; signAuthorization?: (parameters) => Promise<SignAuthorizationReturnType>; signMessage: (__namedParameters) => Promise<`0x${string}`>; signTransaction: <serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<transaction>>, `0x${string}`> extends true ? TransactionSerialized<GetTransactionType<transaction>> : `0x${string}`>; signTypedData: <typedData, primaryType>(parameters) => Promise<`0x${string}`>; source: "hd"; type: "local"; getHdKey: HDKey; }>

A LocalAccountSigner object for the derived account.


privateKeyToAccountSigner()

1static privateKeyToAccountSigner(key): LocalAccountSigner<{
2 address: `0x${string}`;
3 nonceManager?: NonceManager;
4 publicKey: `0x${string}`;
5 sign: (parameters) => Promise<`0x${string}`>;
6 signAuthorization: (parameters) => Promise<SignAuthorizationReturnType>;
7 signMessage: (__namedParameters) => Promise<`0x${string}`>;
8 signTransaction: <serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<transaction>>, `0x${string}`> extends true ? TransactionSerialized<GetTransactionType<transaction>> : `0x${string}`>;
9 signTypedData: <typedData, primaryType>(parameters) => Promise<`0x${string}`>;
10 source: "privateKey";
11 type: "local";
12}>;

Defined in: aa-sdk/core/src/signer/local-account.ts:181

Creates a LocalAccountSigner instance using the provided private key.

Example

1import { LocalAccountSigner } from "@aa-sdk/core";
2import { generatePrivateKey } from "viem";
3
4const signer =
5 LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey());

Parameters

ParameterTypeDescription

key

`0x${string}`

The private key in hexadecimal format

Returns

LocalAccountSigner<{ address: `0x${string}`; nonceManager?: NonceManager; publicKey: `0x${string}`; sign: (parameters) => Promise<`0x${string}`>; signAuthorization: (parameters) => Promise<SignAuthorizationReturnType>; signMessage: (__namedParameters) => Promise<`0x${string}`>; signTransaction: <serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<transaction>>, `0x${string}`> extends true ? TransactionSerialized<GetTransactionType<transaction>> : `0x${string}`>; signTypedData: <typedData, primaryType>(parameters) => Promise<`0x${string}`>; source: "privateKey"; type: "local"; }>

An instance of LocalAccountSigner initialized with the provided private key