npm 包 @0x/contract-artifacts 使用教程

什么是 @0x/contract-artifacts 包?

@0x/contract-artifacts 是一个 Node.js 包,用于在以太坊上部署及调用智能合约。该包包含了各种以太坊上常用的智能合约 ABI(Application Binary Interface)及二进制代码,可以使用该包来部署自己的智能合约,或者调用已有的智能合约。该包使用的是 0x Protocol 的智能合约 ABI 标准,开发者可以根据需要自行扩展。

如何使用 @0x/contract-artifacts 包?

使用 @0x/contract-artifacts 包很简单,只需要按以下步骤操作即可:

  1. 安装该包
--- ------- ----------------------
  1. 导入该包
----- ----------------- - ----------------------------------
  1. 使用该包

使用该包可以有多种方式,下面将列举两种常用方式:

  • 部署自己的智能合约

    ----- ---- - ----------------
    ----- -------- - -----------------------------
    
    ----- --------------- - ------ -- ------- ---
    
    ----- ------------ - --- ------------------------------
    ---------------------------------------------------
    
    ----- ------------------ - --- --------------------------
    --------------------------- ----- ----------- ---------- --- ----------- ---- --- ---
    ------------------------- ----- ---------- --
      -------------- --------- -- -
        --------------------- -------- -- -------------------------
      ---
  • 调用已有的智能合约

    ----- ---- - ----------------
    ----- -------- - -----------------------------
    
    ----- --------------- - ----------------------------- -- ----- ----- --- ---
    ----- ------------------- - ----------- -- ----- ----- ----
    
    ----- ------------ - --- ------------------------------
    ---------------------------------------------------
    
    ----- ------------------ - --- ------------------------- ---------------------
    ----- ------- - --------------------------------------------------------
    --------------------- -- ---------

怎样扩展 @0x/contract-artifacts 包?

@0x/contract-artifacts 包使用的是 0x Protocol 的智能合约 ABI 标准,可以根据自己的需要在该标准的基础上扩展更多的智能合约 ABI。以添加一个名为 MyContract 的智能合约 ABI 为例,步骤如下:

  1. 在 @0x/contract-artifacts 包中,找到 src/abis 目录下的 json 文件,并添加一个新的 json 文件 MyContract.json,该文件的内容应符合 0x Protocol 的智能合约 ABI 标准。

  2. 在 @0x/contract-artifacts 包中,找到 src/index.ts 文件,添加如下的语句:

    ------ ------------------ ---- -------------------------
  3. 在 @0x/contract-artifacts 包的构建脚本中,添加将 src/abis 目录下的所有 json 文件编译成 js 文件的语句(常见使用 tsc 命令),以便生成支持 TypeScript 的类型声明文件。

  4. 在自己的代码中,导入新增的智能合约 ABI:

    ----- --------------- - -----------------------------

示例代码

下面给出一个部署自己智能合约的完整示例代码:

----- ---- - ----------------
----- -------- - -----------------------------
----- ----------------- - ----------------------------------

----- --------------- - -
  -
    --------- ---
    ------- -----------
    ---------- -
      -
        --------------- ---------
        ------- ---
        ------- --------
      -
    --
    ------------------ -------
    ------- ----------
  --
  -
    --------- ---
    ------------------ ----------
    ------- -------------
  -
--
----- -------------------- - ------------ -- --------

----- ------------ - --- ------------------------------
---------------------------------------------------

----- ------------------ - --- --------------------------
--------------------------- ----- --------------------- ---------- -- ---
------------------------- ----- ----------- ---- ------- --
  -------------- --------- -- -
    --------------------- -------- -- -------------------------
  ---

上述代码使用的合约 ABI 是一个简单的合约,只有一个返回字符串类型的方法 sayHello,和一个 payable 的构造函数。使用该代码可以先将合约部署到以太坊上,再通过所部署的合约地址进行调用。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/125300


