The official APIS Foundation JavaScript SDK.
npm install --save @theapis/sdk
import {Compound} from "@theapis/sdk";
import { Compound } from "@theapis/sdk";
const sdk = new Compound();
// Get ETH Balance and APY
const decimal = await sdk.getDecimals("ETH");
const balance = await sdk.getBalance("ETH") / 10 ** decimal;
// Invest ETH into Compound protocol
try {
sdk.invest("ETH", (balance * 1e18).toString())
.on('error', function (error) {
console.log("error: ")
console.log(error.message);
})
.on('transactionHash', function (transactionHash) {
console.log("transaction hash: " + transactionHash);
})
.on('receipt', function (receipt) {
console.log(receipt);
})
.on('confirmation', function (confirmationNumber, receipt) {
if (confirmationNumber < 3) {
console.log("confirmed: " + confirmationNumber);
console.log(receipt);
}
});
}
catch (error) {
console.error("Failed to withdraw:", error);
}
// Redeem Invested ETH along with Interest
try {
const maxBalance = await sdk.getInvestBalance("ETH");
sdk.withdraw("ETH", (maxBalance * (10 ** decimals)).toString())
.on('error', function (error) {
console.log("error: ")
console.log(error.message);
})
.on('transactionHash', function (transactionHash) {
console.log("transaction hash: " + transactionHash);
})
.on('receipt', function (receipt) {
console.log(receipt);
})
.on('confirmation', function (confirmationNumber, receipt) {
if (confirmationNumber < 3) {
console.log("confirmed: " + confirmationNumber);
console.log(receipt);
}
});
}
catch (error) {
console.error("Failed to withdraw:", error);
}
npm i
npm run dev
npm run test:watch
TODO - the module is designed to be bundled with another application, or web application.
npm run build
builds the library to dist
, generating three files:
dist/index.cjs.js
A CommonJS bundle, suitable for use in Node.js, thatrequire
s the external dependency. This corresponds to the"main"
field in package.jsondist/index.esm.js
an ES module bundle, suitable for use in other people's libraries and applications, thatimport
s the external dependency. This corresponds to the"module"
field in package.jsondist/index.umd.js
a UMD build, suitable for use in any environment (including the browser, as a<script>
tag), that includes the external dependency. This corresponds to the"browser"
field in package.json
npm run dev
builds the library, then keeps rebuilding it whenever the source files change using rollup-watch.
npm test
builds the library, then tests it.
[] Update the package.json files to specify depencencies as dev, regular, or peer
MIT.