DEV Community

Swatantra goswami
Swatantra goswami

Posted on

EtherJs Functions working

  1. get instance of ethers
const {ethers} = require('ethers')
const provider = new ethers.prividers.JsonRpcProvider(`infura url`);
Enter fullscreen mode Exit fullscreen mode
  1. get current block number
const block = await provider.getBlockNumber();
Enter fullscreen mode Exit fullscreen mode
  1. 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
Enter fullscreen mode Exit fullscreen mode
  1. Interact with Contract
const contractInstance = new ethers.Contract(contractAddress, contractABI, signerOrProvider);
Enter fullscreen mode Exit fullscreen mode
  1. In frontend We don't want to specify the externally infura provider to the etherjs
const provider = new ethers.providers.Web3Provider(window.ethereum)
Enter fullscreen mode Exit fullscreen mode
  1. sendTransaction
const wallet = new ethers.Wallet('senders pk', provider);
const tx = await wallet.sendTransaction({
    to:'',
    value:ether.utils.parseEther("0.025")
})
await tx.wait();
Enter fullscreen mode Exit fullscreen mode
  1. 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();

}
Enter fullscreen mode Exit fullscreen mode
  1. 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
);
Enter fullscreen mode Exit fullscreen mode
  1. 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])
}
Enter fullscreen mode Exit fullscreen mode
  1. 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;
Enter fullscreen mode Exit fullscreen mode

https://docs.ethers.org/v5/
https://github.com/dappuniversity/ethers_examples

Top comments (0)