Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/provable-things/ptokens.js-v1
Library to simplify the interaction with pTokens
https://github.com/provable-things/ptokens.js-v1
Last synced: about 14 hours ago
JSON representation
Library to simplify the interaction with pTokens
- Host: GitHub
- URL: https://github.com/provable-things/ptokens.js-v1
- Owner: provable-things
- Created: 2019-10-23T06:31:15.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-04T13:26:25.000Z (about 2 years ago)
- Last Synced: 2023-03-07T15:55:14.755Z (almost 2 years ago)
- Language: JavaScript
- Homepage: https://ptokens.io
- Size: 5.66 MB
- Stars: 26
- Watchers: 8
- Forks: 13
- Open Issues: 47
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ptokens.js | pTokens Javascript API
Javascript module for interacting with pTokens.
***
### :rocket: Installation:
```
npm install ptokens
```
***
### :zap: Usage:
```js
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
```js
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 => ...))
```
***
### :house_with_garden: 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
```
***
### :guardsman: Tests:
```
npm run test
```