3. 使用 Conflux-truffle
Conflux-truffle 的安装与使用
Last updated
Conflux-truffle 的安装与使用
Last updated
此教程适合于 Conflux Core
注:以 GIthub 方式登录 ChainIDE 后才可使用 Sandbox 功能。
打开 Sandbox,输入 cfxtruffle version可查看当前 cfxtruffle 版本
创建空项目
另外 truffle 也提供了许多项目模板叫做 box,可以使用 unbox 命令下载模板,快速开发
创建的项目目录内容如下:
build 存放合约编译后的文件(json)
contracts 合约代码目录
migrations 合约迁移脚本目录 (js 脚本)
test 测试文件
truffle-config.js 配置文件
添加合约 or 迁移脚本 or test
cfxtruffle create 可以用于创建新的合约文件
命令执行后创建的文件在对应的目录中。另外生成的 migrate 脚本文件名中包含一个时间戳,需要手动将其改为脚本中下一序号,具体原因参看这里
编译后的内容会存放在 build 目录中。
cfxtruffle 同样支持连接到远端节点,只需要在配置文件中配好需要部署用户的私钥(privateKeys
)即可。
这样在部署合约,以及与合约交互的时候会使用这里配置的私钥对应的账号。
deploy 跟 migrate 本质上是一个命令,truffle 使用 migration 脚本的方式管理合约的部署和迁移,具体来说
migration 文件夹中的每一个脚本对应一个部署 task,添加新合约,需要添加对应的 migration 脚本
所有 truffle 项目都会自带一个 Migration 合约,用于存储当前项目上次部署的位置: last_completed_migration
, setCompleted()
cfxtruffle deploy 执行时会查询上次的部署位置,并从下一个任务开始执行,执行完成之后也会更新当次部署序号。
另外 cfxtruffle deploy 有几个参数(--reset, --from, --to)可以控制 migration 的执行规则,具体可参看 cfxtruffle help
cfxtruffle 也提供了命令行式的交互环境,在该环境中可以直接获取或更新合约的状态。在 console 环境中不仅集成了合约对应的 js 类, 还包含了 cfx
, cfxutil
对象,可以直接使用,非常方便(具体用法可参看 js-conflux-sdk)。
cfxtruffle 默认集成了 Mocha 和 chai 测试框架,可通过 test 子命令运行。
单元测试代码示例:
执行测试:
目前 cfxtruffle 迁移还在不断进行中,以下命令还无法支持 conflux
develop
build
本快速入门介绍了 Conflux Truffle 项目生命周期的基础知识,但还有很多东西需要学习。请继续阅读 Conflux Truffle 官方仓库。