Skip to content

Commit

Permalink
use ws for account updates
Browse files Browse the repository at this point in the history
  • Loading branch information
sehyunc committed Feb 14, 2024
1 parent 2174671 commit 457c4c4
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 54 deletions.
6 changes: 4 additions & 2 deletions trade.renegade.fi/contexts/Renegade/renegade-context.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ const RenegadeContext = React.createContext<RenegadeContextType | undefined>(
function RenegadeProvider({ children }: React.PropsWithChildren) {
// Create balance, order, fee, an account states.
const [accountId, setAccountId] = React.useState<AccountId>()
const [, setBalances] = React.useState<Record<BalanceId, Balance>>({})
const [balances, setBalances] = React.useState<Record<BalanceId, Balance>>({})
const [fees] = React.useState<Record<FeeId, Fee>>({})
const [, setOrders] = React.useState<Record<OrderId, Order>>({})
const [orders, setOrders] = React.useState<Record<OrderId, Order>>({})
const [isLocked, setIsLocked] = React.useState<boolean>(false)

// Create task states.
Expand Down Expand Up @@ -228,10 +228,12 @@ function RenegadeProvider({ children }: React.PropsWithChildren) {
<RenegadeContext.Provider
value={{
accountId,
balances,
counterparties,
fees,
isLocked,
orderBook,
orders,
refreshAccount,
setAccount,
setTask,
Expand Down
5 changes: 5 additions & 0 deletions trade.renegade.fi/contexts/Renegade/types.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {
AccountId,
Balance,
BalanceId,
Fee,
FeeId,
Keychain,
Order,
OrderId,
TaskId,
} from "@renegade-fi/renegade-js"
Expand All @@ -27,10 +30,12 @@ export type PeerId = string

export interface RenegadeContextType {
accountId: AccountId | undefined
balances: Record<BalanceId, Balance>
counterparties: Record<PeerId, Counterparty>
fees: Record<FeeId, Fee>
isLocked: boolean
orderBook: Record<OrderId, CounterpartyOrder>
orders: Record<OrderId, Order>
refreshAccount: (accountId?: AccountId) => void
setAccount: (oldAccountId?: AccountId, keychain?: Keychain) => Promise<void>
setTask: (newTaskId?: TaskId, taskType?: TaskType) => void
Expand Down
33 changes: 16 additions & 17 deletions trade.renegade.fi/hooks/use-balance.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
import { useEffect, useState } from "react"
import { useRenegade } from "@/contexts/Renegade/renegade-context"
import { Balance, BalanceId } from "@renegade-fi/renegade-js"

import { renegade } from "@/app/providers"

export const useBalance = () => {
const [balances, setBalances] = useState<Record<BalanceId, Balance>>({})
const { accountId } = useRenegade()
// const [balances, setBalances] = useState<Record<BalanceId, Balance>>({})
// const { accountId } = useRenegade()

useEffect(() => {
if (!accountId) return
const interval = setInterval(async () => {
const fetchedBalances = await renegade
.queryWallet(accountId)
.then(() => renegade.getBalances(accountId))
setBalances(fetchedBalances)
}, 5000)
// useEffect(() => {
// if (!accountId) return
// const interval = setInterval(async () => {
// const fetchedBalances = await renegade
// .queryWallet(accountId)
// .then(() => renegade.getBalances(accountId))
// setBalances(fetchedBalances)
// }, 5000)

return () => {
clearInterval(interval)
}
}, [accountId])
// return () => {
// clearInterval(interval)
// }
// }, [accountId])

// return balances
const { balances } = useRenegade()
return balances
}
68 changes: 33 additions & 35 deletions trade.renegade.fi/hooks/use-order.ts
Original file line number Diff line number Diff line change
@@ -1,41 +1,39 @@
import { useEffect, useState } from "react"
import { useRenegade } from "@/contexts/Renegade/renegade-context"
import { Order, OrderId } from "@renegade-fi/renegade-js"

import { safeLocalStorageGetItem, safeLocalStorageSetItem } from "@/lib/utils"
import { renegade } from "@/app/providers"

export const useOrders = () => {
const { accountId } = useRenegade()
const [orders, setOrders] = useState<Record<OrderId, Order>>({})

useEffect(() => {
if (!accountId) return
const interval = setInterval(async () => {
const existingOrders = safeLocalStorageGetItem(`orders-${accountId}`)
const existingOrdersArray = existingOrders
? existingOrders.split(",")
: []

const fetchedOrders = await renegade
.queryWallet(accountId)
.then(() => renegade.getOrders(accountId))
setOrders(fetchedOrders)

const uniqueNewOrderIds = Object.keys(fetchedOrders).filter(
(orderId) => !existingOrdersArray.includes(orderId)
)

existingOrdersArray.push(...uniqueNewOrderIds)
const updatedOrders = existingOrdersArray.join(",")

safeLocalStorageSetItem(`orders-${accountId}`, updatedOrders)
}, 1000)

return () => {
clearInterval(interval)
}
}, [accountId])

// const { accountId } = useRenegade()
// const [orders, setOrders] = useState<Record<OrderId, Order>>({})

// useEffect(() => {
// if (!accountId) return
// const interval = setInterval(async () => {
// const existingOrders = safeLocalStorageGetItem(`orders-${accountId}`)
// const existingOrdersArray = existingOrders
// ? existingOrders.split(",")
// : []

// const fetchedOrders = await renegade
// .queryWallet(accountId)
// .then(() => renegade.getOrders(accountId))
// setOrders(fetchedOrders)

// const uniqueNewOrderIds = Object.keys(fetchedOrders).filter(
// (orderId) => !existingOrdersArray.includes(orderId)
// )

// existingOrdersArray.push(...uniqueNewOrderIds)
// const updatedOrders = existingOrdersArray.join(",")

// safeLocalStorageSetItem(`orders-${accountId}`, updatedOrders)
// }, 1000)

// return () => {
// clearInterval(interval)
// }
// }, [accountId])

// return orders
const { orders } = useRenegade()
return orders
}

0 comments on commit 457c4c4

Please sign in to comment.