Skip to content
Aten edited this page Nov 22, 2019 · 8 revisions

ChainX 钱包

ChainX的钱包经过迭代后,在将来不再以桌面钱包的形式发布,而改为浏览器插件加网页钱包的形式。因此目前我们将该网页加插件形式的钱包称为新钱包,之前的桌面钱包称为老钱包

当前新钱包还处于开发迭代中,未正式发布,因此还存在很多问题。如有问题,请提交到ChainX钱包的issue中进行反馈

新钱包将会提供ChainX的智能合约功能,而老钱包将仅仅处于正常维护,不再添加新功能。若使用老钱包,但是需要进行智能合约的开发,我们仅为开发者提供智能合约开发部分的独立部署组件,见下文合约开发独立部署组件

建议当前ChainX的新钱包仅用于测试网。添加 ChainX 秘书长(WeChat ID:ChainX-PCX),备注『开发群』进群申请测试币

新钱包

ChainX新钱包为网页钱包+插件(Chrome插件)的形式。

钱包地址为:https://dapps.chainx.org.cn/

安装插件

点击 Chainx Extension 安装插件。

如果因为网络无法安装插件,可以在我们的插件发布仓库下载插件压缩包,并通过 Chrome 的 Load unpacked 来加载插件。

插件注入说明

插件安装完成之后,会在 window 对象中注入 chainxProvider 对象。

该对象包含的方法和相关说明如下:

函数名 函数说明
enable 获取当前插件的钱包账户
signExtrinsic 签名
signAndSendExtrinsic 签名并发送
listenAccountChange 监听账户变化
listenNodeChange 监听节点变化
listenNetworkChange 监听网络变化
getCurrentNode 获取当前网络节点
getSettings 获取插件设置

函数调用示例:

chainxProvider.enable().then(console.log)

{
  address: "5Fe4i2nqi1yPaMowBmjYKb7eRmRYgSE4QAgpxJq1kaGdvQL8" // 账户地址
  name: "Alice"                                               // 帐号名称
}
signExtrinsic(
  address: string, // 发送交易的账户地址
  module: string,  // 交易模块如:xAssets
  method: string,  // 交易方法如:transfer
  args: Array      // method 需要的 参数
)

signAndSendExtrinsic  signExtrinsic
chainxProvider.getCurrentNode().then(console.log)

{
  isTestNet: true                           // 当前节点是否为测试网
  name: "testnet.w1.org.cn"									// 当前节点名称
  url: "wss://testnet.w1.chainx.org.cn/ws"       // 点前节点 url
}
chainxProvider.getSettings().then(console.log)

{
  isTestNet: true  // 点前是否为测试网络
  version: 1.0.4	 // 插件版本
}

安装完成之后

  1. 将网络切换至测试网

    1. ChainX当前对于测试网默认提供了wss://testnet.w1.org.cn/ws 的节点配置
    2. 如使用ChainX Dev模式或者在本地跑了测试网的同步节点,可以添加localhost:ws://localhost:<websocket的端口>
    3. 若需要连接自己配置的测试网节点,需要为自己的测试网节点的websocket配置域名及ssh
  2. 新建或者导入账户

    流程如下:

    image-20191114175210101
  3. 在导入钱包界面若选择”导入钱包“,在助记词页面右上角有直接导入私钥的选项。

体验钱包

其他功能部分

该钱包其他功能与老钱包相似,敬请体验。

合约功能部分

1. 上传合约
  1. 打开 Chainx Wallet,并切换到『上传合约』页面:
image-20191114150242636
  1. 确保你合约目录的 target 目录存在编译好的 wasm 文件和 json 文件:
image-20191114120447447
  1. 点击 UPLOAD WASM,并在表单中上传和填写相应的参数:
image-20191114150517915
  1. 点击 CONFIRM 之后,会调起插件对该上传交易进行签名,请输入账户密码并确认签名:
image-20191114151019208
  1. 合约成功部署后显示如下(包含该合约所有的方法):
image-20191114151322439

上传失败可能存在的原因:

  1.	codehash 已存在,请复制提示的 codehash,并通过『Add existing code hash』上传合约代码
  2.	账户余额不足,请保证上传帐号有足够多的 PCX
  3.	gasLimit 不够,请尝试提高 gasLimit 并重试
2. 实例化合约(部署合约)

上一步的上传合约,只是简单的将合约代码存储在链上,还没有任何可以操作和调用的功能,所以接下来我们需要将这份合约进行实例化

  1. 点击 Deploy 并填写实例化必要的参数:
image-20191114152810561

调起插件之后,输入密码并确认签名即可实例化合约。

  1. 合约部署成功之后,页面会自动跳转到『合约』页面,该页面如下图所示:
image-20191114154411579
  1. 若链上已经存在这个合约,可点击ADD EXISTING CONTRACT按钮,添加一个已经存在的合约。请注意在添加这个合约实例的时候需要同时提供这个合约的abi.json,若提供错误的abi,在调用时会造成selector错误,无法调用对应函数。
3. 调用合约方法
image-20191114155829408

方法执行成功后会在下方的结果区域显示相应的返回数据:

image-20191114160022577

total_supply 与我们初始化合约的时候一致。至此我们的合约上传部署调用就完成了,更多智能合约相关的内容请持续关注我们的官网以及 Github 仓库地址。

ChainX上的X-BTC资产与合约中的XRC20-BTC互相划转

// TODO

合约开发独立部署组件

// TODO

老钱包

老钱包将来不会提供新功能,仅进行正常维护

  • 主网:请下载最新的钱包,链接下载
  • 测试网:对于当前ChainX Testnet Taoism,请下载目前pre-release钱包,链接下载

老钱包连接测试网

v1.0.4版本之后提供了切换测试网的功能:

image

  1. 点击钱包右上角设置按钮
  2. 选择网络类型中选择“测试网”,选择后,钱包页面会进行重置,此时钱包中的存储将会使用全新的存储,和主网存储隔离
  3. 点击“添加节点”,可以添加测试网节点的websocket地址和端口,如本机启动默认配置时,指定为127.0.0.1:8087
  4. 选择右下角的网络为刚才添加的节点
  5. 鼠标移动到右上角设置左边的按钮,点击创建账户/导入账户
    1. 在导入账户页面可以选择助记词/keystore/私钥进行导入
Clone this wiki locally