部署合约
上文中,我们已经写好了 js 合约代码和 ABI 文件,并起了本地的测试节点,下面我们将合约部署到环境上,并对合约进行测试。
创建账户
在根目录下,新建 config.js
保存以下代码,用来配置基本信息。
1 | const config = { |
发布合约需要通过一个 fibos 账号进行发布,所以首先我们需要创建一个 fibos 账户,调用 newaccountSync()
方法来进行合约账户的创建。
新建 scripts
文件夹,保存代码至 scripts/deploy.js
:
1 | const FIBOS = require('fibos.js'); |
打包 js 合约
我们通过 fs 模块读取到 js 合约文件,并通过 compileCode()
方法将合约压缩打包。
以下代码保存至 scripts/deploy.js
:
1 | const jsCode = fs.readTextFile(`${__dirname}/../contracts/todo.js`); |
上传 js 合约
调用 setcodeSync()
方法将打包后的合约内容上传到节点上。
以下代码保存至 scripts/deploy.js
:
1 | fibosClient.setcodeSync(config.contract.name, 0, 0, zipCode); |
获取 js 合约
使用 getCodeSync()
方法可以读取到链上的 js 合约内容,与项目方提供的 js 合约文件对比,看看是否一致。
以下代码保存至 scripts/deploy.js
:
1 | const code = fibosClient.getCodeSync(config.contract.name, true); |
上传 ABI 文件
使用 fs 模块获取 ABI 文件,并通过 setabiSync()
将 ABI 文件上传到节点上。
以下代码保存至 scripts/deploy.js
:
1 | const abi = JSON.parse(fs.readTextFile(`${__dirname}/../contracts/todo.abi`)); |
部署合约
我们需要将打包好的 js 合约内容和 abi 文件部署到节点上。
运行命令
1 | fibos-todomvc$ fibos scripts/deploy.js |
注意:需新建窗口,保证 node.js 节点正常运行。如果报错
账户已存在
请关闭节点,重新启动fibos start_fibos/node.js
。
输出结果(部分)
1 | code: { |
至此,合约已经并成功部署到节点上了!
本文 GitHub 源码:https://github.com/fengluo/fibos-todomvc 下的 scripts
文件夹。
下一章节
👉 【测试合约】