From 453b7efb4e67dfed9fbae0e2d1736814c0858c12 Mon Sep 17 00:00:00 2001 From: bartosz-lipinski <264380+bartosz-lipinski@users.noreply.github.com> Date: Thu, 26 Nov 2020 00:05:24 -0600 Subject: [PATCH] style: run format --- README.md | 4 +- src/actions/borrow.tsx | 60 +++++++++---------- src/actions/withdraw.tsx | 5 +- src/components/BorrowInput/index.tsx | 28 ++++++--- src/components/ReserveStatus/index.tsx | 2 +- .../ReserveUtilizationChart/index.tsx | 26 ++++---- src/contexts/lending.tsx | 47 +++++++-------- src/contexts/market.tsx | 11 ++-- src/hooks/useCollateralBalance.ts | 10 +++- src/hooks/useUserBalance.ts | 6 +- src/hooks/useUserDeposits.ts | 13 ++-- src/models/lending/borrow.ts | 2 +- src/models/lending/index.ts | 2 +- src/models/lending/withdraw.ts | 2 +- src/views/dashboard/depositItem.tsx | 13 ++-- src/views/dashboard/index.tsx | 6 +- src/views/dashboard/obligationItem.tsx | 2 +- src/views/home/item.tsx | 17 ++++-- 18 files changed, 142 insertions(+), 114 deletions(-) diff --git a/README.md b/README.md index d3908ad..fea83b3 100644 --- a/README.md +++ b/README.md @@ -24,5 +24,5 @@ Any content produced by Solana, or developer resources that Solana provides, are # TOP for tomorrow -* subscribe to all dex markets that are used by lending reserves -* finish reserve overivew +- subscribe to all dex markets that are used by lending reserves +- finish reserve overivew diff --git a/src/actions/borrow.tsx b/src/actions/borrow.tsx index a504d0f..8f95578 100644 --- a/src/actions/borrow.tsx +++ b/src/actions/borrow.tsx @@ -42,8 +42,7 @@ export const borrow = async ( exsistingObligation?: ParsedAccount, - obligationAccount?: PublicKey, - + obligationAccount?: PublicKey ) => { notify({ message: "Borrowing funds...", @@ -59,34 +58,34 @@ export const borrow = async ( AccountLayout.span ); - const obligation = exsistingObligation ? - exsistingObligation.pubkey : - createUninitializedObligation( - instructions, - wallet.publicKey, - await connection.getMinimumBalanceForRentExemption( - LendingObligationLayout.span - ), - signers - ); + const obligation = exsistingObligation + ? exsistingObligation.pubkey + : createUninitializedObligation( + instructions, + wallet.publicKey, + await connection.getMinimumBalanceForRentExemption( + LendingObligationLayout.span + ), + signers + ); - const obligationMint = exsistingObligation ? - exsistingObligation.info.tokenMint : - createUninitializedMint( - instructions, - wallet.publicKey, - await connection.getMinimumBalanceForRentExemption(MintLayout.span), - signers - ); + const obligationMint = exsistingObligation + ? exsistingObligation.info.tokenMint + : createUninitializedMint( + instructions, + wallet.publicKey, + await connection.getMinimumBalanceForRentExemption(MintLayout.span), + signers + ); - const obligationTokenOutput = obligationAccount ? - obligationAccount : - createUninitializedAccount( - instructions, - wallet.publicKey, - accountRentExempt, - signers - ); + const obligationTokenOutput = obligationAccount + ? obligationAccount + : createUninitializedAccount( + instructions, + wallet.publicKey, + accountRentExempt, + signers + ); let toAccount = await findOrCreateAccountByMint( wallet.publicKey, @@ -110,14 +109,13 @@ export const borrow = async ( type: "success", }); } - + notify({ message: "Adding Liquidity...", description: "Please review transactions to approve.", type: "warn", }); - signers = []; instructions = []; cleanupInstructions = []; @@ -130,7 +128,7 @@ export const borrow = async ( let amountLamports: number = 0; let fromLamports: number = 0; if (amountType === BorrowAmountType.LiquidityBorrowAmount) { - // approve max transfer + // approve max transfer // TODO: improve contrain by using dex market data const approvedAmount = from.info.amount.toNumber(); diff --git a/src/actions/withdraw.tsx b/src/actions/withdraw.tsx index d33b20f..585bf67 100644 --- a/src/actions/withdraw.tsx +++ b/src/actions/withdraw.tsx @@ -6,10 +6,7 @@ import { } from "@solana/web3.js"; import { sendTransaction } from "../contexts/connection"; import { notify } from "../utils/notifications"; -import { - LendingReserve, - withdrawInstruction, -} from "./../models/lending"; +import { LendingReserve, withdrawInstruction } from "./../models/lending"; import { AccountLayout, Token } from "@solana/spl-token"; import { LENDING_PROGRAM_ID, TOKEN_PROGRAM_ID } from "../constants/ids"; import { findOrCreateAccountByMint } from "./account"; diff --git a/src/components/BorrowInput/index.tsx b/src/components/BorrowInput/index.tsx index 7d260f3..0082084 100644 --- a/src/components/BorrowInput/index.tsx +++ b/src/components/BorrowInput/index.tsx @@ -1,6 +1,14 @@ import React, { useCallback, useMemo, useState } from "react"; -import { useTokenName, useUserBalance, useUserObligationByReserve } from "../../hooks"; -import { BorrowAmountType, LendingReserve, LendingReserveParser } from "../../models"; +import { + useTokenName, + useUserBalance, + useUserObligationByReserve, +} from "../../hooks"; +import { + BorrowAmountType, + LendingReserve, + LendingReserveParser, +} from "../../models"; import { TokenIcon } from "../TokenIcon"; import { Button, Card } from "antd"; import { cache, ParsedAccount } from "../../contexts/accounts"; @@ -38,7 +46,9 @@ export const BorrowInput = (props: { collateralReserve?.info.collateralMint ); - const { userObligationsByReserve } = useUserObligationByReserve(borrowReserve.pubkey) + const { userObligationsByReserve } = useUserObligationByReserve( + borrowReserve.pubkey + ); const onBorrow = useCallback(() => { if (!collateralReserve) { @@ -56,13 +66,13 @@ export const BorrowInput = (props: { borrowReserve, collateralReserve, - userObligationsByReserve.length > 0 ? - userObligationsByReserve[0].obligation : - undefined, + userObligationsByReserve.length > 0 + ? userObligationsByReserve[0].obligation + : undefined, - userObligationsByReserve.length > 0 ? - userObligationsByReserve[0].userAccounts[0].pubkey : - undefined + userObligationsByReserve.length > 0 + ? userObligationsByReserve[0].userAccounts[0].pubkey + : undefined ); }, [ connection, diff --git a/src/components/ReserveStatus/index.tsx b/src/components/ReserveStatus/index.tsx index bd0761e..5099ac1 100644 --- a/src/components/ReserveStatus/index.tsx +++ b/src/components/ReserveStatus/index.tsx @@ -1,4 +1,4 @@ -import React, { } from "react"; +import React from "react"; import { LendingReserve } from "../../models/lending"; import { Card } from "antd"; import { PublicKey } from "@solana/web3.js"; diff --git a/src/components/ReserveUtilizationChart/index.tsx b/src/components/ReserveUtilizationChart/index.tsx index ea589a4..e37032e 100644 --- a/src/components/ReserveUtilizationChart/index.tsx +++ b/src/components/ReserveUtilizationChart/index.tsx @@ -1,12 +1,15 @@ import React, { useEffect, useMemo, useRef } from "react"; import { LendingReserve } from "../../models/lending"; import echarts from "echarts"; -import { formatNumber, formatUSD, fromLamports, wadToLamports } from "../../utils/utils"; +import { + formatNumber, + formatUSD, + fromLamports, + wadToLamports, +} from "../../utils/utils"; import { useMint } from "../../contexts/accounts"; -export const ReserveUtilizationChart = (props: { - reserve: LendingReserve; -}) => { +export const ReserveUtilizationChart = (props: { reserve: LendingReserve }) => { const chartDiv = useRef(null); // dispose chart @@ -26,7 +29,10 @@ export const ReserveUtilizationChart = (props: { const totalBorrows = useMemo( () => - fromLamports(wadToLamports(props.reserve.borrowedLiquidityWad), liquidityMint), + fromLamports( + wadToLamports(props.reserve.borrowedLiquidityWad), + liquidityMint + ), [props.reserve, liquidityMint] ); @@ -42,12 +48,12 @@ export const ReserveUtilizationChart = (props: { const data = [ { - name: 'Available Liquidity', + name: "Available Liquidity", value: avilableLiquidity, tokens: avilableLiquidity, }, { - name: 'Total Borrowed', + name: "Total Borrowed", value: totalBorrows, tokens: totalBorrows, }, @@ -66,7 +72,7 @@ export const ReserveUtilizationChart = (props: { { name: "Liquidity", type: "pie", - radius: ['50%', '70%'], + radius: ["50%", "70%"], top: 0, bottom: 0, left: 0, @@ -104,5 +110,5 @@ export const ReserveUtilizationChart = (props: { }); }, [totalBorrows, avilableLiquidity]); - return
-} + return
; +}; diff --git a/src/contexts/lending.tsx b/src/contexts/lending.tsx index 1c55998..bc07a3b 100644 --- a/src/contexts/lending.tsx +++ b/src/contexts/lending.tsx @@ -40,7 +40,7 @@ export function LendingProvider({ children = null as any }) { export const useLending = () => { const connection = useConnection(); const [lendingAccounts, setLendingAccounts] = useState([]); - const precacheMarkets = usePrecacheMarket() + const precacheMarkets = usePrecacheMarket(); // TODO: query for all the dex from reserves @@ -78,31 +78,30 @@ export const useLending = () => { .filter((item) => item !== undefined); const lendingReserves = accounts - .filter( - (acc) => (acc?.info as LendingReserve).lendingMarket !== undefined - ) - .map((acc) => acc as ParsedAccount); + .filter( + (acc) => (acc?.info as LendingReserve).lendingMarket !== undefined + ) + .map((acc) => acc as ParsedAccount); const toQuery = [ - ...lendingReserves - .map((acc) => { - const result = [ - cache.registerParser( - acc?.info.collateralMint.toBase58(), - MintParser - ), - cache.registerParser( - acc?.info.liquidityMint.toBase58(), - MintParser - ), - // ignore dex if its not set - cache.registerParser( - acc?.info.dexMarketOption ? acc?.info.dexMarket.toBase58() : "", - DexMarketParser - ), - ].filter((_) => _); - return result; - }), + ...lendingReserves.map((acc) => { + const result = [ + cache.registerParser( + acc?.info.collateralMint.toBase58(), + MintParser + ), + cache.registerParser( + acc?.info.liquidityMint.toBase58(), + MintParser + ), + // ignore dex if its not set + cache.registerParser( + acc?.info.dexMarketOption ? acc?.info.dexMarket.toBase58() : "", + DexMarketParser + ), + ].filter((_) => _); + return result; + }), ].flat() as string[]; // This will pre-cache all accounts used by pools diff --git a/src/contexts/market.tsx b/src/contexts/market.tsx index a28da5f..c9a6a48 100644 --- a/src/contexts/market.tsx +++ b/src/contexts/market.tsx @@ -185,9 +185,12 @@ export function MarketProvider({ children = null as any }) { [marketByMint, accountsToObserve] ); - const precacheMarkets = useCallback((mints: string[]) => { - setMarketMints([...new Set([...marketMints, ...mints]).values()]) - }, [setMarketMints, marketMints]); + const precacheMarkets = useCallback( + (mints: string[]) => { + setMarketMints([...new Set([...marketMints, ...mints]).values()]); + }, + [setMarketMints, marketMints] + ); return ( { export const usePrecacheMarket = () => { const context = useMarkets(); return context.precacheMarkets; -} +}; const getMidPrice = (marketAddress?: string, mintAddress?: string) => { const SERUM_TOKEN = TOKEN_MINTS.find( diff --git a/src/hooks/useCollateralBalance.ts b/src/hooks/useCollateralBalance.ts index 2181f04..74b8a3e 100644 --- a/src/hooks/useCollateralBalance.ts +++ b/src/hooks/useCollateralBalance.ts @@ -4,9 +4,15 @@ import { LendingReserve } from "../models/lending"; import { fromLamports } from "../utils/utils"; import { useUserBalance } from "./useUserBalance"; -export function useCollateralBalance(reserve?: LendingReserve, account?: PublicKey) { +export function useCollateralBalance( + reserve?: LendingReserve, + account?: PublicKey +) { const mint = useMint(reserve?.collateralMint); - const { balanceLamports, accounts } = useUserBalance(reserve?.collateralMint, account); + const { balanceLamports, accounts } = useUserBalance( + reserve?.collateralMint, + account + ); const collateralRatioLamports = (reserve?.availableLiqudity.toNumber() || 0) * diff --git a/src/hooks/useUserBalance.ts b/src/hooks/useUserBalance.ts index 7a07977..1871ad3 100644 --- a/src/hooks/useUserBalance.ts +++ b/src/hooks/useUserBalance.ts @@ -9,7 +9,11 @@ export function useUserBalance(mint?: PublicKey, account?: PublicKey) { const mintInfo = useMint(mint); const accounts = useMemo(() => { return userAccounts - .filter((acc) => mint?.equals(acc.info.mint) && (!account || account.equals(acc.pubkey))) + .filter( + (acc) => + mint?.equals(acc.info.mint) && + (!account || account.equals(acc.pubkey)) + ) .sort((a, b) => b.info.amount.sub(a.info.amount).toNumber()); }, [userAccounts, mint, account]); diff --git a/src/hooks/useUserDeposits.ts b/src/hooks/useUserDeposits.ts index b8115c9..9f909a1 100644 --- a/src/hooks/useUserDeposits.ts +++ b/src/hooks/useUserDeposits.ts @@ -12,20 +12,21 @@ export function useUserDeposits() { return reserveAccounts.reduce((result, item) => { result.set(item.info.collateralMint.toBase58(), item); return result; - } - , new Map>()) + }, new Map>()); }, [reserveAccounts]); const userDeposits = useMemo(() => { return userAccounts .filter((acc) => reservesByCollateralMint.has(acc.info.mint.toBase58())) - .map(item => ({ - account: item, - reserve: reservesByCollateralMint.get(item.info.mint.toBase58()) as ParsedAccount, + .map((item) => ({ + account: item, + reserve: reservesByCollateralMint.get( + item.info.mint.toBase58() + ) as ParsedAccount, })); }, [userAccounts, reservesByCollateralMint]); return { - userDeposits + userDeposits, }; } diff --git a/src/models/lending/borrow.ts b/src/models/lending/borrow.ts index d254506..1e67a12 100644 --- a/src/models/lending/borrow.ts +++ b/src/models/lending/borrow.ts @@ -14,7 +14,7 @@ import { LendingReserve } from "./reserve"; export enum BorrowAmountType { LiquidityBorrowAmount = 0, - CollateralDepositAmount = 1 + CollateralDepositAmount = 1, } /// Borrow tokens from a reserve by depositing collateral tokens. The number of borrowed tokens diff --git a/src/models/lending/index.ts b/src/models/lending/index.ts index a364a13..a3f2a08 100644 --- a/src/models/lending/index.ts +++ b/src/models/lending/index.ts @@ -4,4 +4,4 @@ export * from "./obligation"; export * from "./lending"; export * from "./borrow"; export * from "./deposit"; -export * from "./withdraw"; \ No newline at end of file +export * from "./withdraw"; diff --git a/src/models/lending/withdraw.ts b/src/models/lending/withdraw.ts index 434c073..c746ab0 100644 --- a/src/models/lending/withdraw.ts +++ b/src/models/lending/withdraw.ts @@ -47,4 +47,4 @@ export const withdrawInstruction = ( programId: LENDING_PROGRAM_ID, data, }); -}; \ No newline at end of file +}; diff --git a/src/views/dashboard/depositItem.tsx b/src/views/dashboard/depositItem.tsx index af4edbe..af82945 100644 --- a/src/views/dashboard/depositItem.tsx +++ b/src/views/dashboard/depositItem.tsx @@ -1,8 +1,5 @@ import React from "react"; -import { - useCollateralBalance, - useTokenName, -} from "../../hooks"; +import { useCollateralBalance, useTokenName } from "../../hooks"; import { LendingReserve } from "../../models/lending"; import { TokenIcon } from "../../components/TokenIcon"; import { formatNumber } from "../../utils/utils"; @@ -15,10 +12,12 @@ export const DepositItem = (props: { reserve: ParsedAccount; account: TokenAccount; }) => { - const mintAddress = props.reserve.info.liquidityMint; const name = useTokenName(mintAddress); - const { balance: collateralBalance } = useCollateralBalance(props.reserve.info, props.account.pubkey); + const { balance: collateralBalance } = useCollateralBalance( + props.reserve.info, + props.account.pubkey + ); return ( @@ -31,7 +30,7 @@ export const DepositItem = (props: { {formatNumber.format(collateralBalance)} {name}
--
-
+
)} - {userDeposits.map(deposit => ) - - } + {userDeposits.map((deposit) => ( + + ))}
{LABELS.DASHBOARD_TITLE_LOANS} diff --git a/src/views/dashboard/obligationItem.tsx b/src/views/dashboard/obligationItem.tsx index a7f8ea9..4822c83 100644 --- a/src/views/dashboard/obligationItem.tsx +++ b/src/views/dashboard/obligationItem.tsx @@ -36,7 +36,7 @@ export const ObligationItem = (props: { {formatNumber.format(borrowAmount)} {name}
--
-
+