🛠️ GatewayJS
There's two official Javascript SDKs for interacting with RenVM:
- GatewayJS (this repository): The simplest way to get started, providing a full user experience.
- RenJS (
ren-js
repository): A lower-level SDK which can be integrated into your existing user interface.
See the Getting Started Tutorial to start using GatewayJS.
Changelog
See CHANGELOG.md.
About
GatewayJS is an SDK for bridging BTC, BCH and ZEC to your Ethereum-based dApp. GatewayJS lets your users deposit and withdraw cryptocurrencies into your smart contracts through the following widget:
GatewayJS is browser-only - see RenJS if you are using Node.js.
Installation
Install GatewayJS using Yarn or npm:
yarn add @renproject/gateway-js
npm install --save @renproject/gateway-js
Usage
Usage is described in the getting started tutorial in the Developer Docs.
Example of bridging BTC into Ethereum:
const GatewayJS = require("@renproject/gateway-js");
new GatewayJS("testnet").open({
sendToken: GatewayJS.Tokens.BTC.Btc2Eth,
sendAmount: GatewayJS.utils.value(0.01, "BTC").sats(),
sendTo: "0xD5B5b26521665Cb37623DCA0E49c553b41dbF076",
});
Developer notes
Building
yarn run watch
yarn run build
Running tests
You'll need to:
- Generate a mnemonic and send ETH (kovan for testnet) (path:
m/44'/60'/0'/0/
) - Generate a private key and send BTC and ZEC (tBTC and TAZ for testnet)
- Generate an Infura API key
Create a .env
file which contains the following exported variables:
export MNEMONIC="your mnemonic here"
export TESTNET_BITCOIN_KEY="your bitcoin private key (encoded in WIF)"
export INFURA_KEY="your infura key (for it's v3 endpoint)"
export NETWORK="mainnet or testnet"
Then just run the following command to execute the tests. Make sure there is sufficient Kovan ETH in the linked account before running tests.
yarn run test
Update contract bindings
In order to update the bindings in src/contracts/bindings
, you need to clone darknode-sol
and run:
yarn run bindings:ts