eip-155定义的eth 的chainID

CHAIN_ID Chain(s)
1 Ethereum mainnet
2 Morden (disused), Expanse mainnet
3 Ropsten
4 Rinkeby
5 Goerli
42 Kovan
1337 Geth private chains (default)

ethers.utils.HDNode.isValidMnemonic(): 验证助记词是否有效
ethers.utils.getAddress():转换为checkSum地址

1.查询余额

  1. eth余额

       let pendingBal = await rpcProvider.getBalance(address, "pending")
  2. 查询其他token余额
        const getBalance_USDT = async () => {const contract = new ethers.Contract(USDTaddress, USDTabi, rpcProvider);const balance = await contract.balanceOf(address);return balance.toString();};
    // USDTaddress token地址 USDTabi token合约 address 地址

    //6为token有效小数位。查到的余额除以有效小数位才是实际余额
    let actuBalUSDT = ethers.utils.formatUnits(queryBalUSDT, 6)

2.utils

4.utils
//去除地址前面的0位
let address = ethers.utils.hexStripZeros(addressQuery)
// 相当于从wei到ether
let numberOfDecimals = 18;
let BNBbal = ethers.utils.parseUnits(queryBalBNB, numberOfDecimals);

3.发送交易

  1. eth交易

    let wallet = new ethers.Wallet(privateKey, provider);
    let amount = ethers.utils.parseEther(amount);
    //let nonce = await rpcProvider.getTransactionCount(address, "pending")
    let nonce = await wallet.getTransactionCount();
    let gasPrice=await provider.getGasPrice();let tx = {nonce: nonce,gasLimit: 21000,gasPrice: ethers.utils.bigNumberify(gasPrice),to: toAddress,chainId: chainId,value: amount,data: ""};// let signTx = await wallet.sign(tx)// let resp = await rpcProvider.sendTransaction(signTx)
    或
    let resp = await wallet.sendTransaction(tx);
    
  2. 发送token的交易
     let numberOfTokens = ethers.utils.parseUnits(amount, decims);// 先计算transfer 需要的gas 消耗量,这一步有默认值,非必须。let gas = await contract.estimate.transfer(toAddress, numberOfTokens)let gasP = await rpcProvider.getGasPrice()// 必须关联一个有过签名钱包对象let contractWithSigner = contract.connect(wallet);//  发起交易,前面2个参数是函数的参数,第3个是交易参数let tx = await contractWithSigner.transfer(toAddress, numberOfTokens, {nonce: nonce,gasLimit: gas,gasPrice: ethers.utils.bigNumberify(gasP) ,chainId: chainId})
    

3.单位换算

       // 转换cost为 wei单位的BigNumber类型const costWei = ethers.utils.bigNumberify(21000).mul('0x3b9aca00')console.log(costWei);// 转换cost为ether单位的一般表示(可读的10进制)const costEther = ethers.utils.formatEther(costWei)console.log(costEther);// 转换cost为ether单位的BigNumber类型const costBigNumber = ethers.utils.parseEther(costEther);console.log(costBigNumber);// 余额减去花费作为 新的转入余额,const amount = pendingBal.sub(costBigNumber)console.log(ethers.utils.formatEther(amount));

[区域链]以太开发中ethers库的使用相关推荐

  1. 以太坊开发中ethers库的使用

    eip-155定义的eth 的chainID CHAIN_ID Chain(s) 1 Ethereum mainnet 2 Morden (disused), Expanse mainnet 3 Ro ...

  2. iOS开发中静态库制作 之.a静态库制作及使用篇

    iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...

  3. iOS开发中与库相关的术语

    动态库 VS 静态库 Static frameworks are linked at compile time. Dynamic frameworks are linked at runtime .f ...

  4. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

  5. 论区块链应用开发中的技术选型

    区块链技术栈总览 区块链技术栈现阶段总览 链端选型 Fabric [ x,逐渐被市场淘汰 ] 和以太坊不能兼容的链 [ x ,原因:单打独斗,无法借力 ] FISCO BCOS / Venachain ...

  6. vue 开发中element-ui库的switch开关绑定number类型数据不成功问题 解决方法

    最近在使用element-ui库进行vue项目的开发,这个ui库对于一些后台管理项目的开发还是非常实用的,各种组件都比较齐全,而且文档也很详细.但是对于我这种初学者来说,部分组件的文档还需更加详细. ...

  7. python常用标准库有哪些-Python开发中常用的标准库

    大多数基于 Python 开发的应用程序都会用到本地标准库和三方库,这样不仅能让我们把时间去关注真正的业务开发,也能学习到更多价值含量高的程序设计和开发思想.程序开发中有一句著名的话叫做: Don't ...

  8. python async socket_Python开发中常用的标准库,这些都是你应该掌握的

    大多数基于 Python 开发的应用程序都会用到本地标准库和三方库,这样不仅能让我们把时间去关注真正的业务开发,也能学习到更多价值含量高的程序设计和开发思想.程序开发中有一句著名的话叫做: Don't ...

  9. 区块链-以太坊学习资料汇总

    最近一段时间以来,对区块链的底层研究和基于区块链的应用开发已经越来越火热了.机缘巧合,目前我也在进行区块链方面的开发,在之后的博客中,我会和大家一起分享区块链开发中的酸甜苦辣.今天我先来对收藏区块链- ...

最新文章

  1. Android之ASD组件(一)
  2. 简述一下extern C的小作用
  3. MyEclipse使用总结——MyEclipse文件查找技巧 ctrl+shift+R ctrl+H
  4. 同学, 你的板砖呢?
  5. 千牛怎么注销卖家店铺_新店铺怎么拥有亚马逊购物车?亚马逊小卖家如何尽快获得黄金购物车?...
  6. SAP License:AM-资产冻结与停用
  7. 虚函数virtual
  8. 让子弹飞,零成本让你的网站更快一点,boxopened http/3 (QUIC) 协议实战
  9. 阅读《构建之法》第6 第7章
  10. java.io.Serializab接口
  11. 火狐浏览器的一些插件
  12. Python for s60[1_pys60简介]
  13. 在工程图中如何进行虚拟相交点标注
  14. 高德地图不显示定位点
  15. 智能优化算法:遗传算法(GA)
  16. hiredis的代码示例
  17. 【电力系统分析】同步发电机
  18. 如何精准化的做微信公众号运营?
  19. 聚焦技术,锐意创新,GaussDB给世界一个更优选择
  20. Guava-retrying 重试机制

热门文章

  1. 从入门到精通Less,详解基本使用技巧!
  2. 【Shader】实验05——渐变映射实现镭射材质
  3. python虚拟环境virtualenv
  4. Observable详解
  5. 做PPT时流程图相关的模板在哪里可以下载?
  6. C#上传阿里云OSS工具类AliOSSTool
  7. 暨南大学计算机考试准考证号,暨南大学珠海校区17年3月计算机二级考试准考证打印...
  8. CJ双胞胎姐妹花-朱雯朱静
  9. 三星s9电池测试软件,三星S9电池测试:结果很尴尬
  10. 使用C语言读取.txt文本数据构建链表时fscanf用法不当以及文件编码格式不对导致读取失败