Javascript client for Open Dollar
npm install @opendollar/sdkLibrary to interact with the Open Dollar smart contracts. Manage your vaults, mint OD, inspect the system state, and much more.
The library is written in Typescript with full typing support. It allows access to the low level API to directly interact with the contracts.
``bash`
yarn add @opendollar/sdk
`typescript
import { ethers, utils as ethersUtils } from 'ethers'
import { Geb, utils } from '@opendollar/sdk'
import { fetchUserSafes } from '@opendollar/sdk/lib/virtual/virtualUserSafes.js'
// Setup Ether.js
const provider = new ethers.providers.JsonRpcProvider(
'http://kovan.infura.io/
)
const wallet = new ethers.Wallet('0xdefiisawesome...', provider)
// Create the main GEB object
const geb = new Geb('arbitrum', provider)
// Get a Vault by ID
let safe = await geb.getSafe(4)
// Get a Vault by user address
safes = await fetchUserSafes(geb, wallet.address)
// Create a proxy
const txData = await geb.deployProxy()
const tx = await wallet.sendTransaction(txData)
console.log(Transaction ${tx.hash} waiting to be mined...)
await tx.wait()
// Open a vault
// TODO
`
Our SDK uses subgraphs to fetch indexed information about auctions (collateral, surplus, and debt) from the blockchain. The subgraphs are hosted on The Graph,
and we also have our own Render-hosted subgraph. For more information about how to deploy your own subgraph check
out our od-subgraph repo.
The main way we fetch auction information is through the querySubgraph function. This function take in a subgraph URL and a GraphQL queryfetchSurplusAuctionEvents
corresponding to the auction type (for example, will fetch the surplus auctions). The function will returnod-app
a promise that resolves to an array of auction events. The auction events will be persisted in through the Redux store auctionModel.ts
in .
When a request fails to our hosted subgraph in The Graph, we will automatically retry the request to our Render-hosted subgraph
in the querySubgraph function. Make sure in od-app you've set REACT_APP_FALLBACK_SUBGRAPH_URL as a .env variable to ensure
there's a fallback subgraph to query.
Documentation
Running prebuild is required to generate the solidity artifacts files
`bash``
yarn
yarn prebuild