ethers js基础操作

这篇具有很好参考价值的文章主要介绍了ethers js基础操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

查看一个地址的余额

创建provider调用其getBalance方法
web2通过http获取内容 web3通过jsonrpc获取内容 存储在变量provider中

// 引入ethers
const { ethers } = require("ethers");

// 设置JsonRpc连接

const INFURA_ID = "";
const provider = new ethers.providers.JsonRpcProvider(
  `https://mainnet.infura.io/v3/${INFURA_ID}`  创建以太坊节点(通过infura网页)
);

const address = "0x73BCEb1Cd57C711feaC4224D062b0F6ff338501e";
//这一步需要异步操作,因为它很慢,用async await包裹
const main = async () => {
  const balance = await provider.getBalance(address);
  console.log(
    // 需要格式化地址formatEther
    `\nETH Balance of ${address} --> ${ethers.utils.formatEther(balance)} ETH\n`
  );
};

main();

读取智能合约

创建智能合约 参数分别是地址 abi provider
const contract = new ethers.Contract(address, ERC20_ABI, provider);

const { ethers } = require("ethers");

const INFURA_ID = "";
const provider = new ethers.providers.JsonRpcProvider(
  `https://mainnet.infura.io/v3/${INFURA_ID}`
);

//abi: 数组 里面是string类型的函数
const ERC20_ABI = [
  "function name() view returns (string)",
  "function symbol() view returns (string)",
  "function totalSupply() view returns (uint256)",
  "function balanceOf(address) view returns (uint)",
];

const address = "0x6B175474E89094C44Da98b954EedeAC495271d0F"; // DAI Contract
// 关键步骤:创建智能合约 参数有3个:智能合约的地址、abi、provider
const contract = new ethers.Contract(address, ERC20_ABI, provider);

const main = async () => {
  const name = await contract.name();
  const symbol = await contract.symbol();
  const totalSupply = await contract.totalSupply();

  console.log(`\nReading from ${address}\n`);
  console.log(`Name: ${name}`);
  console.log(`Symbol: ${symbol}`);
  console.log(`Total Supply: ${totalSupply}\n`);

  const balance = await contract.balanceOf(
    "0x6c6Bc977E13Df9b0de53b251522280BB72383700"
  );

  console.log(`Balance Returned: ${balance}`);
  console.log(`Balance Formatted: ${ethers.utils.formatEther(balance)}\n`);
};

main();

从一个钱包转到另一个钱包

将私钥和provider传入ether.wallet创建钱包
wallet.sendTransaction//转账文章来源地址https://www.toymoban.com/news/detail-513925.html

const { ethers } = require("ethers");

const INFURA_ID = "";
const provider = new ethers.providers.JsonRpcProvider(
  `https://kovan.infura.io/v3/${INFURA_ID}`
);

// 创建变量存储第一个钱包地址
// 创建变量存储第二个钱包地址
const account1 = ""; // Your account address 1
const account2 = ""; // Your account address 2

const privateKey1 = ""; // 存储第一个钱包的私匙
const wallet = new ethers.Wallet(privateKey1, provider); //创建钱包

const main = async () => {
  // 获得账号1的转账前余额
  const senderBalanceBefore = await provider.getBalance(account1);
  // 获得账号2的转账前余额
  const recieverBalanceBefore = await provider.getBalance(account2);

  console.log(
    `\nSender balance before: ${ethers.utils.formatEther(senderBalanceBefore)}`
  );
  console.log(
    `reciever balance before: ${ethers.utils.formatEther(
      recieverBalanceBefore
    )}\n`
  );

  //   交易
  const tx = await wallet.sendTransaction({
    to: account2,
    value: ethers.utils.parseEther("0.025"),
  });
  // 等待交易完成
  await tx.wait();
  console.log(tx); //在控制台显示交易过程

  const senderBalanceAfter = await provider.getBalance(account1);
  const recieverBalanceAfter = await provider.getBalance(account2);

  console.log(
    `\nSender balance after: ${ethers.utils.formatEther(senderBalanceAfter)}`
  );
  console.log(
    `reciever balance after: ${ethers.utils.formatEther(
      recieverBalanceAfter
    )}\n`
  );
};

main();

