简介
ethdeploy-raw-environment-loader 是一个基于 Node.js 平台的 npm 包,它的主要作用是在前端项目中加载以太坊的合约数据,让前端项目可以直接连接以太坊区块链,从而实现区块链应用的开发。
安装
在项目根目录执行以下命令进行安装:
npm install ethdeploy-raw-environment-loader --save-dev
使用
在 webpack 配置文件中进行配置:
-- -------------------- ---- ------- -------------- - - ------- - ------ - - ----- --------- ---- - - ------- ----------------------------------- -- -- -- -- -- --
这样就可以将以 .abi
结尾的文件视为以太坊的合约 ABI 数据进行处理,并加载到前端项目中。
实例
以一个简单的投票应用为例,演示如何通过 ethdeploy-raw-environment-loader 包加载合约数据。
首先,在 Solidity 中定义一个投票合约:
-- -------------------- ---- ------- ------ -------- ------- -------- ------ - --------------- -- -------- ------ ------ -------- ------------ ------------ ------ - --------------------- - -
使用 solc
编译器将合约编译为二进制 ABI 数据:
$ solc --bin --abi Voting.sol -o build/
打开生成的 ABI 文件可以看到以下内容:
-- -------------------- ---- ------- - - --------- --- ------- ------- ---------- --- ------------------ ------------- ------- ---------- -- - ------------ ------ --------- - - ---------- ------ ------- -------------- ------- --------- - -- ------- -------- ------- ------- -- - ----------- ----- --------- - - ------- --- ------- --------- - -- ------- -------- ---------- - - ------- --- ------- --------- - -- ---------- ------ ------------------ ------- ------- ---------- - -
在前端项目中创建一个 contracts
文件夹,将生成的 ABI 文件以 .abi
结尾的文件名存放在该文件夹下:
|-- src | |-- contracts | |-- Voting.abi |-- webpack.config.js
webpack 配置文件中进行配置:
-- -------------------- ---- ------- -------------- - - ------- - ------ - - ----- --------- ---- - - ------- ----------------------------------- -- -- -- -- -- --
在前端代码中加载合约数据:
-- -------------------- ---- ------- ------ --------- ---- ------------------------- ----- --- - ---------------------- ----- ---- - --- ------------------------------ ----- -------- - --- ---------------------- ---------------------------------------------- -- ---- ------------------------------- ----- --------------------------------------------- ---- ------- --------- -------------- ---------- -- ----------------------
总结
ethdeploy-raw-environment-loader 包可以方便地将以太坊合约数据加载到前端项目中,让前端应用可以与区块链进行交互,进一步扩展了区块链应用的开发可能性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005598e81e8991b448d7254