您正在查看: Surou 发布的文章

EOS佳能离线工具

EOS佳能离线工具

工具简介:

EOS佳能离线工具是由EOS佳能主导,为保护数字货币投资者安全交易而开发的工具。

目前工具提供创建账号、质押/解质押、代理/解代理、投票、转账、赎回、购买/出售内存、修改私钥等功能。工具仍在完善中,欢迎提供建议。

免责声明:该工具仅供学习、交流,不对使用过程中产生的收益、损失负责,请知悉。

使用方法:

准备两台设备:离线设备、联网设备

首先:使用离线设备 ("重新build"、"使用已build的文件",选择其中一种方式)
重新build:
  1. 下载项目,打开控制台
  2. cd 项目根目录
  3. npm install
  4. npm start
  5. 在浏览器地址栏输入:http://localhost:3000
  6. 自行打包时,需注意:先将internals/webpack/webpack.base.babel.js中的 “ publicPath: '/' ” 改为:“ publicPath: './' ”,打包完成后,将其改回,避免影响 npm start。
    使用已build的文件:

    1.下载build.zip文件,解压后,使用浏览器打开index.html即可使用。

    然后:使用联网设备
  7. 打开 https://tool.eoscannon.io/
  8. 点击 复制初始化信息 按钮
  9. image
    然后:使用离线设备
  10. 打开http://localhost:3000,选择想要进行的操作页面
  11. 在json字段输入框,输入已复制的初始化信息
  12. image
  13. 按照提示输入生成签名报文所需的字段
  14. 点击 生成签名报文 按钮,生成的签名报文会自动填充在下面的输入框中。
  15. image
  16. 点击 复制签名报文 按钮,或扫描二维码,获取签名报文。
  17. image
    最后:使用联网设备
  18. https://tool.eoscannon.io/页面的发送交易输入框粘贴已复制的签名报文
  19. 点击 发送已签名报文 按钮
  20. image
  21. 根据提示确认是否交易成功

源代码地址:https://github.com/eoscannon/EosCannon-Offline-Tools

修改系统合约遇到的琐碎问题

  • EOSLIB_SERIALIZE 添加的变量名顺序要与struct添加变量名顺序一致,不然实例化后的存的变量数据会错位
  • Error 3080006: transaction took too long
    nodeos --max-transaction-time=1000
  • 之前table find 的iterator获取的是最新值
    如果后面有modify,再用前面iterator获取的数据将是后面modify后的新数据,如果想要旧数据,需要先保存下。

持续收集

设置vscode 换行符 (\n)

设置-->用户设置-->文本编辑器-->文件-->eol-->
设置为\n
或者直接搜索files:eol进行设置。

error: "assertion failure with message: system contract must first be initialized"

部署完eosio.system后,执行

cleos push action eosio init '[0,"4,SYS"]' -p eosio@active

参考:https://github.com/EOSIO/eos/issues/7061

解决TortoiseGit的pull操作将Unix换行符自动转成dos换行符——$'\r': command not found

一些同学想用Windows + sub ubuntu 编译eos,在windows下使用TortoiseGit pull 后,导致sh换行符被默认转换成dos '\r',运行出错。

解决方法

对于git bash用户使用命令:

git config --global core.autocrlf false

为了保证文件的换行符是以安全的方法,避免windows与unix的换行符混用的情况,最好也加上这么一句

git config --global core.safecrlf true

对于使用TortoiseGit的同学来说可以“快捷菜单”->“Git",将autocrlf去掉勾选