到了这里,关于ethers js基础操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kafka 基础概念、命令行操作(查看所有topic、创建topic、删除topic、查看某个Topic的详情、修改分区数、发送消息、消费消息、 查看消费者组 、更新消费者的偏移位置)

    kafka官网 Broker   一台kafka服务器就是一个broker,可容纳多个topic。一个集群由多个broker组成; Producer   生产者,即向kafka的broker-list发送消息的客户端; Consumer   消费者,即向kafka的broker-list订阅消息的客户端; Consumer Group   消费者组是 逻辑上的一个订阅者 ,由多个

    2024年02月01日
    浏览(58)
  • 小程序中如何查看会员的余额和变更记录

    ​通过查看会员的余额和变更记录,可以帮助商家更好地管理会员资金,提供更好的服务和用户体验。下面将介绍小程序中如何查看会员的余额以及余额的变更记录。 1. 找到指定的会员卡。在管理员后台-会员管理处,找到需要查看余额和记录的会员卡。也支持对会员卡按卡

    2024年02月09日
    浏览(51)
  • ethers js监听合约事件

    监听合约事件 contract.on 在ethersjs中,合约对象有一个contract.on的监听方法,让我们持续监听合约的事件: contract.on有两个参数,一个是要监听的事件名称\\\"eventName\\\",需要包含在合约abi中;另一个是我们在事件发生时调用的函数。 contract.once 合约对象有一个contract.once的监听方法

    2024年02月13日
    浏览(81)
  • flutter创建/导入区块链钱包,获取余额

    作为区块链行业小白刚接触区块链钱包几天,来开发钱包还是需要付出很多努力的.下面记录一下flutter框架下创建/导入区块链钱包,并获取余额 一、创建钱包: 钱包的创建分为三个步骤: 1、生成助记词 (1)、创建助记词: 需要用到bip39插件 (2)、创建方式: 2、助记词生成私钥 (1)、生

    2024年02月06日
    浏览(45)
  • 以太坊标准JS API库——浅谈Web3.js与Ethers.js

    版本号: Web3.js v1.7.3 Ethers.js v.5.6 web3.js是一个标准的以太坊JavaScript API库,该JS库由以太坊基金会开发维护,同时它也是最早且使用最广泛的一个ETH API库。由于Moonbeam完全兼容以太坊EVM,因此web3.js可以在Moonbeam上进行正常交互 web3.js(v1.7.3)库官方使用文档:https://web3js.readthedoc

    2024年01月23日
    浏览(45)
  • ethers.js:构建ERC-20代币交易的不同方法

    在这篇文章中,我们将探讨如何使用ethers.js将ERC-20令牌从一个地址转移到另一个地址 Ethers是一个非常酷的JavaScript库,它能够发送EIP-1559事务,而无需手动指定气体属性。它将确定gasLimit,并默认使用1.5 Gwei的maxPriorityFeePerGas,从v5.6.0开始。 此外,如果您使用签名者类,它也会

    2024年02月08日
    浏览(35)
  • ethers.js Metamask和CoinbaseWallet,TronLink钱包连接方式

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 完成,年轻的程序员,大佬勿喷,希望对大家有用,有问题可以留言。

    2024年02月13日
    浏览(84)
  • es 索引操作(创建、查看、删除)

    Elasticsearch采用Rest风格API,因此其API就是一次http请求,只要能发起http请求。 settings:表示索引库设置,其中可以定义索引库的各种属性 比如分片数 副本数等,暂时不设置,都走默认。 GET /索引名称 GET /索引名称1,索引名称2,索引名称3,… 信息就比较多了 #! Deprecation: Elasticse

    2023年04月08日
    浏览(38)
  • web3.js链接以太坊并查询钱包u余额

    web3.js版本:6.14.15 不会安装以及使用web3.js的小伙伴看:https://blog.csdn.net/qq_45844443/article/details/124330035 获取以太坊的链接地址(也就是以太坊官网的主网链接) 获取地址: https://chainlist.org/. 创建一个js文件并且创建\\\"providers\\\",填上刚才随意取得的主网链接. 有过交易的信息,上面都会显示

    2024年02月03日
    浏览(62)
  • 前端Vue项目调用页面web3.js:连接metaMask钱包,(查询钱包ETH余额,查询代币余额,ETH转账,代币转账,代币授权,查询授权数量,计算价格)等功能

    这里分享下相关文档 1.web3.js中文文档 https://learnblockchain.cn/docs/web3.js/getting-started.html 2.metamask官方文档:https://docs.metamask.io/ 第一种方法:连接钱包 源码: 第二种方法: 连接钱包 安装依赖直接可以使用 源码: 其他功能: 1、在 mounted 中自动检测浏览器是否安装MetaMask钱包 2、查询

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包