Connex1 升级到 Connex2
Connex2 是一个独立的 npm package,让 DApp 与 Sync2 变得更加独立。 Connex2 随着 Sync2 的上线一同发布。
- Connex1 是内置于 Sync1 中的。基于 Connex1 的 DApp 强依赖于Sync1,需要在Sync1 中运行。DApp 使用 Connex1 的签名服务,且网络环境依赖于 Sync1。
- Connex2 是独立的开发包,需要 Dapp 直接引入使用,且自行初始化网络环境;Connex2 非必须在 Sync 中运行。
基于 Connex2 编写的 Dapp 可以在 Sync1 中运行,但有如下的注意事项:
- 若 DApp 所期待的网络环境(例如初始化为连接主网的Dapp)与Sync1的环境不一致(例如 Sync1 运行于测试网),则 Sync1 环境失效,DApp会启动召唤 Sync2的流程;
- 若 DApp 所期待的网络环境(例如初始化为连接主网的Dapp)与Sync1的环境一致,则 DApp 运行在兼容模式下(Compat Mode),大部分API都可正常使用;
- 兼容模 式下,Connex2 独有的 API 将不能启用。
- 使用标签引入 Connex2
<!-- install the latest v2 -->
<script src="https://unpkg.com/@vechain/[email protected]" />
- npm 安装
npm i @vechain/connex
在 Sync1 中 connex 是内置于 window 上的且网络环境确定,但是 Connex2 是需要手动创建的并指定节点及网络。
// connex v2
import Connex from '@vechain/connex'
// Create a Connex object connects to VeChain mainnet
const connex = new Connex({
node: 'https://mainnet.veblocks.net/', // veblocks public node, use your own if needed
network: 'main' // defaults to mainnet, so it can be omitted here
})
// Connect to testnet
const connex = new Connex({
node: 'https://testnet.veblocks.net/',
network: 'test'
})
// Or connect to private network
const connex = new Connex({
node: '<the API url of your node>',
// the genesis block of your private network
network: {
id: '0x...',
...
}
})
Connex2 Thor.Filter 创建方式变化
const type: 'event' | 'transfer'
const criteria: Connex.Thor.Criteria<T extends 'event' | 'transfer'>
// Connex v1
- const filter = new connex.thor.filter(type)
- filter.criteria(criteria).apply(offset, limit)
// Connex v2
+ const filter = new connex.thor.filter(type, criteria)
+ filter.apply(offset, limit)