HavvenJs library
The Havven-JS Library provides a simple pre-packaged API to communicate with the Havven payment engine on ethereum. You can use it to build your own dApp that needs to work with payments using a stablecoin.
This is particularly useful for hackathon teams to quickly npm install havven-js
and have stable payments integrated into their dApp in just a few minutes.
Under the hood, HavvenJs uses ethers.js library and its concept of providers and transaction signers.
The two main packages to do stable payments with are:
- StablePayments - for transfer() and payment related functions like transfer()
- Util - a bunch of handy utility functions for number handling and gas estimation
Some other packages for hacking with:
- IsssuanceController - for Token swapper/exchange functions such as ETH > HAV & ETH > nUSD
- Mintr - if you want to build a dApp for minting and burning stablecoins.
What can I build on the Havven payment engine?
Anything you can think of with programmable money. We provide the stability-as-a-service and soon fx (foreign exchange) with havvens multicurrency release.
We’ve come up with some thought starters for dApps you could create by integrating Havven’s stable payments into your projects.
- Crypto Games - lottery, poker, fomoNUSD, nUSDCrash for kicks.
- Crypto Ecommerce
- Crypto Loans
- Crypto Insurance
- Crypto Payroll
- Crypto Global Remittance
Install via npm
npm install havven-js
Example for getting the total nUSD stablecoin in circulation
const HavvenJs = ;const havjs = ; //uses default ContractSettings - ethers.js default provider, mainnet { const totalNUSD = await havjsNomin; const havTotalSupply = havjsutils; console;};
Default settings don't use any signer. That means that constants can be viewed from the contract but executing a transaction will fail. To execute transactions, set up signer.
4 signers are included in the library - Metamask (compatible with Dapp browsers), Trezor, Ledger and PrivateKey. Custom ethers.js compatible signers can be used too.
Example using a metamask signer
const HavvenJs = ;const metaMaskSigner = ;const havjs = signer: metaMaskSigner; //uses Metamask signer and default infura.io provider on mainnet
Example converting ETH to USD pegged stablecoin nUSD
Obtain test ETH from a faucet https://gitter.im/kovan-testnet/faucet
const txObj = await havjsIssuanceController;
Example of making a stablecoin payment
//Transfer stablecoins to any ethereum address, wallet or smart contractconst txObj = await havjsStablePayments;
Example of minting stablecoin(nUSD) with private key signer
const HavvenJs = ;//parameters: default provider, default networkId, private key as a stringconst signer = null 0 '0x0123456789012345678901234567890123456789012345678901234567890123';const havjs = signer; { const totalSupply = await havjsHavven; const havTotalSupply = havjsutils; console; //issue 100 nomins (will throw if insufficient funds for gas) try const txObj = await havjsHavven; //execute transaction (requires gas) console; catch e console; } ;
See /__tests__ folder for more examples.
More Info
To understand the Havven payments engine see more at developer.havven.io
Got any questions?
Join our dev community on Discord: https://discord.gg/S5WmKUp