A JavaScript SDK for Ethereum and the Compound Protocol
We’re excited to announce a brand new software program improvement equipment that we’ve been engaged on. Enter Compound.js; a JavaScript SDK for Ethereum and the Compound Protocol. This device streamlines the software program improvement course of for constructing DApps that speed up DeFi.
On the time of this announcement, the SDK is formally in beta. It’s accessible for all, open supply, on GitHub and NPM. Compound.js works within the net browser and Node.js. It has only one dependency: the most recent model of Ethers.js.
Constructed with simplicity in thoughts, builders can write intuitive, one-line strategies to initialize JSON RPC requests that work together with the Compound Protocol.
Along with Compound strategies, builders could make generic Ethereum learn and write calls to any sensible contract. Lastly, REST API calls will be made to the Compound API that’s hosted by Compound Labs.
Studying and writing from the blockchain will be carried out swiftly with Compound.js; no must initialize an object.
Within the following examples, A JSON RPC supplier or Web3 supplier will be handed because the supplier
attribute within the choices object. When writing to the blockchain, a non-public key or mnemonic will be handed within the choices object as properly.
Write to the Blockchain (eth_sendTransaction)
Write operations are initialized with Compound.eth.trx. The return worth is an Ethers.js transaction object. Right here is an instance for sending ETH within the net browser.
Learn from the Blockchain (eth_call)
Studying from any sensible contract on the blockchain will be carried out utilizing Compound.eth.learn. Right here is an instance for studying the USDC steadiness within the Uniswap USDC-ETH pair.
A contract ABI may also be handed to the choices object. In that case, you’ll then present a string of the strategy title because the second parameter, as a substitute of the entire methodology definition.
Easy one-liners can be found for main protocol strategies like provide, redeem, borrow, repayBorrow, and extra.
In examples like the next, a Compound object should be instantiated first. The constructor can have window.ethereum
handed within the browser, or a non-public key/mnemonic alongside a JSON RPC supplier should you’re utilizing Node.js.
Supplying to the Protocol
Right here is an instance for supplying Ether to the Compound Protocol utilizing Compound.js.
Extra examples of object initialization and deeper description of the transaction choices parameter can be found within the Compound.js GitHub repository readme.
Governance and COMP Strategies
The SDK has elegant strategies for Compound governance performance via the COMP and Governor sensible contracts.
Right here is an instance for fetching the quantity of COMP token that has accrued for an handle (extra on COMP Distribution right here).
Voting on a Compound governance proposal is as easy utilizing the SDK’s castVote methodology.
Extra governance associated strategies are outlined within the Compound.js Documentation.
Getting Costs
Fetching costs from the Open Worth Feed will be carried out with the getPrice methodology.
The primary parameter is the asset that you really want the worth of, and the second parameter (elective) is the asset you need that worth transformed to. The default output is USD with 6 decimal locations.
This methodology helps all belongings which can be posted to the Open Worth Feed, and likewise cTokens.
The Compound REST API will be queried utilizing Compound.js. Every of the accessible companies has their very own methodology.
- market
- account
- cToken
- governance
Every of the request parameters outlined within the documentation (linked above) will be handed within the JavaScript object parameter. Right here is an instance for querying the Market Historical past Service.
Compound.js is in open beta and is out there totally free on NPM. The plan for subsequent steps is so as to add extra Compound Protocol associated strategies for ease of improvement. Additionally, smarter logging of errors and outcomes would tremendously enhance the developer expertise.
Do not forget that the Compound Protocol is decentralized and upgraded by the group. In consequence, this SDK will morph nevertheless the group sees match!
A group contribution information can be accessible sooner or later for anybody to assist enhance the SDK.
When you have questions or feedback, please be a part of the Compound Discord and ship us a message within the #💻improvement channel.