Skip to content

blackchainnl/ptokens.js

 
 

Repository files navigation

ptokens.js | pTokens Javascript API

Javascript module for interacting with pTokens.

 


 

🚀 Installation:

npm install ptokens

 


 

⚡ Usage:

import pTokens from 'ptokens'

const ptokens = new pTokens({
  pbtc: {
    ethPrivateKey: 'Eth private key',
    ethProvider: 'Eth provider',
    btcNetwork: 'testnet',  //'testnet' or 'bitcoin', default 'testnet'
    defaultEndpoint: 'https://......' //optional
  }
})

It is possible to pass a standard Ethereum Provider as the ethProvider value, such as the one injected into the content script of each web page by Metamask(window.web3.currentProvider).

import pTokens from 'ptokens'

if (window.web3) {
  
  const ptokens = new pTokens({
    pbtc: {
      ethProvider: window.web3.currentProvider,
      btcNetwork: 'bitcoin'
    }
  })
} else {
  console.log('No web3 detected')
}

Example of generating a pBTC Deposit Address

const depositAddress = await ptokens.pbtc.getDepositAddress(ethAddress)

console.log(depositAddress.toString())
    
//fund the BTC address just generated (not ptokens.js stuff)

depositAddress.waitForDeposit()
  .once('onBtcTxBroadcasted', tx => ... )
  .once('onBtcTxConfirmed', tx => ...)
  .once('onNodeReceivedTx', tx => ...)
  .once('onNodeBroadcastedTx', tx => ...)
  .once('onEthTxConfirmed', 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

 


 

📃 Run and Build the documentation:

Please be sure to have installed mkdocs, python 2.7 and pip.

Switch into resources folder:

cd resources

If you want to run the documentation locally:

mkdocs serve

If you want to build the documentation:

mkdocs build

About

Library to simplify the interaction with pTokens

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 91.1%
  • TypeScript 8.9%