Skip to content

Signer

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:14

A Signer represents an account on the Ethereum Blockchain, and is most often backed by a private key represented by a mnemonic or residing on a Hardware Wallet.

The API remains abstract though, so that it can deal with more advanced exotic Signing entities, such as Smart Contract Wallets or Virtual Wallets (where the private key may not be known).

provider: null | Provider;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:18

The [[Provider]] attached to this Signer (if any).

ContractRunner.provider

authorize(authorization): Promise<Authorization>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:129

Signs an %%authorization%% to be used in [[link-eip-7702]] transactions.

ParameterType
authorizationAuthorizationRequest

Promise<Authorization>


call(tx): Promise<string>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:86

Evaluates the //tx// by running it against the current Blockchain state. This cannot change state and has no cost in ether, as it is effectively simulating execution.

This can be used to have the Blockchain perform computations based on its state (e.g. running a Contract’s getters) or to simulate the effect of a transaction before actually performing an operation.

ParameterType
txTransactionRequest

Promise<string>

ContractRunner.call

connect(provider): Signer;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:23

Returns a new instance of this Signer connected to //provider// or detached from any Provider if null.

ParameterType
providernull | Provider

Signer


estimateGas(tx): Promise<bigint>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:76

Estimates the required gas required to execute //tx// on the Blockchain. This will be the expected amount a transaction will require as its gasLimit to successfully run all the necessary computations and store the needed state that the transaction intends.

Keep in mind that this is best efforts, since the state of the Blockchain is in flux, which could affect transaction gas requirements.

ParameterType
txTransactionRequest

Promise<bigint>

UNPREDICTABLE_GAS_LIMIT A transaction that is believed by the node to likely fail will throw an error during gas estimation. This could indicate that it will actually fail or that the circumstances are simply too complex for the node to take into account. In these cases, a manually determined gasLimit will need to be made.

ContractRunner.estimateGas

getAddress(): Promise<string>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:27

Get the address of the Signer.

Promise<string>

Addressable.getAddress


getNonce(blockTag?): Promise<number>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:34

Gets the next nonce required for this Signer to send a transaction.

ParameterTypeDescription
blockTag?BlockTagThe blocktag to base the transaction count on, keep in mind many nodes do not honour this value and silently ignore it [default: "latest"]

Promise<number>


populateAuthorization(auth): Promise<AuthorizationRequest>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:124

Prepares an [[AuthorizationRequest]] for authorization by populating any missing properties:

  • resolves address (if an Addressable or ENS name)
  • populates nonce via signer.getNonce("pending")
  • populates chainId via signer.provider.getNetwork()
ParameterType
authAuthorizationRequest

Promise<AuthorizationRequest>


populateCall(tx): Promise<TransactionLike<string>>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:42

Prepares a TransactionRequest for calling:

  • resolves to and from addresses
  • if from is specified , check that it matches this Signer
ParameterTypeDescription
txTransactionRequestThe call to prepare

Promise<TransactionLike<string>>


populateTransaction(tx): Promise<TransactionLike<string>>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:60

Prepares a TransactionRequest for sending to the network by populating any missing properties:

  • resolves to and from addresses
  • if from is specified , check that it matches this Signer
  • populates nonce via signer.getNonce("pending")
  • populates gasLimit via signer.estimateGas(tx)
  • populates chainId via signer.provider.getNetwork()
  • populates type and relevant fee data for that type (gasPrice for legacy transactions, maxFeePerGas for EIP-1559, etc)
ParameterTypeDescription
txTransactionRequestThe call to prepare

Promise<TransactionLike<string>>

Some Signer implementations may skip populating properties that are populated downstream; for example JsonRpcSigner defers to the node to populate the nonce and fee data.


resolveName(name): Promise<null | string>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:90

Resolves an ENS Name to an address.

ParameterType
namestring

Promise<null | string>

NameResolver.resolveName


sendTransaction(tx): Promise<TransactionResponse>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:101

Sends %%tx%% to the Network. The signer.populateTransaction(tx) is called first to ensure all necessary properties for the transaction to be valid have been popualted first.

ParameterType
txTransactionRequest

Promise<TransactionResponse>

ContractRunner.sendTransaction

signMessage(message): Promise<string>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:112

Signs an [[link-eip-191]] prefixed personal message.

If the %%message%% is a string, it is signed as UTF-8 encoded bytes. It is not interpretted as a [[BytesLike]]; so the string "0x1234" is signed as six characters, not two bytes.

To sign that example as two bytes, the Uint8Array should be used (i.e. new Uint8Array([ 0x12, 0x34 ])).

ParameterType
message| string | Uint8Array<ArrayBufferLike>

Promise<string>


signTransaction(tx): Promise<string>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:95

Signs %%tx%%, returning the fully signed transaction. This does not populate any additional properties within the transaction.

ParameterType
txTransactionRequest

Promise<string>


signTypedData(
domain,
types,
value): Promise<string>;

Defined in: node_modules/.pnpm/ethers@6.15.0/node_modules/ethers/lib.esm/providers/signer.d.ts:116

Signs the [[link-eip-712]] typed data.

ParameterType
domainTypedDataDomain
typesRecord<string, TypedDataField[]>
valueRecord<string, any>

Promise<string>