1.0.4 • Published 9 months ago

joule_markets_sdk v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

SDK for interacting with Joule Money Market

Installation

npm i joule_markets_sdk@latest

NOTE :- Initialize and start the PriceClient at the start of your applications.

import { createPriceFeedService, getMarketsDetails, PriceFeedService } from "joule_market_sdk"
import { useEffect, useState } from "react"

function App() {
  const [priceClient, setPriceClient] = useState<PriceFeedService>();

  async function getData() {
    const res = await getMarketsDetails('USDC')
    console.log(res)
  }

  useEffect(() => {
    const client = createPriceFeedService();
    setPriceClient(client);
    client.start()
  }, []);

  return (
    <>
      <button type="button" onClick={() => getData()}> Click me</button>
    </>
  )
}

export default App

An example to get maxBorrow, and how to borrow

import { createPriceFeedService, PriceFeedService, getMaxBorrow, prepareDataForBorrowOrWithdraw, getUserPositionsByAddress, borrow } from "joule_market_sdk"
import { useEffect, useState } from "react"

function App() {
  const [priceClient, setPriceClient] = useState<PriceFeedService>();

  async function getPreparedData() {
    // to get user position details, returns all the position details if not given a position_id
    const positionDetails = await getUserPositionsByAddress('abc...xyz', priceClient!, 1)
    let positionData = null;
    if (positionDetails.success) {
      positionData = positionDetails.userPositions[0]
    }

  // very useful, prepares data for borrow, withdraw, to get max borrow, or to get max withdraw
    const preparedData = await prepareDataForBorrowOrWithdraw('abc...xyz', Number(positionData?.positionId), "USDC", Number(positionData?.efficiency_mode_id))

    // to calculate max borrow
    const max_borrow = await getMaxBorrow(preparedData, priceClient!)
    console.log(max_borrow)


    // to borrow  (account - Interface for a generic Aptos account.)
    const borrow_token = await borrow(account, 12, priceClient!, preparedData)
    console.log(borrow_token)
  }

  useEffect(() => {
    const client = createPriceFeedService();
    setPriceClient(client);
    client.start()
  }, []);

  return (
    <>
      <button type="button" onClick={() => getPreparedData()}> Click me</button>
    </>
  )
}

export default App
1.0.4

9 months ago

1.0.3

9 months ago

1.0.0

9 months ago