Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Havven JS Library - access Havven smart contracts from browser and Node.js
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:
Some other packages for hacking with:
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.
npm install havven-js
const { HavvenJs } = require('havven-js');
const havjs = new HavvenJs(); //uses default ContractSettings - ethers.js default provider, mainnet
(async function() {
const totalNUSD = await havjs.Nomin.totalSupply();
const havTotalSupply = havjs.utils.formatEther(totalNUSD);
console.log('nUSDTotalSupply', havTotalSupply);
})();
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.
const { HavvenJs } = require('havven-js');
const metaMaskSigner = new HavvenJs.signers.Metamask();
const havjs = new HavvenJs({signer: metaMaskSigner}); //uses Metamask signer and default infura.io provider on mainnet
Obtain test ETH from a faucet https://gitter.im/kovan-testnet/faucet
const txObj = await havjs.IssuanceController.exchangeEtherForNomins({ value: havjs.util.parseEther("0.123") });
//Transfer stablecoins to any ethereum address, wallet or smart contract
const txObj = await havjs.StablePayments.transfer('0x5C545CA7f9D34857664FDCe6aDC22edcF1D5061f', nUSDReceived);
const { HavvenJs } = require('havven-js');
//parameters: default provider, default networkId, private key as a string
const signer = new HavvenJs.signers.PrivateKey(null, 0, '0x0123456789012345678901234567890123456789012345678901234567890123');
const havjs = new HavvenJs({signer});
async function run(){
const totalSupply = await havjs.Havven.totalSupply();
const havTotalSupply = havjs.utils.formatEther(totalSupply);
console.log('havTotalSupply', havTotalSupply);
//issue 100 nomins (will throw if insufficient funds for gas)
try {
const txObj = await havjs.Havven.issueNomins(havjs.util.parseEther("100")); //execute transaction (requires gas)
console.log('transaction hash', txObj.hash);
} catch (e) {
console.log(e);
}
}
run();
See /__tests__ folder for more examples.
To understand the Havven payments engine see more at developer.havven.io
Join our dev community on Discord: https://discord.gg/S5WmKUp
FAQs
Havven JS Library - access Havven smart contracts from browser and Node.js
We found that havven-js demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.