Skip to content

provable-things/ptokens.js-v1

Repository files navigation

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