猜你喜欢

  • npm 包 @asset-pipe/dev-middleware 使用教程

    前言 在前端开发中,项目中的静态资源(如 JS、CSS、图片等)大多通过引入外部链接或者使用 webpack 等工具进行打包处理。但当我们需要使用服务端渲染、SSR、CDN 等特性时,就需要将资...

    5 年前
  • npm 包 @asset-pipe/css-writer 使用教程

    在前端开发过程中,样式文件的处理是非常重要的一部分。而在样式文件的编写中,使用 css-writer 包可以让我们更加方便地进行样式文件的管理和优化。本文将会介绍 @asset-pipe/css-wr...

    5 年前
  • npm 包 @asset-pipe/common 使用教程

    在前端开发中,我们常常需要处理一些静态资源的加载和管理,如图片、样式表、脚本等,而 @asset-pipe/common 就是一款优秀的解决方案,它提供了一整套工具和方法,使得我们能够更加高效地管理静...

    5 年前
  • npm 包 @alexistessier/spritesheet-generator 使用教程

    1. 介绍 CSS Sprites 是一种在前端网站优化中常用的技术。使用 CSS Sprites 可以将多个小图标或按钮合并成一张大图,从而减少了网页 HTTP 请求次数,提高了网站性能。

    5 年前
  • npm 包 @alexistessier/gulp-workflow-common-task 使用教程

    @alexistessier/gulp-workflow-common-task 是一个适用于前端项目的 Gulp 工作流常用任务的 npm 包。本文将介绍 npm 包的基本使用方法、注意事项以及示例...

    5 年前
  • npm 包 pedantic 使用教程

    简介 pedantic 是一个基于 Node.js 的 npm 包,用于检查英文文本中的语法和拼写错误。它使用 LanguageTool API 来进行校正,因此具有很高的准确度和可靠性。

    5 年前
  • npm 包 kyt 使用教程

    简介 kyt 是一个基于 React 的 Web 应用快速开发工具,它是一个 npm 包,提供了一些成熟的预设配置,并支持自定义配置,能够帮助开发者快速开发一个独立的、可配置的、基于 React 的 ...

    5 年前
  • npm 包 @khell/babel-traverse 使用教程

    简介 @khell/babel-traverse 是一款基于 Babel 的 AST 遍历工具。通过它,可以轻松地对 AST 进行修改、遍历以及进行一些自定义的操作。

    5 年前
  • npm 包 @babel/helper-wrap-function 使用教程

    在前端开发中,Babel 是一个非常常用的 JavaScript 编译工具。它可以将 ES6+ 代码转换成 ES5 代码,从而可以兼容更多的浏览器。而 @babel/helper-wrap-funct...

    5 年前
  • npm 包 @babel/helper-get-function-arity 使用教程

    简介 在前端开发中,我们经常使用 Babel 来将 ES6 以上版本的代码转换成 ES5 以下版本的代码,方便在不支持高级语法的浏览器中运行。其中,@babel/helper-get-function...

    5 年前
  • npm包@azu/sjsp-loader使用教程

    什么是@azu/sjsp-loader? @azu/sjsp-loader是一个Webpack loader,它能够读取标准的sjsp文件并将其转换为JavaScript模块。

    5 年前
  • npm 包 @climb/from-entries 使用教程

    作为前端开发者,我们都知道 JavaScript 中对象可以通过 Object.entries() 方法将对象的键值对转换为二维数组。然而在一些场景下,我们需要将二维数组转换为对象,这就需要用到 @c...

    5 年前
  • npm 包 @climb/dfs-reachability 使用教程

    前言 随着 Web 技术的发展,前端领域越来越重要,也越来越复杂。前端开发者需要掌握大量的工具和框架,其中 npm 包是不可或缺的一部分。在本文中,我们将介绍一个名为 @climb/dfs-reach...

    5 年前
  • npm 包 sucrase 使用教程

    什么是 sucrase? sucrase 是一个 JavaScript 编译器,它可以将一些新的 JavaScript 语法转换成老的 JavaScript 语法,以及提供了更快的代码转换速度。

    5 年前
  • npm包rollup-plugin-tagged-template使用教程

    介绍 rollup-plugin-tagged-template是一种轻量级的rollup插件,用于将标记模板编译为JavaScript。标记模板是一种特殊的字符串文字,允许您通过插入表达式来创建Ja...

    5 年前
  • npm 包 babel-plugin-transform-charcodes 使用教程

    在前端开发中,我们常常需要对字符编码进行转换。而 babel-plugin-transform-charcodes 正是一个能够帮助我们完成字符编码转换的 npm 包。

    5 年前
  • npm 包 @babel/helper-hoist-variables 使用教程

    简介 @babel/helper-hoist-variables 是一个 Babel 插件,它可以将变量从它们原始位置移动到它们能够最优化地使用的位置,从而减少无用的变量声明。

    5 年前
  • npm 包 @babel/plugin-syntax-decorators 使用教程

    在前端开发中,我们经常需要对代码进行装饰或者扩展。而在 JavaScript 中,装饰器(Decorator)是为了增强类、函数、属性等而存在的一种语法糖。而在使用装饰器的时候,往往需要使用到 @ba...

    5 年前
  • npm 包 babel-preset-yoshi 使用教程

    在前端开发中,babel 是一个非常常见的工具,它可以将 ES6/ES7/ES8 等现代 JavaScript 语法转换为浏览器支持的 ES5 语法。而 babel-preset-yoshi 是一个预...

    5 年前
  • npm 包 babel-plugin-decorator-metadata-typescript 使用教程

    随着前端开发的不断发展,TypeScript 逐渐成为了一个不可忽视的选项。它通过在 JavaScript 上添加静态类型检查,增强编写代码的安全性和可维护性,使得在团队中协作开发更加容易。

    5 年前

相关推荐

    暂无文章