- get instance of ethers
const {ethers} = require('ethers')
const provider = new ethers.prividers.JsonRpcProvider(`infura url`);
- get current block number
const block = await provider.getBlockNumber();
- get balance
const balance = await provider.getBalance('address in hex') // returns the BigNumber object
const balanceEther = ethers.utils.formatEther(balance) // return balance in ether
const balanceWei = ethers.utils.parseEther(balanceEther) // return BigNumber
- Interact with Contract
const contractInstance = new ethers.Contract(contractAddress, contractABI, signerOrProvider);
- In frontend We don't want to specify the externally infura provider to the etherjs
const provider = new ethers.providers.Web3Provider(window.ethereum)
- sendTransaction
const wallet = new ethers.Wallet('senders pk', provider);
const tx = await wallet.sendTransaction({
to:'',
value:ether.utils.parseEther("0.025")
})
await tx.wait();
- send Token with contract interaction
account1=''
account2=''
privateKey1=''
const wallet = new ethers.Wallet(privateKey1, provider);
const usdtTokenAbi=[]
const usdtTokenContractAddress = ''
const contractInstance = new ethers.Contract(usdtTokenContractAddress,usdtTokenAbi, provider);
const main = async () => {
const balance = await contractInstance.balanceOf(account1)
const contractWithWallet = contractInstance.connect(wallet);
await contractWithWallet.transfer(account2, amoutToSend);
tx.wait();
}
- contract eventStream ( get transaction details )
const usdtTokenAbi=[]
const usdtTokenContractAddress = ''
const contractInstance = new ethers.Contract(usdtTokenContractAddress,usdtTokenAbi, provider);
const latestBlockNumber = await provider.getBlockNumber();
const transferEvents = await contractInstance.queryFilter(
'Transfer',
latestBlockNumber - 10, // fromBlockNumber
latestBlockNumber // toBlockNumber
);
- get block information
const main = () => {
const block = await provider.getBlockNumber();
const blockInfo = await provider.getBlock(block);
consoel.log(blockInfo);
const { transactions } = await provider.getBlockWithTransactions(block);
console.log(transactions[0])
}
- get token details
const ERC20_ABI = [
"function name() view returns (string)",
"function symbol() view returns (string)",
"function decimals() view returns (uint8)",
"function balanceOf(address a) view returns (uint)",
"function transfer(address to, uint amount) returns (bool)",
];
const contract = new ethers.Contract(tokenAddress, ERC20_ABI, provider);
const name = (await contract.name()) as string;
const symbol = (await contract.symbol()) as string;
const decimals = (await contract.decimals()) as number;
https://docs.ethers.org/v5/
https://github.com/dappuniversity/ethers_examples
Top comments (0)