ptokens.js | pTokens Javascript API
Javascript module for interacting with pTokens.
🚀 Installation:
npm install ptokens
⚡ Usage:
import pTokens from 'ptokens'
import { HttpProvider } from 'ptokens-providers'
import { Node } from 'ptokens-node'
const ptokens = new pTokens({
pbtc: {
blockchain: 'ETH', // or EOS
network: 'testnet', // 'testnet' or 'mainnet', default 'testnet'
// if you want to be more detailed
hostBlockchain: 'ETH',
hostNetwork: 'testnet_ropsten', // possible values are testnet_jungle2, testnet_ropsten and mainnet
nativeBlockchain: 'BTC'
nativeNetwork: 'testnet'
// optionals
ethPrivateKey: 'Eth private key',
ethProvider: 'Eth provider', // or instance of Web3 provider
eosPrivateKey: 'Eos Private Key',
eosRpc: 'https:/...' // or also an instance of JsonRpc
eosSignatureProvider: '....' // instance of JsSignatureProvider
defaultNode: new Node({
pToken: 'pBTC',
blockchain: 'ETH',
provider: new HttpProvider(
'node endpoint',
{
'Access-Control-Allow-Origin': '*',
...
}
)
})
}
})
Example of a pBTC pegin on Ethereum
import { pBTC } from 'ptokens-pbtc'
import { constants } from 'ptokens-utils'
const pbtc = new pBTC({
blockchain: constants.blockchains.Ethereum,
network: constants.networks.EthereumMainnet,
ethPrivateKey: 'Eth private key',
ethProvider: 'Eth provider', // or instance of Web3 provider
})
const depositAddress = await pbtc.getDepositAddress(ethAddress)
//fund the BTC address just generated (not ptokens.js stuff)
depositAddress.waitForDeposit()
.once('nativeTxBroadcasted', tx => ... )
.once('nativeTxConfirmed', tx => ...)
.once('nodeReceivedTx', tx => ...)
.once('nodeBroadcastedTx', tx => ...)
.once('hostTxConfirmed', tx => ...)
.then(res => ...))
🏡 Environment setup:
Clone the ptokens.js
repo:
git clone https://github.com/provable-things/ptokens.js.git
Switch into the ptokens.js
:
cd ptokens.js
Install and link dependencies:
npm run init
Build all packages
npm run build
Bootstrap all packages
npm run bootstrap
💂♂️ Tests:
npm run test