elleven-js-v2
v2.0.0
Published
Elleven JS Library - access Elleven smart contracts from browser and Node.js
Downloads
7
Readme
This library is now deprecated. Please use https://github.com/Ellevenio/js-monorepo/tree/master/packages/contracts-interface from our new monorepo.
EllevenJs library
The Elleven-JS Library provides a simple pre-packaged API to communicate with Elleven on ethereum. You can use it to contribute to DeFi's growing synthetic asset ecosystem.
This is particularly useful for hackathon teams to quickly npm install elleven-js
and start building in just a few minutes.
Under the hood, EllevenJs uses ethers.js library and its concept of providers and transaction signers.
Install via npm
npm install elleven-js
Developer Docs
Example for getting the total sUSD stablecoin in circulation
const { EllevenJs } = require('elleven-js');
const snxjs = new EllevenJs(); //uses default ContractSettings - ethers.js default provider, mainnet
(async function() {
const totalSUSD = await snxjs.sUSD.totalSupply();
const totalSUSDSupply = snxjs.utils.formatEther(totalSUSD);
console.log('sUSDTotalSupply', totalSUSDSupply);
})();
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 { EllevenJs } = require('elleven-js');
const metaMaskSigner = new EllevenJs.signers.Metamask();
const snxjs = new EllevenJs({ signer: metaMaskSigner }); //uses Metamask signer and default infura.io provider on mainnet
Example of minting stablecoin(sUSD) with private key signer
const { EllevenJs } = require('elleven-js');
//parameters: default provider, default networkId, private key as a string
const signer = new EllevenJs.signers.PrivateKey(
null,
0,
'0x0123456789012345678901234567890123456789012345678901234567890123'
);
const snxjs = new EllevenJs({ signer });
async function run() {
const totalSupply = await snxjs.Elleven.totalSupply();
const snxTotalSupply = snxjs.utils.formatEther(totalSupply);
console.log('snxTotalSupply', snxTotalSupply);
//issue 100 synths (will throw if insufficient funds for gas)
try {
const txObj = await snxjs.Elleven.issueSynths(snxjs.util.parseEther('100')); //execute transaction (requires gas)
console.log('transaction hash', txObj.hash);
} catch (e) {
console.log(e);
}
}
run();