Truffle 使用包
在自己的项目中使用其他包(其他合约)时,通常会有2种场景:
在Solidity编写的合约源代码中使用
在Javascript代码中使用(测试、迁移)
安装
本例将使用 Example Truffle Library 包作为示例,这是一个演示如何使用Truffle创建javascript库的示例项目。为了将其作为依赖项使用,必须首先通过npm在项目中安装它:
$ cd my_project $ npm install example-truffle-library
注意,上面的后一个命令下载了这个包,并将它放在 my_project/node_modules目录中。有关npm使用,可参阅npm教程。
合约代码中使用包
要在合约源代码中使用包,可以使用 import导入。
import"example-truffle-library/contracts/SimpleNameRegistry.sol"
;
如果没有指定绝对路径,Truffle将从 node_modules目录中查找对应的包。
Javascript中使用包
要在JavaScript代码中与包中的合约进行交互,只需 require该包的编译文件( .json文件),然后使用 truff-contract模块将其转换为合约抽象:
var
contract = require("truffle-contract"
);var
data = require("example-truffle-library/build/contracts/SimpleNameRegistry.json"
);var
SimpleNameRegistry
= contract(data);
使用合约抽象,就可以与合约进行交互。
发布之前清理
当使用默认的开发网络(配置为匹配任何Ethereum客户机(如Ganache或Truffle develop))时,项目中可能会有一些不希望发布的网络构件。在发布包之前,可以运行以下命令来删除任何无关的网络构件:
$ truffle networks--clean
有关更多信息,请参见命令参考。
下一章:Truffle 调试合约
Truffle包含了一个集成调试器,这样你就可以调试针对你的合约进行的交易。这个调试器看起来有点像GDB这样的命令行调试器。 在区块链上调试交易,与调试传统应用程序(例如,用c++或Javasc ...