The simplest transaction is transferring ETH from one account to another. We can use wallet to send transactions.
Create a wallet from the privateKey, and pass the provider. So we can send transactions using this wallet later.
Construct a transaction object.
to is the address of the recipient.
value is the amount of ETH to send. The unit is wei(1 ETH = 10^18 wei).
We use ethers.utils.parseEther
to convert to wei.
sendTransaction will populate all fields in a transaction, signs it and sends it to the network.
We can use .wait to wait for the transaction to be mined. This will return transaction recipient.
If status is 1
, it means the transaction was successfully mined.
const ethers = require("ethers");
const provider = new ethers.providers.AlchemyProvider("goerli");
const privateKey = "your-private-key";
const wallet = new ethers.Wallet(privateKey, provider);
to: "0xddB51f100672Cb252C67D516eb79931bf27cE3E6",
value: ethers.utils.parseEther("0.1"),
const res = await wallet.sendTransaction(tx);
maxPriorityFeePerGas: BigNumber { _hex: '0x9502f900', _isBigNumber: true },
maxFeePerGas: BigNumber { _hex: '0x9502f912', _isBigNumber: true },
gasLimit: BigNumber { _hex: '0x5208', _isBigNumber: true },
to: '0xddB51f100672Cb252C67D516eb79931bf27cE3E6',
value: BigNumber { _hex: '0x016345785d8a0000', _isBigNumber: true },
hash: '0x11a4f81841dae0e5bb1b948d3ea8ca1e81d9481a56d5053f47c415f9c4a1d356',
r: '0x11034c123f6a9634a59d86c9c2167361d243a98d7f9c587ce916961bade99878',
s: '0x4cb00d84b992a1f0644571fe521c82969900a970860900da4ce3122e4d714254',
from: '0x67CF3bF40b2b3b3D68F6c361AEf81F8AEb2dB637',
wait: [Function (anonymous)]
Next example: Transferring Tokens (ERC-20)