介绍
npm 包 @gnosis.pm/pm-contracts 是 Gnosis 开源项目的一部分,提供了一系列智能合约的实现,例如交易所、预测市场、多重签名钱包等。这些合约可用于搭建去中心化应用 (dapp),具有安全性高、执行信任无需第三方、代码公开透明等特性。
本文将介绍如何使用 @gnosis.pm/pm-contracts 包来创建自己的 dapp,包括安装、使用和调试。
安装
@gnosis.pm/pm-contracts 包可以通过 npm 安装:
npm install @gnosis.pm/pm-contracts
使用
pm-contracts 包提供了多个合约的实现。你可以根据需要选择其中一个或多个合约进行使用。这里以交易所合约为例。
const { artifacts, Contract } = require('@gnosis.pm/pm-contracts') // 获取交易所合约 ABI const exchangeABI = artifacts.require('GnosisExchange').abi // 创建交易所合约实例 const exchange = new Contract(exchangeABI, exchangeAddress)
实例
下面是一个完整的示例,详细展示如何使用 pm-contracts 包搭建交易所合约。
创建文件 index.js
:
-- -------------------- ---- ------- ----- ---- - --------------- ----- - ---------- -------- - - ---------------------------------- -- -------- ----- ------ - ----------------------- ----- ------------ - --- ----------------------------------- ----- ---- - --- ------------------ -- ------- --- ----- ----------- - --------------------------------------- -- -- ----- ---- ----- ----- ----- - ------------- -------- -- --------- ----- --------------- - -------------------------------------------- ----- -------- - --- --------------------- ---------------- -- ---- ----- --------- - -------------------------------------------- -- -- ----- -- ----- ---------- - -- - ----- -- -- ----- -- ----- -------- - -------------------------------------------- -- -- ----- -- ----- --------- - - - ----- -- -- ----- -- ----- ---------- - --------------------- - ----- - -- - -- - -- -- ------ -- ---- ----- ----------------- - -- -- -- ----- ---- ----- ---------------- - -- -- -- ----- ---- ----- ---- - ------------------------ - -- -- --- ----- --------- - -------------------- ---------- ----------- --------- ---------- ----------- ----- ------------------ ----------------- -- -- ---- ----- ------------- - -------------------------------------------- ------------------------------- - ----- ------------- -- -------------- -- - -------------------- -- ------------ -- - ----------------- --展开代码
在命令行中运行:
node index.js
调试
开发过程中需要调试合约代码,可以使用 Hardhat 提供的 @nomiclabs/hardhat-ethers
和 @nomiclabs/hardhat-waffle
包模拟合约环境。
安装 Hardhat。Hardhat 是一个以太坊开发环境,提供了多个功能,例如编译合约、使用测试框架等。
npm install --save-dev hardhat
安装
@nomiclabs/hardhat-ethers
和@nomiclabs/hardhat-waffle
。npm install --save-dev @nomiclabs/hardhat-ethers @nomiclabs/hardhat-waffle
创建
hardhat.config.js
文件。-- -------------------- ---- ------- -------------- - - --------------- ---------- --------- - -------- --- -- --------- - -------- --------- --------- - ---------- - -------- ----- ----- ---- - - - --
展开代码编写测试代码。
-- -------------------- ---- ------- ----- - ---------- ------ - - ------------------- ----- ----------- - ------------------------------------------------- -------------------------- -------- -- - --- --------- ---------------- -------- -- - ------- ----- - ----- -------------------- ----- -------- - ----- -------------------------------------------- -------- - ----- ------------------ ----- -------------------- --- ----------------------- -------- -- - ---------- ------ ----- -------------- ----- -------- -- - ----- --------- - --------------------------------------------- -- -- ----- -- ----- ---------- - ------------------------------ -- -- ----- -- ----- -------- - --------------------------------------------- -- -- ----- -- ----- --------- - ----------------------------- -- -- ----- -- ----- ---------- - --------------------- - ----- - -- - -- - --- -- ------ ----- ---- - -------------------------------- ----- ----------------- - --- ----- ---------------- - --- ----- --------- - ----- ------------------- ---------- ----------- --------- ---------- ----------- ----- ------------------ ---------------- -- ----- ------- --------------------- ---------- - ----- ------------ - - ------------------- ------------------ --- --- ---
展开代码运行测试代码。
npx hardhat test
结论
本文详细介绍了如何使用 npm 包 @gnosis.pm/pm-contracts 搭建交易所合约,并提供了示例代码和调试提示。希望能够帮助读者理解和实践去中心化应用的开发。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/203976