METHODS

io/ethers.js/blob/main/src.ts/providers/signer.ts#L109) signer  .  call  (  tx
:  [ TransactionRequest ](/v6/api/providers/#TransactionRequest) )  ⇒
Promise< string  >

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.


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

io/ethers.js/blob/main/src.ts/providers/signer.ts#L98) signer  .  estimateGas
(  tx  :  [ TransactionRequest ](/v6/api/providers/#TransactionRequest) )  ⇒
Promise< bigint  >

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.

io/ethers.js/blob/main/src.ts/providers/signer.ts#L37) signer  .  getAddress
(  )  ⇒  Promise< string  >

Get the address of the Signer.

io/ethers.js/blob/main/src.ts/providers/signer.ts#L45) signer  .  getNonce  (
blockTag  ?:  [ BlockTag ](/v6/api/providers/#BlockTag) )  ⇒  Promise< number
>

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

io/ethers.js/blob/main/src.ts/providers/signer.ts#L58) signer  .  populateCall
(  tx  :  [ TransactionRequest ](/v6/api/providers/#TransactionRequest) )  ⇒
Promise< [ TransactionLike ](/v6/api/transaction/#TransactionLike) < string  >
>

Prepares a {@link TransactionRequest} for calling:

  * resolves  to  and  from  addresses 
  * if  from  is specified , check that it matches this Signer 

io/ethers.js/blob/main/src.ts/providers/signer.ts#L77) signer  .
populateTransaction  (  tx  :  [ TransactionRequest
](/v6/api/providers/#TransactionRequest) )  ⇒  Promise< [ TransactionLike
](/v6/api/transaction/#TransactionLike) < string  > >

Prepares a {@link 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) 


Resolves an ENS Name to an address.

io/ethers.js/blob/main/src.ts/providers/signer.ts#L131) signer  .
sendTransaction  (  tx  :  [ TransactionRequest
](/v6/api/providers/#TransactionRequest) )  ⇒  Promise< [ TransactionResponse
](/v6/api/providers/#TransactionResponse) >

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.


Signs an  [ EIP-191 ](https://eips.ethereum.org/EIPS/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 ](/v6/api/utils/#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 ])  ).

io/ethers.js/blob/main/src.ts/providers/signer.ts#L124) signer  .
signTransaction  (  tx  :  [ TransactionRequest
](/v6/api/providers/#TransactionRequest) )  ⇒  Promise< string  >

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

io/ethers.js/blob/main/src.ts/providers/signer.ts#L148) signer  .
signTypedData  (  domain  :  [ Ty