Javascript module for interacting with pTokens.
npm install ptokens
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': '*',
...
}
)
})
}
})
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 => ...))
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
npm run test