The out of the box Connex implementation for browser.
Just include the CDN link within a script tag. Connex
will then be registered as a global variable.
<!-- install the latest v2 -->
<script src="https://unpkg.com/@vechain/connex@2" />
It's recommended for larger projects.
npm i @vechain/connex
import Connex from '@vechain/connex'
Connex was composed with two parts, Connex.Thor
and Connex.Vendor
, the former is the blockchain access layer, the latter is the vendor(signer) specific layer.
Connects to mainnet.
const thor = new Connex.Thor({
node: 'https://mainnet.veblocks.net/', // veblocks public node, use your own if needed
network: 'main' // defaults to mainnet, so it can be omitted here
})
Connects to testnet.
const thor = new Connex.Thor({
node: 'https://testnet.veblocks.net/',
network: 'test'
})
Or connect to a private network
const thor = new Connex.Thor({
node: '<the API url of your node>',
// the genesis block of your private network
network: {
id: '0x...',
...
}
})
Vendor module handles user's signing requests. It's designed to be pluggable, so you can use your own vendor module, or use the built-in vendor module. For example, 'Buy me a coffee' is a classic demo for a vendor only app.
/**
* @param network 'main' or 'test' or genesis ID if it's private network
* @param signer 'sync2' or 'sync'(sync and vechainthor mobile wallet), 'sync2' will be used if omitted
*/
// will throw error if signer is not supported.
const vendor = new Connex.Vendor('main', 'sync2') // create a sync2 vendor for mainnet
const vendor = new Connex.Vendor('test', 'sync') // sync or vechainthor mobile wallet
Wallets:
- Sync2 - Option
sync2
- Sync - Option
sync
- VeChainThor Wallet - Option
sync
const connex = new Connex({
node: 'https://mainnet.veblocks.net/',
network: 'main',
signer: 'sync2'
})
// read best block
const best = await connex.thor.block().get()
// sign a transaction
const res = await connex.vendor.sign('tx', [{
to: '0x...',
value: 0x0,
data: '0x...'
}]).request()
// composed by thor and vendor
const {thor, vendor} = connex
This package, @vechain/connex is designed only work in the browser, if you are interested in running it in Node.js, try @vechain/connex-framework.
This package is licensed under the GNU Lesser General Public License v3.0, also included in LICENSE file in the repository.