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.
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.
Install GatewayJS using Yarn or npm:
yarn add @renproject/gateway-js
# Or
npm install --save @renproject/gateway-js
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({
// Send BTC to an Ethereum address
sendToken: GatewayJS.Tokens.BTC.Btc2Eth,
// Amount of BTC we are sending
sendAmount: GatewayJS.utils.value(0.01, "BTC").sats(),
// The recipient Ethereum address
sendTo: "0xD5B5b26521665Cb37623DCA0E49c553b41dbF076",
});
yarn run watch
# or
yarn run build
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
In order to update the bindings in src/contracts/bindings
, you need to clone darknode-sol
and run:
yarn run bindings:ts