Skip to content

Commit

Permalink
feat: remove vebal provider
Browse files Browse the repository at this point in the history
  • Loading branch information
alter-eggo committed Oct 31, 2024
1 parent 1a0dd0f commit da16956
Show file tree
Hide file tree
Showing 17 changed files with 26 additions and 49 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
import { PoolDetail } from '@repo/lib/modules/pool/PoolDetail/PoolDetail'
import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import { VebalLockDataProvider } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'

export default function PoolPage() {
return (
<TransactionStateProvider>
<VebalLockDataProvider>
<PoolDetail />
</VebalLockDataProvider>
<PoolDetail />
</TransactionStateProvider>
)
}
13 changes: 5 additions & 8 deletions apps/frontend-v3/app/(app)/vebal/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import { PropsWithChildren } from 'react'
import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
import { CrossChainSyncProvider } from '@repo/lib/modules/vebal/cross-chain/CrossChainSyncProvider'
import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import { VebalLockDataProvider } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'

export default function VebalLayout({ children }: PropsWithChildren) {
const { vebalBptToken } = useTokens()
Expand All @@ -15,13 +14,11 @@ export default function VebalLayout({ children }: PropsWithChildren) {

return (
<TokenBalancesProvider initTokens={[vebalBptToken]}>
<VebalLockDataProvider>
<CrossChainSyncProvider>
<TransactionStateProvider>
<DefaultPageContainer>{children}</DefaultPageContainer>
</TransactionStateProvider>
</CrossChainSyncProvider>
</VebalLockDataProvider>
<CrossChainSyncProvider>
<TransactionStateProvider>
<DefaultPageContainer>{children}</DefaultPageContainer>
</TransactionStateProvider>
</CrossChainSyncProvider>
</TokenBalancesProvider>
)
}
6 changes: 1 addition & 5 deletions packages/lib/modules/portfolio/Portfolio.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import { PortfolioTable } from './PortfolioTable/PortfolioTable'
import { ClaimNetworkPools } from './PortfolioClaim/ClaimNetworkPools/ClaimNetworkPools'
import { TransactionStateProvider } from '../transactions/transaction-steps/TransactionStateProvider'

import { VebalLockDataProvider } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'

export default function Portfolio() {
return (
<Stack gap={20} width="full">
Expand All @@ -15,9 +13,7 @@ export default function Portfolio() {
<ClaimNetworkPools />
</TransactionStateProvider>

<VebalLockDataProvider>
<PortfolioTable />
</VebalLockDataProvider>
<PortfolioTable />
</Stack>
)
}
2 changes: 1 addition & 1 deletion packages/lib/modules/vebal/VebalManage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { VebalBreadcrumbs } from '@repo/lib/modules/vebal/VebalBreadcrumbs'
import { ReactNode } from 'react'
import NextLink from 'next/link'
import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'

interface HeaderProps {
before?: ReactNode
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
'use client'

import React, { useMemo } from 'react'
import { useMemo } from 'react'
import { Heading, HStack, Skeleton, Text, Tooltip, VStack } from '@chakra-ui/react'
import { bn, fNum } from '@repo/lib/shared/utils/numbers'
import { useVebalUserData } from '@repo/lib/modules/vebal/useVebalUserData'
import { differenceInDays, format } from 'date-fns'
import BigNumber from 'bignumber.js'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'
import { PRETTY_DATE_FORMAT } from '@repo/lib/modules/vebal/lock/duration/lock-duration.constants'
import { AlertIcon } from '@repo/lib/shared/components/icons/AlertIcon'

Expand Down
2 changes: 1 addition & 1 deletion packages/lib/modules/vebal/cross-chain/CrossChainBoost.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
import { useCrossChainSync } from './CrossChainSyncProvider'
import Image from 'next/image'
import { useVebalUserData } from '@repo/lib/modules/vebal/useVebalUserData'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'

import { CrossChainSyncModal } from '@repo/lib/modules/vebal/cross-chain/CrossChainSyncModal'
import { useState } from 'react'
Expand Down
2 changes: 1 addition & 1 deletion packages/lib/modules/vebal/lock/VebalLockProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { useTokenInputsValidation } from '@repo/lib/modules/tokens/TokenInputsVa
import { isDisabledWithReason } from '@repo/lib/shared/utils/functions/isDisabledWithReason'
import { useDisclosure } from '@chakra-ui/hooks'
import { useLockDuration } from '@repo/lib/modules/vebal/lock/duration/useLockDuration'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'
import { differenceInSeconds } from 'date-fns'
import { getPreviousThursday, oneYearInSecs } from '@repo/lib/shared/utils/time'
import BigNumber from 'bignumber.js'
Expand Down
2 changes: 1 addition & 1 deletion packages/lib/modules/vebal/lock/VebalUnlock.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
import { Center } from '@chakra-ui/react'
import { VebalUnlockForm } from '@repo/lib/modules/vebal/lock/form/VebalUnlockForm'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'
import { VebalLockForm } from '@repo/lib/modules/vebal/lock/form/VebalLockForm'

export function VebalUnlock() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
MIN_LOCK_PERIOD_IN_DAYS,
PRETTY_DATE_FORMAT,
} from '@repo/lib/modules/vebal/lock/duration/lock-duration.constants'
import { UseVebalLockDataResult } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { UseVebalLockDataResult } from '@repo/lib/modules/vebal/lock/useVebalLockData'

function getMinLockEndDate(date: Date) {
const minLockTimestamp = addDays(date, MIN_LOCK_PERIOD_IN_DAYS)
Expand Down
2 changes: 1 addition & 1 deletion packages/lib/modules/vebal/lock/form/VebalLockForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { LockMode, useVebalLock } from '@repo/lib/modules/vebal/lock/VebalLockPr
import { fNum } from '@repo/lib/shared/utils/numbers'
import { VebalLockModal } from '@repo/lib/modules/vebal/lock/modal/VebalLockModal'
import { useRouter } from 'next/navigation'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'
import { getModalLabel } from '@repo/lib/modules/vebal/lock/steps/lock-steps.utils'
import { useEffect, useState } from 'react'
import { ClickableText } from '@repo/lib/shared/components/typography/ClickableText'
Expand Down
4 changes: 2 additions & 2 deletions packages/lib/modules/vebal/lock/form/VebalUnlockForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import NextLink from 'next/link'
import { Address } from 'viem'
import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { useRouter } from 'next/navigation'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'
import { useClickable } from '@chakra-ui/clickable'
import { getModalLabel } from '@repo/lib/modules/vebal/lock/steps/lock-steps.utils'
import { format } from 'date-fns'
Expand Down Expand Up @@ -92,7 +92,6 @@ export function VebalUnlockForm() {
<TokenRowWithDetails
address={vebalBptToken.address as Address}
chain={GqlChain.Mainnet}
value={mainnetLockedInfo.lockedAmount ?? 0}
details={
lockDuration.lockedUntilDateFormatted
? [
Expand All @@ -107,6 +106,7 @@ export function VebalUnlockForm() {
]
: undefined
}
value={mainnetLockedInfo.lockedAmount ?? 0}
/>
</Card>
)}
Expand Down
2 changes: 1 addition & 1 deletion packages/lib/modules/vebal/lock/modal/VebalLockModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import {
} from '@repo/lib/modules/vebal/lock/steps/useBuildLockSteps'
import { getPreviewLabel } from '@repo/lib/modules/vebal/lock/steps/lock-steps.utils'
import { useEffect, useState } from 'react'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'
import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { TokenRowWithDetails } from '@repo/lib/modules/tokens/TokenRow/TokenRowWithDetails'
import { fNum } from '@repo/lib/shared/utils/numbers'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { LockActionType } from '@repo/lib/modules/vebal/lock/steps/lock-steps.ut
import { useLockSteps } from '@repo/lib/modules/vebal/lock/steps/useLockSteps'
import { Address, parseUnits } from 'viem'
import { useTransactionSteps } from '@repo/lib/modules/transactions/transaction-steps/useTransactionSteps'
import { UseVebalLockDataResult } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { UseVebalLockDataResult } from '@repo/lib/modules/vebal/lock/useVebalLockData'
import { useVebalLock, UseVebalLockResult } from '@repo/lib/modules/vebal/lock/VebalLockProvider'

export interface UseBuildLockStepsArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
'use client'

import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { createContext, PropsWithChildren, useMemo } from 'react'
import { useMemo } from 'react'
import { bn } from '@repo/lib/shared/utils/numbers'
import { formatUnits, Hex } from 'viem'
import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
Expand All @@ -10,11 +9,10 @@ import { AbiMap } from '@repo/lib/modules/web3/contracts/AbiMap'
import mainnetNetworkConfig from '@repo/lib/config/networks/mainnet'
import { useMulticall } from '@repo/lib/modules/web3/contracts/useMulticall'
import { useCurrentDate } from '@repo/lib/shared/hooks/date.hooks'
import { toJsTimestamp } from '@repo/lib/shared/utils/time'
import { oneMinInMs, toJsTimestamp } from '@repo/lib/shared/utils/time'
import { LockActionType } from '@repo/lib/modules/vebal/lock/steps/lock-steps.utils'

export type UseVebalLockDataResult = ReturnType<typeof _useVebalLockData>
export const VebalLockDataContext = createContext<UseVebalLockDataResult | null>(null)
export type UseVebalLockDataResult = ReturnType<typeof useVebalLockData>

function getAvailableLockActions(
hasLock: boolean | undefined,
Expand Down Expand Up @@ -60,7 +58,7 @@ interface MulticallLockDataResponse {
}
}

export function _useVebalLockData() {
export function useVebalLockData() {
const { userAddress, isConnected } = useUserAccount()

const lockDataRequestsData = [
Expand Down Expand Up @@ -93,6 +91,7 @@ export function _useVebalLockData() {

const { results, refetchAll, isLoading } = useMulticall(lockDataRequests, {
enabled: isConnected,
staleTime: oneMinInMs,
})

const now = useCurrentDate()
Expand Down Expand Up @@ -144,14 +143,3 @@ export function _useVebalLockData() {

return { results, mainnetLockedInfo, isLoading, refetchAll, availableLockActions }
}

export function VebalLockDataProvider({ children }: PropsWithChildren) {
const vebalLockData = _useVebalLockData()

return (
<VebalLockDataContext.Provider value={vebalLockData}>{children}</VebalLockDataContext.Provider>
)
}

export const useVebalLockData = (): UseVebalLockDataResult =>
useMandatoryContext(VebalLockDataContext, 'VebalLockData')
2 changes: 1 addition & 1 deletion packages/lib/modules/vebal/useVebalBoost.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { useGaugesSupplyAndBalance } from './useGaugesSupplyAndBalance'
import { useGaugeTotalSupplyAndUserBalance } from './useGaugeTotalSupplyAndUserBalance'
import { getChainId } from '@repo/lib/config/app.config'
import { Pool } from '../pool/PoolProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/useVebalLockData'

export type VeBalLockData = {
lockedEndDate: number
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import BigNumber from 'bignumber.js'
import { UseVebalLockInfoResult } from '../../vebal/useVebalLockInfo'
import { bn, fNum } from '@repo/lib/shared/utils/numbers'
import { useTheme as useNextTheme } from 'next-themes'
import { useVebalLockData } from '@repo/lib/modules/vebal/lock/VebalLockDataProvider'

type ChartValueAcc = [string, number][]

Expand Down
2 changes: 1 addition & 1 deletion packages/lib/modules/web3/contracts/useMulticall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export type ChainContractConfig = ContractFunctionParameters & {
id: string
}

type Options = { enabled?: boolean }
type Options = { enabled?: boolean; staleTime?: number }

export function useMulticall(multicallRequests: ChainContractConfig[], options: Options = {}) {
const config = useConfig()
Expand Down

0 comments on commit da16956

Please sign in to comment.