【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js

这篇具有很好参考价值的文章主要介绍了【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

web3可以用java语言来编写,通过java的web3j依赖来编写,但是web3j对于abi的应用等支持库不太完整,所以还是多少有点局限性。
因此在当今的web3领域中,使用基于javaScript的web3.js库来编写web3应用是主流。
市面上大多的教材中,对于web3.js的编写是基于vscode这一款ide工具,这里我则是使用了webStorm来编写。
在使用webstorm编写web3应用前,需要确保你的环境已经安装了nodeJs以及npm。
同时,读者需要具有一定的javaScript基础,这样才能较好的利用api文档进行学习。

我的nodejs版本:v9.4.0
npm版本:5.6.0

一.web3的Api了解

在具有js基础上,我们通过web3的api文档,能够最快的实现和contract进行交互以及block扫描等操作。
api文档建议参考这两个:
https://web3js.readthedocs.io/en/v1.7.3/web3-eth-contract.html
https://www.qikegu.com/docs/5132

二.abi是什么?(重要)

根据一些类似官方的说法,abi是如下解释:

ABI代表“Abstract Binary Interface/抽象二进制接口”,它是一个JSON数组,是面向以太坊虚拟机的可执行文件,类似于windows 平台上的二进制可执行文件。智能合约编译后生成ABI文件,可以在以太坊虚拟机上执行。

是不是不好理解?
那么通俗来说,abi会用json形式,定义了你和contract交互时,能够调用哪些函数或者查看哪些变量。
比如,bsc中的绝大部分contract,都有一个叫做’decimals()'的函数,如果我想调用它,我就需要先在abi中以json形式声明这个函数的存在,之后进行调用。
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js

这就类似于你在java中反射了一个类,想要调用它的方法,就需要准确的输入它的方法名一样。

三.建立web3项目

【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js
自定义你的项目路径
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js
创建成功
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js
安装web3js依赖
输入命令:

npm install web3

【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js
执行后,如果没有error则说明安装成功
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js

四.编写一个简单的web3脚本

接下来,我们来编写一个简单的脚本,根据contract地址来获取它的符号。
新建一个叫demo的目录
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js
新建一个demo脚本
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js

【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js
脚本内容如下:

const Web3 = require('web3'); // 加载web3库
const web3Bsc = new Web3("https://bsc-dataseed1.binance.org:443"); // 通过web3库,连接bsc链上节点,从而实例化bsc链上web3节点对象。

// 定义abi,abi能够以json形式,规定能够和该contract的哪些函数或者变量进行交互,比如调用它get/set函数。
const abi = [{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}];
// 获取token符号(名称)
async function getTokenSymbol(){
    const contractAddress = new web3Bsc.eth.Contract(abi,"0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe");
    const symbol = await contractAddress.methods.symbol().call();//执行该contract中的'symbol()'函数。
    console.log(symbol);
}
getTokenSymbol();

执行
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js

token符号成功获取到,并被打印出来了
【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js文章来源地址https://www.toymoban.com/news/detail-442311.html

到了这里,关于【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【WEB3】如何使用Web3J库开发应用连接到以太坊区块链网络

    ​ Web3j 是一个与以太坊智能合约交互并与以太坊节点集成的 Java 库。它是高度模块化、类型安全和反应式的,专为以太坊上的 Java 和 Android 开发而构建。Web3j 消除了编写自定义集成代码以连接到以太坊区块链网络的开销。 通过 HTTP 和 IPC 实现完整的 Ethereum JSON-RPC客户端 API,

    2024年02月02日
    浏览(59)
  • 以太坊主网络和ropsten网络区别,Remix IDE Environment;javascript VM 和injected web3区别;Web3.0是什么;ganache是什么

    目录 以太坊的测试网络 Ropsten Kovan Rinkeby Remix IDE Environment javascript VM 和injected web3区别

    2023年04月08日
    浏览(37)
  • 使用Golang Web3库进行区块链开发

    区块链作为一种分布式账本技术,在近年来取得了巨大的发展。而Golang作为一种高效、并发性强的编程语言,被广泛用于区块链开发中。在Golang中,我们可以使用Web3库来与以太坊或其他区块链网络进行交互。 Web3库是一个用于与区块链进行交互的工具库。它提供了一套API,用

    2024年02月07日
    浏览(53)
  • 【web3实践 | 以太坊开发框架Truffle使用】

    Truffle是一个面向以太坊的开发框架,提供一整套构建、测试、部署以及管理智能合约的开发工具。Truffle可以与以太坊节点交互,使开发人员能够在本地开发、测试和部署智能合约。 Truffle提供了一个基于命令行的、易于使用的开发环境,可以通过Truffle来编写智能合约,进行

    2024年02月07日
    浏览(56)
  • 03【WebStorm开发工具】

    上一篇 : 02【HTML快速入门】 下一篇 : 04【】 目录 : 【HTML5系列教程】 WebStorm是JetBrains公司旗下一款 JavaScript 开发工具。已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的J

    2024年02月08日
    浏览(45)
  • 【Java】IDE集成开发环境工具IntelliJ安装和使用

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月18日
    浏览(74)
  • 华为云开发工具CodeArts IDE for C/C++ 开发使用指南

    简介 CodeArts IDE是一个集成开发环境(IDE),它提供了开发语言和调试服务。本文主要介绍CodeArts IDE for C/C++的基本功能。 1.下载安装 CodeArts IDE for C/C++ 已开放公测,下载获取免费体验 2.新建C/C++工程 CodeArts IDE for C/C++ 提供了创建C或C++工程的能力,可参考以下步骤进行创建:

    2024年02月12日
    浏览(41)
  • 基础前端使用web3 进行区块链项目开发

    这篇文章不会些区块链的机制算法等一切,只是对前端开发者,如何快速上手进行区块链项目开发做一个简单的引导。 阅读本文之前,需要了解一些简单的区块链知识,能回答以下四个问题就可以阅读本文了。 1、区块链是什么? 2、区块链节点是什么? 3、钱包是什么? 4、

    2024年02月01日
    浏览(56)
  • Java之IDE开发工具eclipse下载安装使用详细教程

    熟练eclipse的使用 Eclipse是一个IDE(集成开发环境),集成了代码编写功能,分析功能,编译功能,调试功能等一体化的开发软件。 免费 Java语言编写 免安装 扩展性强 下载和安装 下载地址:http://eclipse.org 绿色版 解压就可以使用(Eclipse) 版本代号 平台版本 需要的JDK最低版本 Gal

    2024年04月14日
    浏览(105)
  • 【解放ipad生产力】如何在平板上使用免费IDE工具完成项目开发

    我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3o19zyy2pneoo 很多人应该会像我一样吧,有时候身边没电脑突然要写项目,发现自己的平板没有一点作用,毫无生产力可言,在了解了几家IDE工具后,给大家罗列出来,根

    2024年02月14日
    浏览(128)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包