diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml
index 05e0735b..b47533b7 100644
--- a/.github/actions/setup/action.yml
+++ b/.github/actions/setup/action.yml
@@ -21,4 +21,4 @@ runs:
- name: Generate api typings
shell: bash
- run: pnpm graphql:gen
+ run: pnpm --filter @repo/lib graphql:gen
diff --git a/apps/frontend-v3/app/(app)/debug/alerts/page.tsx b/apps/frontend-v3/app/(app)/debug/alerts/page.tsx
index 4047c7e0..c20690ee 100644
--- a/apps/frontend-v3/app/(app)/debug/alerts/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/alerts/page.tsx
@@ -1,10 +1,10 @@
'use client'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
-import { BalAlertButton } from '@/lib/shared/components/alerts/BalAlertButton'
-import { BalAlertContent } from '@/lib/shared/components/alerts/BalAlertContent'
-import { useGlobalAlerts } from '@/lib/shared/components/alerts/GlobalAlertsProvider'
-import { GenericError } from '@/lib/shared/components/errors/GenericError'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
+import { BalAlertButton } from '@repo/lib/shared/components/alerts/BalAlertButton'
+import { BalAlertContent } from '@repo/lib/shared/components/alerts/BalAlertContent'
+import { useGlobalAlerts } from '@repo/lib/shared/components/alerts/GlobalAlertsProvider'
+import { GenericError } from '@repo/lib/shared/components/errors/GenericError'
import { Button, VStack } from '@chakra-ui/react'
const exceptionName = 'Error fetching swap'
diff --git a/apps/frontend-v3/app/(app)/debug/layout.tsx b/apps/frontend-v3/app/(app)/debug/layout.tsx
index 9f67a491..2c3aa8aa 100644
--- a/apps/frontend-v3/app/(app)/debug/layout.tsx
+++ b/apps/frontend-v3/app/(app)/debug/layout.tsx
@@ -1,4 +1,4 @@
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
import { PropsWithChildren } from 'react'
export default function DebugLayout({ children }: PropsWithChildren) {
diff --git a/apps/frontend-v3/app/(app)/debug/modal/page.tsx b/apps/frontend-v3/app/(app)/debug/modal/page.tsx
index b37414e5..5960c517 100644
--- a/apps/frontend-v3/app/(app)/debug/modal/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/modal/page.tsx
@@ -1,8 +1,8 @@
'use client'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { useDisclosure } from '@chakra-ui/hooks'
import {
Button,
diff --git a/apps/frontend-v3/app/(app)/debug/page.tsx b/apps/frontend-v3/app/(app)/debug/page.tsx
index 860fd2cf..b00f8c69 100644
--- a/apps/frontend-v3/app/(app)/debug/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/page.tsx
@@ -2,7 +2,7 @@
import { Heading, VStack } from '@chakra-ui/react'
import NextLink from 'next/link'
import { Link } from '@chakra-ui/react'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
export default function Debug() {
return (
diff --git a/apps/frontend-v3/app/(app)/debug/permit2-allowance/page.tsx b/apps/frontend-v3/app/(app)/debug/permit2-allowance/page.tsx
index 37c7b4b5..8ec90238 100644
--- a/apps/frontend-v3/app/(app)/debug/permit2-allowance/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/permit2-allowance/page.tsx
@@ -1,9 +1,9 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
'use client'
-import { getGqlChain, getNetworkConfig } from '@/lib/config/app.config'
-import { BPT_DECIMALS } from '@/lib/modules/pool/pool.constants'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { getGqlChain, getNetworkConfig } from '@repo/lib/config/app.config'
+import { BPT_DECIMALS } from '@repo/lib/modules/pool/pool.constants'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { permit2Abi } from '@balancer/sdk'
import { Center, Input, Text, VStack } from '@chakra-ui/react'
import { useState } from 'react'
diff --git a/apps/frontend-v3/app/(app)/debug/pools/page.tsx b/apps/frontend-v3/app/(app)/debug/pools/page.tsx
index 7c2e1f6d..e668fff4 100644
--- a/apps/frontend-v3/app/(app)/debug/pools/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/pools/page.tsx
@@ -2,7 +2,7 @@
import { HStack, Heading, VStack } from '@chakra-ui/react'
import NextLink from 'next/link'
import { Link } from '@chakra-ui/react'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
export default function DebugPools() {
return (
diff --git a/apps/frontend-v3/app/(app)/debug/remove-allowance/page.tsx b/apps/frontend-v3/app/(app)/debug/remove-allowance/page.tsx
index 6f9871f7..9f6240a0 100644
--- a/apps/frontend-v3/app/(app)/debug/remove-allowance/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/remove-allowance/page.tsx
@@ -1,13 +1,13 @@
'use client'
-import { buildTokenApprovalLabels } from '@/lib/modules/tokens/approvals/approval-labels'
-import { TransactionStepButton } from '@/lib/modules/transactions/transaction-steps/TransactionStepButton'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { buildTokenApprovalLabels } from '@repo/lib/modules/tokens/approvals/approval-labels'
+import { TransactionStepButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionStepButton'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import {
ManagedErc20TransactionInput,
useManagedErc20Transaction,
-} from '@/lib/modules/web3/contracts/useManagedErc20Transaction'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/web3/contracts/useManagedErc20Transaction'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { Center, Input, Text, VStack } from '@chakra-ui/react'
import { useState } from 'react'
import { Address } from 'viem'
diff --git a/apps/frontend-v3/app/(app)/debug/revoke-relayer-approval/page.tsx b/apps/frontend-v3/app/(app)/debug/revoke-relayer-approval/page.tsx
index 15f51f3c..796324e0 100644
--- a/apps/frontend-v3/app/(app)/debug/revoke-relayer-approval/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/revoke-relayer-approval/page.tsx
@@ -1,13 +1,13 @@
'use client'
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { TransactionStepButton } from '@/lib/modules/transactions/transaction-steps/TransactionStepButton'
-import { TransactionLabels } from '@/lib/modules/transactions/transaction-steps/lib'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { TransactionStepButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionStepButton'
+import { TransactionLabels } from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import {
ManagedTransactionInput,
useManagedTransaction,
-} from '@/lib/modules/web3/contracts/useManagedTransaction'
+} from '@repo/lib/modules/web3/contracts/useManagedTransaction'
import { Center, VStack } from '@chakra-ui/react'
export default function Page() {
diff --git a/apps/frontend-v3/app/(app)/debug/sentry/page.tsx b/apps/frontend-v3/app/(app)/debug/sentry/page.tsx
index 81e4a318..698ebd4a 100644
--- a/apps/frontend-v3/app/(app)/debug/sentry/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/sentry/page.tsx
@@ -1,7 +1,7 @@
'use client'
import { Button, Center } from '@chakra-ui/react'
-import { SentryError, ensureError } from '@/lib/shared/utils/errors'
+import { SentryError, ensureError } from '@repo/lib/shared/utils/errors'
export default function Page() {
function throwError() {
diff --git a/apps/frontend-v3/app/(app)/debug/token-input/page.tsx b/apps/frontend-v3/app/(app)/debug/token-input/page.tsx
index a541fed1..62e8acae 100644
--- a/apps/frontend-v3/app/(app)/debug/token-input/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/token-input/page.tsx
@@ -1,16 +1,16 @@
'use client'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { TokenInput } from '@/lib/modules/tokens/TokenInput/TokenInput'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { TokenInput } from '@repo/lib/modules/tokens/TokenInput/TokenInput'
import { Button, Card, Heading, Text, VStack, useDisclosure } from '@chakra-ui/react'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { useState } from 'react'
-import { TokenSelectModal } from '@/lib/modules/tokens/TokenSelectModal/TokenSelectModal'
-import { TokenBalancesProvider } from '@/lib/modules/tokens/TokenBalancesProvider'
-import { ConnectWallet } from '@/lib/modules/web3/ConnectWallet'
-import { daiAddress } from '@/lib/debug-helpers'
-import { TokenInputsValidationProvider } from '@/lib/modules/tokens/TokenInputsValidationProvider'
-import { PriceImpactProvider } from '@/lib/modules/price-impact/PriceImpactProvider'
+import { TokenSelectModal } from '@repo/lib/modules/tokens/TokenSelectModal/TokenSelectModal'
+import { TokenBalancesProvider } from '@repo/lib/modules/tokens/TokenBalancesProvider'
+import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
+import { daiAddress } from '@repo/lib/debug-helpers'
+import { TokenInputsValidationProvider } from '@repo/lib/modules/tokens/TokenInputsValidationProvider'
+import { PriceImpactProvider } from '@repo/lib/modules/price-impact/PriceImpactProvider'
export default function TokenInputPage() {
const [currentValue, setCurrentValue] = useState('')
diff --git a/apps/frontend-v3/app/(app)/debug/token-select/page.tsx b/apps/frontend-v3/app/(app)/debug/token-select/page.tsx
index fff6aecd..00b686be 100644
--- a/apps/frontend-v3/app/(app)/debug/token-select/page.tsx
+++ b/apps/frontend-v3/app/(app)/debug/token-select/page.tsx
@@ -1,9 +1,9 @@
'use client'
-import { TokenSelectModal } from '@/lib/modules/tokens/TokenSelectModal/TokenSelectModal'
-import { TokenBalancesProvider } from '@/lib/modules/tokens/TokenBalancesProvider'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { TokenSelectModal } from '@repo/lib/modules/tokens/TokenSelectModal/TokenSelectModal'
+import { TokenBalancesProvider } from '@repo/lib/modules/tokens/TokenBalancesProvider'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { Button, useDisclosure, Text } from '@chakra-ui/react'
import { useRef, useState } from 'react'
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/add-liquidity/[[...txHash]]/layout.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/add-liquidity/[[...txHash]]/layout.tsx
index b0b90e92..68d8ae53 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/add-liquidity/[[...txHash]]/layout.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/add-liquidity/[[...txHash]]/layout.tsx
@@ -1,18 +1,18 @@
'use client'
-import { isNotSupported, shouldBlockAddLiquidity } from '@/lib/modules/pool/pool.helpers'
-import { usePool } from '@/lib/modules/pool/PoolProvider'
-import { RelayerSignatureProvider } from '@/lib/modules/relayer/RelayerSignatureProvider'
-import { TokenInputsValidationProvider } from '@/lib/modules/tokens/TokenInputsValidationProvider'
-import { PriceImpactProvider } from '@/lib/modules/price-impact/PriceImpactProvider'
+import { isNotSupported, shouldBlockAddLiquidity } from '@repo/lib/modules/pool/pool.helpers'
+import { usePool } from '@repo/lib/modules/pool/PoolProvider'
+import { RelayerSignatureProvider } from '@repo/lib/modules/relayer/RelayerSignatureProvider'
+import { TokenInputsValidationProvider } from '@repo/lib/modules/tokens/TokenInputsValidationProvider'
+import { PriceImpactProvider } from '@repo/lib/modules/price-impact/PriceImpactProvider'
import { Alert } from '@chakra-ui/react'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import { PropsWithChildren } from 'react'
import { isHash } from 'viem'
-import { usePoolRedirect } from '@/lib/modules/pool/pool.hooks'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
-import { AddLiquidityProvider } from '@/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider'
-import { Permit2SignatureProvider } from '@/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider'
+import { usePoolRedirect } from '@repo/lib/modules/pool/pool.hooks'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
+import { AddLiquidityProvider } from '@repo/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider'
+import { Permit2SignatureProvider } from '@repo/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider'
type Props = PropsWithChildren<{
params: { txHash?: string[] }
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/add-liquidity/[[...txHash]]/page.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/add-liquidity/[[...txHash]]/page.tsx
index 41ddd516..4df8dcd5 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/add-liquidity/[[...txHash]]/page.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/add-liquidity/[[...txHash]]/page.tsx
@@ -1,7 +1,7 @@
'use client'
-import { PoolActionsLayout } from '@/lib/modules/pool/actions/PoolActionsLayout'
-import { AddLiquidityForm } from '@/lib/modules/pool/actions/add-liquidity/form/AddLiquidityForm'
+import { PoolActionsLayout } from '@repo/lib/modules/pool/actions/PoolActionsLayout'
+import { AddLiquidityForm } from '@repo/lib/modules/pool/actions/add-liquidity/form/AddLiquidityForm'
export default function AddLiquidityPage() {
// ./layout.tsx defines UI and state that is shared by this page and the nested /add-liquidity/[txHash] receipt page
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/error.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/error.tsx
index 656b60be..65eefa50 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/error.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/error.tsx
@@ -1,5 +1,5 @@
'use client'
-import { PageErrorBoundary } from '@/lib/shared/components/errors/ErrorBoundary'
+import { PageErrorBoundary } from '@repo/lib/shared/components/errors/ErrorBoundary'
export default PageErrorBoundary
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/layout.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/layout.tsx
index ed5cc0d2..871507e0 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/layout.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/layout.tsx
@@ -1,15 +1,15 @@
/* eslint-disable max-len */
-import { FetchPoolProps } from '@/lib/modules/pool/pool.types'
-import { ChainSlug, getPoolTypeLabel, slugToChainMap } from '@/lib/modules/pool/pool.utils'
+import { FetchPoolProps } from '@repo/lib/modules/pool/pool.types'
+import { ChainSlug, getPoolTypeLabel, slugToChainMap } from '@repo/lib/modules/pool/pool.utils'
import { PropsWithChildren, Suspense } from 'react'
-import { PoolDetailSkeleton } from '@/lib/modules/pool/PoolDetail/PoolDetailSkeleton'
-import { getApolloServerClient } from '@/lib/shared/services/api/apollo-server.client'
-import { GetPoolDocument } from '@/lib/shared/services/api/generated/graphql'
+import { PoolDetailSkeleton } from '@repo/lib/modules/pool/PoolDetail/PoolDetailSkeleton'
+import { getApolloServerClient } from '@repo/lib/shared/services/api/apollo-server.client'
+import { GetPoolDocument } from '@repo/lib/shared/services/api/generated/graphql'
import { Metadata } from 'next'
-import { PoolProvider } from '@/lib/modules/pool/PoolProvider'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
-import { arrayToSentence } from '@/lib/shared/utils/strings'
-import { ensureError } from '@/lib/shared/utils/errors'
+import { PoolProvider } from '@repo/lib/modules/pool/PoolProvider'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
+import { arrayToSentence } from '@repo/lib/shared/utils/strings'
+import { ensureError } from '@repo/lib/shared/utils/errors'
import { notFound } from 'next/navigation'
type Props = PropsWithChildren<{
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/migrate-stake/page.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/migrate-stake/page.tsx
index 22eaf137..f547470b 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/migrate-stake/page.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/migrate-stake/page.tsx
@@ -1,10 +1,10 @@
'use client'
-import { PoolActionsLayout } from '@/lib/modules/pool/actions/PoolActionsLayout'
-import { MigrateStakeForm } from '@/lib/modules/pool/actions/migrateStake/MigrateStakeForm'
-import { MigrateStakeProvider } from '@/lib/modules/pool/actions/migrateStake/MigrateStakeProvider'
-import { UnstakeProvider } from '@/lib/modules/pool/actions/unstake/UnstakeProvider'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { PoolActionsLayout } from '@repo/lib/modules/pool/actions/PoolActionsLayout'
+import { MigrateStakeForm } from '@repo/lib/modules/pool/actions/migrateStake/MigrateStakeForm'
+import { MigrateStakeProvider } from '@repo/lib/modules/pool/actions/migrateStake/MigrateStakeProvider'
+import { UnstakeProvider } from '@repo/lib/modules/pool/actions/unstake/UnstakeProvider'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
export default function MigrateStakePage() {
return (
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/page.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/page.tsx
index a654d450..f907e892 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/page.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/page.tsx
@@ -1,5 +1,5 @@
-import { PoolDetail } from '@/lib/modules/pool/PoolDetail/PoolDetail'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { PoolDetail } from '@repo/lib/modules/pool/PoolDetail/PoolDetail'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
export default function PoolPage() {
return (
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/remove-liquidity/[[...txHash]]/page.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/remove-liquidity/[[...txHash]]/page.tsx
index c5747fc7..34c5f9e1 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/remove-liquidity/[[...txHash]]/page.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/remove-liquidity/[[...txHash]]/page.tsx
@@ -1,14 +1,14 @@
'use client'
-import { PoolActionsLayout } from '@/lib/modules/pool/actions/PoolActionsLayout'
-import { RemoveLiquidityForm } from '@/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityForm'
-import { RemoveLiquidityProvider } from '@/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider'
-import { RelayerSignatureProvider } from '@/lib/modules/relayer/RelayerSignatureProvider'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
-import { PriceImpactProvider } from '@/lib/modules/price-impact/PriceImpactProvider'
+import { PoolActionsLayout } from '@repo/lib/modules/pool/actions/PoolActionsLayout'
+import { RemoveLiquidityForm } from '@repo/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityForm'
+import { RemoveLiquidityProvider } from '@repo/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider'
+import { RelayerSignatureProvider } from '@repo/lib/modules/relayer/RelayerSignatureProvider'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { PriceImpactProvider } from '@repo/lib/modules/price-impact/PriceImpactProvider'
import { isHash } from 'viem'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
-import { PermitSignatureProvider } from '@/lib/modules/tokens/approvals/permit2/PermitSignatureProvider'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
+import { PermitSignatureProvider } from '@repo/lib/modules/tokens/approvals/permit2/PermitSignatureProvider'
type Props = {
params: { txHash?: string[] }
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/stake/page.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/stake/page.tsx
index f1366dfb..29cc7053 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/stake/page.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/stake/page.tsx
@@ -1,11 +1,11 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { PoolActionsLayout } from '@/lib/modules/pool/actions/PoolActionsLayout'
-import { StakeForm } from '@/lib/modules/pool/actions/stake/StakeForm'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
-import { StakeProvider } from '@/lib/modules/pool/actions/stake/StakeProvider'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
+import { PoolActionsLayout } from '@repo/lib/modules/pool/actions/PoolActionsLayout'
+import { StakeForm } from '@repo/lib/modules/pool/actions/stake/StakeForm'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { StakeProvider } from '@repo/lib/modules/pool/actions/stake/StakeProvider'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
export default function StakePage() {
return (
diff --git a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/unstake/page.tsx b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/unstake/page.tsx
index 243c4938..a1cd1d9f 100644
--- a/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/unstake/page.tsx
+++ b/apps/frontend-v3/app/(app)/pools/[chain]/[variant]/[id]/unstake/page.tsx
@@ -1,10 +1,10 @@
'use client'
-import { PoolActionsLayout } from '@/lib/modules/pool/actions/PoolActionsLayout'
-import { UnstakeForm } from '@/lib/modules/pool/actions/unstake/UnstakeForm'
-import { UnstakeProvider } from '@/lib/modules/pool/actions/unstake/UnstakeProvider'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
+import { PoolActionsLayout } from '@repo/lib/modules/pool/actions/PoolActionsLayout'
+import { UnstakeForm } from '@repo/lib/modules/pool/actions/unstake/UnstakeForm'
+import { UnstakeProvider } from '@repo/lib/modules/pool/actions/unstake/UnstakeProvider'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
export default function UnstakePage() {
return (
diff --git a/apps/frontend-v3/app/(app)/pools/cow/page.tsx b/apps/frontend-v3/app/(app)/pools/cow/page.tsx
index 44ada9c7..47886774 100644
--- a/apps/frontend-v3/app/(app)/pools/cow/page.tsx
+++ b/apps/frontend-v3/app/(app)/pools/cow/page.tsx
@@ -1,12 +1,12 @@
-import { PoolList } from '@/lib/modules/pool/PoolList/PoolList'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
-import { GqlPoolType } from '@/lib/shared/services/api/generated/graphql'
+import { PoolList } from '@repo/lib/modules/pool/PoolList/PoolList'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
+import { GqlPoolType } from '@repo/lib/shared/services/api/generated/graphql'
import { Box, Skeleton } from '@chakra-ui/react'
import { Suspense } from 'react'
import { Metadata } from 'next'
-import { CowFooter } from './CowFooter'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
-import { CowHeader } from './CowHeader'
+import { CowFooter } from '../../../../../../packages/lib/shared/components/navs/CowFooter'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
+import { CowHeader } from '@repo/lib/shared/components/navs/CowHeader'
export const metadata: Metadata = {
title: `CoW AMM DeFi Liquidity Pools`,
diff --git a/apps/frontend-v3/app/(app)/pools/layout.tsx b/apps/frontend-v3/app/(app)/pools/layout.tsx
index f99df7df..bd142279 100644
--- a/apps/frontend-v3/app/(app)/pools/layout.tsx
+++ b/apps/frontend-v3/app/(app)/pools/layout.tsx
@@ -1,4 +1,4 @@
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
import { Metadata } from 'next'
import { PropsWithChildren } from 'react'
diff --git a/apps/frontend-v3/app/(app)/pools/page.tsx b/apps/frontend-v3/app/(app)/pools/page.tsx
index d9182cd9..2464c38c 100644
--- a/apps/frontend-v3/app/(app)/pools/page.tsx
+++ b/apps/frontend-v3/app/(app)/pools/page.tsx
@@ -1,15 +1,15 @@
-import { PoolList } from '@/lib/modules/pool/PoolList/PoolList'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import { PoolList } from '@repo/lib/modules/pool/PoolList/PoolList'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
import { Box, Skeleton } from '@chakra-ui/react'
import { Suspense } from 'react'
-// import { getApolloServerClient } from '@/lib/shared/services/api/apollo-server.client'
-// import { getProjectConfig } from '@/lib/config/getProjectConfig'
-// import { GetFeaturedPoolsDocument } from '@/lib/shared/services/api/generated/graphql'
-// import { FeaturedPools } from '@/lib/modules/featured-pools/FeaturedPools'
-import { CowPromoBanner } from '@/lib/shared/components/promos/CowPromoBanner'
+// import { getApolloServerClient } from '@repo/lib/shared/services/api/apollo-server.client'
+// import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
+// import { GetFeaturedPoolsDocument } from '@repo/lib/shared/services/api/generated/graphql'
+// import { FeaturedPools } from '@repo/lib/modules/featured-pools/FeaturedPools'
+import { CowPromoBanner } from '@repo/lib/shared/components/promos/CowPromoBanner'
export default async function PoolsPage() {
// Featured pools set up
diff --git a/apps/frontend-v3/app/(app)/portfolio/[chain]/page.tsx b/apps/frontend-v3/app/(app)/portfolio/[chain]/page.tsx
index 6d69f497..98e34311 100644
--- a/apps/frontend-v3/app/(app)/portfolio/[chain]/page.tsx
+++ b/apps/frontend-v3/app/(app)/portfolio/[chain]/page.tsx
@@ -1,16 +1,16 @@
'use client'
-import { PoolName } from '@/lib/modules/pool/PoolName'
-import { Pool } from '@/lib/modules/pool/PoolProvider'
-import { ClaimModal } from '@/lib/modules/pool/actions/claim/ClaimModal'
-import { ClaimProvider } from '@/lib/modules/pool/actions/claim/ClaimProvider'
-import { ChainSlug, slugToChainMap } from '@/lib/modules/pool/pool.utils'
+import { PoolName } from '@repo/lib/modules/pool/PoolName'
+import { Pool } from '@repo/lib/modules/pool/PoolProvider'
+import { ClaimModal } from '@repo/lib/modules/pool/actions/claim/ClaimModal'
+import { ClaimProvider } from '@repo/lib/modules/pool/actions/claim/ClaimProvider'
+import { ChainSlug, slugToChainMap } from '@repo/lib/modules/pool/pool.utils'
// eslint-disable-next-line max-len
-import { ClaimNetworkPoolsLayout } from '@/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPoolsLayout'
-import { usePortfolio } from '@/lib/modules/portfolio/PortfolioProvider'
-import { TokenIconStack } from '@/lib/modules/tokens/TokenIconStack'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
-import { NetworkIcon } from '@/lib/shared/components/icons/NetworkIcon'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { ClaimNetworkPoolsLayout } from '@repo/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPoolsLayout'
+import { usePortfolio } from '@repo/lib/modules/portfolio/PortfolioProvider'
+import { TokenIconStack } from '@repo/lib/modules/tokens/TokenIconStack'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { NetworkIcon } from '@repo/lib/shared/components/icons/NetworkIcon'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { Button, Card, HStack, Heading, Skeleton, Stack, Text, VStack } from '@chakra-ui/react'
import { capitalize } from 'lodash'
import { useParams } from 'next/navigation'
diff --git a/apps/frontend-v3/app/(app)/portfolio/layout.tsx b/apps/frontend-v3/app/(app)/portfolio/layout.tsx
index 8d929f5c..81aec2bc 100644
--- a/apps/frontend-v3/app/(app)/portfolio/layout.tsx
+++ b/apps/frontend-v3/app/(app)/portfolio/layout.tsx
@@ -1,5 +1,5 @@
-import { PortfolioProvider } from '@/lib/modules/portfolio/PortfolioProvider'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
+import { PortfolioProvider } from '@repo/lib/modules/portfolio/PortfolioProvider'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
import { PropsWithChildren } from 'react'
export default async function PortfolioLayout({ children }: PropsWithChildren) {
diff --git a/apps/frontend-v3/app/(app)/portfolio/page.tsx b/apps/frontend-v3/app/(app)/portfolio/page.tsx
index 5257d899..c6519bf8 100644
--- a/apps/frontend-v3/app/(app)/portfolio/page.tsx
+++ b/apps/frontend-v3/app/(app)/portfolio/page.tsx
@@ -1,6 +1,6 @@
'use client'
-import Portfolio from '@/lib/modules/portfolio/Portfolio'
+import Portfolio from '@repo/lib/modules/portfolio/Portfolio'
export default function PortfolioPage() {
return
diff --git a/apps/frontend-v3/app/(app)/swap/[[...slug]]/getSwapPathParams.spec.ts b/apps/frontend-v3/app/(app)/swap/[[...slug]]/getSwapPathParams.spec.ts
index c7e1e47e..618d8142 100644
--- a/apps/frontend-v3/app/(app)/swap/[[...slug]]/getSwapPathParams.spec.ts
+++ b/apps/frontend-v3/app/(app)/swap/[[...slug]]/getSwapPathParams.spec.ts
@@ -1,4 +1,5 @@
import { getSwapPathParams } from './getSwapPathParams'
+import { describe, expect, it } from 'vitest'
describe('Parses swap params from the url slug when', () => {
it('slug is undefined', () => {
diff --git a/apps/frontend-v3/app/(app)/swap/[[...slug]]/getSwapPathParams.ts b/apps/frontend-v3/app/(app)/swap/[[...slug]]/getSwapPathParams.ts
index 173b073b..f3085b0a 100644
--- a/apps/frontend-v3/app/(app)/swap/[[...slug]]/getSwapPathParams.ts
+++ b/apps/frontend-v3/app/(app)/swap/[[...slug]]/getSwapPathParams.ts
@@ -1,4 +1,4 @@
-import { PathParams } from '@/lib/modules/swap/SwapProvider'
+import { PathParams } from '@repo/lib/modules/swap/SwapProvider'
import { isHash } from 'viem'
export function getSwapPathParams(slug?: string[]): PathParams {
diff --git a/apps/frontend-v3/app/(app)/swap/[[...slug]]/layout.tsx b/apps/frontend-v3/app/(app)/swap/[[...slug]]/layout.tsx
index 42d0dd82..cd0a37b8 100644
--- a/apps/frontend-v3/app/(app)/swap/[[...slug]]/layout.tsx
+++ b/apps/frontend-v3/app/(app)/swap/[[...slug]]/layout.tsx
@@ -1,17 +1,17 @@
'use client'
-import { ChainSlug, slugToChainMap } from '@/lib/modules/pool/pool.utils'
-import { SwapProvider } from '@/lib/modules/swap/SwapProvider'
-import { TokenBalancesProvider } from '@/lib/modules/tokens/TokenBalancesProvider'
-import { TokenInputsValidationProvider } from '@/lib/modules/tokens/TokenInputsValidationProvider'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { ChainSlug, slugToChainMap } from '@repo/lib/modules/pool/pool.utils'
+import { SwapProvider } from '@repo/lib/modules/swap/SwapProvider'
+import { TokenBalancesProvider } from '@repo/lib/modules/tokens/TokenBalancesProvider'
+import { TokenInputsValidationProvider } from '@repo/lib/modules/tokens/TokenInputsValidationProvider'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { PropsWithChildren } from 'react'
-import { PriceImpactProvider } from '@/lib/modules/price-impact/PriceImpactProvider'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
+import { PriceImpactProvider } from '@repo/lib/modules/price-impact/PriceImpactProvider'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
import { getSwapPathParams } from './getSwapPathParams'
-import { RelayerSignatureProvider } from '@/lib/modules/relayer/RelayerSignatureProvider'
+import { RelayerSignatureProvider } from '@repo/lib/modules/relayer/RelayerSignatureProvider'
type Props = PropsWithChildren<{
params: { slug?: string[] }
diff --git a/apps/frontend-v3/app/(app)/swap/[[...slug]]/page.tsx b/apps/frontend-v3/app/(app)/swap/[[...slug]]/page.tsx
index ea269837..e3e3c937 100644
--- a/apps/frontend-v3/app/(app)/swap/[[...slug]]/page.tsx
+++ b/apps/frontend-v3/app/(app)/swap/[[...slug]]/page.tsx
@@ -1,7 +1,7 @@
/* eslint-disable max-len */
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
-import { SwapForm } from '@/lib/modules/swap/SwapForm'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
+import { SwapForm } from '@repo/lib/modules/swap/SwapForm'
import { Metadata } from 'next'
const { projectName } = getProjectConfig()
diff --git a/apps/frontend-v3/app/(app)/vebal/layout.tsx b/apps/frontend-v3/app/(app)/vebal/layout.tsx
index 80a5d476..9b93514b 100644
--- a/apps/frontend-v3/app/(app)/vebal/layout.tsx
+++ b/apps/frontend-v3/app/(app)/vebal/layout.tsx
@@ -1,13 +1,13 @@
'use client'
-import { TokenBalancesProvider } from '@/lib/modules/tokens/TokenBalancesProvider'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
-import mainnetNetworkConfig from '@/lib/config/networks/mainnet'
+import { TokenBalancesProvider } from '@repo/lib/modules/tokens/TokenBalancesProvider'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
+import mainnetNetworkConfig from '@repo/lib/config/networks/mainnet'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import { PropsWithChildren } from 'react'
-import { CrossChainSyncProvider } from '@/lib/modules/vebal/cross-chain/CrossChainSyncProvider'
+import { CrossChainSyncProvider } from '@repo/lib/modules/vebal/cross-chain/CrossChainSyncProvider'
export default function VebalLayout({ children }: PropsWithChildren) {
const { getTokensByChain } = useTokens()
diff --git a/apps/frontend-v3/app/(app)/vebal/manage/page.tsx b/apps/frontend-v3/app/(app)/vebal/manage/page.tsx
index 3f1eec6f..28120d1e 100644
--- a/apps/frontend-v3/app/(app)/vebal/manage/page.tsx
+++ b/apps/frontend-v3/app/(app)/vebal/manage/page.tsx
@@ -1,7 +1,7 @@
'use client'
-import { VebalManage } from '@/lib/modules/vebal/VebalManage'
-import { CrossChainBoost } from '@/lib/modules/vebal/cross-chain/CrossChainBoost'
+import { VebalManage } from '@repo/lib/modules/vebal/VebalManage'
+import { CrossChainBoost } from '@repo/lib/modules/vebal/cross-chain/CrossChainBoost'
import { Stack } from '@chakra-ui/react'
export default function VebalManagePage() {
diff --git a/apps/frontend-v3/app/(marketing)/3rd-party-services/page.tsx b/apps/frontend-v3/app/(marketing)/3rd-party-services/page.tsx
index 58625995..f09c70bd 100644
--- a/apps/frontend-v3/app/(marketing)/3rd-party-services/page.tsx
+++ b/apps/frontend-v3/app/(marketing)/3rd-party-services/page.tsx
@@ -2,7 +2,7 @@
import { Container, HStack, VStack, Image, Text } from '@chakra-ui/react'
import { Prose } from '@nikolovlazar/chakra-ui-prose'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
export default function Cookies() {
const services = [
diff --git a/apps/frontend-v3/app/(marketing)/components/page.tsx b/apps/frontend-v3/app/(marketing)/components/page.tsx
index fd74429d..f38b1f10 100644
--- a/apps/frontend-v3/app/(marketing)/components/page.tsx
+++ b/apps/frontend-v3/app/(marketing)/components/page.tsx
@@ -40,7 +40,7 @@ import {
} from '@chakra-ui/react'
import { darken } from '@chakra-ui/theme-tools'
-import Section from '@/lib/shared/components/layout/Section'
+import Section from '@repo/lib/shared/components/layout/Section'
export default function Components() {
return (
diff --git a/apps/frontend-v3/app/(marketing)/cookies-policy/page.tsx b/apps/frontend-v3/app/(marketing)/cookies-policy/page.tsx
index a3a0e4db..4036767b 100644
--- a/apps/frontend-v3/app/(marketing)/cookies-policy/page.tsx
+++ b/apps/frontend-v3/app/(marketing)/cookies-policy/page.tsx
@@ -3,7 +3,7 @@
import Link from 'next/link'
import { Container } from '@chakra-ui/react'
import { Prose } from '@nikolovlazar/chakra-ui-prose'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
export default function Cookies() {
return (
diff --git a/apps/frontend-v3/app/(marketing)/layout.tsx b/apps/frontend-v3/app/(marketing)/layout.tsx
index 34ea6791..adb44aa1 100644
--- a/apps/frontend-v3/app/(marketing)/layout.tsx
+++ b/apps/frontend-v3/app/(marketing)/layout.tsx
@@ -1,5 +1,5 @@
/* eslint-disable max-len */
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
import { Box } from '@chakra-ui/react'
import { Metadata } from 'next'
import { PropsWithChildren } from 'react'
diff --git a/apps/frontend-v3/app/(marketing)/page.tsx b/apps/frontend-v3/app/(marketing)/page.tsx
index 6aedf082..811cab94 100644
--- a/apps/frontend-v3/app/(marketing)/page.tsx
+++ b/apps/frontend-v3/app/(marketing)/page.tsx
@@ -2,11 +2,11 @@
import { ReactLenis } from '@studio-freight/react-lenis'
import { Box } from '@chakra-ui/react'
-import { AnimatedSVG } from '@/lib/shared/components/marketing/AnimatedSVG'
-import { HomeHero } from '@/lib/shared/components/marketing/HomeHero'
-import { HomeBuilders } from '@/lib/shared/components/marketing/HomeBuilders'
-import { HomeProtocols } from '@/lib/shared/components/marketing/HomeProtocols'
-import { HomeActivity } from '@/lib/shared/components/marketing/HomeActivity'
+import { AnimatedSVG } from '@repo/lib/shared/components/marketing/AnimatedSVG'
+import { HomeHero } from '@repo/lib/shared/components/marketing/HomeHero'
+import { HomeBuilders } from '@repo/lib/shared/components/marketing/HomeBuilders'
+import { HomeProtocols } from '@repo/lib/shared/components/marketing/HomeProtocols'
+import { HomeActivity } from '@repo/lib/shared/components/marketing/HomeActivity'
export default function Home() {
return (
diff --git a/apps/frontend-v3/app/(marketing)/privacy-policy/page.tsx b/apps/frontend-v3/app/(marketing)/privacy-policy/page.tsx
index dbb9e1c0..ee1728b0 100644
--- a/apps/frontend-v3/app/(marketing)/privacy-policy/page.tsx
+++ b/apps/frontend-v3/app/(marketing)/privacy-policy/page.tsx
@@ -3,7 +3,7 @@
import Link from 'next/link'
import { Container } from '@chakra-ui/react'
import { Prose } from '@nikolovlazar/chakra-ui-prose'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
export default function Privacy() {
return (
diff --git a/apps/frontend-v3/app/(marketing)/risks/page.tsx b/apps/frontend-v3/app/(marketing)/risks/page.tsx
index 980c30ab..a4f17f2f 100644
--- a/apps/frontend-v3/app/(marketing)/risks/page.tsx
+++ b/apps/frontend-v3/app/(marketing)/risks/page.tsx
@@ -3,7 +3,7 @@
import Link from 'next/link'
import { Container, Divider, Box } from '@chakra-ui/react'
import { Prose } from '@nikolovlazar/chakra-ui-prose'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
export default function Privacy() {
return (
diff --git a/apps/frontend-v3/app/(marketing)/terms-of-use/page.tsx b/apps/frontend-v3/app/(marketing)/terms-of-use/page.tsx
index 7e0bd278..ae2c09b1 100644
--- a/apps/frontend-v3/app/(marketing)/terms-of-use/page.tsx
+++ b/apps/frontend-v3/app/(marketing)/terms-of-use/page.tsx
@@ -3,7 +3,7 @@
import Link from 'next/link'
import { Container } from '@chakra-ui/react'
import { Prose } from '@nikolovlazar/chakra-ui-prose'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
export default function Terms() {
return (
diff --git a/apps/frontend-v3/app/api/rpc/[chain]/route.ts b/apps/frontend-v3/app/api/rpc/[chain]/route.ts
index 8dbbb116..cbd60b37 100644
--- a/apps/frontend-v3/app/api/rpc/[chain]/route.ts
+++ b/apps/frontend-v3/app/api/rpc/[chain]/route.ts
@@ -1,4 +1,4 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
type Params = {
params: {
diff --git a/apps/frontend-v3/app/api/wallet-check/[address]/route.ts b/apps/frontend-v3/app/api/wallet-check/[address]/route.ts
index e0d65e07..bd75e950 100644
--- a/apps/frontend-v3/app/api/wallet-check/[address]/route.ts
+++ b/apps/frontend-v3/app/api/wallet-check/[address]/route.ts
@@ -1,5 +1,5 @@
-import { captureError, ensureError } from '@/lib/shared/utils/errors'
-import { hours } from '@/lib/shared/utils/time'
+import { captureError, ensureError } from '@repo/lib/shared/utils/errors'
+import { hours } from '@repo/lib/shared/utils/time'
import { NextResponse } from 'next/server'
type Params = {
diff --git a/apps/frontend-v3/app/error.tsx b/apps/frontend-v3/app/error.tsx
index 656b60be..65eefa50 100644
--- a/apps/frontend-v3/app/error.tsx
+++ b/apps/frontend-v3/app/error.tsx
@@ -1,5 +1,5 @@
'use client'
-import { PageErrorBoundary } from '@/lib/shared/components/errors/ErrorBoundary'
+import { PageErrorBoundary } from '@repo/lib/shared/components/errors/ErrorBoundary'
export default PageErrorBoundary
diff --git a/apps/frontend-v3/app/global-error.tsx b/apps/frontend-v3/app/global-error.tsx
index 68bf7c49..132f9e56 100644
--- a/apps/frontend-v3/app/global-error.tsx
+++ b/apps/frontend-v3/app/global-error.tsx
@@ -3,7 +3,7 @@
import * as Sentry from '@sentry/nextjs'
import { default as NextError } from 'next/error'
import { useEffect } from 'react'
-import { isDev, isStaging } from '@/lib/config/app.config'
+import { isDev, isStaging } from '@repo/lib/config/app.config'
/**
* Global Next.js ErrorBoundary (!) Next components are not available
diff --git a/apps/frontend-v3/app/layout.tsx b/apps/frontend-v3/app/layout.tsx
index 742bb393..10fff691 100644
--- a/apps/frontend-v3/app/layout.tsx
+++ b/apps/frontend-v3/app/layout.tsx
@@ -1,15 +1,15 @@
/* eslint-disable max-len */
import { Metadata } from 'next'
import { Providers } from './providers'
-import { Navbar } from '@/lib/shared/components/navs/Navbar'
-import { Footer } from '@/lib/shared/components/navs/Footer'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
-import { satoshiFont } from '@/lib/assets/fonts/satoshi/satoshi'
+import { Navbar } from '@repo/lib/shared/components/navs/Navbar'
+import { Footer } from '@repo/lib/shared/components/navs/Footer'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
+import { satoshiFont } from '@repo/lib/assets/fonts/satoshi/satoshi'
import NextTopLoader from 'nextjs-toploader'
import { SpeedInsights } from '@vercel/speed-insights/next'
-import '@/lib/assets/css/global.css'
-import { Fathom } from '@/lib/shared/services/fathom/Fathom'
-import { GlobalAlerts } from '@/lib/shared/components/navs/GlobalAlerts'
+import '@repo/lib/assets/css/global.css'
+import { Fathom } from '@repo/lib/shared/services/fathom/Fathom'
+import { GlobalAlerts } from '@repo/lib/shared/components/navs/GlobalAlerts'
import { PropsWithChildren } from 'react'
const { projectName } = getProjectConfig()
diff --git a/apps/frontend-v3/app/not-found.tsx b/apps/frontend-v3/app/not-found.tsx
index eb5386cb..99c8be98 100644
--- a/apps/frontend-v3/app/not-found.tsx
+++ b/apps/frontend-v3/app/not-found.tsx
@@ -1,4 +1,4 @@
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
import { Button, Heading, VStack, Text } from '@chakra-ui/react'
import { headers } from 'next/headers'
import Link from 'next/link'
diff --git a/apps/frontend-v3/app/providers.tsx b/apps/frontend-v3/app/providers.tsx
index bd0da932..7602121f 100644
--- a/apps/frontend-v3/app/providers.tsx
+++ b/apps/frontend-v3/app/providers.tsx
@@ -1,14 +1,14 @@
-import { Web3Provider } from '@/lib/modules/web3/Web3Provider'
-import { ApolloClientProvider } from '@/lib/shared/services/api/apollo-client-provider'
-import { ThemeProvider } from '@/lib/shared/services/chakra/ThemeProvider'
+import { Web3Provider } from '@repo/lib/modules/web3/Web3Provider'
+import { ApolloClientProvider } from '@repo/lib/shared/services/api/apollo-client-provider'
+import { ThemeProvider } from '@repo/lib/shared/services/chakra/ThemeProvider'
import { ReactNode } from 'react'
-import { RecentTransactionsProvider } from '@/lib/modules/transactions/RecentTransactionsProvider'
-import { ApolloGlobalDataProvider } from '@/lib/shared/services/api/apollo-global-data.provider'
-import { UserSettingsProvider } from '@/lib/modules/user/settings/UserSettingsProvider'
+import { RecentTransactionsProvider } from '@repo/lib/modules/transactions/RecentTransactionsProvider'
+import { ApolloGlobalDataProvider } from '@repo/lib/shared/services/api/apollo-global-data.provider'
+import { UserSettingsProvider } from '@repo/lib/modules/user/settings/UserSettingsProvider'
import { ThemeProvider as ColorThemeProvider } from 'next-themes'
-import { DEFAULT_THEME_COLOR_MODE } from '@/lib/shared/services/chakra/themes/base/foundations'
-import { wagmiConfig } from '@/lib/modules/web3/WagmiConfig'
-import { GlobalAlertsProvider } from '@/lib/shared/components/alerts/GlobalAlertsProvider'
+import { DEFAULT_THEME_COLOR_MODE } from '@repo/lib/shared/services/chakra/themes/base/foundations'
+import { wagmiConfig } from '@repo/lib/modules/web3/WagmiConfig'
+import { GlobalAlertsProvider } from '@repo/lib/shared/components/alerts/GlobalAlertsProvider'
export function Providers({ children }: { children: ReactNode }) {
return (
diff --git a/apps/frontend-v3/lib/modules/chains/chains.constants.ts b/apps/frontend-v3/lib/modules/chains/chains.constants.ts
deleted file mode 100644
index f3ffd9e1..00000000
--- a/apps/frontend-v3/lib/modules/chains/chains.constants.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-
-export const UNSUPPORTED_CHAINS = [GqlChain.Fantom, GqlChain.Optimism]
diff --git a/apps/frontend-v3/lib/modules/staking/selectStakingService.ts b/apps/frontend-v3/lib/modules/staking/selectStakingService.ts
deleted file mode 100644
index 0b29c542..00000000
--- a/apps/frontend-v3/lib/modules/staking/selectStakingService.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { GaugeService } from '@/lib/shared/services/staking/gauge.service'
-import { BatchRelayerService } from '@/lib/shared/services/batch-relayer/batch-relayer.service'
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { gaugeActionsService } from '@/lib/shared/services/batch-relayer/extensions/gauge-actions.service'
-import { GqlChain, GqlPoolStakingType } from '@/lib/shared/services/api/generated/graphql'
-
-export function selectStakingService(chain: GqlChain, stakingType: GqlPoolStakingType) {
- const networkConfig = getNetworkConfig(chain)
- const batchRelayerService = new BatchRelayerService(
- networkConfig.contracts.balancer.relayerV6,
- gaugeActionsService
- )
-
- if (stakingType === 'GAUGE') {
- return new GaugeService(batchRelayerService)
- }
-}
diff --git a/apps/frontend-v3/next.config.js b/apps/frontend-v3/next.config.js
index 705c5c38..52eb6ebe 100644
--- a/apps/frontend-v3/next.config.js
+++ b/apps/frontend-v3/next.config.js
@@ -21,7 +21,7 @@ const nextConfig = {
},
],
},
- pageExtensions: ['tsx', `${process.env.PROTOCOL}.tsx`, 'ts'],
+ transpilePackages: ['@repo/lib'],
// Safe App setup
headers: manifestHeaders,
diff --git a/apps/frontend-v3/package.json b/apps/frontend-v3/package.json
index e8c4fb0c..05a2cbb7 100644
--- a/apps/frontend-v3/package.json
+++ b/apps/frontend-v3/package.json
@@ -4,18 +4,14 @@
"private": true,
"license": "MIT",
"scripts": {
- "build": "PROTOCOL=bal pnpm graphql:gen && next build",
- "dev": "concurrently \"pnpm graphql:gen --watch\" \"next dev\"",
- "gen:theme-typings": "chakra-cli tokens ./lib/shared/services/chakra/themes/bal/bal.theme.ts",
+ "build": "pnpm --filter @repo/lib graphql:gen && next build",
+ "dev": "concurrently \"pnpm --filter @repo/lib graphql:gen --watch\" \"next dev\"",
"gen:wagmi": "pnpm wagmi generate",
- "graphql:gen": "DOTENV_CONFIG_PATH=./.env.local graphql-codegen -r dotenv/config",
- "postinstall": "npm run gen:theme-typings",
"lint": "next lint",
"lint:fix": "next lint --fix",
"prepare": "cd ../.. && husky apps/frontend-v3/.husky",
"start": "next start",
- "test": "pnpm test:unit & pnpm run test:integration",
- "test:integration": "vitest -c ./vitest.config.integration.ts",
+ "test": "pnpm test:unit",
"test:unit": "vitest",
"test:unit:coverage": "vitest --coverage",
"test:unit:silent:coverage": "SILENT_TESTS=true vitest --coverage",
@@ -37,6 +33,7 @@
"@layerzerolabs/scan-client": "^0.0.8",
"@nikolovlazar/chakra-ui-prose": "^1.2.1",
"@rainbow-me/rainbowkit": "^2.1.6",
+ "@repo/lib": "workspace:*",
"@sentry/nextjs": "^8.13.0",
"@studio-freight/react-lenis": "^0.0.47",
"@tanstack/react-query": "^5.56.2",
diff --git a/apps/frontend-v3/sentry.client.config.ts b/apps/frontend-v3/sentry.client.config.ts
index da48e882..2afa3534 100644
--- a/apps/frontend-v3/sentry.client.config.ts
+++ b/apps/frontend-v3/sentry.client.config.ts
@@ -4,8 +4,8 @@
import * as Sentry from '@sentry/nextjs'
import { sentryDSN } from './sentry.config'
-import { isProd } from './lib/config/app.config'
-import { shouldIgnoreException } from './lib/shared/utils/query-errors'
+import { isProd } from '@repo/lib/config/app.config'
+import { shouldIgnoreException } from '@repo/lib/shared/utils/query-errors'
Sentry.init({
// Change this value only if you need to debug in development (we have a custom developmentSentryDSN for that)
diff --git a/apps/frontend-v3/sentry.server.config.ts b/apps/frontend-v3/sentry.server.config.ts
index 1f1804db..d4551737 100644
--- a/apps/frontend-v3/sentry.server.config.ts
+++ b/apps/frontend-v3/sentry.server.config.ts
@@ -4,7 +4,7 @@
import * as Sentry from '@sentry/nextjs'
import { sentryDSN } from './sentry.config'
-import { isProd } from './lib/config/app.config'
+import { isProd } from '@repo/lib/config/app.config'
Sentry.init({
enabled: isProd,
diff --git a/apps/frontend-v3/tsconfig.json b/apps/frontend-v3/tsconfig.json
index 5462ee93..4c94c7c1 100644
--- a/apps/frontend-v3/tsconfig.json
+++ b/apps/frontend-v3/tsconfig.json
@@ -9,7 +9,8 @@
}
],
"paths": {
- "@/*": ["./*"]
+ "@/*": ["./*"],
+ "@repo/*": ["../../packages/*"]
},
"types": ["vitest/globals"]
},
@@ -18,10 +19,10 @@
"**/*.tsx",
"global.d.ts",
"next-env.d.ts",
- ".next/types/**/*.ts"
+ ".next/types/**/*.ts",
+ "../../packages/lib/global.d.ts",
+ "../../packages/lib/shared/components/navs/CowFooter.tsx",
+ "../../packages/lib/shared/app/react-query.provider.tsx"
],
- "exclude": [
- "node_modules",
- ".next"
- ]
+ "exclude": ["node_modules", ".next"]
}
diff --git a/apps/frontend-v3/wagmi.config.ts b/apps/frontend-v3/wagmi.config.ts
index ced12f6b..1743b1d9 100644
--- a/apps/frontend-v3/wagmi.config.ts
+++ b/apps/frontend-v3/wagmi.config.ts
@@ -1,6 +1,6 @@
import { defineConfig, loadEnv } from '@wagmi/cli'
import { etherscan } from '@wagmi/cli/plugins'
-import mainnetNetworkConfig from './lib/config/networks/mainnet'
+import mainnetNetworkConfig from '@repo/lib/config/networks/mainnet'
import { erc20Abi } from 'viem'
diff --git a/packages/lib/.gitignore b/packages/lib/.gitignore
new file mode 100644
index 00000000..86d4c2dd
--- /dev/null
+++ b/packages/lib/.gitignore
@@ -0,0 +1 @@
+generated
diff --git a/apps/frontend-v3/lib/assets/css/global.css b/packages/lib/assets/css/global.css
similarity index 100%
rename from apps/frontend-v3/lib/assets/css/global.css
rename to packages/lib/assets/css/global.css
diff --git a/apps/frontend-v3/lib/assets/css/lenis.css b/packages/lib/assets/css/lenis.css
similarity index 100%
rename from apps/frontend-v3/lib/assets/css/lenis.css
rename to packages/lib/assets/css/lenis.css
diff --git a/apps/frontend-v3/lib/assets/css/marketing.css b/packages/lib/assets/css/marketing.css
similarity index 100%
rename from apps/frontend-v3/lib/assets/css/marketing.css
rename to packages/lib/assets/css/marketing.css
diff --git a/apps/frontend-v3/lib/assets/css/popover.css b/packages/lib/assets/css/popover.css
similarity index 100%
rename from apps/frontend-v3/lib/assets/css/popover.css
rename to packages/lib/assets/css/popover.css
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Black.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-Black.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Black.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-Black.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-BlackItalic.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-BlackItalic.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-BlackItalic.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-BlackItalic.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Bold.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-Bold.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Bold.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-Bold.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-BoldItalic.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-BoldItalic.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-BoldItalic.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-BoldItalic.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Italic.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-Italic.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Italic.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-Italic.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Light.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-Light.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Light.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-Light.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-LightItalic.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-LightItalic.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-LightItalic.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-LightItalic.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Medium.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-Medium.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Medium.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-Medium.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-MediumItalic.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-MediumItalic.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-MediumItalic.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-MediumItalic.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Regular.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-Regular.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Regular.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-Regular.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Variable.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-Variable.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-Variable.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-Variable.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-VariableItalic.woff2 b/packages/lib/assets/fonts/satoshi/Satoshi-VariableItalic.woff2
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/Satoshi-VariableItalic.woff2
rename to packages/lib/assets/fonts/satoshi/Satoshi-VariableItalic.woff2
diff --git a/apps/frontend-v3/lib/assets/fonts/satoshi/satoshi.ts b/packages/lib/assets/fonts/satoshi/satoshi.ts
similarity index 100%
rename from apps/frontend-v3/lib/assets/fonts/satoshi/satoshi.ts
rename to packages/lib/assets/fonts/satoshi/satoshi.ts
diff --git a/apps/frontend-v3/lib/config/app.config.ts b/packages/lib/config/app.config.ts
similarity index 96%
rename from apps/frontend-v3/lib/config/app.config.ts
rename to packages/lib/config/app.config.ts
index 2260997d..b62a6a05 100644
--- a/apps/frontend-v3/lib/config/app.config.ts
+++ b/packages/lib/config/app.config.ts
@@ -1,4 +1,4 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { keyBy } from 'lodash'
import { Config, NetworkConfig, SupportedChainId } from './config.types'
import networks from './networks'
diff --git a/apps/frontend-v3/lib/config/config.types.ts b/packages/lib/config/config.types.ts
similarity index 97%
rename from apps/frontend-v3/lib/config/config.types.ts
rename to packages/lib/config/config.types.ts
index bf683787..f49f196f 100644
--- a/apps/frontend-v3/lib/config/config.types.ts
+++ b/packages/lib/config/config.types.ts
@@ -1,6 +1,6 @@
import { Address } from 'viem'
import { GqlChain } from '../shared/services/api/generated/graphql'
-import { chains } from '@/lib/modules/web3/ChainConfig'
+import { chains } from '@repo/lib/modules/web3/ChainConfig'
import { PoolIssue } from '../modules/pool/alerts/pool-issues/PoolIssue.type'
import { SupportedWrapHandler } from '../modules/swap/swap.types'
import { PartnerVariant } from '../modules/pool/pool.types'
diff --git a/apps/frontend-v3/lib/config/getProjectConfig.ts b/packages/lib/config/getProjectConfig.ts
similarity index 71%
rename from apps/frontend-v3/lib/config/getProjectConfig.ts
rename to packages/lib/config/getProjectConfig.ts
index 0cf45979..47637cfc 100644
--- a/apps/frontend-v3/lib/config/getProjectConfig.ts
+++ b/packages/lib/config/getProjectConfig.ts
@@ -1,5 +1,5 @@
-import { ProjectConfigBeets } from '@/lib/config/projects/beets'
-import { ProjectConfigBalancer } from '@/lib/config/projects/balancer'
+import { ProjectConfigBeets } from '@repo/lib/config/projects/beets'
+import { ProjectConfigBalancer } from '@repo/lib/config/projects/balancer'
export const allProjects = {
[ProjectConfigBalancer.projectId]: { ...ProjectConfigBalancer },
diff --git a/apps/frontend-v3/lib/config/networks/arbitrum.ts b/packages/lib/config/networks/arbitrum.ts
similarity index 89%
rename from apps/frontend-v3/lib/config/networks/arbitrum.ts
rename to packages/lib/config/networks/arbitrum.ts
index 4e6fab06..ab3f2991 100644
--- a/apps/frontend-v3/lib/config/networks/arbitrum.ts
+++ b/packages/lib/config/networks/arbitrum.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
-import { CSP_ISSUE_POOL_IDS } from '@/lib/shared/data/csp-issue'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { CSP_ISSUE_POOL_IDS } from '@repo/lib/shared/data/csp-issue'
const networkConfig: NetworkConfig = {
chainId: 42161,
diff --git a/apps/frontend-v3/lib/config/networks/avalanche.ts b/packages/lib/config/networks/avalanche.ts
similarity index 87%
rename from apps/frontend-v3/lib/config/networks/avalanche.ts
rename to packages/lib/config/networks/avalanche.ts
index 845fe2c9..bd6e1059 100644
--- a/apps/frontend-v3/lib/config/networks/avalanche.ts
+++ b/packages/lib/config/networks/avalanche.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
-import { CSP_ISSUE_POOL_IDS } from '@/lib/shared/data/csp-issue'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { CSP_ISSUE_POOL_IDS } from '@repo/lib/shared/data/csp-issue'
const networkConfig: NetworkConfig = {
chainId: 43114,
diff --git a/apps/frontend-v3/lib/config/networks/base.ts b/packages/lib/config/networks/base.ts
similarity index 92%
rename from apps/frontend-v3/lib/config/networks/base.ts
rename to packages/lib/config/networks/base.ts
index df96f89e..514a702e 100644
--- a/apps/frontend-v3/lib/config/networks/base.ts
+++ b/packages/lib/config/networks/base.ts
@@ -1,6 +1,6 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
const networkConfig: NetworkConfig = {
chainId: 8453,
diff --git a/apps/frontend-v3/lib/config/networks/fantom.ts b/packages/lib/config/networks/fantom.ts
similarity index 81%
rename from apps/frontend-v3/lib/config/networks/fantom.ts
rename to packages/lib/config/networks/fantom.ts
index f1f45248..65a04508 100644
--- a/apps/frontend-v3/lib/config/networks/fantom.ts
+++ b/packages/lib/config/networks/fantom.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
import { zeroAddress } from 'viem'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { emptyAddress } from '@/lib/modules/web3/contracts/wagmi-helpers'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { emptyAddress } from '@repo/lib/modules/web3/contracts/wagmi-helpers'
const networkConfig: NetworkConfig = {
chainId: 250,
diff --git a/apps/frontend-v3/lib/config/networks/fraxtal.ts b/packages/lib/config/networks/fraxtal.ts
similarity index 83%
rename from apps/frontend-v3/lib/config/networks/fraxtal.ts
rename to packages/lib/config/networks/fraxtal.ts
index 12e3dd0f..905bbf3f 100644
--- a/apps/frontend-v3/lib/config/networks/fraxtal.ts
+++ b/packages/lib/config/networks/fraxtal.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { CSP_ISSUE_POOL_IDS } from '@/lib/shared/data/csp-issue'
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { CSP_ISSUE_POOL_IDS } from '@repo/lib/shared/data/csp-issue'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
const networkConfig: NetworkConfig = {
chainId: 252,
diff --git a/apps/frontend-v3/lib/config/networks/gnosis.ts b/packages/lib/config/networks/gnosis.ts
similarity index 88%
rename from apps/frontend-v3/lib/config/networks/gnosis.ts
rename to packages/lib/config/networks/gnosis.ts
index 6b057808..35ae81f1 100644
--- a/apps/frontend-v3/lib/config/networks/gnosis.ts
+++ b/packages/lib/config/networks/gnosis.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { CSP_ISSUE_POOL_IDS } from '@/lib/shared/data/csp-issue'
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { CSP_ISSUE_POOL_IDS } from '@repo/lib/shared/data/csp-issue'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
const networkConfig: NetworkConfig = {
chainId: 100,
diff --git a/apps/frontend-v3/lib/config/networks/index.ts b/packages/lib/config/networks/index.ts
similarity index 91%
rename from apps/frontend-v3/lib/config/networks/index.ts
rename to packages/lib/config/networks/index.ts
index 0babd5bc..48a58ee9 100644
--- a/apps/frontend-v3/lib/config/networks/index.ts
+++ b/packages/lib/config/networks/index.ts
@@ -1,4 +1,4 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import arbitrum from './arbitrum'
import avalanche from './avalanche'
import gnosis from './gnosis'
diff --git a/apps/frontend-v3/lib/config/networks/mainnet.ts b/packages/lib/config/networks/mainnet.ts
similarity index 94%
rename from apps/frontend-v3/lib/config/networks/mainnet.ts
rename to packages/lib/config/networks/mainnet.ts
index ee63048b..93bf22d9 100644
--- a/apps/frontend-v3/lib/config/networks/mainnet.ts
+++ b/packages/lib/config/networks/mainnet.ts
@@ -1,9 +1,9 @@
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
import { NetworkConfig } from '../config.types'
import { CSP_ISSUE_POOL_IDS } from '../../shared/data/csp-issue'
-import { SupportedWrapHandler } from '@/lib/modules/swap/swap.types'
+import { SupportedWrapHandler } from '@repo/lib/modules/swap/swap.types'
const networkConfig: NetworkConfig = {
chainId: 1,
diff --git a/apps/frontend-v3/lib/config/networks/mode.ts b/packages/lib/config/networks/mode.ts
similarity index 82%
rename from apps/frontend-v3/lib/config/networks/mode.ts
rename to packages/lib/config/networks/mode.ts
index 37dcc519..a278d129 100644
--- a/apps/frontend-v3/lib/config/networks/mode.ts
+++ b/packages/lib/config/networks/mode.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { CSP_ISSUE_POOL_IDS } from '@/lib/shared/data/csp-issue'
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { CSP_ISSUE_POOL_IDS } from '@repo/lib/shared/data/csp-issue'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
const networkConfig: NetworkConfig = {
chainId: 34443,
diff --git a/apps/frontend-v3/lib/config/networks/optimism.ts b/packages/lib/config/networks/optimism.ts
similarity index 87%
rename from apps/frontend-v3/lib/config/networks/optimism.ts
rename to packages/lib/config/networks/optimism.ts
index 1276f633..9e19a415 100644
--- a/apps/frontend-v3/lib/config/networks/optimism.ts
+++ b/packages/lib/config/networks/optimism.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { CSP_ISSUE_POOL_IDS } from '@/lib/shared/data/csp-issue'
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { CSP_ISSUE_POOL_IDS } from '@repo/lib/shared/data/csp-issue'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
const networkConfig: NetworkConfig = {
chainId: 10,
diff --git a/apps/frontend-v3/lib/config/networks/polygon.ts b/packages/lib/config/networks/polygon.ts
similarity index 93%
rename from apps/frontend-v3/lib/config/networks/polygon.ts
rename to packages/lib/config/networks/polygon.ts
index eb2a67e6..5b1b6a7f 100644
--- a/apps/frontend-v3/lib/config/networks/polygon.ts
+++ b/packages/lib/config/networks/polygon.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
-import { CSP_ISSUE_POOL_IDS } from '@/lib/shared/data/csp-issue'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { CSP_ISSUE_POOL_IDS } from '@repo/lib/shared/data/csp-issue'
const networkConfig: NetworkConfig = {
chainId: 137,
diff --git a/apps/frontend-v3/lib/config/networks/sepolia.ts b/packages/lib/config/networks/sepolia.ts
similarity index 90%
rename from apps/frontend-v3/lib/config/networks/sepolia.ts
rename to packages/lib/config/networks/sepolia.ts
index 303eceef..61f63832 100644
--- a/apps/frontend-v3/lib/config/networks/sepolia.ts
+++ b/packages/lib/config/networks/sepolia.ts
@@ -1,6 +1,6 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
const networkConfig: NetworkConfig = {
chainId: 11155111,
diff --git a/apps/frontend-v3/lib/config/networks/zkevm.ts b/packages/lib/config/networks/zkevm.ts
similarity index 86%
rename from apps/frontend-v3/lib/config/networks/zkevm.ts
rename to packages/lib/config/networks/zkevm.ts
index ab3faa95..ecd21668 100644
--- a/apps/frontend-v3/lib/config/networks/zkevm.ts
+++ b/packages/lib/config/networks/zkevm.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { NetworkConfig } from '../config.types'
-import { convertHexToLowerCase } from '@/lib/shared/utils/objects'
-import { PoolIssue } from '@/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
-import { CSP_ISSUE_POOL_IDS } from '@/lib/shared/data/csp-issue'
+import { convertHexToLowerCase } from '@repo/lib/shared/utils/objects'
+import { PoolIssue } from '@repo/lib/modules/pool/alerts/pool-issues/PoolIssue.type'
+import { CSP_ISSUE_POOL_IDS } from '@repo/lib/shared/data/csp-issue'
const networkConfig: NetworkConfig = {
chainId: 1101,
diff --git a/apps/frontend-v3/lib/config/projects/balancer.ts b/packages/lib/config/projects/balancer.ts
similarity index 74%
rename from apps/frontend-v3/lib/config/projects/balancer.ts
rename to packages/lib/config/projects/balancer.ts
index 7fc8918e..361b18e3 100644
--- a/apps/frontend-v3/lib/config/projects/balancer.ts
+++ b/packages/lib/config/projects/balancer.ts
@@ -1,7 +1,7 @@
-import { ProjectConfig } from '@/lib/config/config.types'
-import { PartnerVariant } from '@/lib/modules/pool/pool.types'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { isProd } from '@/lib/config/app.config'
+import { ProjectConfig } from '@repo/lib/config/config.types'
+import { PartnerVariant } from '@repo/lib/modules/pool/pool.types'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { isProd } from '@repo/lib/config/app.config'
export const ProjectConfigBalancer: ProjectConfig = {
projectId: 'balancer',
diff --git a/apps/frontend-v3/lib/config/projects/beets.ts b/packages/lib/config/projects/beets.ts
similarity index 74%
rename from apps/frontend-v3/lib/config/projects/beets.ts
rename to packages/lib/config/projects/beets.ts
index c2bfa017..ce9b30af 100644
--- a/apps/frontend-v3/lib/config/projects/beets.ts
+++ b/packages/lib/config/projects/beets.ts
@@ -1,5 +1,5 @@
-import { ProjectConfig } from '@/lib/config/config.types'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { ProjectConfig } from '@repo/lib/config/config.types'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
export const beetsSupportedNetworks = [GqlChain.Fantom, GqlChain.Optimism]
// as const satisifies GqlChain[]
diff --git a/apps/frontend-v3/lib/config/useNetworkConfig.ts b/packages/lib/config/useNetworkConfig.ts
similarity index 84%
rename from apps/frontend-v3/lib/config/useNetworkConfig.ts
rename to packages/lib/config/useNetworkConfig.ts
index 27fca492..5f2e79d8 100644
--- a/apps/frontend-v3/lib/config/useNetworkConfig.ts
+++ b/packages/lib/config/useNetworkConfig.ts
@@ -1,4 +1,4 @@
-import { getNetworkConfig } from '@/lib/config/app.config'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
import { setTag } from '@sentry/nextjs'
import { useEffect } from 'react'
import { useUserAccount } from '../modules/web3/UserAccountProvider'
diff --git a/apps/frontend-v3/lib/debug-helpers.ts b/packages/lib/debug-helpers.ts
similarity index 93%
rename from apps/frontend-v3/lib/debug-helpers.ts
rename to packages/lib/debug-helpers.ts
index 21e952d1..283421aa 100644
--- a/apps/frontend-v3/lib/debug-helpers.ts
+++ b/packages/lib/debug-helpers.ts
@@ -1,5 +1,5 @@
-import mainnetNetworkConfig from '@/lib/config/networks/mainnet'
-import sepoliaNetworkConfig from '@/lib/config/networks/sepolia'
+import mainnetNetworkConfig from '@repo/lib/config/networks/mainnet'
+import sepoliaNetworkConfig from '@repo/lib/config/networks/sepolia'
import { Address } from 'viem'
/*
diff --git a/apps/frontend-v3/global.d.ts b/packages/lib/global.d.ts
similarity index 100%
rename from apps/frontend-v3/global.d.ts
rename to packages/lib/global.d.ts
diff --git a/apps/frontend-v3/lib/modules/chains/ChainSelect.tsx b/packages/lib/modules/chains/ChainSelect.tsx
similarity index 80%
rename from apps/frontend-v3/lib/modules/chains/ChainSelect.tsx
rename to packages/lib/modules/chains/ChainSelect.tsx
index 40a4ca7e..43564eb3 100644
--- a/apps/frontend-v3/lib/modules/chains/ChainSelect.tsx
+++ b/packages/lib/modules/chains/ChainSelect.tsx
@@ -1,16 +1,16 @@
'use client'
-import { getChainShortName } from '@/lib/config/app.config'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
-import { NetworkIcon } from '@/lib/shared/components/icons/NetworkIcon'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { getSelectStyles } from '@/lib/shared/services/chakra/custom/chakra-react-select'
+import { getChainShortName } from '@repo/lib/config/app.config'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
+import { NetworkIcon } from '@repo/lib/shared/components/icons/NetworkIcon'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { getSelectStyles } from '@repo/lib/shared/services/chakra/custom/chakra-react-select'
import { Box, HStack, Text } from '@chakra-ui/react'
import { Select, OptionBase, GroupBase, SingleValue, chakraComponents } from 'chakra-react-select'
import { ReactNode, useEffect, useState } from 'react'
import { ChevronDown, Globe } from 'react-feather'
import { motion } from 'framer-motion'
-import { pulseOnceWithDelay } from '@/lib/shared/utils/animations'
+import { pulseOnceWithDelay } from '@repo/lib/shared/utils/animations'
interface ChainOption extends OptionBase {
label: ReactNode
diff --git a/apps/frontend-v3/lib/modules/chains/chain.utils.ts b/packages/lib/modules/chains/chain.utils.ts
similarity index 64%
rename from apps/frontend-v3/lib/modules/chains/chain.utils.ts
rename to packages/lib/modules/chains/chain.utils.ts
index e7308ef9..83fd6ad6 100644
--- a/apps/frontend-v3/lib/modules/chains/chain.utils.ts
+++ b/packages/lib/modules/chains/chain.utils.ts
@@ -1,5 +1,5 @@
-import { getChainId } from '@/lib/config/app.config'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { getChainId } from '@repo/lib/config/app.config'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
export function isMainnet(chain: GqlChain | number): boolean {
return chain === GqlChain.Mainnet || chain === getChainId(GqlChain.Mainnet)
diff --git a/packages/lib/modules/chains/chains.constants.ts b/packages/lib/modules/chains/chains.constants.ts
new file mode 100644
index 00000000..e3db48cb
--- /dev/null
+++ b/packages/lib/modules/chains/chains.constants.ts
@@ -0,0 +1,3 @@
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+
+export const UNSUPPORTED_CHAINS = [GqlChain.Fantom, GqlChain.Optimism]
diff --git a/apps/frontend-v3/lib/modules/featured-pools/FeaturePoolCard.tsx b/packages/lib/modules/featured-pools/FeaturePoolCard.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/featured-pools/FeaturePoolCard.tsx
rename to packages/lib/modules/featured-pools/FeaturePoolCard.tsx
index 0ec3bf66..274def08 100644
--- a/apps/frontend-v3/lib/modules/featured-pools/FeaturePoolCard.tsx
+++ b/packages/lib/modules/featured-pools/FeaturePoolCard.tsx
@@ -1,17 +1,17 @@
'use client'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { FeaturedPool, Pool } from '../pool/PoolProvider'
import { useRouter } from 'next/navigation'
import { VStack, Text, Box, HStack, Image } from '@chakra-ui/react'
import { poolClickHandler, poolMouseEnterHandler, getPoolTypeLabel } from '../pool/pool.utils'
import { PoolName } from '../pool/PoolName'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
-import { PoolZenGarden } from '@/lib/shared/components/zen/ZenGarden'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
+import { PoolZenGarden } from '@repo/lib/shared/components/zen/ZenGarden'
import { motion } from 'framer-motion'
-import MainAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
+import MainAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
import { memo, ReactNode } from 'react'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
interface Props {
pool: FeaturedPool
diff --git a/apps/frontend-v3/lib/modules/featured-pools/FeaturedPools.tsx b/packages/lib/modules/featured-pools/FeaturedPools.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/featured-pools/FeaturedPools.tsx
rename to packages/lib/modules/featured-pools/FeaturedPools.tsx
index 90983c8c..c3f7b39a 100644
--- a/apps/frontend-v3/lib/modules/featured-pools/FeaturedPools.tsx
+++ b/packages/lib/modules/featured-pools/FeaturedPools.tsx
@@ -2,13 +2,13 @@
import { BoxProps, Card, Box, Text, HStack } from '@chakra-ui/react'
import { FeaturePoolCard } from './FeaturePoolCard'
-import { GetFeaturedPoolsQuery } from '@/lib/shared/services/api/generated/graphql'
+import { GetFeaturedPoolsQuery } from '@repo/lib/shared/services/api/generated/graphql'
import { PoolCarousel } from './PoolCarousel'
import {
FeaturedPool1SVG,
FeaturedPool2SVG,
FeaturedPool3SVG,
-} from '@/lib/shared/components/imgs/FeaturedPoolSvgs'
+} from '@repo/lib/shared/components/imgs/FeaturedPoolSvgs'
export const commonNoisyCardProps: { contentProps: BoxProps; cardProps: BoxProps } = {
contentProps: {
diff --git a/apps/frontend-v3/lib/modules/featured-pools/PoolCarousel.tsx b/packages/lib/modules/featured-pools/PoolCarousel.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/featured-pools/PoolCarousel.tsx
rename to packages/lib/modules/featured-pools/PoolCarousel.tsx
index ec279e10..429a93fc 100644
--- a/apps/frontend-v3/lib/modules/featured-pools/PoolCarousel.tsx
+++ b/packages/lib/modules/featured-pools/PoolCarousel.tsx
@@ -1,6 +1,6 @@
'use client'
-import { GetFeaturedPoolsQuery } from '@/lib/shared/services/api/generated/graphql'
+import { GetFeaturedPoolsQuery } from '@repo/lib/shared/services/api/generated/graphql'
import { useState } from 'react'
import { Box, BoxProps, Card, Center, Text } from '@chakra-ui/react'
import { FeaturePoolCard } from './FeaturePoolCard'
diff --git a/apps/frontend-v3/lib/modules/local-storage/local-storage.constants.ts b/packages/lib/modules/local-storage/local-storage.constants.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/local-storage/local-storage.constants.ts
rename to packages/lib/modules/local-storage/local-storage.constants.ts
diff --git a/apps/frontend-v3/lib/modules/marketing/ProtocolStatsSection.tsx b/packages/lib/modules/marketing/ProtocolStatsSection.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/marketing/ProtocolStatsSection.tsx
rename to packages/lib/modules/marketing/ProtocolStatsSection.tsx
index dbe24dad..54941869 100644
--- a/apps/frontend-v3/lib/modules/marketing/ProtocolStatsSection.tsx
+++ b/packages/lib/modules/marketing/ProtocolStatsSection.tsx
@@ -1,9 +1,9 @@
-import { useProtocolStats } from '@/lib/shared/hooks/useProtocolStats'
+import { useProtocolStats } from '@repo/lib/shared/hooks/useProtocolStats'
import { Center, Box, Text, SimpleGrid, Skeleton } from '@chakra-ui/react'
import { useMemo } from 'react'
-import { AnimatedNumber } from '@/lib/shared/components/marketing/AnimatedNumber'
-import { Picture } from '@/lib/shared/components/other/Picture'
-import { ParallaxImage } from '@/lib/shared/components/marketing/ParallaxImage'
+import { AnimatedNumber } from '@repo/lib/shared/components/marketing/AnimatedNumber'
+import { Picture } from '@repo/lib/shared/components/other/Picture'
+import { ParallaxImage } from '@repo/lib/shared/components/marketing/ParallaxImage'
type ProtocolStatsSectionProps = {
title: string
diff --git a/apps/frontend-v3/lib/modules/marketing/useEcosystemPoolActivity.tsx b/packages/lib/modules/marketing/useEcosystemPoolActivity.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/marketing/useEcosystemPoolActivity.tsx
rename to packages/lib/modules/marketing/useEcosystemPoolActivity.tsx
index 456ff83b..91d4722f 100644
--- a/apps/frontend-v3/lib/modules/marketing/useEcosystemPoolActivity.tsx
+++ b/packages/lib/modules/marketing/useEcosystemPoolActivity.tsx
@@ -4,23 +4,27 @@
import * as echarts from 'echarts/core'
import { useEffect, useMemo, useRef, useState } from 'react'
import { format } from 'date-fns'
-import { GqlChain, GqlPoolEventType, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import {
+ GqlChain,
+ GqlPoolEventType,
+ GqlToken,
+} from '@repo/lib/shared/services/api/generated/graphql'
import EChartsReactCore from 'echarts-for-react/lib/core'
import { ColorMode, useTheme as useChakraTheme } from '@chakra-ui/react'
import { useTheme as useNextTheme } from 'next-themes'
-import { abbreviateAddress } from '@/lib/shared/utils/addresses'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
+import { abbreviateAddress } from '@repo/lib/shared/utils/addresses'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
import {
getBlockExplorerAddressUrl,
getBlockExplorerTxUrl,
-} from '@/lib/shared/hooks/useBlockExplorer'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { NumberFormatter } from '@/lib/shared/utils/numbers'
+} from '@repo/lib/shared/hooks/useBlockExplorer'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { NumberFormatter } from '@repo/lib/shared/utils/numbers'
import { usePoolEvents } from '../pool/usePoolEvents'
import { supportedNetworks } from '../web3/ChainConfig'
-import { getChainShortName } from '@/lib/config/app.config'
+import { getChainShortName } from '@repo/lib/config/app.config'
type ChartInfoTokens = {
token?: GqlToken
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/PoolActivity.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivity/PoolActivity.tsx
similarity index 97%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/PoolActivity.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivity/PoolActivity.tsx
index 102b46b8..c26fc6e9 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/PoolActivity.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivity/PoolActivity.tsx
@@ -10,7 +10,7 @@ import {
IconButton,
} from '@chakra-ui/react'
import { Maximize2, Minimize2 } from 'react-feather'
-import ButtonGroup from '@/lib/shared/components/btns/button-group/ButtonGroup'
+import ButtonGroup from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
import { PoolActivityProvider, usePoolActivity } from './usePoolActivity'
import { PoolActivityChart } from '../PoolActivityChart/PoolActivityChart'
import { PoolActivityTable } from '../PoolActivityTable/PoolActivityTable'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/poolActivity.types.ts b/packages/lib/modules/pool/PoolDetail/PoolActivity/poolActivity.types.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/poolActivity.types.ts
rename to packages/lib/modules/pool/PoolDetail/PoolActivity/poolActivity.types.ts
index 14ae6fd9..d751e22c 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/poolActivity.types.ts
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivity/poolActivity.types.ts
@@ -1,4 +1,4 @@
-import { GqlPoolType, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolType, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { BaseVariant, PoolVariant } from '../../pool.types'
export type PoolActivityTokens = {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/usePoolActivity.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivity/usePoolActivity.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/usePoolActivity.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivity/usePoolActivity.tsx
index 2ead8372..943b2bed 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivity/usePoolActivity.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivity/usePoolActivity.tsx
@@ -1,18 +1,18 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { PropsWithChildren, createContext, useCallback, useMemo, useState } from 'react'
import { useParams } from 'next/navigation'
import { PoolVariant } from '../../pool.types'
import { usePool } from '../../PoolProvider'
-import { GqlPoolEventType } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolEventType } from '@repo/lib/shared/services/api/generated/graphql'
import { usePoolEvents } from '../../usePoolEvents'
import { slugToChainMap, ChainSlug } from '../../pool.utils'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
import { differenceInCalendarDays } from 'date-fns'
-import { fNum } from '@/lib/shared/utils/numbers'
-import { ButtonGroupOption } from '@/lib/shared/components/btns/button-group/ButtonGroup'
+import { fNum } from '@repo/lib/shared/utils/numbers'
+import { ButtonGroupOption } from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
import {
PoolActivity,
PoolActivityEl,
@@ -21,9 +21,9 @@ import {
getPoolActivityTabsList,
Sorting,
} from './poolActivity.types'
-import { PaginationState } from '@/lib/shared/components/pagination/pagination.types'
+import { PaginationState } from '@repo/lib/shared/components/pagination/pagination.types'
import { usePoolActivityViewType } from '../PoolActivityViewType/usePoolActivityViewType'
-import { sortAlphabetically } from '@/lib/shared/utils/sorting'
+import { sortAlphabetically } from '@repo/lib/shared/utils/sorting'
export type PoolActivityResponse = ReturnType
export const PoolActivityContext = createContext(null)
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityChart/PoolActivityChart.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivityChart/PoolActivityChart.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityChart/PoolActivityChart.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivityChart/PoolActivityChart.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityChart/usePoolActivityChart.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivityChart/usePoolActivityChart.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityChart/usePoolActivityChart.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivityChart/usePoolActivityChart.tsx
index 01df3570..f2699ae6 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityChart/usePoolActivityChart.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivityChart/usePoolActivityChart.tsx
@@ -5,19 +5,19 @@ import * as echarts from 'echarts/core'
import { useRef } from 'react'
import { useParams } from 'next/navigation'
import { secondsToMilliseconds, differenceInDays, format } from 'date-fns'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import EChartsReactCore from 'echarts-for-react/lib/core'
import { ChainSlug, slugToChainMap } from '../../pool.utils'
import { ColorMode, useTheme as useChakraTheme } from '@chakra-ui/react'
import { useTheme as useNextTheme } from 'next-themes'
-import { abbreviateAddress } from '@/lib/shared/utils/addresses'
+import { abbreviateAddress } from '@repo/lib/shared/utils/addresses'
import {
getBlockExplorerAddressUrl,
getBlockExplorerTxUrl,
-} from '@/lib/shared/hooks/useBlockExplorer'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { NumberFormatter } from '@/lib/shared/utils/numbers'
+} from '@repo/lib/shared/hooks/useBlockExplorer'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { NumberFormatter } from '@repo/lib/shared/utils/numbers'
import { usePoolActivity } from '../PoolActivity/usePoolActivity'
import {
PoolActivityMetaData,
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTable.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTable.tsx
similarity index 84%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTable.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTable.tsx
index 5e275497..6a6f3112 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTable.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTable.tsx
@@ -1,14 +1,14 @@
'use client'
-import { PaginatedTable } from '@/lib/shared/components/tables/PaginatedTable'
+import { PaginatedTable } from '@repo/lib/shared/components/tables/PaginatedTable'
import { PoolActivityTableHeader } from './PoolActivityTableHeader'
import { PoolActivityTableRow } from './PoolActivityTableRow'
-import { getPaginationProps } from '@/lib/shared/components/pagination/getPaginationProps'
+import { getPaginationProps } from '@repo/lib/shared/components/pagination/getPaginationProps'
import { Box, Skeleton } from '@chakra-ui/react'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
import { usePoolActivity } from '../PoolActivity/usePoolActivity'
import { PoolActivityEl } from '../PoolActivity/poolActivity.types'
-import { Pagination } from '@/lib/shared/components/pagination/Pagination'
+import { Pagination } from '@repo/lib/shared/components/pagination/Pagination'
export function PoolActivityTable() {
const isMounted = useIsMounted()
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableHeader.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableHeader.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableHeader.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableHeader.tsx
index 21bb6ad8..506839ea 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableHeader.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableHeader.tsx
@@ -3,7 +3,7 @@
import { Divider, Grid, GridItem, Text } from '@chakra-ui/react'
import { usePoolActivity } from '../PoolActivity/usePoolActivity'
import { Sorting, SortingBy } from '../PoolActivity/poolActivity.types'
-import { SortableHeader } from '@/lib/shared/components/tables/SortableHeader'
+import { SortableHeader } from '@repo/lib/shared/components/tables/SortableHeader'
export function PoolActivityTableHeader({ ...rest }) {
const {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableRow.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableRow.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableRow.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableRow.tsx
index e6723dee..e9285603 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableRow.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivityTable/PoolActivityTableRow.tsx
@@ -11,24 +11,24 @@ import {
Badge,
BadgeProps,
} from '@chakra-ui/react'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
import { formatDistanceToNow, secondsToMilliseconds } from 'date-fns'
-import { abbreviateAddress } from '@/lib/shared/utils/addresses'
+import { abbreviateAddress } from '@repo/lib/shared/utils/addresses'
import { useEnsAvatar, useEnsName } from 'wagmi'
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import { createAvatar } from '@dicebear/core'
import { identicon } from '@dicebear/collection'
import { ArrowUpRight } from 'react-feather'
import {
getBlockExplorerAddressUrl,
getBlockExplorerTxUrl,
-} from '@/lib/shared/hooks/useBlockExplorer'
+} from '@repo/lib/shared/hooks/useBlockExplorer'
import { PoolActivityEl, PoolActivityTokens } from '../PoolActivity/poolActivity.types'
-import { TokenIcon } from '@/lib/modules/tokens/TokenIcon'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { TokenIcon } from '@repo/lib/modules/tokens/TokenIcon'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import React from 'react'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { usePool } from '../../PoolProvider'
interface Props extends GridProps {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityViewType/PoolActivityViewType.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivityViewType/PoolActivityViewType.tsx
similarity index 82%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityViewType/PoolActivityViewType.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivityViewType/PoolActivityViewType.tsx
index 43c43e5b..c8002e3a 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityViewType/PoolActivityViewType.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivityViewType/PoolActivityViewType.tsx
@@ -3,10 +3,10 @@
import { PoolActivityView, usePoolActivityViewType } from './usePoolActivityViewType'
import ButtonGroup, {
ButtonGroupOption,
-} from '@/lib/shared/components/btns/button-group/ButtonGroup'
+} from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
import { useEffect, useState } from 'react'
-import { ChartBubbleIcon } from '@/lib/shared/components/icons/ChartBubbleIcon'
-import { TableIcon } from '@/lib/shared/components/icons/TableIcon'
+import { ChartBubbleIcon } from '@repo/lib/shared/components/icons/ChartBubbleIcon'
+import { TableIcon } from '@repo/lib/shared/components/icons/TableIcon'
const options: ButtonGroupOption[] = [
{
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityViewType/usePoolActivityViewType.tsx b/packages/lib/modules/pool/PoolDetail/PoolActivityViewType/usePoolActivityViewType.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityViewType/usePoolActivityViewType.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolActivityViewType/usePoolActivityViewType.tsx
index 98afbe6f..579d95f4 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolActivityViewType/usePoolActivityViewType.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolActivityViewType/usePoolActivityViewType.tsx
@@ -1,4 +1,4 @@
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { createContext, PropsWithChildren, useMemo, useState } from 'react'
export enum PoolActivityView {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolComposition/PoolComposition.tsx b/packages/lib/modules/pool/PoolDetail/PoolComposition/PoolComposition.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolComposition/PoolComposition.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolComposition/PoolComposition.tsx
index 39ffe243..f5f6fac4 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolComposition/PoolComposition.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolComposition/PoolComposition.tsx
@@ -4,15 +4,15 @@ import { Card, Divider, HStack, Heading, Skeleton, Stack, Text, VStack } from '@
import React from 'react'
import { usePool } from '../../PoolProvider'
import { Address } from 'viem'
-import { GqlChain, GqlPoolTokenDetail } from '@/lib/shared/services/api/generated/graphql'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { fNum } from '@/lib/shared/utils/numbers'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
-import { PoolZenGarden } from '@/lib/shared/components/zen/ZenGarden'
+import { GqlChain, GqlPoolTokenDetail } from '@repo/lib/shared/services/api/generated/graphql'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { fNum } from '@repo/lib/shared/utils/numbers'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
+import { PoolZenGarden } from '@repo/lib/shared/components/zen/ZenGarden'
import { PoolWeightChart } from '../PoolWeightCharts/PoolWeightChart'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import TokenRow from '@/lib/modules/tokens/TokenRow/TokenRow'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import TokenRow from '@repo/lib/modules/tokens/TokenRow/TokenRow'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
import { getPoolDisplayTokens } from '../../pool.utils'
type CardContentProps = {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolComposition/usePoolComposition.ts b/packages/lib/modules/pool/PoolDetail/PoolComposition/usePoolComposition.ts
similarity index 84%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolComposition/usePoolComposition.ts
rename to packages/lib/modules/pool/PoolDetail/PoolComposition/usePoolComposition.ts
index 79d89758..47eaacfe 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolComposition/usePoolComposition.ts
+++ b/packages/lib/modules/pool/PoolDetail/PoolComposition/usePoolComposition.ts
@@ -1,7 +1,7 @@
import { useMemo } from 'react'
import { usePool } from '../../PoolProvider'
-import { GqlPoolTokenDetail } from '@/lib/shared/services/api/generated/graphql'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { GqlPoolTokenDetail } from '@repo/lib/shared/services/api/generated/graphql'
+import { fNum } from '@repo/lib/shared/utils/numbers'
type CompositionRow = {
symbol: string
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolDetail.tsx b/packages/lib/modules/pool/PoolDetail/PoolDetail.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolDetail.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolDetail.tsx
index 25ff7b0d..e4a5352d 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolDetail.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolDetail.tsx
@@ -16,9 +16,9 @@ import { useUserAccount } from '../../web3/UserAccountProvider'
import PoolUserEvents from './PoolUserEvents'
import { hasTotalBalance } from '../user-balance.helpers'
import { usePoolEvents } from '../usePoolEvents'
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
-import { CowFooter } from '@/app/(app)/pools/cow/CowFooter'
-import { CowPoolBanner } from '@/app/(app)/pools/cow/CowPoolBanner'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
+import { CowFooter } from '@repo/lib/shared/components/navs/CowFooter'
+import { CowPoolBanner } from '@repo/lib/shared/components/navs/CowPoolBanner'
import { PoolActivity } from './PoolActivity/PoolActivity'
export function PoolDetail() {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolDetailSkeleton.tsx b/packages/lib/modules/pool/PoolDetail/PoolDetailSkeleton.tsx
similarity index 87%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolDetailSkeleton.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolDetailSkeleton.tsx
index 07217cc4..a157991a 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolDetailSkeleton.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolDetailSkeleton.tsx
@@ -1,4 +1,4 @@
-import { DefaultPageContainer } from '@/lib/shared/components/containers/DefaultPageContainer'
+import { DefaultPageContainer } from '@repo/lib/shared/components/containers/DefaultPageContainer'
import { HStack, Skeleton, VStack } from '@chakra-ui/react'
export function PoolDetailSkeleton() {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolBadges.tsx b/packages/lib/modules/pool/PoolDetail/PoolHeader/PoolBadges.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolBadges.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolHeader/PoolBadges.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolBreadcrumbs.tsx b/packages/lib/modules/pool/PoolDetail/PoolHeader/PoolBreadcrumbs.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolBreadcrumbs.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolHeader/PoolBreadcrumbs.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolHeader.tsx b/packages/lib/modules/pool/PoolDetail/PoolHeader/PoolHeader.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolHeader.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolHeader/PoolHeader.tsx
index d4bea12b..37c7571a 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolHeader.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolHeader/PoolHeader.tsx
@@ -4,13 +4,13 @@ import PoolMetaBadges from './PoolMetaBadges'
import { usePool } from '../../PoolProvider'
import { isFx, shouldBlockAddLiquidity } from '../../pool.helpers'
-import { AnalyticsEvent, trackEvent } from '@/lib/shared/services/fathom/Fathom'
+import { AnalyticsEvent, trackEvent } from '@repo/lib/shared/services/fathom/Fathom'
import { PoolCategories } from '../../categories/PoolCategories'
import { PoolBreadcrumbs } from './PoolBreadcrumbs'
import {
PartnerRedirectModal,
RedirectPartner,
-} from '@/lib/shared/components/modals/PartnerRedirectModal'
+} from '@repo/lib/shared/components/modals/PartnerRedirectModal'
import { useState } from 'react'
import { getXavePoolLink } from '../../pool.utils'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolMetaBadges.tsx b/packages/lib/modules/pool/PoolDetail/PoolHeader/PoolMetaBadges.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolMetaBadges.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolHeader/PoolMetaBadges.tsx
index f438e242..79590706 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolHeader/PoolMetaBadges.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolHeader/PoolMetaBadges.tsx
@@ -11,11 +11,11 @@ import {
} from '@chakra-ui/react'
import { usePool } from '../../PoolProvider'
import Image from 'next/image'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import { Repeat } from 'react-feather'
import { PoolListTokenPills } from '../../PoolList/PoolListTokenPills'
import { shouldHideSwapFee } from '../../pool.utils'
-import { getChainShortName } from '@/lib/config/app.config'
+import { getChainShortName } from '@repo/lib/config/app.config'
export default function PoolMetaBadges() {
const { pool, chain } = usePool()
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/PoolAttributes.tsx b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/PoolAttributes.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/PoolAttributes.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/PoolAttributes.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/useFormattedPoolAttributes.tsx b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/useFormattedPoolAttributes.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/useFormattedPoolAttributes.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/useFormattedPoolAttributes.tsx
index f49b69b5..7fd48bf5 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/useFormattedPoolAttributes.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolAttributes/useFormattedPoolAttributes.tsx
@@ -3,12 +3,12 @@
import { useMemo } from 'react'
import { usePool } from '../../../PoolProvider'
import { format } from 'date-fns'
-import { DELEGATE_OWNER } from '@/lib/config/app.config'
+import { DELEGATE_OWNER } from '@repo/lib/config/app.config'
import { zeroAddress } from 'viem'
-import { abbreviateAddress } from '@/lib/shared/utils/addresses'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { abbreviateAddress } from '@repo/lib/shared/utils/addresses'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import { bptUsdValue, isCowAmmPool, isStable } from '../../../pool.helpers'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { getPoolTypeLabel, shouldHideSwapFee } from '../../../pool.utils'
export function useFormattedPoolAttributes() {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolContracts.tsx b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolContracts.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolContracts.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolInfo/PoolContracts.tsx
index 5dab738d..138c8bbc 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolContracts.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolContracts.tsx
@@ -1,6 +1,6 @@
'use client'
-import { abbreviateAddress } from '@/lib/shared/utils/addresses'
+import { abbreviateAddress } from '@repo/lib/shared/utils/addresses'
import {
Box,
Card,
@@ -22,15 +22,15 @@ import {
import { usePool } from '../../PoolProvider'
import { ArrowUpRight } from 'react-feather'
import { useMemo } from 'react'
-import { GqlPriceRateProviderData, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPriceRateProviderData, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { Address, zeroAddress } from 'viem'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { TokenIcon } from '@/lib/modules/tokens/TokenIcon'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { TokenIcon } from '@repo/lib/modules/tokens/TokenIcon'
import { AlertTriangle, XCircle } from 'react-feather'
import Image from 'next/image'
import { RateProviderInfoPopOver } from './RateProviderInfo'
-import { getBlockExplorerAddressUrl } from '@/lib/shared/hooks/useBlockExplorer'
-import { getRateProviderWarnings } from '@/lib/modules/pool/pool.helpers'
+import { getBlockExplorerAddressUrl } from '@repo/lib/shared/hooks/useBlockExplorer'
+import { getRateProviderWarnings } from '@repo/lib/modules/pool/pool.helpers'
type RateProvider = {
tokenAddress: Address
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolInfoLayout.tsx b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolInfoLayout.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolInfoLayout.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolInfo/PoolInfoLayout.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/PoolRisks.tsx b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/PoolRisks.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/PoolRisks.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/PoolRisks.tsx
index 0a20084f..cd78f477 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/PoolRisks.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/PoolRisks.tsx
@@ -12,7 +12,7 @@ import {
VStack,
} from '@chakra-ui/react'
import { usePool } from '../../../PoolProvider'
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
import { getPoolRisks, risksTitle } from './usePoolRisks'
interface RisksListProps {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/usePoolRisks.ts b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/usePoolRisks.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/usePoolRisks.ts
rename to packages/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/usePoolRisks.ts
index a24b7eab..60d6776d 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/usePoolRisks.ts
+++ b/packages/lib/modules/pool/PoolDetail/PoolInfo/PoolRisks/usePoolRisks.ts
@@ -1,4 +1,4 @@
-import { GqlChain, GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
import { isMetaStable, isStable, isWeighted, isGyro } from '../../../pool.helpers'
import { zeroAddress } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/RateProviderInfo.tsx b/packages/lib/modules/pool/PoolDetail/PoolInfo/RateProviderInfo.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/RateProviderInfo.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolInfo/RateProviderInfo.tsx
index aab01eaa..fe650712 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolInfo/RateProviderInfo.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolInfo/RateProviderInfo.tsx
@@ -1,5 +1,5 @@
-import { TokenIcon } from '@/lib/modules/tokens/TokenIcon'
-import { GqlPriceRateProviderData, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { TokenIcon } from '@repo/lib/modules/tokens/TokenIcon'
+import { GqlPriceRateProviderData, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import {
Popover,
PopoverTrigger,
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolMyLiquidity.tsx b/packages/lib/modules/pool/PoolDetail/PoolMyLiquidity.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolMyLiquidity.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolMyLiquidity.tsx
index 62bc1e79..f2da624e 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolMyLiquidity.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolMyLiquidity.tsx
@@ -3,7 +3,7 @@
import TokenRow from '../../tokens/TokenRow/TokenRow'
import ButtonGroup, {
ButtonGroupOption,
-} from '@/lib/shared/components/btns/button-group/ButtonGroup'
+} from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
import {
Divider,
Button,
@@ -21,7 +21,7 @@ import React, { useMemo, useState, useLayoutEffect } from 'react'
import { usePool } from '../PoolProvider'
import { Address } from 'viem'
import { usePathname, useRouter } from 'next/navigation'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { keyBy } from 'lodash'
import {
getAuraPoolLink,
@@ -29,7 +29,7 @@ import {
getXavePoolLink,
} from '../pool.utils'
import { useUserAccount } from '../../web3/UserAccountProvider'
-import { bn, fNum } from '@/lib/shared/utils/numbers'
+import { bn, fNum } from '@repo/lib/shared/utils/numbers'
import {
getUserTotalBalanceInt,
getUserWalletBalanceInt,
@@ -45,14 +45,14 @@ import { isVebalPool, shouldBlockAddLiquidity, calcUserShareOfPool, isFx } from
import { getCanStake, migrateStakeTooltipLabel } from '../actions/stake.helpers'
import { InfoOutlineIcon } from '@chakra-ui/icons'
-import { GqlPoolStakingType } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolStakingType } from '@repo/lib/shared/services/api/generated/graphql'
import { ArrowUpRight } from 'react-feather'
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import { VeBalLink } from '../../vebal/VebalRedirectModal'
import {
PartnerRedirectModal,
RedirectPartner,
-} from '@/lib/shared/components/modals/PartnerRedirectModal'
+} from '@repo/lib/shared/components/modals/PartnerRedirectModal'
function getTabs(isVeBalPool: boolean) {
return [
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/PoolCharts.tsx b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/PoolCharts.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/PoolCharts.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/PoolCharts.tsx
index 8a4be7a8..ec403608 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/PoolCharts.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/PoolCharts.tsx
@@ -20,10 +20,10 @@ import {
usePoolCharts,
PoolChartPeriod,
} from './usePoolCharts'
-import ButtonGroup from '@/lib/shared/components/btns/button-group/ButtonGroup'
+import ButtonGroup from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
import { GroupBase, OptionBase, Select, SingleValue } from 'chakra-react-select'
-import { getSelectStyles } from '@/lib/shared/services/chakra/custom/chakra-react-select'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
+import { getSelectStyles } from '@repo/lib/shared/services/chakra/custom/chakra-react-select'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
type PeriodOption = PoolChartPeriod & OptionBase
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/usePoolCharts.tsx b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/usePoolCharts.tsx
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/usePoolCharts.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/usePoolCharts.tsx
index 491def1c..d7b9deef 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/usePoolCharts.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolCharts/usePoolCharts.tsx
@@ -6,14 +6,14 @@ import {
GqlPoolType,
GqlPoolSnapshotDataRange,
GqlChain,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { useQuery } from '@apollo/experimental-nextjs-app-support/ssr'
import { useCallback, useMemo, useState } from 'react'
import { useParams } from 'next/navigation'
import { usePool } from '../../../PoolProvider'
import { PoolVariant, BaseVariant } from '../../../pool.types'
-import { NumberFormatter } from '@/lib/shared/utils/numbers'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { NumberFormatter } from '@repo/lib/shared/utils/numbers'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { useTheme as useNextTheme } from 'next-themes'
import { isCowAmmPool } from '../../../pool.helpers'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshot.tsx b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshot.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshot.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshot.tsx
index ec2edfb8..158d0a17 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshot.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshot.tsx
@@ -3,11 +3,11 @@
import React, { useEffect, useState } from 'react'
import { Box, BoxProps, Card, CardProps, VStack } from '@chakra-ui/react'
import { usePool } from '../../../PoolProvider'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
-import { ZenGarden } from '@/lib/shared/components/zen/ZenGarden'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
+import { ZenGarden } from '@repo/lib/shared/components/zen/ZenGarden'
import ButtonGroup, {
ButtonGroupOption,
-} from '@/lib/shared/components/btns/button-group/ButtonGroup'
+} from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
import { UserSnapshotValues } from './UserSnapshotValues'
import { PoolSnapshotValues } from './PoolSnapshotValues'
import { hasTotalBalance } from '../../../user-balance.helpers'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshotValues.tsx b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshotValues.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshotValues.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshotValues.tsx
index 1b6e63e2..fbb31cf2 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshotValues.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/PoolSnapshotValues.tsx
@@ -2,15 +2,15 @@
import React, { memo, useMemo } from 'react'
import { HStack, Heading, Skeleton, Text, VStack } from '@chakra-ui/react'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { TokenIconStack } from '../../../../tokens/TokenIconStack'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { SECONDS_IN_DAY } from '@/test/utils/numbers'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { SECONDS_IN_DAY } from '@repo/lib/test/utils/numbers'
import { sumBy } from 'lodash'
import { useTokens } from '../../../../tokens/TokensProvider'
import { usePool } from '../../../PoolProvider'
-import { bn } from '@/lib/shared/utils/numbers'
-import MainAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
+import { bn } from '@repo/lib/shared/utils/numbers'
+import MainAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
import { isCowAmmPool } from '../../../pool.helpers'
type PoolStatsValues = {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/UserSnapshotValues.tsx b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/UserSnapshotValues.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/UserSnapshotValues.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/UserSnapshotValues.tsx
index e717af94..ddba96a8 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/UserSnapshotValues.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolSnapshot/UserSnapshotValues.tsx
@@ -3,18 +3,18 @@
import React, { memo, useMemo } from 'react'
import { Button, HStack, Heading, Skeleton, Text, Tooltip, VStack } from '@chakra-ui/react'
import { TokenIconStack } from '../../../../tokens/TokenIconStack'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { SECONDS_IN_DAY } from '@/test/utils/numbers'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { SECONDS_IN_DAY } from '@repo/lib/test/utils/numbers'
import { sumBy, isEmpty } from 'lodash'
import { useTokens } from '../../../../tokens/TokensProvider'
import { useVebalBoost } from '../../../../vebal/useVebalBoost'
import { useClaim } from '../../../actions/claim/ClaimProvider'
import { getTotalAprRaw } from '../../../pool.utils'
import { usePool } from '../../../PoolProvider'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { ClaimModal } from '../../../actions/claim/ClaimModal'
-import MainAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
+import MainAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
import { calcTotalStakedBalanceUsd } from '../../../user-balance.helpers'
export type PoolMyStatsValues = {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolStatsLayout.tsx b/packages/lib/modules/pool/PoolDetail/PoolStats/PoolStatsLayout.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolStats/PoolStatsLayout.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolStats/PoolStatsLayout.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolUserEvents.tsx b/packages/lib/modules/pool/PoolDetail/PoolUserEvents.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolUserEvents.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolUserEvents.tsx
index b71bf59a..3ba78f3f 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolUserEvents.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolUserEvents.tsx
@@ -13,16 +13,16 @@ import {
} from '@chakra-ui/react'
import { usePool } from '../PoolProvider'
import { useEffect, useLayoutEffect, useMemo, useState } from 'react'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { GetPoolEventsQuery, GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { TokenIcon } from '@/lib/modules/tokens/TokenIcon'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { GetPoolEventsQuery, GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { TokenIcon } from '@repo/lib/modules/tokens/TokenIcon'
import { formatDistanceToNow, secondsToMilliseconds } from 'date-fns'
-import { useBlockExplorer } from '@/lib/shared/hooks/useBlockExplorer'
+import { useBlockExplorer } from '@repo/lib/shared/hooks/useBlockExplorer'
import { ArrowUpRight } from 'react-feather'
import { PoolEventItem } from '../usePoolEvents'
import { calcTotalStakedBalance, getUserTotalBalance } from '../user-balance.helpers'
-import { fNum, bn } from '@/lib/shared/utils/numbers'
-import { useVebalBoost } from '@/lib/modules/vebal/useVebalBoost'
+import { fNum, bn } from '@repo/lib/shared/utils/numbers'
+import { useVebalBoost } from '@repo/lib/modules/vebal/useVebalBoost'
import { isEmpty } from 'lodash'
import { isVebalPool } from '../pool.helpers'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/FeaturedPoolWeightChart.tsx b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/FeaturedPoolWeightChart.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/FeaturedPoolWeightChart.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolWeightCharts/FeaturedPoolWeightChart.tsx
index fb627860..0733f483 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/FeaturedPoolWeightChart.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/FeaturedPoolWeightChart.tsx
@@ -1,9 +1,9 @@
'use client'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { GqlPoolTokenDetail } from '@/lib/shared/services/api/generated/graphql'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
-import { useThemeColorMode } from '@/lib/shared/services/chakra/useThemeColorMode'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { GqlPoolTokenDetail } from '@repo/lib/shared/services/api/generated/graphql'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
+import { useThemeColorMode } from '@repo/lib/shared/services/chakra/useThemeColorMode'
import { Box, VStack, useTheme } from '@chakra-ui/react'
import EChartsReactCore from 'echarts-for-react/lib/core'
import { motion } from 'framer-motion'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChart.tsx b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChart.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChart.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChart.tsx
index 90c7f78b..c5fbcf5d 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChart.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChart.tsx
@@ -1,8 +1,8 @@
'use client'
-import { GqlChain, GqlPoolTokenDetail } from '@/lib/shared/services/api/generated/graphql'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
-import { useThemeColorMode } from '@/lib/shared/services/chakra/useThemeColorMode'
+import { GqlChain, GqlPoolTokenDetail } from '@repo/lib/shared/services/api/generated/graphql'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
+import { useThemeColorMode } from '@repo/lib/shared/services/chakra/useThemeColorMode'
import { Box, VStack, useTheme } from '@chakra-ui/react'
import EChartsReactCore from 'echarts-for-react/lib/core'
import { motion } from 'framer-motion'
@@ -11,8 +11,8 @@ import PoolWeightChartLegend from './PoolWeightChartLegend'
import Image from 'next/image'
import ReactECharts from 'echarts-for-react'
import * as echarts from 'echarts/core'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { fNum } from '@repo/lib/shared/utils/numbers'
export interface PoolWeightChartProps {
displayTokens: GqlPoolTokenDetail[]
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartChainIcon.tsx b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartChainIcon.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartChainIcon.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartChainIcon.tsx
index d7d2a710..e57be068 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartChainIcon.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartChainIcon.tsx
@@ -1,4 +1,4 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { Box } from '@chakra-ui/react'
import { motion } from 'framer-motion'
import Image from 'next/image'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartLegend.tsx b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartLegend.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartLegend.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartLegend.tsx
index 62b078bb..e95142a9 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartLegend.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/PoolWeightChartLegend.tsx
@@ -1,6 +1,6 @@
import { Box, HStack, Text } from '@chakra-ui/react'
import { PoolWeightChartColorDef } from './PoolWeightChart'
-import { GqlPoolTokenDetail } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolTokenDetail } from '@repo/lib/shared/services/api/generated/graphql'
export default function PoolWeightChartLegend({
displayTokens,
diff --git a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/StakedBalanceDistributionChart.tsx b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/StakedBalanceDistributionChart.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/StakedBalanceDistributionChart.tsx
rename to packages/lib/modules/pool/PoolDetail/PoolWeightCharts/StakedBalanceDistributionChart.tsx
index 27e3d573..1fa337fc 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolDetail/PoolWeightCharts/StakedBalanceDistributionChart.tsx
+++ b/packages/lib/modules/pool/PoolDetail/PoolWeightCharts/StakedBalanceDistributionChart.tsx
@@ -6,8 +6,8 @@ import ReactECharts from 'echarts-for-react'
import EChartsReactCore from 'echarts-for-react/lib/core'
import { motion } from 'framer-motion'
import { ChartSizeValues } from './PoolWeightChart'
-import { useThemeColorMode } from '@/lib/shared/services/chakra/useThemeColorMode'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
+import { useThemeColorMode } from '@repo/lib/shared/services/chakra/useThemeColorMode'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
import { Pool } from '../../PoolProvider'
import { calcTotalStakedBalanceUsd, getUserWalletBalanceUsd } from '../../user-balance.helpers'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolLink.tsx b/packages/lib/modules/pool/PoolLink.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/PoolLink.tsx
rename to packages/lib/modules/pool/PoolLink.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolList.tsx b/packages/lib/modules/pool/PoolList/PoolList.tsx
similarity index 61%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolList.tsx
rename to packages/lib/modules/pool/PoolList/PoolList.tsx
index 37298419..8f1d8b63 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolList.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolList.tsx
@@ -1,6 +1,6 @@
-import { PoolListProvider } from '@/lib/modules/pool/PoolList/PoolListProvider'
+import { PoolListProvider } from '@repo/lib/modules/pool/PoolList/PoolListProvider'
import { PoolListLayout } from './PoolListLayout'
-import { GqlPoolType } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolType } from '@repo/lib/shared/services/api/generated/graphql'
export async function PoolList({ fixedPoolTypes }: { fixedPoolTypes?: GqlPoolType[] }) {
return (
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx b/packages/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx
rename to packages/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx
index 73286580..e090db49 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx
@@ -1,11 +1,11 @@
import { Card, HStack, VStack, Text, Grid, GridItem } from '@chakra-ui/react'
import { PoolListItem } from '../../pool.types'
-import MainAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
+import MainAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
import { ReactNode, isValidElement, memo } from 'react'
-import { NetworkIcon } from '@/lib/shared/components/icons/NetworkIcon'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { NetworkIcon } from '@repo/lib/shared/components/icons/NetworkIcon'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { usePoolListQueryState } from '../usePoolListQueryState'
-import { TokenIconStack } from '@/lib/modules/tokens/TokenIconStack'
+import { TokenIconStack } from '@repo/lib/modules/tokens/TokenIconStack'
import {
getPoolTypeLabel,
getTotalAprLabel,
@@ -14,7 +14,7 @@ import {
} from '../../pool.utils'
import { useRouter } from 'next/navigation'
import { PoolName } from '../../PoolName'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
import { getUserTotalBalanceUsd } from '../../user-balance.helpers'
interface Props {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx b/packages/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx
similarity index 87%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx
rename to packages/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx
index 56f6caf7..d662d423 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx
@@ -2,11 +2,11 @@
import { Box, Center, Grid, Skeleton, Text } from '@chakra-ui/react'
import { PoolListCard } from './PoolListCard'
-import { Pagination } from '@/lib/shared/components/pagination/Pagination'
+import { Pagination } from '@repo/lib/shared/components/pagination/Pagination'
import { usePoolListQueryState } from '../usePoolListQueryState'
-import { getPaginationProps } from '@/lib/shared/components/pagination/getPaginationProps'
+import { getPaginationProps } from '@repo/lib/shared/components/pagination/getPaginationProps'
import { PoolListItem } from '../../pool.types'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
interface Props {
pools: PoolListItem[]
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListFilters.tsx b/packages/lib/modules/pool/PoolList/PoolListFilters.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListFilters.tsx
rename to packages/lib/modules/pool/PoolList/PoolListFilters.tsx
index 5cc6f12c..0b3af8b8 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListFilters.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListFilters.tsx
@@ -32,7 +32,7 @@ import {
VStack,
} from '@chakra-ui/react'
import { PoolListSearch } from './PoolListSearch'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
import { usePoolListQueryState } from './usePoolListQueryState'
import {
PoolFilterType,
@@ -40,19 +40,19 @@ import {
PoolCategoryType,
poolCategoryFilters,
} from '../pool.types'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useEffect, useState } from 'react'
import { Filter } from 'react-feather'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { useDebouncedCallback } from 'use-debounce'
-import { defaultDebounceMs } from '@/lib/shared/utils/queries'
+import { defaultDebounceMs } from '@repo/lib/shared/utils/queries'
import { motion, AnimatePresence } from 'framer-motion'
-import { staggeredFadeInUp } from '@/lib/shared/utils/animations'
-import { getChainShortName } from '@/lib/config/app.config'
+import { staggeredFadeInUp } from '@repo/lib/shared/utils/animations'
+import { getChainShortName } from '@repo/lib/config/app.config'
import { usePoolList } from './PoolListProvider'
-import { MultiSelect } from '@/lib/shared/components/inputs/MultiSelect'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { MultiSelect } from '@repo/lib/shared/components/inputs/MultiSelect'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import Image from 'next/image'
const SLIDER_MAX_VALUE = 10000000
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListLayout.tsx b/packages/lib/modules/pool/PoolList/PoolListLayout.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListLayout.tsx
rename to packages/lib/modules/pool/PoolList/PoolListLayout.tsx
index 3f7291a6..d23b1700 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListLayout.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListLayout.tsx
@@ -5,9 +5,9 @@ import { motion } from 'framer-motion'
import { FilterTags, PoolListFilters, useFilterTagsVisible } from './PoolListFilters'
import { PoolListTable } from './PoolListTable/PoolListTable'
import { usePoolList } from './PoolListProvider'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import { ErrorBoundary } from 'react-error-boundary'
-import { BoundaryError } from '@/lib/shared/components/errors/ErrorBoundary'
+import { BoundaryError } from '@repo/lib/shared/components/errors/ErrorBoundary'
export function PoolListLayout() {
const { pools, loading, count } = usePoolList()
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListProvider.spec.tsx b/packages/lib/modules/pool/PoolList/PoolListProvider.spec.tsx
similarity index 66%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListProvider.spec.tsx
rename to packages/lib/modules/pool/PoolList/PoolListProvider.spec.tsx
index 262c87ed..aaf21e6d 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListProvider.spec.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListProvider.spec.tsx
@@ -1,7 +1,7 @@
-import { PoolList as PoolListType } from '@/lib/modules/pool/pool.types'
-import { defaultPoolListMock, mockPoolList } from '@/test/msw/handlers/PoolList.handlers'
-import { aGqlPoolMinimalMock } from '@/test/msw/builders/gqlPoolMinimal.builders'
-import { testHook } from '@/test/utils/custom-renderers'
+import { PoolList as PoolListType } from '@repo/lib/modules/pool/pool.types'
+import { defaultPoolListMock, mockPoolList } from '@repo/lib/test/msw/handlers/PoolList.handlers'
+import { aGqlPoolMinimalMock } from '@repo/lib/test/msw/builders/gqlPoolMinimal.builders'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { _usePoolList } from './PoolListProvider'
async function renderUsePoolsList() {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListProvider.tsx b/packages/lib/modules/pool/PoolList/PoolListProvider.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListProvider.tsx
rename to packages/lib/modules/pool/PoolList/PoolListProvider.tsx
index a634b495..8f456639 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListProvider.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListProvider.tsx
@@ -2,10 +2,10 @@
'use client'
import { createContext, PropsWithChildren, useEffect } from 'react'
-import { GetPoolsDocument, GqlPoolType } from '@/lib/shared/services/api/generated/graphql'
+import { GetPoolsDocument, GqlPoolType } from '@repo/lib/shared/services/api/generated/graphql'
import { useQuery } from '@apollo/experimental-nextjs-app-support/ssr'
import { usePoolListQueryState } from './usePoolListQueryState'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { useUserAccount } from '../../web3/UserAccountProvider'
import { isAddress } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListSearch.tsx b/packages/lib/modules/pool/PoolList/PoolListSearch.tsx
similarity index 89%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListSearch.tsx
rename to packages/lib/modules/pool/PoolList/PoolListSearch.tsx
index acc09936..efff6f8f 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListSearch.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListSearch.tsx
@@ -1,7 +1,7 @@
import { FormControl, Box } from '@chakra-ui/react'
import { usePoolListQueryState } from './usePoolListQueryState'
import { usePoolList } from './PoolListProvider'
-import { SearchInput } from '@/lib/shared/components/inputs/SearchInput'
+import { SearchInput } from '@repo/lib/shared/components/inputs/SearchInput'
export function PoolListSearch() {
const { searchText, setSearch } = usePoolListQueryState()
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListSortType.tsx b/packages/lib/modules/pool/PoolList/PoolListSortType.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListSortType.tsx
rename to packages/lib/modules/pool/PoolList/PoolListSortType.tsx
index 93f3c473..7d8c10c0 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListSortType.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListSortType.tsx
@@ -6,8 +6,8 @@ import { orderByHash, SortingState } from '../pool.types'
import { usePoolOrderByState } from './usePoolOrderByState'
import { GroupBase, OptionBase, Select, SingleValue } from 'chakra-react-select'
import { ReactNode, useMemo } from 'react'
-import { getSelectStyles } from '@/lib/shared/services/chakra/custom/chakra-react-select'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import { getSelectStyles } from '@repo/lib/shared/services/chakra/custom/chakra-react-select'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
interface SortOption extends OptionBase {
label: ReactNode
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListSortButton.tsx b/packages/lib/modules/pool/PoolList/PoolListTable/PoolListSortButton.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListSortButton.tsx
rename to packages/lib/modules/pool/PoolList/PoolListTable/PoolListSortButton.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx b/packages/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx
similarity index 88%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx
rename to packages/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx
index 7fd1eeb9..2f1e8cd3 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx
@@ -1,13 +1,13 @@
'use client'
import { usePoolListQueryState } from '../usePoolListQueryState'
-import { PaginatedTable } from '@/lib/shared/components/tables/PaginatedTable'
+import { PaginatedTable } from '@repo/lib/shared/components/tables/PaginatedTable'
import { PoolListTableHeader } from './PoolListTableHeader'
import { PoolListTableRow } from './PoolListTableRow'
-import { getPaginationProps } from '@/lib/shared/components/pagination/getPaginationProps'
+import { getPaginationProps } from '@repo/lib/shared/components/pagination/getPaginationProps'
import { PoolListItem } from '../../pool.types'
import { Card, Skeleton } from '@chakra-ui/react'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
interface Props {
pools: PoolListItem[]
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTableHeader.tsx b/packages/lib/modules/pool/PoolList/PoolListTable/PoolListTableHeader.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTableHeader.tsx
rename to packages/lib/modules/pool/PoolList/PoolListTable/PoolListTableHeader.tsx
index d00c7e46..5a1d0ca4 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTableHeader.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListTable/PoolListTableHeader.tsx
@@ -2,11 +2,11 @@
import { Grid, GridItem, Icon, Text, VStack } from '@chakra-ui/react'
import { usePoolListQueryState } from '../usePoolListQueryState'
-import { GqlPoolOrderBy } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolOrderBy } from '@repo/lib/shared/services/api/generated/graphql'
import { PoolsColumnSort, orderByHash } from '../../pool.types'
import { usePoolOrderByState } from '../usePoolOrderByState'
import { Globe } from 'react-feather'
-import { SortableHeader } from '@/lib/shared/components/tables/SortableHeader'
+import { SortableHeader } from '@repo/lib/shared/components/tables/SortableHeader'
const setIsDesc = (id: GqlPoolOrderBy, currentSortingObj: PoolsColumnSort) =>
currentSortingObj.id === id ? !currentSortingObj.desc : true
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx b/packages/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx
rename to packages/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx
index 3ba0a82a..26a9e5dc 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx
@@ -1,15 +1,15 @@
import { Box, Grid, GridItem, GridProps, Text } from '@chakra-ui/react'
import Link from 'next/link'
import { getPoolPath, getPoolTypeLabel } from '../../pool.utils'
-import MainAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
+import MainAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
import { memo } from 'react'
-import { NetworkIcon } from '@/lib/shared/components/icons/NetworkIcon'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { NetworkIcon } from '@repo/lib/shared/components/icons/NetworkIcon'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { usePoolListQueryState } from '../usePoolListQueryState'
import { PoolListItem } from '../../pool.types'
import { PoolListTokenPills } from '../PoolListTokenPills'
import { getUserTotalBalanceUsd } from '../../user-balance.helpers'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
interface Props extends GridProps {
pool: PoolListItem
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTokenPills.tsx b/packages/lib/modules/pool/PoolList/PoolListTokenPills.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/PoolList/PoolListTokenPills.tsx
rename to packages/lib/modules/pool/PoolList/PoolListTokenPills.tsx
index 9f66eef8..1ebea658 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/PoolListTokenPills.tsx
+++ b/packages/lib/modules/pool/PoolList/PoolListTokenPills.tsx
@@ -1,8 +1,8 @@
import { Badge, BadgeProps, HStack, Text, Wrap } from '@chakra-ui/react'
-import { GqlChain, GqlPoolTokenDisplay } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlPoolTokenDisplay } from '@repo/lib/shared/services/api/generated/graphql'
import { PoolListItem } from '../pool.types'
import { TokenIcon } from '../../tokens/TokenIcon'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import { isStableLike, isWeightedLike } from '../pool.helpers'
import { Pool } from '../PoolProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/usePoolListQueryState.spec.tsx b/packages/lib/modules/pool/PoolList/usePoolListQueryState.spec.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/PoolList/usePoolListQueryState.spec.tsx
rename to packages/lib/modules/pool/PoolList/usePoolListQueryState.spec.tsx
index ac96a4c1..b17c574a 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/usePoolListQueryState.spec.tsx
+++ b/packages/lib/modules/pool/PoolList/usePoolListQueryState.spec.tsx
@@ -1,4 +1,4 @@
-import { testHook } from '@/test/utils/custom-renderers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { usePoolListQueryState } from './usePoolListQueryState'
function updateUrlQueryString(queryString: `?${string}`) {
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/usePoolListQueryState.tsx b/packages/lib/modules/pool/PoolList/usePoolListQueryState.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/PoolList/usePoolListQueryState.tsx
rename to packages/lib/modules/pool/PoolList/usePoolListQueryState.tsx
index 929ac15d..af967017 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/usePoolListQueryState.tsx
+++ b/packages/lib/modules/pool/PoolList/usePoolListQueryState.tsx
@@ -5,9 +5,9 @@ import {
GqlPoolType,
GqlPoolOrderBy,
GqlPoolOrderDirection,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { uniq } from 'lodash'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
import { useQueryState } from 'nuqs'
import {
POOL_CATEGORY_MAP,
@@ -17,7 +17,7 @@ import {
poolListQueryStateParsers,
SortingState,
} from '../pool.types'
-import { PaginationState } from '@/lib/shared/components/pagination/pagination.types'
+import { PaginationState } from '@repo/lib/shared/components/pagination/pagination.types'
export function usePoolListQueryState() {
const [first, setFirst] = useQueryState('first', poolListQueryStateParsers.first)
diff --git a/apps/frontend-v3/lib/modules/pool/PoolList/usePoolOrderByState.ts b/packages/lib/modules/pool/PoolList/usePoolOrderByState.ts
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/PoolList/usePoolOrderByState.ts
rename to packages/lib/modules/pool/PoolList/usePoolOrderByState.ts
index c966e0c5..57b35f5a 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolList/usePoolOrderByState.ts
+++ b/packages/lib/modules/pool/PoolList/usePoolOrderByState.ts
@@ -1,7 +1,7 @@
'use client'
/* eslint-disable react-hooks/exhaustive-deps */
-import { GqlPoolOrderBy } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolOrderBy } from '@repo/lib/shared/services/api/generated/graphql'
import { useState, useEffect } from 'react'
import { usePoolListQueryState } from './usePoolListQueryState'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolName.tsx b/packages/lib/modules/pool/PoolName.tsx
similarity index 97%
rename from apps/frontend-v3/lib/modules/pool/PoolName.tsx
rename to packages/lib/modules/pool/PoolName.tsx
index 054feacb..07e219da 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolName.tsx
+++ b/packages/lib/modules/pool/PoolName.tsx
@@ -1,4 +1,4 @@
-import { fNum } from '@/lib/shared/utils/numbers'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import { PoolListItem } from './pool.types'
import { HStack, Text, TextProps, Box } from '@chakra-ui/react'
import { FeaturedPool, Pool } from './PoolProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/PoolProvider.spec.tsx b/packages/lib/modules/pool/PoolProvider.spec.tsx
similarity index 80%
rename from apps/frontend-v3/lib/modules/pool/PoolProvider.spec.tsx
rename to packages/lib/modules/pool/PoolProvider.spec.tsx
index 082e4743..79a7bb99 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolProvider.spec.tsx
+++ b/packages/lib/modules/pool/PoolProvider.spec.tsx
@@ -1,10 +1,10 @@
-import { GetPoolQuery, GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { defaultPoolMock, defaultPoolResponseMock } from '@/test/msw/handlers/Pool.handlers'
-import { testHook } from '@/test/utils/custom-renderers'
+import { GetPoolQuery, GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { defaultPoolMock, defaultPoolResponseMock } from '@repo/lib/test/msw/handlers/Pool.handlers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
import { BaseVariant } from './pool.types'
import { _usePool } from './PoolProvider'
-import { defaultTestGaugeAddress } from '@/test/msw/builders/gqlStaking.builders'
+import { defaultTestGaugeAddress } from '@repo/lib/test/msw/builders/gqlStaking.builders'
async function testUsePool({
initialData = defaultPoolResponseMock,
diff --git a/apps/frontend-v3/lib/modules/pool/PoolProvider.tsx b/packages/lib/modules/pool/PoolProvider.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/PoolProvider.tsx
rename to packages/lib/modules/pool/PoolProvider.tsx
index bfbb05d0..880b8edf 100644
--- a/apps/frontend-v3/lib/modules/pool/PoolProvider.tsx
+++ b/packages/lib/modules/pool/PoolProvider.tsx
@@ -6,14 +6,14 @@ import {
GetPoolDocument,
GetPoolQuery,
GqlChain,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { createContext, PropsWithChildren, useRef } from 'react'
import { useQuery } from '@apollo/client'
import { FetchPoolProps } from './pool.types'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { calcBptPriceFor, usePoolHelpers } from './pool.helpers'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { usePoolEnrichWithOnChainData } from '@/lib/modules/pool/queries/usePoolEnrichWithOnChainData'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { usePoolEnrichWithOnChainData } from '@repo/lib/modules/pool/queries/usePoolEnrichWithOnChainData'
import { useOnchainUserPoolBalances } from './queries/useOnchainUserPoolBalances'
import { useInvalidVariantRedirect } from './pool.hooks'
import { getPoolDisplayTokens } from './pool.utils'
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/composableStablePoolMock.ts b/packages/lib/modules/pool/__mocks__/composableStablePoolMock.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/composableStablePoolMock.ts
rename to packages/lib/modules/pool/__mocks__/composableStablePoolMock.ts
index 60a17f2e..cc6c2c3a 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/composableStablePoolMock.ts
+++ b/packages/lib/modules/pool/__mocks__/composableStablePoolMock.ts
@@ -1,6 +1,10 @@
/* eslint-disable max-len */
-import { GqlChain, GqlPoolElement, GqlPoolType } from '@/lib/shared/services/api/generated/graphql'
+import {
+ GqlChain,
+ GqlPoolElement,
+ GqlPoolType,
+} from '@repo/lib/shared/services/api/generated/graphql'
export const composableStablePoolMock: GqlPoolElement = {
id: '0x156c02f3f7fef64a3a9d80ccf7085f23cce91d76000000000000000000000570',
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/getPoolMock.integration.spec.ts b/packages/lib/modules/pool/__mocks__/getPoolMock.integration.spec.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/getPoolMock.integration.spec.ts
rename to packages/lib/modules/pool/__mocks__/getPoolMock.integration.spec.ts
index eeb74852..b85780eb 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/getPoolMock.integration.spec.ts
+++ b/packages/lib/modules/pool/__mocks__/getPoolMock.integration.spec.ts
@@ -1,5 +1,5 @@
-import { gyro2CLP_USDC_DAI, recoveryModePoolId } from '@/lib/debug-helpers'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { gyro2CLP_USDC_DAI, recoveryModePoolId } from '@repo/lib/debug-helpers'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { getPoolMock } from './getPoolMock'
/**
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/getPoolMock.ts b/packages/lib/modules/pool/__mocks__/getPoolMock.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/getPoolMock.ts
rename to packages/lib/modules/pool/__mocks__/getPoolMock.ts
index 96d1390d..7db448f6 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/getPoolMock.ts
+++ b/packages/lib/modules/pool/__mocks__/getPoolMock.ts
@@ -8,8 +8,8 @@ import {
GqlChain,
GetPoolQuery,
GqlPoolElement,
-} from '@/lib/shared/services/api/generated/graphql'
-import { nested50WETH_50_3poolId } from '@/lib/debug-helpers'
+} from '@repo/lib/shared/services/api/generated/graphql'
+import { nested50WETH_50_3poolId } from '@repo/lib/debug-helpers'
import { Address } from 'viem'
function astToQueryString(ast: any): string {
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/gyroEPoolMock.ts b/packages/lib/modules/pool/__mocks__/gyroEPoolMock.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/gyroEPoolMock.ts
rename to packages/lib/modules/pool/__mocks__/gyroEPoolMock.ts
index 0beee2f5..b1a2f8d0 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/gyroEPoolMock.ts
+++ b/packages/lib/modules/pool/__mocks__/gyroEPoolMock.ts
@@ -1,6 +1,6 @@
/* eslint-disable max-len */
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
export const gyroEPoolMock: GqlPoolElement = {
id: '0xf01b0684c98cd7ada480bfdf6e43876422fa1fc10002000000000000000005de',
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/gyroPoolMock.ts b/packages/lib/modules/pool/__mocks__/gyroPoolMock.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/gyroPoolMock.ts
rename to packages/lib/modules/pool/__mocks__/gyroPoolMock.ts
index 36600ab8..0e8f7d3c 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/gyroPoolMock.ts
+++ b/packages/lib/modules/pool/__mocks__/gyroPoolMock.ts
@@ -1,6 +1,6 @@
/* eslint-disable max-len */
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
export const gyroPoolMock: GqlPoolElement = {
id: '0xdac42eeb17758daa38caf9a3540c808247527ae3000200000000000000000a2b',
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/metaStablePoolMock.ts b/packages/lib/modules/pool/__mocks__/metaStablePoolMock.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/metaStablePoolMock.ts
rename to packages/lib/modules/pool/__mocks__/metaStablePoolMock.ts
index bacd88f7..9e6d61f8 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/metaStablePoolMock.ts
+++ b/packages/lib/modules/pool/__mocks__/metaStablePoolMock.ts
@@ -1,6 +1,10 @@
/* eslint-disable max-len */
-import { GqlChain, GqlPoolElement, GqlPoolType } from '@/lib/shared/services/api/generated/graphql'
+import {
+ GqlChain,
+ GqlPoolElement,
+ GqlPoolType,
+} from '@repo/lib/shared/services/api/generated/graphql'
export const metaStablePoolMock: GqlPoolElement = {
id: '0x32296969ef14eb0c6d29669c550d4a0449130230000200000000000000000080',
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/nestedPoolMock.ts b/packages/lib/modules/pool/__mocks__/nestedPoolMock.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/nestedPoolMock.ts
rename to packages/lib/modules/pool/__mocks__/nestedPoolMock.ts
index a213a254..fdb4d469 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/nestedPoolMock.ts
+++ b/packages/lib/modules/pool/__mocks__/nestedPoolMock.ts
@@ -1,6 +1,6 @@
/* eslint-disable max-len */
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
export const nestedPoolMock: GqlPoolElement = {
id: '0x08775ccb6674d6bdceb0797c364c2653ed84f3840002000000000000000004f0',
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/notAllowedPoolMock.ts b/packages/lib/modules/pool/__mocks__/notAllowedPoolMock.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/notAllowedPoolMock.ts
rename to packages/lib/modules/pool/__mocks__/notAllowedPoolMock.ts
index ceb64f2b..72424b14 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/notAllowedPoolMock.ts
+++ b/packages/lib/modules/pool/__mocks__/notAllowedPoolMock.ts
@@ -3,7 +3,7 @@ import {
GqlChain,
GqlPoolNestingType,
GqlPoolType,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { Pool } from '../PoolProvider'
export const notAllowedPoolMock: Pool = {
diff --git a/apps/frontend-v3/lib/modules/pool/__mocks__/recoveryPoolMock.ts b/packages/lib/modules/pool/__mocks__/recoveryPoolMock.ts
similarity index 99%
rename from apps/frontend-v3/lib/modules/pool/__mocks__/recoveryPoolMock.ts
rename to packages/lib/modules/pool/__mocks__/recoveryPoolMock.ts
index 1de4e9ea..282f341e 100644
--- a/apps/frontend-v3/lib/modules/pool/__mocks__/recoveryPoolMock.ts
+++ b/packages/lib/modules/pool/__mocks__/recoveryPoolMock.ts
@@ -1,6 +1,6 @@
/* eslint-disable max-len */
-import { GqlChain, GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
// TODO: remove linear (nested) pools
export const recoveryPoolMock: GqlPoolElement = {
diff --git a/apps/frontend-v3/lib/modules/pool/actions/ActionCompleteModalFooter.tsx b/packages/lib/modules/pool/actions/ActionCompleteModalFooter.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/actions/ActionCompleteModalFooter.tsx
rename to packages/lib/modules/pool/actions/ActionCompleteModalFooter.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/actions/LiquidityActionHelpers.spec.ts b/packages/lib/modules/pool/actions/LiquidityActionHelpers.spec.ts
similarity index 97%
rename from apps/frontend-v3/lib/modules/pool/actions/LiquidityActionHelpers.spec.ts
rename to packages/lib/modules/pool/actions/LiquidityActionHelpers.spec.ts
index eea309d4..a31e8476 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/LiquidityActionHelpers.spec.ts
+++ b/packages/lib/modules/pool/actions/LiquidityActionHelpers.spec.ts
@@ -1,4 +1,4 @@
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import {
LiquidityActionHelpers,
areEmptyAmounts,
@@ -16,7 +16,7 @@ import {
usdtAddress,
wjAuraAddress,
ethAddress,
-} from '@/lib/debug-helpers'
+} from '@repo/lib/debug-helpers'
import { recoveryPoolMock } from '../__mocks__/recoveryPoolMock'
import { Pool } from '../PoolProvider'
import { mock } from 'vitest-mock-extended'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/LiquidityActionHelpers.ts b/packages/lib/modules/pool/actions/LiquidityActionHelpers.ts
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/actions/LiquidityActionHelpers.ts
rename to packages/lib/modules/pool/actions/LiquidityActionHelpers.ts
index 4b995f82..d48b38a6 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/LiquidityActionHelpers.ts
+++ b/packages/lib/modules/pool/actions/LiquidityActionHelpers.ts
@@ -1,10 +1,10 @@
-import { getChainId, getNativeAsset, getNetworkConfig } from '@/lib/config/app.config'
-import { TokenAmountToApprove } from '@/lib/modules/tokens/approvals/approval-rules'
-import { nullAddress } from '@/lib/modules/web3/contracts/wagmi-helpers'
-import { GqlChain, GqlPoolType, GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
-import { SentryError } from '@/lib/shared/utils/errors'
-import { bn, isZero } from '@/lib/shared/utils/numbers'
+import { getChainId, getNativeAsset, getNetworkConfig } from '@repo/lib/config/app.config'
+import { TokenAmountToApprove } from '@repo/lib/modules/tokens/approvals/approval-rules'
+import { nullAddress } from '@repo/lib/modules/web3/contracts/wagmi-helpers'
+import { GqlChain, GqlPoolType, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { SentryError } from '@repo/lib/shared/utils/errors'
+import { bn, isZero } from '@repo/lib/shared/utils/numbers'
import {
HumanAmount,
InputAmount,
diff --git a/apps/frontend-v3/lib/modules/pool/actions/PoolActionsLayout.tsx b/packages/lib/modules/pool/actions/PoolActionsLayout.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/actions/PoolActionsLayout.tsx
rename to packages/lib/modules/pool/actions/PoolActionsLayout.tsx
index 4f8031c8..ef3a616e 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/PoolActionsLayout.tsx
+++ b/packages/lib/modules/pool/actions/PoolActionsLayout.tsx
@@ -1,6 +1,6 @@
'use client'
-import { Navbar } from '@/lib/shared/components/navs/Navbar'
+import { Navbar } from '@repo/lib/shared/components/navs/Navbar'
import { Box, VStack, Card, useColorModeValue } from '@chakra-ui/react'
import { PropsWithChildren } from 'react'
import { PoolActionsNav } from './PoolActionsNav'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/PoolActionsNav.tsx b/packages/lib/modules/pool/actions/PoolActionsNav.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/actions/PoolActionsNav.tsx
rename to packages/lib/modules/pool/actions/PoolActionsNav.tsx
index 7fe92337..74ff853d 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/PoolActionsNav.tsx
+++ b/packages/lib/modules/pool/actions/PoolActionsNav.tsx
@@ -3,7 +3,7 @@
import { Card, HStack, IconButton } from '@chakra-ui/react'
import Image from 'next/image'
import { usePool } from '../PoolProvider'
-import { getNetworkConfig } from '@/lib/config/app.config'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
import { CloseIcon } from '@chakra-ui/icons'
import { getPoolPath } from '../pool.utils'
import Link from 'next/link'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/PoolActionsPriceImpactDetails.tsx b/packages/lib/modules/pool/actions/PoolActionsPriceImpactDetails.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/actions/PoolActionsPriceImpactDetails.tsx
rename to packages/lib/modules/pool/actions/PoolActionsPriceImpactDetails.tsx
index ac0b34ac..83fbf1bb 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/PoolActionsPriceImpactDetails.tsx
+++ b/packages/lib/modules/pool/actions/PoolActionsPriceImpactDetails.tsx
@@ -1,5 +1,5 @@
-import { NumberText } from '@/lib/shared/components/typography/NumberText'
-import { fNum, bn } from '@/lib/shared/utils/numbers'
+import { NumberText } from '@repo/lib/shared/components/typography/NumberText'
+import { fNum, bn } from '@repo/lib/shared/utils/numbers'
import {
HStack,
VStack,
@@ -11,13 +11,13 @@ import {
PopoverTrigger,
PopoverContent,
} from '@chakra-ui/react'
-import { usePriceImpact } from '@/lib/modules/price-impact/PriceImpactProvider'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { usePriceImpact } from '@repo/lib/modules/price-impact/PriceImpactProvider'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { usePool } from '../PoolProvider'
import { ArrowRight } from 'react-feather'
import { calcShareOfPool, calcUserShareOfPool } from '../pool.helpers'
import { isNumber } from 'lodash'
-import { InfoIcon } from '@/lib/shared/components/icons/InfoIcon'
+import { InfoIcon } from '@repo/lib/shared/components/icons/InfoIcon'
import { formatUnits } from 'viem'
import { BPT_DECIMALS } from '../pool.constants'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/__mocks__/liquidity.builders.ts b/packages/lib/modules/pool/actions/__mocks__/liquidity.builders.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/__mocks__/liquidity.builders.ts
rename to packages/lib/modules/pool/actions/__mocks__/liquidity.builders.ts
index afae2660..21e9df14 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/__mocks__/liquidity.builders.ts
+++ b/packages/lib/modules/pool/actions/__mocks__/liquidity.builders.ts
@@ -1,4 +1,4 @@
-import { balAddress } from '@/lib/debug-helpers'
+import { balAddress } from '@repo/lib/debug-helpers'
import { TokenAmount, Token, HumanAmount } from '@balancer/sdk'
import { Address, parseUnits } from 'viem'
import { mock } from 'vitest-mock-extended'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.spec.tsx b/packages/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.spec.tsx
similarity index 84%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.spec.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.spec.tsx
index 27e9c855..7e6c4c40 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.spec.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.spec.tsx
@@ -1,11 +1,11 @@
-import { balAddress, daiAddress, usdcAddress, usdtAddress, wETHAddress } from '@/lib/debug-helpers'
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
-import { aBalWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { balAddress, daiAddress, usdcAddress, usdtAddress, wETHAddress } from '@repo/lib/debug-helpers'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
+import { aBalWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import {
DefaultAddLiquidityTestProvider,
buildDefaultPoolTestProvider,
testHook,
-} from '@/test/utils/custom-renderers'
+} from '@repo/lib/test/utils/custom-renderers'
import { PropsWithChildren } from 'react'
import { _useAddLiquidity } from './AddLiquidityProvider'
import { nestedPoolMock } from '../../__mocks__/nestedPoolMock'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.tsx b/packages/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.tsx
similarity index 88%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.tsx
index dcb06eb0..7464dd2e 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider.tsx
@@ -1,8 +1,8 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { HumanAmount } from '@balancer/sdk'
import { PropsWithChildren, createContext, useEffect, useMemo, useState } from 'react'
import { Address, Hash } from 'viem'
@@ -17,19 +17,19 @@ import {
replaceWrappedWithNativeAsset,
requiresProportionalInput,
} from '../LiquidityActionHelpers'
-import { isDisabledWithReason } from '@/lib/shared/utils/functions/isDisabledWithReason'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { LABELS } from '@/lib/shared/labels'
+import { isDisabledWithReason } from '@repo/lib/shared/utils/functions/isDisabledWithReason'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { LABELS } from '@repo/lib/shared/labels'
import { selectAddLiquidityHandler } from './handlers/selectAddLiquidityHandler'
-import { useTokenInputsValidation } from '@/lib/modules/tokens/TokenInputsValidationProvider'
+import { useTokenInputsValidation } from '@repo/lib/modules/tokens/TokenInputsValidationProvider'
import { useAddLiquiditySteps } from './useAddLiquiditySteps'
-import { useTransactionSteps } from '@/lib/modules/transactions/transaction-steps/useTransactionSteps'
-import { useTotalUsdValue } from '@/lib/modules/tokens/useTotalUsdValue'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { isUnhandledAddPriceImpactError } from '@/lib/modules/price-impact/price-impact.utils'
+import { useTransactionSteps } from '@repo/lib/modules/transactions/transaction-steps/useTransactionSteps'
+import { useTotalUsdValue } from '@repo/lib/modules/tokens/useTotalUsdValue'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { isUnhandledAddPriceImpactError } from '@repo/lib/modules/price-impact/price-impact.utils'
import { useModalWithPoolRedirect } from '../../useModalWithPoolRedirect'
import { getPoolTokens } from '../../pool.helpers'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
export type UseAddLiquidityResponse = ReturnType
export const AddLiquidityContext = createContext(null)
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/add-liquidity.types.ts b/packages/lib/modules/pool/actions/add-liquidity/add-liquidity.types.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/add-liquidity.types.ts
rename to packages/lib/modules/pool/actions/add-liquidity/add-liquidity.types.ts
index e148580e..86894251 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/add-liquidity.types.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/add-liquidity.types.ts
@@ -5,7 +5,7 @@ import {
TokenAmount,
} from '@balancer/sdk'
import { Address } from 'viem'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
/*
Base interface that every handler must implement.
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/AddLiquidityForm.tsx b/packages/lib/modules/pool/actions/add-liquidity/form/AddLiquidityForm.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/AddLiquidityForm.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/form/AddLiquidityForm.tsx
index 0b5ff8e3..4f565e7a 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/AddLiquidityForm.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/form/AddLiquidityForm.tsx
@@ -1,7 +1,10 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { TokenBalancesProvider, useTokenBalances } from '@/lib/modules/tokens/TokenBalancesProvider'
+import {
+ TokenBalancesProvider,
+ useTokenBalances,
+} from '@repo/lib/modules/tokens/TokenBalancesProvider'
import {
Box,
Button,
@@ -20,11 +23,11 @@ import { useEffect, useRef } from 'react'
import { Address } from 'viem'
import { AddLiquidityModal } from '../modal/AddLiquidityModal'
import { useAddLiquidity } from '../AddLiquidityProvider'
-import { bn, fNum } from '@/lib/shared/utils/numbers'
+import { bn, fNum } from '@repo/lib/shared/utils/numbers'
import {
ProportionalTransactionSettings,
TransactionSettings,
-} from '@/lib/modules/user/settings/TransactionSettings'
+} from '@repo/lib/modules/user/settings/TransactionSettings'
import { TokenInputs } from './TokenInputs'
import { TokenInputsWithAddable } from './TokenInputsWithAddable'
import { usePool } from '../../../PoolProvider'
@@ -33,25 +36,25 @@ import {
requiresProportionalInput,
supportsNestedActions,
} from '../../LiquidityActionHelpers'
-import { PriceImpactAccordion } from '@/lib/modules/price-impact/PriceImpactAccordion'
+import { PriceImpactAccordion } from '@repo/lib/modules/price-impact/PriceImpactAccordion'
import { PoolActionsPriceImpactDetails } from '../../PoolActionsPriceImpactDetails'
-import { usePriceImpact } from '@/lib/modules/price-impact/PriceImpactProvider'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { usePriceImpact } from '@repo/lib/modules/price-impact/PriceImpactProvider'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { AddLiquidityFormCheckbox } from './AddLiquidityFormCheckbox'
-import { isNativeOrWrappedNative, isNativeAsset } from '@/lib/modules/tokens/token.helpers'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { NativeAssetSelectModal } from '@/lib/modules/tokens/NativeAssetSelectModal'
-import { useTokenInputsValidation } from '@/lib/modules/tokens/TokenInputsValidationProvider'
-import { GenericError } from '@/lib/shared/components/errors/GenericError'
+import { isNativeOrWrappedNative, isNativeAsset } from '@repo/lib/modules/tokens/token.helpers'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { NativeAssetSelectModal } from '@repo/lib/modules/tokens/NativeAssetSelectModal'
+import { useTokenInputsValidation } from '@repo/lib/modules/tokens/TokenInputsValidationProvider'
+import { GenericError } from '@repo/lib/shared/components/errors/GenericError'
import { PriceImpactError } from '../../../../price-impact/PriceImpactError'
-import AddLiquidityAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/AddLiquidityAprTooltip'
+import AddLiquidityAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/AddLiquidityAprTooltip'
import { calcPotentialYieldFor } from '../../../pool.utils'
-import { cannotCalculatePriceImpactError } from '@/lib/modules/price-impact/price-impact.utils'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { ConnectWallet } from '@/lib/modules/web3/ConnectWallet'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
-import { SafeAppAlert } from '@/lib/shared/components/alerts/SafeAppAlert'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
+import { cannotCalculatePriceImpactError } from '@repo/lib/modules/price-impact/price-impact.utils'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
+import { SafeAppAlert } from '@repo/lib/shared/components/alerts/SafeAppAlert'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
// small wrapper to prevent out of context error
export function AddLiquidityForm() {
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/AddLiquidityFormCheckbox.tsx b/packages/lib/modules/pool/actions/add-liquidity/form/AddLiquidityFormCheckbox.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/AddLiquidityFormCheckbox.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/form/AddLiquidityFormCheckbox.tsx
index c92e607e..d068ba73 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/AddLiquidityFormCheckbox.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/form/AddLiquidityFormCheckbox.tsx
@@ -12,8 +12,8 @@ import {
} from '@chakra-ui/react'
import { RisksList } from '../../../PoolDetail/PoolInfo/PoolRisks/PoolRisks'
import { useAddLiquidity } from '../AddLiquidityProvider'
-import { useTokenBalances } from '@/lib/modules/tokens/TokenBalancesProvider'
-import { InfoIcon } from '@/lib/shared/components/icons/InfoIcon'
+import { useTokenBalances } from '@repo/lib/modules/tokens/TokenBalancesProvider'
+import { InfoIcon } from '@repo/lib/shared/components/icons/InfoIcon'
export function AddLiquidityFormCheckbox() {
const { tokens, acceptPoolRisks, setAcceptPoolRisks } = useAddLiquidity()
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/TokenInputs.tsx b/packages/lib/modules/pool/actions/add-liquidity/form/TokenInputs.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/TokenInputs.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/form/TokenInputs.tsx
index ab3fbbc6..84030a13 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/TokenInputs.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/form/TokenInputs.tsx
@@ -1,4 +1,4 @@
-import { TokenInput } from '@/lib/modules/tokens/TokenInput/TokenInput'
+import { TokenInput } from '@repo/lib/modules/tokens/TokenInput/TokenInput'
import { HumanAmount, isSameAddress } from '@balancer/sdk'
import { Address } from 'viem'
import { useAddLiquidity } from '../AddLiquidityProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/TokenInputsWithAddable.tsx b/packages/lib/modules/pool/actions/add-liquidity/form/TokenInputsWithAddable.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/TokenInputsWithAddable.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/form/TokenInputsWithAddable.tsx
index 86d4001b..40c65558 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/TokenInputsWithAddable.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/form/TokenInputsWithAddable.tsx
@@ -1,7 +1,7 @@
/* eslint-disable max-len */
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { WalletIcon } from '@/lib/shared/components/icons/WalletIcon'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { WalletIcon } from '@repo/lib/shared/components/icons/WalletIcon'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { Card, HStack, Spacer, VStack, Text, Box, Tooltip } from '@chakra-ui/react'
import { useEffect, useState } from 'react'
import { XOctagon } from 'react-feather'
@@ -9,7 +9,7 @@ import { useAddLiquidity } from '../AddLiquidityProvider'
import { TokenInputs } from './TokenInputs'
import { useProportionalInputs } from './useProportionalInputs'
import { useMaximumInputs } from './useMaximumInputs'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
import { hasNoLiquidity } from '../../LiquidityActionHelpers'
import { usePool } from '../../../PoolProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/useMaximumInputs.tsx b/packages/lib/modules/pool/actions/add-liquidity/form/useMaximumInputs.tsx
similarity index 84%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/useMaximumInputs.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/form/useMaximumInputs.tsx
index 8a0334c4..b11bce47 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/useMaximumInputs.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/form/useMaximumInputs.tsx
@@ -1,16 +1,16 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { useTokenBalances } from '@/lib/modules/tokens/TokenBalancesProvider'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { bn } from '@/lib/shared/utils/numbers'
+import { useTokenBalances } from '@repo/lib/modules/tokens/TokenBalancesProvider'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { Address, HumanAmount } from '@balancer/sdk'
import { useMemo, useState } from 'react'
import { usePool } from '../../../PoolProvider'
import { useAddLiquidity } from '../AddLiquidityProvider'
-import { useTotalUsdValue } from '@/lib/modules/tokens/useTotalUsdValue'
-import { TokenAmount } from '@/lib/modules/tokens/token.types'
+import { useTotalUsdValue } from '@repo/lib/modules/tokens/useTotalUsdValue'
+import { TokenAmount } from '@repo/lib/modules/tokens/token.types'
export function useMaximumInputs() {
const { isConnected } = useUserAccount()
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.spec.tsx b/packages/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.spec.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.spec.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.spec.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.tsx b/packages/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.tsx
index 7734e54c..387b7be2 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/form/useProportionalInputs.tsx
@@ -1,11 +1,11 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { useTokenBalances } from '@/lib/modules/tokens/TokenBalancesProvider'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
-import { bn } from '@/lib/shared/utils/numbers'
+import { useTokenBalances } from '@repo/lib/modules/tokens/TokenBalancesProvider'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { Address, HumanAmount, InputAmount, calculateProportionalAmounts } from '@balancer/sdk'
import { useMemo, useState } from 'react'
import { formatUnits } from 'viem'
@@ -16,9 +16,9 @@ import {
isEmptyHumanAmount,
} from '../../LiquidityActionHelpers'
import { useAddLiquidity } from '../AddLiquidityProvider'
-import { useTotalUsdValue } from '@/lib/modules/tokens/useTotalUsdValue'
-import { HumanTokenAmountWithAddress, TokenAmount } from '@/lib/modules/tokens/token.types'
-import { swapWrappedWithNative } from '@/lib/modules/tokens/token.helpers'
+import { useTotalUsdValue } from '@repo/lib/modules/tokens/useTotalUsdValue'
+import { HumanTokenAmountWithAddress, TokenAmount } from '@repo/lib/modules/tokens/token.types'
+import { swapWrappedWithNative } from '@repo/lib/modules/tokens/token.helpers'
type OptimalToken = {
tokenAddress: Address
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/AddLiquidity.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/AddLiquidity.handler.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/AddLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/AddLiquidity.handler.ts
index afd2a92c..2c5cec56 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/AddLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/AddLiquidity.handler.ts
@@ -1,5 +1,5 @@
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { BuildAddLiquidityInput, QueryAddLiquidityOutput } from '../add-liquidity.types'
/**
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/BaseProportionalAddLiquidity.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/BaseProportionalAddLiquidity.handler.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/BaseProportionalAddLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/BaseProportionalAddLiquidity.handler.ts
index 1ef3d82d..0171e27e 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/BaseProportionalAddLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/BaseProportionalAddLiquidity.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import {
AddLiquidity,
AddLiquidityKind,
@@ -11,8 +11,8 @@ import { Pool } from '../../../PoolProvider'
import { LiquidityActionHelpers } from '../../LiquidityActionHelpers'
import { SdkBuildAddLiquidityInput, SdkQueryAddLiquidityOutput } from '../add-liquidity.types'
import { AddLiquidityHandler } from './AddLiquidity.handler'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { getRpcUrl } from '@/lib/modules/web3/transports'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { getRpcUrl } from '@repo/lib/modules/web3/transports'
/**
* Base abstract class that shares common logic shared by v3 and v2/v1 pool proportional add handlers
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/BaseUnbalancedAddLiquidity.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/BaseUnbalancedAddLiquidity.handler.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/BaseUnbalancedAddLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/BaseUnbalancedAddLiquidity.handler.ts
index c8ccd0cf..7b6c73f1 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/BaseUnbalancedAddLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/BaseUnbalancedAddLiquidity.handler.ts
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
-import { getRpcUrl } from '@/lib/modules/web3/transports'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
+import { getRpcUrl } from '@repo/lib/modules/web3/transports'
import {
AddLiquidity,
AddLiquidityKind,
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.integration.spec.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.integration.spec.ts
similarity index 87%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.integration.spec.ts
index 98b059af..6a02c88d 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.integration.spec.ts
@@ -1,14 +1,14 @@
/* eslint-disable max-len */
-import networkConfig from '@/lib/config/networks/mainnet'
-import { daiAddress, usdcAddress, usdtAddress, wETHAddress } from '@/lib/debug-helpers'
-import { mainnetTestPublicClient } from '@/test/utils/wagmi/wagmi-test-clients'
+import networkConfig from '@repo/lib/config/networks/mainnet'
+import { daiAddress, usdcAddress, usdtAddress, wETHAddress } from '@repo/lib/debug-helpers'
+import { mainnetTestPublicClient } from '@repo/lib/test/utils/wagmi/wagmi-test-clients'
import { Pool } from '../../../PoolProvider'
import { NestedAddLiquidityHandler } from './NestedAddLiquidity.handler'
import { selectAddLiquidityHandler } from './selectAddLiquidityHandler'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
import { getPoolMock } from '../../../__mocks__/getPoolMock'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
function selectNestedHandler(pool: Pool) {
return selectAddLiquidityHandler(pool) as NestedAddLiquidityHandler
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.ts
index 189927d3..4c2b4df0 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/NestedAddLiquidity.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import {
AddLiquidityNested,
AddLiquidityNestedInput,
@@ -10,8 +10,8 @@ import { Pool } from '../../../PoolProvider'
import { LiquidityActionHelpers, areEmptyAmounts } from '../../LiquidityActionHelpers'
import { NestedBuildAddLiquidityInput, NestedQueryAddLiquidityOutput } from '../add-liquidity.types'
import { AddLiquidityHandler } from './AddLiquidity.handler'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { getRpcUrl } from '@/lib/modules/web3/transports'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { getRpcUrl } from '@repo/lib/modules/web3/transports'
/**
* NestedAddLiquidityHandler is a handler that implements the
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.integration.spec.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.integration.spec.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.integration.spec.ts
index 726dc3ea..5c2fdd84 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.integration.spec.ts
@@ -1,15 +1,15 @@
/* eslint-disable max-len */
-import networkConfig from '@/lib/config/networks/mainnet'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
-import { polygonTestPublicClient } from '@/test/utils/wagmi/wagmi-test-clients'
+import networkConfig from '@repo/lib/config/networks/mainnet'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
+import { polygonTestPublicClient } from '@repo/lib/test/utils/wagmi/wagmi-test-clients'
import { gyroPoolMock } from '../../../__mocks__/gyroPoolMock'
import { Pool } from '../../../PoolProvider'
import { ProportionalAddLiquidityHandler } from './ProportionalAddLiquidity.handler'
import { selectAddLiquidityHandler } from './selectAddLiquidityHandler'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
import { getPoolMock } from '../../../__mocks__/getPoolMock'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { usdcAddress, wETHAddress } from '@/lib/debug-helpers'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { usdcAddress, wETHAddress } from '@repo/lib/debug-helpers'
function selectProportionalHandler(pool: Pool) {
return selectAddLiquidityHandler(pool) as ProportionalAddLiquidityHandler
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.ts
index 4d14bf04..c198f0ec 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidity.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { AddLiquidity, HumanAmount, Slippage } from '@balancer/sdk'
import { SdkBuildAddLiquidityInput } from '../add-liquidity.types'
import { BaseProportionalAddLiquidityHandler } from './BaseProportionalAddLiquidity.handler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidityV3.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidityV3.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidityV3.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidityV3.handler.ts
index d66f06b2..f1148066 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidityV3.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/ProportionalAddLiquidityV3.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { AddLiquidity } from '@balancer/sdk'
import { SdkBuildAddLiquidityInput } from '../add-liquidity.types'
import { BaseProportionalAddLiquidityHandler } from './BaseProportionalAddLiquidity.handler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/TwammAddLiquidity.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/TwammAddLiquidity.handler.ts
similarity index 84%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/TwammAddLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/TwammAddLiquidity.handler.ts
index af31955a..1cd012b4 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/TwammAddLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/TwammAddLiquidity.handler.ts
@@ -1,10 +1,10 @@
-import { SupportedChainId } from '@/lib/config/config.types'
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
-import { emptyAddress } from '@/lib/modules/web3/contracts/wagmi-helpers'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
+import { emptyAddress } from '@repo/lib/modules/web3/contracts/wagmi-helpers'
import { Token, TokenAmount } from '@balancer/sdk'
import { BuildAddLiquidityInput } from '../add-liquidity.types'
import { AddLiquidityHandler } from './AddLiquidity.handler'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
/**
* TwammAddLiquidityHandler is a handler that implements the
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.integration.spec.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.integration.spec.ts
similarity index 85%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.integration.spec.ts
index a352232a..b66719b9 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.integration.spec.ts
@@ -1,9 +1,9 @@
/* eslint-disable max-len */
-import networkConfig from '@/lib/config/networks/mainnet'
-import { balAddress, wETHAddress, wjAuraAddress } from '@/lib/debug-helpers'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import networkConfig from '@repo/lib/config/networks/mainnet'
+import { balAddress, wETHAddress, wjAuraAddress } from '@repo/lib/debug-helpers'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import { UnbalancedAddLiquidityV2Handler } from './UnbalancedAddLiquidityV2.handler'
import { selectAddLiquidityHandler } from './selectAddLiquidityHandler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.ts
index 20cd25fb..3b51a926 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler.ts
@@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { AddLiquidity } from '@balancer/sdk'
import { formatBuildCallParams } from '../../LiquidityActionHelpers'
import { SdkBuildAddLiquidityInput } from '../add-liquidity.types'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.integration.spec.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.integration.spec.ts
similarity index 85%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.integration.spec.ts
index 04a4498c..0a40e614 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.integration.spec.ts
@@ -1,8 +1,8 @@
/* eslint-disable max-len */
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { Pool } from '../../../PoolProvider'
import { UnbalancedAddLiquidityV3Handler } from './UnbalancedAddLiquidityV3.handler'
import { selectAddLiquidityHandler } from './selectAddLiquidityHandler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.ts
index ca2c8466..3ce89544 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV3.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { AddLiquidity } from '@balancer/sdk'
import { SdkBuildAddLiquidityInput } from '../add-liquidity.types'
import { BaseUnbalancedAddLiquidityHandler } from './BaseUnbalancedAddLiquidity.handler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils.ts
index 4e2986d9..400e7d97 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils.ts
@@ -9,7 +9,7 @@ import {
} from '@balancer/sdk'
import { Pool } from '../../../PoolProvider'
import { LiquidityActionHelpers } from '../../LiquidityActionHelpers'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
// For now only valid for unbalanced and proportional adds
export function constructBaseBuildCallInput({
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/selectAddLiquidityHandler.ts b/packages/lib/modules/pool/actions/add-liquidity/handlers/selectAddLiquidityHandler.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/selectAddLiquidityHandler.ts
rename to packages/lib/modules/pool/actions/add-liquidity/handlers/selectAddLiquidityHandler.ts
index 2dfc7091..4143cba9 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/handlers/selectAddLiquidityHandler.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/handlers/selectAddLiquidityHandler.ts
@@ -1,4 +1,4 @@
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import { Pool } from '../../../PoolProvider'
import { TwammAddLiquidityHandler } from './TwammAddLiquidity.handler'
import { UnbalancedAddLiquidityV2Handler } from './UnbalancedAddLiquidityV2.handler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityModal.tsx b/packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityModal.tsx
similarity index 79%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityModal.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityModal.tsx
index c22aee8e..97300e6b 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityModal.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityModal.tsx
@@ -1,24 +1,24 @@
'use client'
-import { DesktopStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
+import { DesktopStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
import { Modal, ModalBody, ModalCloseButton, ModalContent, ModalProps } from '@chakra-ui/react'
import { RefObject, useEffect, useRef } from 'react'
import { usePool } from '../../../PoolProvider'
import { useAddLiquidity } from '../AddLiquidityProvider'
// eslint-disable-next-line max-len
-import { getStylesForModalContentWithStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
+import { getStylesForModalContentWithStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
import { AddLiquidityTimeout } from './AddLiquidityTimeout'
import { ActionModalFooter } from '../../../../../shared/components/modals/ActionModalFooter'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
import { usePoolRedirect } from '../../../pool.hooks'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
import { useResetStepIndexOnOpen } from '../../useResetStepIndexOnOpen'
-import { useOnUserAccountChanged } from '@/lib/modules/web3/useOnUserAccountChanged'
+import { useOnUserAccountChanged } from '@repo/lib/modules/web3/useOnUserAccountChanged'
import { AddLiquiditySummary } from './AddLiquiditySummary'
-import { useAddLiquidityReceipt } from '@/lib/modules/transactions/transaction-steps/receipts/receipt.hooks'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
+import { useAddLiquidityReceipt } from '@repo/lib/modules/transactions/transaction-steps/receipts/receipt.hooks'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
type Props = {
isOpen: boolean
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquiditySummary.tsx b/packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquiditySummary.tsx
similarity index 83%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquiditySummary.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquiditySummary.tsx
index c682657c..a3fd7f87 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquiditySummary.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquiditySummary.tsx
@@ -1,24 +1,24 @@
'use client'
-import { MobileStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
+import { MobileStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
import { Card, VStack, Button, Text, useDisclosure } from '@chakra-ui/react'
import { usePool } from '../../../PoolProvider'
import { PoolActionsPriceImpactDetails } from '../../PoolActionsPriceImpactDetails'
import { useAddLiquidity } from '../AddLiquidityProvider'
import { QuoteBptOut, ReceiptBptOut } from './BptOut'
-import { TokenRowGroup } from '@/lib/modules/tokens/TokenRow/TokenRowGroup'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { AddLiquidityReceiptResult } from '@/lib/modules/transactions/transaction-steps/receipts/receipt.hooks'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
+import { TokenRowGroup } from '@repo/lib/modules/tokens/TokenRow/TokenRowGroup'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { AddLiquidityReceiptResult } from '@repo/lib/modules/transactions/transaction-steps/receipts/receipt.hooks'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
import { StakingOptions } from './StakingOptions'
import { isVebalPool } from '../../../pool.helpers'
-import { VebalRedirectModal } from '@/lib/modules/vebal/VebalRedirectModal'
+import { VebalRedirectModal } from '@repo/lib/modules/vebal/VebalRedirectModal'
-import { CardPopAnim } from '@/lib/shared/components/animations/CardPopAnim'
+import { CardPopAnim } from '@repo/lib/shared/components/animations/CardPopAnim'
import { useMemo } from 'react'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
export function AddLiquiditySummary({
isLoading: isLoadingReceipt,
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityTimeout.tsx b/packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityTimeout.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityTimeout.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityTimeout.tsx
index f8928652..4f9bdeb6 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityTimeout.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/modal/AddLiquidityTimeout.tsx
@@ -3,8 +3,8 @@ import { HStack, Text } from '@chakra-ui/react'
import { useEffect } from 'react'
import { useCountdown } from 'usehooks-ts'
import { useAddLiquidity } from '../AddLiquidityProvider'
-import { useShouldFreezeQuote } from '@/lib/modules/transactions/transaction-steps/useShouldFreezeQuote'
-import { NumberText } from '@/lib/shared/components/typography/NumberText'
+import { useShouldFreezeQuote } from '@repo/lib/modules/transactions/transaction-steps/useShouldFreezeQuote'
+import { NumberText } from '@repo/lib/shared/components/typography/NumberText'
import { addLiquidityStepId } from '../useAddLiquidityStep'
function useAddLiquidityTimeout() {
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/BptOut.tsx b/packages/lib/modules/pool/actions/add-liquidity/modal/BptOut.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/BptOut.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/modal/BptOut.tsx
index 1cb81fb0..ae213833 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/BptOut.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/modal/BptOut.tsx
@@ -2,8 +2,8 @@ import { formatUnits } from 'viem'
import { BPT_DECIMALS } from '../../../pool.constants'
import { usePool } from '../../../PoolProvider'
import { useAddLiquidity } from '../AddLiquidityProvider'
-import { bn, fNum } from '@/lib/shared/utils/numbers'
-import { BptRow } from '@/lib/modules/tokens/TokenRow/BptRow'
+import { bn, fNum } from '@repo/lib/shared/utils/numbers'
+import { BptRow } from '@repo/lib/modules/tokens/TokenRow/BptRow'
import { requiresProportionalInput } from '../../LiquidityActionHelpers'
export function ReceiptBptOut({
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/StakingOptions.tsx b/packages/lib/modules/pool/actions/add-liquidity/modal/StakingOptions.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/StakingOptions.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/modal/StakingOptions.tsx
index 448a55bb..912e32f8 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/modal/StakingOptions.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/modal/StakingOptions.tsx
@@ -1,17 +1,17 @@
'use client'
-import StarsIcon from '@/lib/shared/components/icons/StarsIcon'
+import StarsIcon from '@repo/lib/shared/components/icons/StarsIcon'
import { Button, Card, Flex, HStack, Icon, Text, useDisclosure, VStack } from '@chakra-ui/react'
import Image from 'next/image'
import Link from 'next/link'
import { getAuraPoolLink, getPoolActionPath, getTotalAprLabel } from '../../../pool.utils'
import { usePool } from '../../../PoolProvider'
-import { fNum } from '@/lib/shared/utils/numbers'
-import { getChainId } from '@/lib/config/app.config'
+import { fNum } from '@repo/lib/shared/utils/numbers'
+import { getChainId } from '@repo/lib/config/app.config'
import {
PartnerRedirectModal,
RedirectPartner,
-} from '@/lib/shared/components/modals/PartnerRedirectModal'
+} from '@repo/lib/shared/components/modals/PartnerRedirectModal'
export function StakingOptions() {
const { chain, pool } = usePool()
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.spec.ts b/packages/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.spec.ts
similarity index 88%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.spec.ts
rename to packages/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.spec.ts
index c9a323a7..c9708eb8 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.spec.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.spec.ts
@@ -2,10 +2,10 @@
import { gyroPoolMock } from '../../../__mocks__/gyroPoolMock'
import { Pool } from '../../../PoolProvider'
import { addLiquidityKeys } from './add-liquidity-keys'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import { UnbalancedAddLiquidityV2Handler } from '../handlers/UnbalancedAddLiquidityV2.handler'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
function testGenerateLiquidityKeys(pool: Pool) {
const humanAmountsIn: HumanTokenAmountWithAddress[] = [
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.ts b/packages/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.ts
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.ts
rename to packages/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.ts
index b415fd7e..8889f0d2 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys.ts
@@ -1,4 +1,4 @@
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
import { Pool } from '../../../PoolProvider'
import { requiresProportionalInput } from '../../LiquidityActionHelpers'
import { AddLiquidityHandler } from '../handlers/AddLiquidity.handler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityBuildCallDataQuery.ts b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityBuildCallDataQuery.ts
similarity index 83%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityBuildCallDataQuery.ts
rename to packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityBuildCallDataQuery.ts
index 7ed993be..07e28530 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityBuildCallDataQuery.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityBuildCallDataQuery.ts
@@ -1,17 +1,17 @@
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { defaultDebounceMs, onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { defaultDebounceMs, onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
import { useQuery } from '@tanstack/react-query'
import { usePool } from '../../../PoolProvider'
import { ensureLastQueryResponse } from '../../LiquidityActionHelpers'
import { AddLiquidityParams, addLiquidityKeys } from './add-liquidity-keys'
-import { useRelayerSignature } from '@/lib/modules/relayer/RelayerSignatureProvider'
-import { sentryMetaForAddLiquidityHandler } from '@/lib/shared/utils/query-errors'
+import { useRelayerSignature } from '@repo/lib/modules/relayer/RelayerSignatureProvider'
+import { sentryMetaForAddLiquidityHandler } from '@repo/lib/shared/utils/query-errors'
import { AddLiquidityHandler } from '../handlers/AddLiquidity.handler'
import { AddLiquiditySimulationQueryResult } from './useAddLiquiditySimulationQuery'
import { useDebounce } from 'use-debounce'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
import { useBlockNumber } from 'wagmi'
-import { usePermit2Signature } from '@/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider'
+import { usePermit2Signature } from '@repo/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider'
import { isV3Pool } from '../../../pool.helpers'
export type AddLiquidityBuildQueryResponse = ReturnType
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.integration.spec.tsx b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.integration.spec.tsx
similarity index 71%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.integration.spec.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.integration.spec.tsx
index 71d1b3e3..7eca535a 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.integration.spec.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.integration.spec.tsx
@@ -1,12 +1,12 @@
-import { wETHAddress, wjAuraAddress } from '@/lib/debug-helpers'
-import { DefaultPoolTestProvider, testHook } from '@/test/utils/custom-renderers'
+import { wETHAddress, wjAuraAddress } from '@repo/lib/debug-helpers'
+import { DefaultPoolTestProvider, testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import { selectAddLiquidityHandler } from '../handlers/selectAddLiquidityHandler'
import { useAddLiquidityPriceImpactQuery } from './useAddLiquidityPriceImpactQuery'
-import { connectWithDefaultUser } from '@/test/utils/wagmi/wagmi-connections'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
async function testQuery(humanAmountsIn: HumanTokenAmountWithAddress[]) {
const handler = selectAddLiquidityHandler(aWjAuraWethPoolElementMock())
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.ts b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.ts
similarity index 77%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.ts
rename to packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.ts
index d0e00523..5dbe2b3d 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquidityPriceImpactQuery.ts
@@ -1,16 +1,16 @@
'use client'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { defaultDebounceMs, onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { defaultDebounceMs, onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
import { useDebounce } from 'use-debounce'
import { areEmptyAmounts } from '../../LiquidityActionHelpers'
import { AddLiquidityHandler } from '../handlers/AddLiquidity.handler'
import { AddLiquidityParams, addLiquidityKeys } from './add-liquidity-keys'
import { useQuery } from '@tanstack/react-query'
import { usePool } from '../../../PoolProvider'
-import { sentryMetaForAddLiquidityHandler } from '@/lib/shared/utils/query-errors'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { sentryMetaForAddLiquidityHandler } from '@repo/lib/shared/utils/query-errors'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
import { useBlockNumber } from 'wagmi'
type Params = {
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.integration.spec.tsx b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.integration.spec.tsx
similarity index 75%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.integration.spec.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.integration.spec.tsx
index 58411b7e..2475c021 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.integration.spec.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.integration.spec.tsx
@@ -1,11 +1,11 @@
-import { wETHAddress, wjAuraAddress } from '@/lib/debug-helpers'
-import { DefaultPoolTestProvider, testHook } from '@/test/utils/custom-renderers'
+import { wETHAddress, wjAuraAddress } from '@repo/lib/debug-helpers'
+import { DefaultPoolTestProvider, testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import { selectAddLiquidityHandler } from '../handlers/selectAddLiquidityHandler'
import { useAddLiquiditySimulationQuery } from './useAddLiquiditySimulationQuery'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
async function testQuery(humanAmountsIn: HumanTokenAmountWithAddress[]) {
const handler = selectAddLiquidityHandler(aWjAuraWethPoolElementMock())
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.ts b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.ts
similarity index 78%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.ts
rename to packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.ts
index 874ef3be..49f932c3 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.ts
+++ b/packages/lib/modules/pool/actions/add-liquidity/queries/useAddLiquiditySimulationQuery.ts
@@ -1,16 +1,16 @@
'use client'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { defaultDebounceMs, onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { defaultDebounceMs, onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
import { useDebounce } from 'use-debounce'
import { areEmptyAmounts } from '../../LiquidityActionHelpers'
import { AddLiquidityHandler } from '../handlers/AddLiquidity.handler'
import { AddLiquidityParams, addLiquidityKeys } from './add-liquidity-keys'
import { useQuery } from '@tanstack/react-query'
import { usePool } from '../../../PoolProvider'
-import { sentryMetaForAddLiquidityHandler } from '@/lib/shared/utils/query-errors'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { sentryMetaForAddLiquidityHandler } from '@repo/lib/shared/utils/query-errors'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
import { useBlockNumber } from 'wagmi'
export type AddLiquiditySimulationQueryResult = ReturnType
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useAddLiquidityStep.tsx b/packages/lib/modules/pool/actions/add-liquidity/useAddLiquidityStep.tsx
similarity index 85%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useAddLiquidityStep.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/useAddLiquidityStep.tsx
index bc6a3c4a..b47dea49 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useAddLiquidityStep.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/useAddLiquidityStep.tsx
@@ -1,18 +1,18 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { ManagedSendTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
-import { useTransactionState } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { ManagedSendTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
+import { useTransactionState } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useCallback, useEffect, useMemo, useState } from 'react'
import {
AddLiquidityBuildQueryParams,
useAddLiquidityBuildCallDataQuery,
} from './queries/useAddLiquidityBuildCallDataQuery'
import { usePool } from '../../PoolProvider'
-import { useTenderly } from '@/lib/modules/web3/useTenderly'
+import { useTenderly } from '@repo/lib/modules/web3/useTenderly'
export const addLiquidityStepId = 'add-liquidity'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useAddLiquiditySteps.tsx b/packages/lib/modules/pool/actions/add-liquidity/useAddLiquiditySteps.tsx
similarity index 78%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useAddLiquiditySteps.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/useAddLiquiditySteps.tsx
index d26dbc13..09d74971 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useAddLiquiditySteps.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/useAddLiquiditySteps.tsx
@@ -1,12 +1,12 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { useShouldSignRelayerApproval } from '@/lib/modules/relayer/signRelayerApproval.hooks'
-import { useApproveRelayerStep } from '@/lib/modules/relayer/useApproveRelayerStep'
-import { useRelayerMode } from '@/lib/modules/relayer/useRelayerMode'
-import { useTokenApprovalSteps } from '@/lib/modules/tokens/approvals/useTokenApprovalSteps'
-import { getSpenderForAddLiquidity } from '@/lib/modules/tokens/token.helpers'
-import { useSignPermit2Step } from '@/lib/modules/transactions/transaction-steps/useSignPermit2Step'
-import { useSignRelayerStep } from '@/lib/modules/transactions/transaction-steps/useSignRelayerStep'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
+import { useShouldSignRelayerApproval } from '@repo/lib/modules/relayer/signRelayerApproval.hooks'
+import { useApproveRelayerStep } from '@repo/lib/modules/relayer/useApproveRelayerStep'
+import { useRelayerMode } from '@repo/lib/modules/relayer/useRelayerMode'
+import { useTokenApprovalSteps } from '@repo/lib/modules/tokens/approvals/useTokenApprovalSteps'
+import { getSpenderForAddLiquidity } from '@repo/lib/modules/tokens/token.helpers'
+import { useSignPermit2Step } from '@repo/lib/modules/transactions/transaction-steps/useSignPermit2Step'
+import { useSignRelayerStep } from '@repo/lib/modules/transactions/transaction-steps/useSignRelayerStep'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
import { useMemo } from 'react'
import { usePool } from '../../PoolProvider'
import { requiresPermit2Approval } from '../../pool.helpers'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useConstructAddLiquidityStep.integration.spec.tsx b/packages/lib/modules/pool/actions/add-liquidity/useConstructAddLiquidityStep.integration.spec.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useConstructAddLiquidityStep.integration.spec.tsx
rename to packages/lib/modules/pool/actions/add-liquidity/useConstructAddLiquidityStep.integration.spec.tsx
index 014c0917..42697011 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/add-liquidity/useConstructAddLiquidityStep.integration.spec.tsx
+++ b/packages/lib/modules/pool/actions/add-liquidity/useConstructAddLiquidityStep.integration.spec.tsx
@@ -1,9 +1,9 @@
/* eslint-disable max-len */
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import {
DefaultAddLiquidityTestProvider,
buildDefaultPoolTestProvider,
-} from '@/test/utils/custom-renderers'
+} from '@repo/lib/test/utils/custom-renderers'
import { PropsWithChildren } from 'react'
const PoolProvider = buildDefaultPoolTestProvider(aWjAuraWethPoolElementMock())
diff --git a/apps/frontend-v3/lib/modules/pool/actions/claim/ClaimModal.tsx b/packages/lib/modules/pool/actions/claim/ClaimModal.tsx
similarity index 75%
rename from apps/frontend-v3/lib/modules/pool/actions/claim/ClaimModal.tsx
rename to packages/lib/modules/pool/actions/claim/ClaimModal.tsx
index ca45991d..e10bd98c 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/claim/ClaimModal.tsx
+++ b/packages/lib/modules/pool/actions/claim/ClaimModal.tsx
@@ -10,21 +10,21 @@ import {
import { useClaim } from './ClaimProvider'
import { Address } from 'viem'
import { HumanAmount } from '@balancer/sdk'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { MobileStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
-import { TokenRowGroup } from '@/lib/modules/tokens/TokenRow/TokenRowGroup'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { MobileStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
+import { TokenRowGroup } from '@repo/lib/modules/tokens/TokenRow/TokenRowGroup'
// eslint-disable-next-line max-len
-import { getStylesForModalContentWithStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { DesktopStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
-import { ActionModalFooter } from '@/lib/shared/components/modals/ActionModalFooter'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { getStylesForModalContentWithStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
+import { DesktopStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
+import { ActionModalFooter } from '@repo/lib/shared/components/modals/ActionModalFooter'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
import { useEffect, useMemo, useState } from 'react'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { useResetStepIndexOnOpen } from '../useResetStepIndexOnOpen'
import { useRouter } from 'next/navigation'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
type Props = {
isOpen: boolean
diff --git a/apps/frontend-v3/lib/modules/pool/actions/claim/ClaimProvider.tsx b/packages/lib/modules/pool/actions/claim/ClaimProvider.tsx
similarity index 82%
rename from apps/frontend-v3/lib/modules/pool/actions/claim/ClaimProvider.tsx
rename to packages/lib/modules/pool/actions/claim/ClaimProvider.tsx
index 5242565a..6e0bd589 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/claim/ClaimProvider.tsx
+++ b/packages/lib/modules/pool/actions/claim/ClaimProvider.tsx
@@ -1,15 +1,15 @@
'use client'
-import { useTransactionSteps } from '@/lib/modules/transactions/transaction-steps/useTransactionSteps'
+import { useTransactionSteps } from '@repo/lib/modules/transactions/transaction-steps/useTransactionSteps'
import { PoolListItem } from '../../pool.types'
import { useClaimAllRewardsSteps } from './useClaimAllRewardsSteps'
import { useClaimsData } from './useClaimsData'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useDisclosure } from '@chakra-ui/hooks'
-import { isDisabledWithReason } from '@/lib/shared/utils/functions/isDisabledWithReason'
-import { LABELS } from '@/lib/shared/labels'
+import { isDisabledWithReason } from '@repo/lib/shared/utils/functions/isDisabledWithReason'
+import { LABELS } from '@repo/lib/shared/labels'
import { createContext, PropsWithChildren } from 'react'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { Pool } from '../../PoolProvider'
export type ClaimablePool = Pool | PoolListItem
diff --git a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimAllRewardsStep.tsx b/packages/lib/modules/pool/actions/claim/useClaimAllRewardsStep.tsx
similarity index 80%
rename from apps/frontend-v3/lib/modules/pool/actions/claim/useClaimAllRewardsStep.tsx
rename to packages/lib/modules/pool/actions/claim/useClaimAllRewardsStep.tsx
index cd9ae386..61a8ca39 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimAllRewardsStep.tsx
+++ b/packages/lib/modules/pool/actions/claim/useClaimAllRewardsStep.tsx
@@ -1,20 +1,20 @@
-import { getChainId } from '@/lib/config/app.config'
-import networkConfigs from '@/lib/config/networks'
-import { selectStakingService } from '@/lib/modules/staking/selectStakingService'
-import { ManagedTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
-import { useTransactionState } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { getChainId } from '@repo/lib/config/app.config'
+import networkConfigs from '@repo/lib/config/networks'
+import { selectStakingService } from '@repo/lib/modules/staking/selectStakingService'
+import { ManagedTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
+import { useTransactionState } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { GqlChain, GqlPoolStakingType } from '@/lib/shared/services/api/generated/graphql'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { GqlChain, GqlPoolStakingType } from '@repo/lib/shared/services/api/generated/graphql'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useMemo, useState } from 'react'
import { ManagedTransactionInput } from '../../../web3/contracts/useManagedTransaction'
import { useUserAccount } from '../../../web3/UserAccountProvider'
import { useClaimCallDataQuery } from './useClaimCallDataQuery'
-import { BalTokenRewardsResult } from '@/lib/modules/portfolio/PortfolioClaim/useBalRewards'
-import { ClaimableBalancesResult } from '@/lib/modules/portfolio/PortfolioClaim/useClaimableBalances'
+import { BalTokenRewardsResult } from '@repo/lib/modules/portfolio/PortfolioClaim/useBalRewards'
+import { ClaimableBalancesResult } from '@repo/lib/modules/portfolio/PortfolioClaim/useClaimableBalances'
import { ClaimablePool } from './ClaimProvider'
import { Address } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimAllRewardsSteps.tsx b/packages/lib/modules/pool/actions/claim/useClaimAllRewardsSteps.tsx
similarity index 78%
rename from apps/frontend-v3/lib/modules/pool/actions/claim/useClaimAllRewardsSteps.tsx
rename to packages/lib/modules/pool/actions/claim/useClaimAllRewardsSteps.tsx
index 573465a0..b4721669 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimAllRewardsSteps.tsx
+++ b/packages/lib/modules/pool/actions/claim/useClaimAllRewardsSteps.tsx
@@ -1,9 +1,9 @@
-import { useApproveMinterStep } from '@/lib/modules/staking/gauge/useMinterApprovalStep'
-import { TransactionStep } from '@/lib/modules/transactions/transaction-steps/lib'
+import { useApproveMinterStep } from '@repo/lib/modules/staking/gauge/useMinterApprovalStep'
+import { TransactionStep } from '@repo/lib/modules/transactions/transaction-steps/lib'
import { useMemo } from 'react'
import { ClaimAllRewardsStepParams, useClaimAllRewardsStep } from './useClaimAllRewardsStep'
-import { useApproveRelayerStep } from '@/lib/modules/relayer/useApproveRelayerStep'
-import { getChainId } from '@/lib/config/app.config'
+import { useApproveRelayerStep } from '@repo/lib/modules/relayer/useApproveRelayerStep'
+import { getChainId } from '@repo/lib/config/app.config'
export function useClaimAllRewardsSteps(params: ClaimAllRewardsStepParams) {
const pool = params.pools[0]
diff --git a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimCallDataQuery.ts b/packages/lib/modules/pool/actions/claim/useClaimCallDataQuery.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/actions/claim/useClaimCallDataQuery.ts
rename to packages/lib/modules/pool/actions/claim/useClaimCallDataQuery.ts
index 85663319..4c756e78 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimCallDataQuery.ts
+++ b/packages/lib/modules/pool/actions/claim/useClaimCallDataQuery.ts
@@ -1,6 +1,6 @@
import { useQuery } from '@tanstack/react-query'
import { Address, Hex } from 'viem'
-import { GaugeService } from '@/lib/shared/services/staking/gauge.service'
+import { GaugeService } from '@repo/lib/shared/services/staking/gauge.service'
import { useMemo } from 'react'
export function useClaimCallDataQuery({
diff --git a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimVeBalRewardsStep.tsx b/packages/lib/modules/pool/actions/claim/useClaimVeBalRewardsStep.tsx
similarity index 70%
rename from apps/frontend-v3/lib/modules/pool/actions/claim/useClaimVeBalRewardsStep.tsx
rename to packages/lib/modules/pool/actions/claim/useClaimVeBalRewardsStep.tsx
index 7bd5deac..d3654548 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimVeBalRewardsStep.tsx
+++ b/packages/lib/modules/pool/actions/claim/useClaimVeBalRewardsStep.tsx
@@ -1,14 +1,14 @@
-import networkConfig from '@/lib/config/networks/mainnet'
-import { claimableVeBalRewardsTokens } from '@/lib/modules/portfolio/PortfolioClaim/useProtocolRewards'
-import { ManagedTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
-import { useTransactionState } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import networkConfig from '@repo/lib/config/networks/mainnet'
+import { claimableVeBalRewardsTokens } from '@repo/lib/modules/portfolio/PortfolioClaim/useProtocolRewards'
+import { ManagedTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
+import { useTransactionState } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { ManagedTransactionInput } from '@/lib/modules/web3/contracts/useManagedTransaction'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { ManagedTransactionInput } from '@repo/lib/modules/web3/contracts/useManagedTransaction'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useMemo } from 'react'
import { Address } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimsData.tsx b/packages/lib/modules/pool/actions/claim/useClaimsData.tsx
similarity index 80%
rename from apps/frontend-v3/lib/modules/pool/actions/claim/useClaimsData.tsx
rename to packages/lib/modules/pool/actions/claim/useClaimsData.tsx
index ecbdee83..0f05f442 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/claim/useClaimsData.tsx
+++ b/packages/lib/modules/pool/actions/claim/useClaimsData.tsx
@@ -1,9 +1,9 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { useBalTokenRewards } from '@/lib/modules/portfolio/PortfolioClaim/useBalRewards'
-import { useClaimableBalances } from '@/lib/modules/portfolio/PortfolioClaim/useClaimableBalances'
-import { safeSum } from '@/lib/shared/utils/numbers'
+import { useBalTokenRewards } from '@repo/lib/modules/portfolio/PortfolioClaim/useBalRewards'
+import { useClaimableBalances } from '@repo/lib/modules/portfolio/PortfolioClaim/useClaimableBalances'
+import { safeSum } from '@repo/lib/shared/utils/numbers'
import { useMemo } from 'react'
import { ClaimablePool } from './ClaimProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakeForm.tsx b/packages/lib/modules/pool/actions/migrateStake/MigrateStakeForm.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakeForm.tsx
rename to packages/lib/modules/pool/actions/migrateStake/MigrateStakeForm.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakeModal.tsx b/packages/lib/modules/pool/actions/migrateStake/MigrateStakeModal.tsx
similarity index 73%
rename from apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakeModal.tsx
rename to packages/lib/modules/pool/actions/migrateStake/MigrateStakeModal.tsx
index f3c4c111..17459e1e 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakeModal.tsx
+++ b/packages/lib/modules/pool/actions/migrateStake/MigrateStakeModal.tsx
@@ -1,21 +1,21 @@
'use client'
-import { DesktopStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
+import { DesktopStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
import { Modal, ModalBody, ModalCloseButton, ModalContent, ModalProps } from '@chakra-ui/react'
import { RefObject, useRef } from 'react'
// eslint-disable-next-line max-len
-import { getStylesForModalContentWithStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
+import { getStylesForModalContentWithStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
import { usePool } from '../../PoolProvider'
-import { MobileStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
+import { MobileStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
import { useMigrateStake } from './MigrateStakeProvider'
import { MigrateStakePreview } from './MigrateStakePreview'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
-import { ActionModalFooter } from '@/lib/shared/components/modals/ActionModalFooter'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
+import { ActionModalFooter } from '@repo/lib/shared/components/modals/ActionModalFooter'
import { usePoolRedirect } from '../../pool.hooks'
import { useResetStepIndexOnOpen } from '../useResetStepIndexOnOpen'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
type Props = {
isOpen: boolean
diff --git a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakePreview.tsx b/packages/lib/modules/pool/actions/migrateStake/MigrateStakePreview.tsx
similarity index 83%
rename from apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakePreview.tsx
rename to packages/lib/modules/pool/actions/migrateStake/MigrateStakePreview.tsx
index 40b03e71..84e4bed4 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakePreview.tsx
+++ b/packages/lib/modules/pool/actions/migrateStake/MigrateStakePreview.tsx
@@ -1,11 +1,11 @@
-import TokenRow from '@/lib/modules/tokens/TokenRow/TokenRow'
+import TokenRow from '@repo/lib/modules/tokens/TokenRow/TokenRow'
import { Card, VStack } from '@chakra-ui/react'
import { Address } from 'viem'
import { usePool } from '../../PoolProvider'
import { useMigrateStake as useMigrateStake } from './MigrateStakeProvider'
-import StakeAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip'
+import StakeAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip'
import { useUnstake } from '../unstake/UnstakeProvider'
-import { TokenRowGroup } from '@/lib/modules/tokens/TokenRow/TokenRowGroup'
+import { TokenRowGroup } from '@repo/lib/modules/tokens/TokenRow/TokenRowGroup'
export function MigrateStakePreview() {
const { pool } = usePool()
diff --git a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakeProvider.tsx b/packages/lib/modules/pool/actions/migrateStake/MigrateStakeProvider.tsx
similarity index 78%
rename from apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakeProvider.tsx
rename to packages/lib/modules/pool/actions/migrateStake/MigrateStakeProvider.tsx
index ea406a62..645064b1 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/MigrateStakeProvider.tsx
+++ b/packages/lib/modules/pool/actions/migrateStake/MigrateStakeProvider.tsx
@@ -1,12 +1,12 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { useTransactionSteps } from '@/lib/modules/transactions/transaction-steps/useTransactionSteps'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { LABELS } from '@/lib/shared/labels'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
-import { isDisabledWithReason } from '@/lib/shared/utils/functions/isDisabledWithReason'
-import { isZero } from '@/lib/shared/utils/numbers'
+import { useTransactionSteps } from '@repo/lib/modules/transactions/transaction-steps/useTransactionSteps'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { LABELS } from '@repo/lib/shared/labels'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
+import { isDisabledWithReason } from '@repo/lib/shared/utils/functions/isDisabledWithReason'
+import { isZero } from '@repo/lib/shared/utils/numbers'
import { createContext, PropsWithChildren } from 'react'
import { usePool } from '../../PoolProvider'
import { useUnstake } from '../unstake/UnstakeProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/useMigrateStakeSteps.tsx b/packages/lib/modules/pool/actions/migrateStake/useMigrateStakeSteps.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/actions/migrateStake/useMigrateStakeSteps.tsx
rename to packages/lib/modules/pool/actions/migrateStake/useMigrateStakeSteps.tsx
index ccbdd26f..d92fc2a9 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/useMigrateStakeSteps.tsx
+++ b/packages/lib/modules/pool/actions/migrateStake/useMigrateStakeSteps.tsx
@@ -1,4 +1,4 @@
-import { TransactionStep } from '@/lib/modules/transactions/transaction-steps/lib'
+import { TransactionStep } from '@repo/lib/modules/transactions/transaction-steps/lib'
import { Pool } from '../../PoolProvider'
import { useEffect, useMemo, useState } from 'react'
import { useUnstakeFromNonPreferentialGaugeStep } from './useUnstakeFromNonPreferentialGaugeStep'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/useUnstakeFromNonPreferentialGaugeStep.tsx b/packages/lib/modules/pool/actions/migrateStake/useUnstakeFromNonPreferentialGaugeStep.tsx
similarity index 79%
rename from apps/frontend-v3/lib/modules/pool/actions/migrateStake/useUnstakeFromNonPreferentialGaugeStep.tsx
rename to packages/lib/modules/pool/actions/migrateStake/useUnstakeFromNonPreferentialGaugeStep.tsx
index 887dbcbf..ea3eef72 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/migrateStake/useUnstakeFromNonPreferentialGaugeStep.tsx
+++ b/packages/lib/modules/pool/actions/migrateStake/useUnstakeFromNonPreferentialGaugeStep.tsx
@@ -1,14 +1,14 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { ManagedTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
-import { useTransactionState } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { ManagedTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
+import { useTransactionState } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { ManagedTransactionInput } from '@/lib/modules/web3/contracts/useManagedTransaction'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { ManagedTransactionInput } from '@repo/lib/modules/web3/contracts/useManagedTransaction'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useCallback, useMemo } from 'react'
import { parseUnits } from 'viem'
import { Pool } from '../../PoolProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.spec.tsx b/packages/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.spec.tsx
similarity index 83%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.spec.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.spec.tsx
index 87e535c0..b23ddf81 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.spec.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.spec.tsx
@@ -1,17 +1,17 @@
-import { balAddress, wETHAddress } from '@/lib/debug-helpers'
-import { aTokenPriceMock } from '@/lib/modules/tokens/__mocks__/token.builders'
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
-import { aBalWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
-import { aUserPoolBalance } from '@/test/msw/builders/gqlUserBalance.builders'
-import { mockTokenPricesList } from '@/test/msw/handlers/Tokens.handlers'
-import { buildDefaultPoolTestProvider, testHook } from '@/test/utils/custom-renderers'
+import { balAddress, wETHAddress } from '@repo/lib/debug-helpers'
+import { aTokenPriceMock } from '@repo/lib/modules/tokens/__mocks__/token.builders'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
+import { aBalWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
+import { aUserPoolBalance } from '@repo/lib/test/msw/builders/gqlUserBalance.builders'
+import { mockTokenPricesList } from '@repo/lib/test/msw/handlers/Tokens.handlers'
+import { buildDefaultPoolTestProvider, testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
import { act } from 'react-dom/test-utils'
import { mock } from 'vitest-mock-extended'
import { aTokenAmountMock } from '../__mocks__/liquidity.builders'
import { RemoveLiquiditySimulationQueryResult } from './queries/useRemoveLiquiditySimulationQuery'
import { _useRemoveLiquidity } from './RemoveLiquidityProvider'
-import { aSuccessfulQueryResultMock } from '@/test/utils/react-query'
+import { aSuccessfulQueryResultMock } from '@repo/lib/test/utils/react-query'
const balTokenOutUnits = '1'
const wEthTokenOutUnits = '0.5'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.tsx b/packages/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.tsx
index 5172f301..cbc7bfe9 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider.tsx
@@ -1,12 +1,12 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { LABELS } from '@/lib/shared/labels'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
-import { isDisabledWithReason } from '@/lib/shared/utils/functions/isDisabledWithReason'
-import { bn, isZero, safeSum } from '@/lib/shared/utils/numbers'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { LABELS } from '@repo/lib/shared/labels'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
+import { isDisabledWithReason } from '@repo/lib/shared/utils/functions/isDisabledWithReason'
+import { bn, isZero, safeSum } from '@repo/lib/shared/utils/numbers'
import { HumanAmount, TokenAmount, isSameAddress } from '@balancer/sdk'
import { PropsWithChildren, createContext, useEffect, useMemo, useState } from 'react'
import { usePool } from '../../PoolProvider'
@@ -16,11 +16,11 @@ import { RemoveLiquidityType } from './remove-liquidity.types'
import { Address, Hash } from 'viem'
import { emptyTokenAmounts, toHumanAmount } from '../LiquidityActionHelpers'
import { getPoolTokens, isCowAmmPool } from '../../pool.helpers'
-import { isWrappedNativeAsset } from '@/lib/modules/tokens/token.helpers'
+import { isWrappedNativeAsset } from '@repo/lib/modules/tokens/token.helpers'
import { useRemoveLiquiditySimulationQuery } from './queries/useRemoveLiquiditySimulationQuery'
import { useRemoveLiquiditySteps } from './useRemoveLiquiditySteps'
-import { useTransactionSteps } from '@/lib/modules/transactions/transaction-steps/useTransactionSteps'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
+import { useTransactionSteps } from '@repo/lib/modules/transactions/transaction-steps/useTransactionSteps'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
import { getUserWalletBalance } from '../../user-balance.helpers'
import { useModalWithPoolRedirect } from '../../useModalWithPoolRedirect'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityForm.tsx b/packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityForm.tsx
similarity index 88%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityForm.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityForm.tsx
index 82e33c1c..49159c37 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityForm.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityForm.tsx
@@ -1,12 +1,12 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { TokenBalancesProvider } from '@/lib/modules/tokens/TokenBalancesProvider'
+import { TokenBalancesProvider } from '@repo/lib/modules/tokens/TokenBalancesProvider'
import ButtonGroup, {
ButtonGroupOption,
-} from '@/lib/shared/components/btns/button-group/ButtonGroup'
-import { InputWithSlider } from '@/lib/shared/components/inputs/InputWithSlider/InputWithSlider'
-import { fNum } from '@/lib/shared/utils/numbers'
+} from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
+import { InputWithSlider } from '@repo/lib/shared/components/inputs/InputWithSlider/InputWithSlider'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import {
Box,
Button,
@@ -27,18 +27,18 @@ import { RemoveLiquidityProportional } from './RemoveLiquidityProportional'
import { RemoveLiquiditySingleToken } from './RemoveLiquiditySingleToken'
import { usePool } from '../../../PoolProvider'
import { usePoolRedirect } from '../../../pool.hooks'
-import { TransactionSettings } from '@/lib/modules/user/settings/TransactionSettings'
+import { TransactionSettings } from '@repo/lib/modules/user/settings/TransactionSettings'
import { requiresProportionalInput } from '../../LiquidityActionHelpers'
-import { PriceImpactAccordion } from '@/lib/modules/price-impact/PriceImpactAccordion'
+import { PriceImpactAccordion } from '@repo/lib/modules/price-impact/PriceImpactAccordion'
import { PoolActionsPriceImpactDetails } from '../../PoolActionsPriceImpactDetails'
-import { usePriceImpact } from '@/lib/modules/price-impact/PriceImpactProvider'
+import { usePriceImpact } from '@repo/lib/modules/price-impact/PriceImpactProvider'
import { parseUnits } from 'viem'
-import { SimulationError } from '@/lib/shared/components/errors/SimulationError'
-import { InfoIcon } from '@/lib/shared/components/icons/InfoIcon'
-import { SafeAppAlert } from '@/lib/shared/components/alerts/SafeAppAlert'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { TooltipWithTouch } from '@/lib/shared/components/tooltips/TooltipWithTouch'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
+import { SimulationError } from '@repo/lib/shared/components/errors/SimulationError'
+import { InfoIcon } from '@repo/lib/shared/components/icons/InfoIcon'
+import { SafeAppAlert } from '@repo/lib/shared/components/alerts/SafeAppAlert'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { TooltipWithTouch } from '@repo/lib/shared/components/tooltips/TooltipWithTouch'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
const TABS: ButtonGroupOption[] = [
{
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityProportional.tsx b/packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityProportional.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityProportional.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityProportional.tsx
index e0425c76..29ed9d29 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityProportional.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquidityProportional.tsx
@@ -1,13 +1,13 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import TokenRow from '@/lib/modules/tokens/TokenRow/TokenRow'
-import { GqlPoolType, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import TokenRow from '@repo/lib/modules/tokens/TokenRow/TokenRow'
+import { GqlPoolType, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { Card, Text, VStack, useDisclosure } from '@chakra-ui/react'
import { Address } from 'viem'
import { useRemoveLiquidity } from '../RemoveLiquidityProvider'
-import { isNativeAsset, isNativeOrWrappedNative } from '@/lib/modules/tokens/token.helpers'
-import { NativeAssetSelectModal } from '@/lib/modules/tokens/NativeAssetSelectModal'
+import { isNativeAsset, isNativeOrWrappedNative } from '@repo/lib/modules/tokens/token.helpers'
+import { NativeAssetSelectModal } from '@repo/lib/modules/tokens/NativeAssetSelectModal'
import { shouldShowNativeWrappedSelector } from '../../LiquidityActionHelpers'
type Props = { tokens: (GqlToken | undefined)[]; poolType: GqlPoolType }
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquiditySingleToken.tsx b/packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquiditySingleToken.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquiditySingleToken.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquiditySingleToken.tsx
index a85fcdbc..88b2915e 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquiditySingleToken.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/form/RemoveLiquiditySingleToken.tsx
@@ -1,11 +1,11 @@
'use client'
-import TokenRow from '@/lib/modules/tokens/TokenRow/TokenRow'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import TokenRow from '@repo/lib/modules/tokens/TokenRow/TokenRow'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { Box, HStack, Radio, RadioGroup, Text, VStack } from '@chakra-ui/react'
import { Address } from 'viem'
import { useRemoveLiquidity } from '../RemoveLiquidityProvider'
-import { isNativeAsset } from '@/lib/modules/tokens/token.helpers'
+import { isNativeAsset } from '@repo/lib/modules/tokens/token.helpers'
interface RemoveLiquiditySingleTokenProps {
tokens: (GqlToken | undefined)[]
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/BaseProportionalRemoveLiquidity.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/BaseProportionalRemoveLiquidity.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/BaseProportionalRemoveLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/BaseProportionalRemoveLiquidity.handler.ts
index c49b22ad..95f88d84 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/BaseProportionalRemoveLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/BaseProportionalRemoveLiquidity.handler.ts
@@ -1,4 +1,4 @@
-import { getRpcUrl } from '@/lib/modules/web3/transports'
+import { getRpcUrl } from '@repo/lib/modules/web3/transports'
import {
HumanAmount,
InputAmount,
@@ -16,7 +16,7 @@ import {
SdkQueryRemoveLiquidityOutput,
} from '../remove-liquidity.types'
import { RemoveLiquidityHandler } from './RemoveLiquidity.handler'
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
export abstract class BaseProportionalRemoveLiquidityHandler implements RemoveLiquidityHandler {
protected helpers: LiquidityActionHelpers
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/BaseSingleTokenRemoveLiquidity.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/BaseSingleTokenRemoveLiquidity.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/BaseSingleTokenRemoveLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/BaseSingleTokenRemoveLiquidity.handler.ts
index bc3031e9..41524fbb 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/BaseSingleTokenRemoveLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/BaseSingleTokenRemoveLiquidity.handler.ts
@@ -1,5 +1,5 @@
-import { getRpcUrl } from '@/lib/modules/web3/transports'
-import { SentryError } from '@/lib/shared/utils/errors'
+import { getRpcUrl } from '@repo/lib/modules/web3/transports'
+import { SentryError } from '@repo/lib/shared/utils/errors'
import {
HumanAmount,
InputAmount,
@@ -19,7 +19,7 @@ import {
SdkQueryRemoveLiquidityOutput,
} from '../remove-liquidity.types'
import { RemoveLiquidityHandler } from './RemoveLiquidity.handler'
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
export abstract class BaseSingleTokenRemoveLiquidityHandler implements RemoveLiquidityHandler {
protected helpers: LiquidityActionHelpers
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.integration.spec.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.integration.spec.ts
similarity index 84%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.integration.spec.ts
index bddf9baa..fd61d2e8 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.integration.spec.ts
@@ -1,14 +1,14 @@
-import networkConfig from '@/lib/config/networks/mainnet'
-import { wETHAddress } from '@/lib/debug-helpers'
-import { emptyAddress } from '@/lib/modules/web3/contracts/wagmi-helpers'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import networkConfig from '@repo/lib/config/networks/mainnet'
+import { wETHAddress } from '@repo/lib/debug-helpers'
+import { emptyAddress } from '@repo/lib/modules/web3/contracts/wagmi-helpers'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { nestedPoolMock } from '../../../__mocks__/nestedPoolMock'
import { Pool } from '../../../PoolProvider'
import { QueryRemoveLiquidityInput, RemoveLiquidityType } from '../remove-liquidity.types'
import { NestedProportionalRemoveLiquidityHandler } from './NestedProportionalRemoveLiquidity.handler'
import { selectRemoveLiquidityHandler } from './selectRemoveLiquidityHandler'
-import { mainnetTestPublicClient } from '@/test/utils/wagmi/wagmi-test-clients'
-import { connectWithDefaultUser } from '@/test/utils/wagmi/wagmi-connections'
+import { mainnetTestPublicClient } from '@repo/lib/test/utils/wagmi/wagmi-test-clients'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
function selectNestedProportionalHandler(pool: Pool): NestedProportionalRemoveLiquidityHandler {
return selectRemoveLiquidityHandler(
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.ts
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.ts
index 1e90231a..855969e9 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedProportionalRemoveLiquidity.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import {
HumanAmount,
RemoveLiquidityNested,
@@ -15,7 +15,7 @@ import {
QueryRemoveLiquidityOutput,
} from '../remove-liquidity.types'
import { RemoveLiquidityHandler } from './RemoveLiquidity.handler'
-import { getRpcUrl } from '@/lib/modules/web3/transports'
+import { getRpcUrl } from '@repo/lib/modules/web3/transports'
export interface NestedProportionalQueryRemoveLiquidityOutput extends QueryRemoveLiquidityOutput {
sdkQueryOutput: RemoveLiquidityNestedQueryOutput
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.integration.spec.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.integration.spec.ts
similarity index 89%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.integration.spec.ts
index eab89dd4..e7c062aa 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.integration.spec.ts
@@ -1,11 +1,11 @@
-import networkConfig from '@/lib/config/networks/mainnet'
-import { daiAddress } from '@/lib/debug-helpers'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import networkConfig from '@repo/lib/config/networks/mainnet'
+import { daiAddress } from '@repo/lib/debug-helpers'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { nestedPoolMock } from '../../../__mocks__/nestedPoolMock'
import { Pool } from '../../../PoolProvider'
import { QueryRemoveLiquidityInput, RemoveLiquidityType } from '../remove-liquidity.types'
import { selectRemoveLiquidityHandler } from './selectRemoveLiquidityHandler'
-import { mainnetTestPublicClient } from '@/test/utils/wagmi/wagmi-test-clients'
+import { mainnetTestPublicClient } from '@repo/lib/test/utils/wagmi/wagmi-test-clients'
import { NestedSingleTokenRemoveLiquidityHandler } from './NestedSingleTokenRemoveLiquidity.handler'
function selectNestedSingleTokenHandler(pool: Pool): NestedSingleTokenRemoveLiquidityHandler {
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.ts
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.ts
index 0c873217..c2572ea8 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/NestedSingleTokenRemoveLiquidity.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import {
HumanAmount,
RemoveLiquidityNested,
@@ -17,7 +17,7 @@ import {
QueryRemoveLiquidityOutput,
} from '../remove-liquidity.types'
import { RemoveLiquidityHandler } from './RemoveLiquidity.handler'
-import { getRpcUrl } from '@/lib/modules/web3/transports'
+import { getRpcUrl } from '@repo/lib/modules/web3/transports'
export interface NestedSingleTokenQueryRemoveLiquidityOutput extends QueryRemoveLiquidityOutput {
sdkQueryOutput: RemoveLiquidityNestedQueryOutput
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.integration.spec.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.integration.spec.ts
similarity index 89%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.integration.spec.ts
index c17e8db8..11f28439 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.integration.spec.ts
@@ -1,17 +1,17 @@
-import networkConfig from '@/lib/config/networks/mainnet'
-import { balAddress, sepoliaRouter, wETHAddress } from '@/lib/debug-helpers'
+import networkConfig from '@repo/lib/config/networks/mainnet'
+import { balAddress, sepoliaRouter, wETHAddress } from '@repo/lib/debug-helpers'
import {
aBalWethPoolElementMock,
aPhantomStablePoolMock,
-} from '@/test/msw/builders/gqlPoolElement.builders'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+} from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { Pool } from '../../../PoolProvider'
import { QueryRemoveLiquidityInput, RemoveLiquidityType } from '../remove-liquidity.types'
import { selectRemoveLiquidityHandler } from './selectRemoveLiquidityHandler'
import { ProportionalRemoveLiquidityHandler } from './ProportionalRemoveLiquidity.handler'
-import { emptyAddress } from '@/lib/modules/web3/contracts/wagmi-helpers'
-import { connectWithDefaultUser } from '@/test/utils/wagmi/wagmi-connections'
-// import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { emptyAddress } from '@repo/lib/modules/web3/contracts/wagmi-helpers'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
+// import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
// import { getPoolMock } from '../../../__mocks__/getPoolMock'
const poolMock = aBalWethPoolElementMock() // 80BAL-20WETH
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.ts
index 1c1c6050..a51cbe60 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidity.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { RemoveLiquidity, Slippage } from '@balancer/sdk'
import { formatBuildCallParams } from '../../LiquidityActionHelpers'
import { SdkBuildRemoveLiquidityInput } from '../remove-liquidity.types'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidityV3.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidityV3.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidityV3.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidityV3.handler.ts
index 66353f27..ff22cd4b 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidityV3.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/ProportionalRemoveLiquidityV3.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { RemoveLiquidity, Slippage } from '@balancer/sdk'
import { SdkBuildRemoveLiquidityInput } from '../remove-liquidity.types'
import { BaseProportionalRemoveLiquidityHandler } from './BaseProportionalRemoveLiquidity.handler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/RecoveryRemoveLiquidity.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/RecoveryRemoveLiquidity.handler.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/RecoveryRemoveLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/RecoveryRemoveLiquidity.handler.ts
index a7cd09b0..55f9239a 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/RecoveryRemoveLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/RecoveryRemoveLiquidity.handler.ts
@@ -13,11 +13,11 @@ import {
SdkBuildRemoveLiquidityInput,
SdkQueryRemoveLiquidityOutput,
} from '../remove-liquidity.types'
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { parseEther } from 'viem'
import { BPT_DECIMALS } from '../../../pool.constants'
import { LiquidityActionHelpers } from '../../LiquidityActionHelpers'
-import { getRpcUrl } from '@/lib/modules/web3/transports'
+import { getRpcUrl } from '@repo/lib/modules/web3/transports'
/*
A recovery exit is just a Proportional one but with Recovery kind
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/RemoveLiquidity.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/RemoveLiquidity.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/RemoveLiquidity.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/RemoveLiquidity.handler.ts
index 338150ba..1ff93538 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/RemoveLiquidity.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/RemoveLiquidity.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import {
BuildRemoveLiquidityInput,
QueryRemoveLiquidityInput,
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.integration.spec.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.integration.spec.ts
similarity index 86%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.integration.spec.ts
index ea31deb4..2f99e397 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.integration.spec.ts
@@ -1,7 +1,7 @@
-import networkConfig from '@/lib/config/networks/mainnet'
-import { balAddress, wETHAddress } from '@/lib/debug-helpers'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
-import { aBalWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import networkConfig from '@repo/lib/config/networks/mainnet'
+import { balAddress, wETHAddress } from '@repo/lib/debug-helpers'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
+import { aBalWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import { Pool } from '../../../PoolProvider'
import { QueryRemoveLiquidityInput, RemoveLiquidityType } from '../remove-liquidity.types'
import { SingleTokenRemoveLiquidityV2Handler } from './SingleTokenRemoveLiquidityV2.handler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.ts
index 43a42504..26b5a4be 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV2.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { RemoveLiquidity, Slippage } from '@balancer/sdk'
import { formatBuildCallParams } from '../../LiquidityActionHelpers'
import { SdkBuildRemoveLiquidityInput } from '../remove-liquidity.types'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.integration.spec.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.integration.spec.ts
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.integration.spec.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.integration.spec.ts
index 2923b30c..af1467c6 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.integration.spec.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.integration.spec.ts
@@ -1,11 +1,11 @@
-import { sepoliaRouter } from '@/lib/debug-helpers'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import { sepoliaRouter } from '@repo/lib/debug-helpers'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { Pool } from '../../../PoolProvider'
import { QueryRemoveLiquidityInput, RemoveLiquidityType } from '../remove-liquidity.types'
import { SingleTokenRemoveLiquidityV3Handler } from './SingleTokenRemoveLiquidityV3.handler'
import { selectRemoveLiquidityHandler } from './selectRemoveLiquidityHandler'
// import { getPoolMock } from '../../../__mocks__/getPoolMock'
-// import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+// import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
function selectSingleTokenHandler(pool: Pool): SingleTokenRemoveLiquidityV3Handler {
return selectRemoveLiquidityHandler(
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.ts
index ef781ec4..73062936 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/handlers/SingleTokenRemoveLiquidityV3.handler.ts
@@ -1,4 +1,4 @@
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
import { RemoveLiquidity, Slippage } from '@balancer/sdk'
import { SdkBuildRemoveLiquidityInput } from '../remove-liquidity.types'
import { BaseSingleTokenRemoveLiquidityHandler } from './BaseSingleTokenRemoveLiquidity.handler'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/selectRemoveLiquidityHandler.ts b/packages/lib/modules/pool/actions/remove-liquidity/handlers/selectRemoveLiquidityHandler.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/handlers/selectRemoveLiquidityHandler.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/handlers/selectRemoveLiquidityHandler.ts
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityModal.tsx b/packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityModal.tsx
similarity index 78%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityModal.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityModal.tsx
index a748cb5c..0aae7c1d 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityModal.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityModal.tsx
@@ -6,19 +6,19 @@ import { usePool } from '../../../PoolProvider'
import { useRemoveLiquidity } from '../RemoveLiquidityProvider'
import { RemoveLiquidityTimeout } from './RemoveLiquidityTimeout'
// eslint-disable-next-line max-len
-import { getStylesForModalContentWithStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { DesktopStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
+import { getStylesForModalContentWithStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
+import { DesktopStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
import { ActionModalFooter } from '../../../../../shared/components/modals/ActionModalFooter'
import { usePoolRedirect } from '../../../pool.hooks'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
import { useResetStepIndexOnOpen } from '../../useResetStepIndexOnOpen'
-import { useOnUserAccountChanged } from '@/lib/modules/web3/useOnUserAccountChanged'
+import { useOnUserAccountChanged } from '@repo/lib/modules/web3/useOnUserAccountChanged'
import { RemoveLiquiditySummary } from './RemoveLiquiditySummary'
-import { useRemoveLiquidityReceipt } from '@/lib/modules/transactions/transaction-steps/receipts/receipt.hooks'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
+import { useRemoveLiquidityReceipt } from '@repo/lib/modules/transactions/transaction-steps/receipts/receipt.hooks'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
type Props = {
isOpen: boolean
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquiditySummary.tsx b/packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquiditySummary.tsx
similarity index 76%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquiditySummary.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquiditySummary.tsx
index 2312b572..58b9d95a 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquiditySummary.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquiditySummary.tsx
@@ -1,20 +1,20 @@
import { useRemoveLiquidity } from '../RemoveLiquidityProvider'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
import { Card, VStack } from '@chakra-ui/react'
-import { MobileStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
+import { MobileStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
import { usePool } from '../../../PoolProvider'
import { PoolActionsPriceImpactDetails } from '../../PoolActionsPriceImpactDetails'
import { parseUnits } from 'viem'
-import { BptRow } from '@/lib/modules/tokens/TokenRow/BptRow'
-import { TokenRowGroup } from '@/lib/modules/tokens/TokenRow/TokenRowGroup'
-import { bn } from '@/lib/shared/utils/numbers'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { RemoveLiquidityReceiptResult } from '@/lib/modules/transactions/transaction-steps/receipts/receipt.hooks'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { CardPopAnim } from '@/lib/shared/components/animations/CardPopAnim'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
+import { BptRow } from '@repo/lib/modules/tokens/TokenRow/BptRow'
+import { TokenRowGroup } from '@repo/lib/modules/tokens/TokenRow/TokenRowGroup'
+import { bn } from '@repo/lib/shared/utils/numbers'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { RemoveLiquidityReceiptResult } from '@repo/lib/modules/transactions/transaction-steps/receipts/receipt.hooks'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { CardPopAnim } from '@repo/lib/shared/components/animations/CardPopAnim'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
export function RemoveLiquiditySummary({
isLoading: isLoadingReceipt,
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityTimeout.tsx b/packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityTimeout.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityTimeout.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityTimeout.tsx
index 4c46bec8..e749bc2a 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityTimeout.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/modal/RemoveLiquidityTimeout.tsx
@@ -3,8 +3,8 @@ import { HStack, Text } from '@chakra-ui/react'
import { useEffect } from 'react'
import { useCountdown } from 'usehooks-ts'
import { useRemoveLiquidity } from '../RemoveLiquidityProvider'
-import { useShouldFreezeQuote } from '@/lib/modules/transactions/transaction-steps/useShouldFreezeQuote'
-import { NumberText } from '@/lib/shared/components/typography/NumberText'
+import { useShouldFreezeQuote } from '@repo/lib/modules/transactions/transaction-steps/useShouldFreezeQuote'
+import { NumberText } from '@repo/lib/shared/components/typography/NumberText'
import { removeLiquidityStepId } from '../useRemoveLiquidityStep'
function useRemoveLiquidityTimeout() {
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.spec.ts b/packages/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.spec.ts
similarity index 81%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.spec.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.spec.ts
index 646fba89..e41c60e6 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.spec.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.spec.ts
@@ -1,9 +1,9 @@
/* eslint-disable max-len */
-import { poolId } from '@/lib/debug-helpers'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import { poolId } from '@repo/lib/debug-helpers'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { removeLiquidityKeys } from './remove-liquidity-keys'
import { ProportionalRemoveLiquidityHandler } from '../handlers/ProportionalRemoveLiquidity.handler'
-import { aBalWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aBalWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
const handler = new ProportionalRemoveLiquidityHandler(aBalWethPoolElementMock())
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.ts b/packages/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys.ts
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityBuildCallDataQuery.ts b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityBuildCallDataQuery.ts
similarity index 82%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityBuildCallDataQuery.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityBuildCallDataQuery.ts
index 54118702..2b31ddc9 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityBuildCallDataQuery.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityBuildCallDataQuery.ts
@@ -1,11 +1,11 @@
'use client'
-import { useRelayerSignature } from '@/lib/modules/relayer/RelayerSignatureProvider'
-import { usePermitSignature } from '@/lib/modules/tokens/approvals/permit2/PermitSignatureProvider'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { defaultDebounceMs, onlyExplicitRefetch } from '@/lib/shared/utils/queries'
-import { sentryMetaForRemoveLiquidityHandler } from '@/lib/shared/utils/query-errors'
+import { useRelayerSignature } from '@repo/lib/modules/relayer/RelayerSignatureProvider'
+import { usePermitSignature } from '@repo/lib/modules/tokens/approvals/permit2/PermitSignatureProvider'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { defaultDebounceMs, onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
+import { sentryMetaForRemoveLiquidityHandler } from '@repo/lib/shared/utils/query-errors'
import { HumanAmount } from '@balancer/sdk'
import { useQuery } from '@tanstack/react-query'
import { useDebounce } from 'use-debounce'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.integration.spec.tsx b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.integration.spec.tsx
similarity index 83%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.integration.spec.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.integration.spec.tsx
index 1e448fb1..1ae3fb4e 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.integration.spec.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.integration.spec.tsx
@@ -1,13 +1,13 @@
-import { testHook } from '@/test/utils/custom-renderers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import { selectRemoveLiquidityHandler } from '../handlers/selectRemoveLiquidityHandler'
import { RemoveLiquidityType } from '../remove-liquidity.types'
import { useRemoveLiquidityPriceImpactQuery } from './useRemoveLiquidityPriceImpactQuery'
import { HumanAmount } from '@balancer/sdk'
import { Address } from 'viem'
-import { connectWithDefaultUser } from '@/test/utils/wagmi/wagmi-connections'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
const emptyTokenOut = '' as Address // We don't use it but it is required to simplify TS checks
const poolMock = aWjAuraWethPoolElementMock()
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.ts b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.ts
similarity index 81%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.ts
index 0b7b7a0f..6507e222 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquidityPriceImpactQuery.ts
@@ -1,15 +1,15 @@
'use client'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { defaultDebounceMs, onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { defaultDebounceMs, onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
import { useDebounce } from 'use-debounce'
import { Address } from 'viem'
import { RemoveLiquidityHandler } from '../handlers/RemoveLiquidity.handler'
import { RemoveLiquidityParams, removeLiquidityKeys } from './remove-liquidity-keys'
import { HumanAmount } from '@balancer/sdk'
import { useQuery } from '@tanstack/react-query'
-import { sentryMetaForRemoveLiquidityHandler } from '@/lib/shared/utils/query-errors'
+import { sentryMetaForRemoveLiquidityHandler } from '@repo/lib/shared/utils/query-errors'
import { useBlockNumber } from 'wagmi'
type Params = {
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.integration.spec.tsx b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.integration.spec.tsx
similarity index 84%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.integration.spec.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.integration.spec.tsx
index cb52c9cf..7bc55e02 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.integration.spec.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.integration.spec.tsx
@@ -1,15 +1,15 @@
-import { poolId } from '@/lib/debug-helpers'
-import { testHook } from '@/test/utils/custom-renderers'
+import { poolId } from '@repo/lib/debug-helpers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import { HumanAmount, TokenAmount } from '@balancer/sdk'
import { toHumanAmount } from '../../LiquidityActionHelpers'
import { selectRemoveLiquidityHandler } from '../handlers/selectRemoveLiquidityHandler'
import { RemoveLiquidityType } from '../remove-liquidity.types'
import { useRemoveLiquiditySimulationQuery } from './useRemoveLiquiditySimulationQuery'
import { Address } from 'viem'
-import { connectWithDefaultUser } from '@/test/utils/wagmi/wagmi-connections'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
async function testQuery(humanBptIn: HumanAmount) {
const handler = selectRemoveLiquidityHandler(
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.ts b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.ts
similarity index 82%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.ts
index ad382b96..72474c85 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.ts
+++ b/packages/lib/modules/pool/actions/remove-liquidity/queries/useRemoveLiquiditySimulationQuery.ts
@@ -1,14 +1,14 @@
'use client'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { defaultDebounceMs, onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { defaultDebounceMs, onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
import { HumanAmount } from '@balancer/sdk'
import { useDebounce } from 'use-debounce'
import { useQuery } from '@tanstack/react-query'
import { RemoveLiquidityHandler } from '../handlers/RemoveLiquidity.handler'
import { RemoveLiquidityParams, removeLiquidityKeys } from './remove-liquidity-keys'
-import { sentryMetaForRemoveLiquidityHandler } from '@/lib/shared/utils/query-errors'
+import { sentryMetaForRemoveLiquidityHandler } from '@repo/lib/shared/utils/query-errors'
import { Address } from 'viem'
export type RemoveLiquiditySimulationQueryResult = ReturnType<
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/remove-liquidity.types.ts b/packages/lib/modules/pool/actions/remove-liquidity/remove-liquidity.types.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/remove-liquidity.types.ts
rename to packages/lib/modules/pool/actions/remove-liquidity/remove-liquidity.types.ts
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.integration.spec.tsx b/packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.integration.spec.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.integration.spec.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.integration.spec.tsx
index 9885af92..906138aa 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.integration.spec.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.integration.spec.tsx
@@ -1,9 +1,9 @@
/* eslint-disable max-len */
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import {
DefaultRemoveLiquidityTestProvider,
buildDefaultPoolTestProvider,
-} from '@/test/utils/custom-renderers'
+} from '@repo/lib/test/utils/custom-renderers'
import { PropsWithChildren } from 'react'
import { RemoveLiquidityProvider } from './RemoveLiquidityProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.tsx b/packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.tsx
similarity index 85%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.tsx
index 11f62601..43c81784 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquidityStep.tsx
@@ -1,18 +1,18 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { ManagedSendTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
-import { useTransactionState } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { ManagedSendTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
+import { useTransactionState } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useEffect, useMemo, useState } from 'react'
import { usePool } from '../../PoolProvider'
import {
RemoveLiquidityBuildQueryParams,
useRemoveLiquidityBuildCallDataQuery,
} from './queries/useRemoveLiquidityBuildCallDataQuery'
-import { useTenderly } from '@/lib/modules/web3/useTenderly'
+import { useTenderly } from '@repo/lib/modules/web3/useTenderly'
export const removeLiquidityStepId = 'remove-liquidity'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquiditySteps.tsx b/packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquiditySteps.tsx
similarity index 75%
rename from apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquiditySteps.tsx
rename to packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquiditySteps.tsx
index db899bee..245f9c4a 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/remove-liquidity/useRemoveLiquiditySteps.tsx
+++ b/packages/lib/modules/pool/actions/remove-liquidity/useRemoveLiquiditySteps.tsx
@@ -1,11 +1,11 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { useShouldSignRelayerApproval } from '@/lib/modules/relayer/signRelayerApproval.hooks'
-import { useApproveRelayerStep } from '@/lib/modules/relayer/useApproveRelayerStep'
-import { useRelayerMode } from '@/lib/modules/relayer/useRelayerMode'
-import { TransactionStep } from '@/lib/modules/transactions/transaction-steps/lib'
-import { useSignPermitStep } from '@/lib/modules/transactions/transaction-steps/useSignPermitStep'
-import { useSignRelayerStep } from '@/lib/modules/transactions/transaction-steps/useSignRelayerStep'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
+import { useShouldSignRelayerApproval } from '@repo/lib/modules/relayer/signRelayerApproval.hooks'
+import { useApproveRelayerStep } from '@repo/lib/modules/relayer/useApproveRelayerStep'
+import { useRelayerMode } from '@repo/lib/modules/relayer/useRelayerMode'
+import { TransactionStep } from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { useSignPermitStep } from '@repo/lib/modules/transactions/transaction-steps/useSignPermitStep'
+import { useSignRelayerStep } from '@repo/lib/modules/transactions/transaction-steps/useSignRelayerStep'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
import { useMemo } from 'react'
import { usePool } from '../../PoolProvider'
import { isV3Pool } from '../../pool.helpers'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/stake.helpers.ts b/packages/lib/modules/pool/actions/stake.helpers.ts
similarity index 97%
rename from apps/frontend-v3/lib/modules/pool/actions/stake.helpers.ts
rename to packages/lib/modules/pool/actions/stake.helpers.ts
index 6da55e05..7249a6cd 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/stake.helpers.ts
+++ b/packages/lib/modules/pool/actions/stake.helpers.ts
@@ -1,4 +1,4 @@
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { Pool } from '../PoolProvider'
import { Address } from 'viem'
import { HumanAmount } from '@balancer/sdk'
@@ -6,7 +6,7 @@ import { isClaimableGauge } from '../pool.helpers'
import {
GqlPoolStakingType,
GqlUserStakedBalance,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { getStakedBalance } from '../user-balance.helpers'
// eslint-disable-next-line max-len
diff --git a/apps/frontend-v3/lib/modules/pool/actions/stake/StakeForm.tsx b/packages/lib/modules/pool/actions/stake/StakeForm.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/actions/stake/StakeForm.tsx
rename to packages/lib/modules/pool/actions/stake/StakeForm.tsx
index f47a06b9..f21720d5 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/stake/StakeForm.tsx
+++ b/packages/lib/modules/pool/actions/stake/StakeForm.tsx
@@ -6,7 +6,7 @@ import { useRef } from 'react'
import { StakeModal } from './StakeModal'
import { StakePreview } from './StakePreview'
import { useModalWithPoolRedirect } from '../../useModalWithPoolRedirect'
-import { SafeAppAlert } from '@/lib/shared/components/alerts/SafeAppAlert'
+import { SafeAppAlert } from '@repo/lib/shared/components/alerts/SafeAppAlert'
export function StakeForm() {
const { isDisabled, disabledReason, isLoading, stakeTxHash, pool } = useStake()
diff --git a/apps/frontend-v3/lib/modules/pool/actions/stake/StakeModal.tsx b/packages/lib/modules/pool/actions/stake/StakeModal.tsx
similarity index 72%
rename from apps/frontend-v3/lib/modules/pool/actions/stake/StakeModal.tsx
rename to packages/lib/modules/pool/actions/stake/StakeModal.tsx
index 7a5b6b8a..a94357b8 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/stake/StakeModal.tsx
+++ b/packages/lib/modules/pool/actions/stake/StakeModal.tsx
@@ -1,21 +1,21 @@
'use client'
-import { DesktopStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
+import { DesktopStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
import { Modal, ModalBody, ModalCloseButton, ModalContent, ModalProps } from '@chakra-ui/react'
import { RefObject, useRef } from 'react'
// eslint-disable-next-line max-len
-import { getStylesForModalContentWithStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
+import { getStylesForModalContentWithStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
import { useStake } from './StakeProvider'
import { usePool } from '../../PoolProvider'
import { StakePreview } from './StakePreview'
-import { MobileStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
-import { ActionModalFooter } from '@/lib/shared/components/modals/ActionModalFooter'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
+import { MobileStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
+import { ActionModalFooter } from '@repo/lib/shared/components/modals/ActionModalFooter'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
import { usePoolRedirect } from '../../pool.hooks'
import { useResetStepIndexOnOpen } from '../useResetStepIndexOnOpen'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
type Props = {
isOpen: boolean
diff --git a/apps/frontend-v3/lib/modules/pool/actions/stake/StakePreview.tsx b/packages/lib/modules/pool/actions/stake/StakePreview.tsx
similarity index 79%
rename from apps/frontend-v3/lib/modules/pool/actions/stake/StakePreview.tsx
rename to packages/lib/modules/pool/actions/stake/StakePreview.tsx
index 29aebf07..bdca28c4 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/stake/StakePreview.tsx
+++ b/packages/lib/modules/pool/actions/stake/StakePreview.tsx
@@ -1,10 +1,10 @@
-import TokenRow from '@/lib/modules/tokens/TokenRow/TokenRow'
-import { WalletIcon } from '@/lib/shared/components/icons/WalletIcon'
+import TokenRow from '@repo/lib/modules/tokens/TokenRow/TokenRow'
+import { WalletIcon } from '@repo/lib/shared/components/icons/WalletIcon'
import { VStack, Card, HStack, Text } from '@chakra-ui/react'
import { Address } from 'viem'
import { usePool } from '../../PoolProvider'
import { useStake } from './StakeProvider'
-import StakeAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip'
+import StakeAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip'
export function StakePreview() {
const { pool } = usePool()
diff --git a/apps/frontend-v3/lib/modules/pool/actions/stake/StakeProvider.tsx b/packages/lib/modules/pool/actions/stake/StakeProvider.tsx
similarity index 81%
rename from apps/frontend-v3/lib/modules/pool/actions/stake/StakeProvider.tsx
rename to packages/lib/modules/pool/actions/stake/StakeProvider.tsx
index 56241a6c..0577bb29 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/stake/StakeProvider.tsx
+++ b/packages/lib/modules/pool/actions/stake/StakeProvider.tsx
@@ -1,17 +1,17 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { useTransactionSteps } from '@/lib/modules/transactions/transaction-steps/useTransactionSteps'
-import { useTokenAllowances } from '@/lib/modules/web3/useTokenAllowances'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { LABELS } from '@/lib/shared/labels'
-import { isDisabledWithReason } from '@/lib/shared/utils/functions/isDisabledWithReason'
+import { useTransactionSteps } from '@repo/lib/modules/transactions/transaction-steps/useTransactionSteps'
+import { useTokenAllowances } from '@repo/lib/modules/web3/useTokenAllowances'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { LABELS } from '@repo/lib/shared/labels'
+import { isDisabledWithReason } from '@repo/lib/shared/utils/functions/isDisabledWithReason'
import { createContext, PropsWithChildren, useEffect, useState } from 'react'
import { Address } from 'viem'
import { usePool } from '../../PoolProvider'
import { useStakeSteps } from './useStakeSteps'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
-import { bn } from '@/lib/shared/utils/numbers'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { HumanAmount } from '@balancer/sdk'
import { getUserWalletBalance, getUserWalletBalanceUsd } from '../../user-balance.helpers'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/stake/useStakeStep.tsx b/packages/lib/modules/pool/actions/stake/useStakeStep.tsx
similarity index 80%
rename from apps/frontend-v3/lib/modules/pool/actions/stake/useStakeStep.tsx
rename to packages/lib/modules/pool/actions/stake/useStakeStep.tsx
index b57baac8..92e25356 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/stake/useStakeStep.tsx
+++ b/packages/lib/modules/pool/actions/stake/useStakeStep.tsx
@@ -1,15 +1,15 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { ManagedTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
-import { useTransactionState } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { ManagedTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
+import { useTransactionState } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useCallback, useMemo, useState } from 'react'
import { Pool, usePool } from '../../PoolProvider'
-import { ManagedTransactionInput } from '@/lib/modules/web3/contracts/useManagedTransaction'
+import { ManagedTransactionInput } from '@repo/lib/modules/web3/contracts/useManagedTransaction'
const stakeStepId = 'stake'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/stake/useStakeSteps.tsx b/packages/lib/modules/pool/actions/stake/useStakeSteps.tsx
similarity index 85%
rename from apps/frontend-v3/lib/modules/pool/actions/stake/useStakeSteps.tsx
rename to packages/lib/modules/pool/actions/stake/useStakeSteps.tsx
index 5f19a524..e5a36bf8 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/stake/useStakeSteps.tsx
+++ b/packages/lib/modules/pool/actions/stake/useStakeSteps.tsx
@@ -1,7 +1,7 @@
import { Address, parseUnits } from 'viem'
import { Pool } from '../../PoolProvider'
-import { useTokenApprovalSteps } from '@/lib/modules/tokens/approvals/useTokenApprovalSteps'
-import { RawAmount } from '@/lib/modules/tokens/approvals/approval-rules'
+import { useTokenApprovalSteps } from '@repo/lib/modules/tokens/approvals/useTokenApprovalSteps'
+import { RawAmount } from '@repo/lib/modules/tokens/approvals/approval-rules'
import { BPT_DECIMALS } from '../../pool.constants'
import { useMemo } from 'react'
import { useStakeStep } from './useStakeStep'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeForm.tsx b/packages/lib/modules/pool/actions/unstake/UnstakeForm.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeForm.tsx
rename to packages/lib/modules/pool/actions/unstake/UnstakeForm.tsx
index bde6ce67..2b8fb113 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeForm.tsx
+++ b/packages/lib/modules/pool/actions/unstake/UnstakeForm.tsx
@@ -6,7 +6,7 @@ import { useUnstake } from './UnstakeProvider'
import { UnstakePreview } from './UnstakePreview'
import { UnstakeModal } from './UnstakeModal'
import { useModalWithPoolRedirect } from '../../useModalWithPoolRedirect'
-import { SafeAppAlert } from '@/lib/shared/components/alerts/SafeAppAlert'
+import { SafeAppAlert } from '@repo/lib/shared/components/alerts/SafeAppAlert'
export function UnstakeForm() {
const nextBtn = useRef(null)
diff --git a/apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeModal.tsx b/packages/lib/modules/pool/actions/unstake/UnstakeModal.tsx
similarity index 72%
rename from apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeModal.tsx
rename to packages/lib/modules/pool/actions/unstake/UnstakeModal.tsx
index 2dce123c..cb6b7744 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeModal.tsx
+++ b/packages/lib/modules/pool/actions/unstake/UnstakeModal.tsx
@@ -1,21 +1,21 @@
'use client'
-import { DesktopStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
+import { DesktopStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
import { Modal, ModalBody, ModalCloseButton, ModalContent, ModalProps } from '@chakra-ui/react'
import { RefObject, useRef } from 'react'
// eslint-disable-next-line max-len
-import { getStylesForModalContentWithStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
+import { getStylesForModalContentWithStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
import { usePool } from '../../PoolProvider'
-import { MobileStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
+import { MobileStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
import { useUnstake } from './UnstakeProvider'
import { UnstakePreview } from './UnstakePreview'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
-import { ActionModalFooter } from '@/lib/shared/components/modals/ActionModalFooter'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
+import { ActionModalFooter } from '@repo/lib/shared/components/modals/ActionModalFooter'
import { usePoolRedirect } from '../../pool.hooks'
import { useResetStepIndexOnOpen } from '../useResetStepIndexOnOpen'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
type Props = {
isOpen: boolean
diff --git a/apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakePreview.tsx b/packages/lib/modules/pool/actions/unstake/UnstakePreview.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakePreview.tsx
rename to packages/lib/modules/pool/actions/unstake/UnstakePreview.tsx
index df34c57a..5361ee2d 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakePreview.tsx
+++ b/packages/lib/modules/pool/actions/unstake/UnstakePreview.tsx
@@ -1,5 +1,5 @@
-import TokenRow from '@/lib/modules/tokens/TokenRow/TokenRow'
-import { TokenRowGroup } from '@/lib/modules/tokens/TokenRow/TokenRowGroup'
+import TokenRow from '@repo/lib/modules/tokens/TokenRow/TokenRow'
+import { TokenRowGroup } from '@repo/lib/modules/tokens/TokenRow/TokenRowGroup'
import { VStack, Card } from '@chakra-ui/react'
import { Address } from 'viem'
import { usePool } from '../../PoolProvider'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeProvider.tsx b/packages/lib/modules/pool/actions/unstake/UnstakeProvider.tsx
similarity index 85%
rename from apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeProvider.tsx
rename to packages/lib/modules/pool/actions/unstake/UnstakeProvider.tsx
index 449462e9..d9fde428 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/unstake/UnstakeProvider.tsx
+++ b/packages/lib/modules/pool/actions/unstake/UnstakeProvider.tsx
@@ -1,13 +1,13 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
-import { HumanTokenAmountWithAddress } from '@/lib/modules/tokens/token.types'
-import { useTransactionSteps } from '@/lib/modules/transactions/transaction-steps/useTransactionSteps'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { LABELS } from '@/lib/shared/labels'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
-import { isDisabledWithReason } from '@/lib/shared/utils/functions/isDisabledWithReason'
-import { bn, isZero } from '@/lib/shared/utils/numbers'
+import { HumanTokenAmountWithAddress } from '@repo/lib/modules/tokens/token.types'
+import { useTransactionSteps } from '@repo/lib/modules/transactions/transaction-steps/useTransactionSteps'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { LABELS } from '@repo/lib/shared/labels'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
+import { isDisabledWithReason } from '@repo/lib/shared/utils/functions/isDisabledWithReason'
+import { bn, isZero } from '@repo/lib/shared/utils/numbers'
import { HumanAmount } from '@balancer/sdk'
import { createContext, PropsWithChildren, useEffect, useMemo, useState } from 'react'
import { PoolListItem } from '../../pool.types'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.spec.tsx b/packages/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.spec.tsx
similarity index 72%
rename from apps/frontend-v3/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.spec.tsx
rename to packages/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.spec.tsx
index 760f4247..7ccea138 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.spec.tsx
+++ b/packages/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.spec.tsx
@@ -1,13 +1,13 @@
/* eslint-disable max-len */
-import { testHook } from '@/test/utils/custom-renderers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { useBuildUnstakeCallData } from './useBuildUnstakeCallData'
-import { GaugeService } from '@/lib/shared/services/staking/gauge.service'
-import { BatchRelayerService } from '@/lib/shared/services/batch-relayer/batch-relayer.service'
-import mainnetNetworkConfig from '@/lib/config/networks/mainnet'
-import { gaugeActionsService } from '@/lib/shared/services/batch-relayer/extensions/gauge-actions.service'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import { GaugeService } from '@repo/lib/shared/services/staking/gauge.service'
+import { BatchRelayerService } from '@repo/lib/shared/services/batch-relayer/batch-relayer.service'
+import mainnetNetworkConfig from '@repo/lib/config/networks/mainnet'
+import { gaugeActionsService } from '@repo/lib/shared/services/batch-relayer/extensions/gauge-actions.service'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { Address } from 'viem'
-import { aGqlPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aGqlPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
function testBuildUnstakeCallData(amount: bigint, userAddress: Address = defaultTestUserAccount) {
const batchRelayerService = new BatchRelayerService(
diff --git a/apps/frontend-v3/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.tsx b/packages/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.tsx
rename to packages/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.tsx
index a2a20b9a..ad39f47e 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.tsx
+++ b/packages/lib/modules/pool/actions/unstake/useBuildUnstakeCallData.tsx
@@ -1,4 +1,4 @@
-import { GaugeService } from '@/lib/shared/services/staking/gauge.service'
+import { GaugeService } from '@repo/lib/shared/services/staking/gauge.service'
import { Address, Hex } from 'viem'
type Params = {
diff --git a/apps/frontend-v3/lib/modules/pool/actions/unstake/useClaimAndUnstakeStep.tsx b/packages/lib/modules/pool/actions/unstake/useClaimAndUnstakeStep.tsx
similarity index 76%
rename from apps/frontend-v3/lib/modules/pool/actions/unstake/useClaimAndUnstakeStep.tsx
rename to packages/lib/modules/pool/actions/unstake/useClaimAndUnstakeStep.tsx
index 7213aa34..10285f15 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/unstake/useClaimAndUnstakeStep.tsx
+++ b/packages/lib/modules/pool/actions/unstake/useClaimAndUnstakeStep.tsx
@@ -2,22 +2,22 @@
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
import { Address, parseUnits } from 'viem'
import { BPT_DECIMALS } from '../../pool.constants'
import { Pool } from '../../PoolProvider'
-import { selectStakingService } from '@/lib/modules/staking/selectStakingService'
+import { selectStakingService } from '@repo/lib/modules/staking/selectStakingService'
import { useBuildUnstakeCallData } from './useBuildUnstakeCallData'
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { ManagedTransactionInput } from '@/lib/modules/web3/contracts/useManagedTransaction'
-import { useBalTokenRewards } from '@/lib/modules/portfolio/PortfolioClaim/useBalRewards'
-import { useClaimableBalances } from '@/lib/modules/portfolio/PortfolioClaim/useClaimableBalances'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { ManagedTransactionInput } from '@repo/lib/modules/web3/contracts/useManagedTransaction'
+import { useBalTokenRewards } from '@repo/lib/modules/portfolio/PortfolioClaim/useBalRewards'
+import { useClaimableBalances } from '@repo/lib/modules/portfolio/PortfolioClaim/useClaimableBalances'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useCallback, useMemo } from 'react'
-import { ManagedTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
-import { useTransactionState } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
-import { useHasApprovedRelayer } from '@/lib/modules/relayer/useHasApprovedRelayer'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { ManagedTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
+import { useTransactionState } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { useHasApprovedRelayer } from '@repo/lib/modules/relayer/useHasApprovedRelayer'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { HumanAmount } from '@balancer/sdk'
const claimAndUnstakeStepId = 'claim-and-unstake'
diff --git a/apps/frontend-v3/lib/modules/pool/actions/unstake/useClaimAndUnstakeSteps.tsx b/packages/lib/modules/pool/actions/unstake/useClaimAndUnstakeSteps.tsx
similarity index 78%
rename from apps/frontend-v3/lib/modules/pool/actions/unstake/useClaimAndUnstakeSteps.tsx
rename to packages/lib/modules/pool/actions/unstake/useClaimAndUnstakeSteps.tsx
index 157cb587..e6c2e277 100644
--- a/apps/frontend-v3/lib/modules/pool/actions/unstake/useClaimAndUnstakeSteps.tsx
+++ b/packages/lib/modules/pool/actions/unstake/useClaimAndUnstakeSteps.tsx
@@ -1,10 +1,10 @@
-import { useApproveRelayerStep } from '@/lib/modules/relayer/useApproveRelayerStep'
-import { getChainId } from '@/lib/config/app.config'
-import { TransactionStep } from '@/lib/modules/transactions/transaction-steps/lib'
+import { useApproveRelayerStep } from '@repo/lib/modules/relayer/useApproveRelayerStep'
+import { getChainId } from '@repo/lib/config/app.config'
+import { TransactionStep } from '@repo/lib/modules/transactions/transaction-steps/lib'
import { UnstakeParams, useClaimAndUnstakeStep } from './useClaimAndUnstakeStep'
import { useMemo } from 'react'
-import { useApproveMinterStep } from '@/lib/modules/staking/gauge/useMinterApprovalStep'
+import { useApproveMinterStep } from '@repo/lib/modules/staking/gauge/useMinterApprovalStep'
export function useClaimAndUnstakeSteps(unstakeParams: UnstakeParams): {
isLoading: boolean
diff --git a/apps/frontend-v3/lib/modules/pool/actions/useResetStepIndexOnOpen.tsx b/packages/lib/modules/pool/actions/useResetStepIndexOnOpen.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/actions/useResetStepIndexOnOpen.tsx
rename to packages/lib/modules/pool/actions/useResetStepIndexOnOpen.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/alerts/PoolAlertButton.tsx b/packages/lib/modules/pool/alerts/PoolAlertButton.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/alerts/PoolAlertButton.tsx
rename to packages/lib/modules/pool/alerts/PoolAlertButton.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/alerts/PoolAlerts.tsx b/packages/lib/modules/pool/alerts/PoolAlerts.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/alerts/PoolAlerts.tsx
rename to packages/lib/modules/pool/alerts/PoolAlerts.tsx
index aa1dae04..f8af621a 100644
--- a/apps/frontend-v3/lib/modules/pool/alerts/PoolAlerts.tsx
+++ b/packages/lib/modules/pool/alerts/PoolAlerts.tsx
@@ -3,7 +3,7 @@
import { VStack } from '@chakra-ui/react'
import { usePool } from '../PoolProvider'
import { usePoolAlerts } from './usePoolAlerts'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
export function PoolAlerts() {
const { pool } = usePool()
diff --git a/apps/frontend-v3/lib/modules/pool/alerts/pool-issues/PoolIssue.labels.tsx b/packages/lib/modules/pool/alerts/pool-issues/PoolIssue.labels.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/alerts/pool-issues/PoolIssue.labels.tsx
rename to packages/lib/modules/pool/alerts/pool-issues/PoolIssue.labels.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/alerts/pool-issues/PoolIssue.type.ts b/packages/lib/modules/pool/alerts/pool-issues/PoolIssue.type.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/alerts/pool-issues/PoolIssue.type.ts
rename to packages/lib/modules/pool/alerts/pool-issues/PoolIssue.type.ts
diff --git a/apps/frontend-v3/lib/modules/pool/alerts/usePoolAlerts.spec.tsx b/packages/lib/modules/pool/alerts/usePoolAlerts.spec.tsx
similarity index 97%
rename from apps/frontend-v3/lib/modules/pool/alerts/usePoolAlerts.spec.tsx
rename to packages/lib/modules/pool/alerts/usePoolAlerts.spec.tsx
index ba86bf2a..23f1cf5a 100644
--- a/apps/frontend-v3/lib/modules/pool/alerts/usePoolAlerts.spec.tsx
+++ b/packages/lib/modules/pool/alerts/usePoolAlerts.spec.tsx
@@ -1,5 +1,5 @@
/* eslint-disable max-len */
-import { testHook } from '@/test/utils/custom-renderers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { notAllowedPoolMock } from '../__mocks__/notAllowedPoolMock'
import { usePoolAlerts } from './usePoolAlerts'
import { recoveryPoolMock } from '../__mocks__/recoveryPoolMock'
diff --git a/apps/frontend-v3/lib/modules/pool/alerts/usePoolAlerts.tsx b/packages/lib/modules/pool/alerts/usePoolAlerts.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/pool/alerts/usePoolAlerts.tsx
rename to packages/lib/modules/pool/alerts/usePoolAlerts.tsx
index c0fb42ce..4beb5e93 100644
--- a/apps/frontend-v3/lib/modules/pool/alerts/usePoolAlerts.tsx
+++ b/packages/lib/modules/pool/alerts/usePoolAlerts.tsx
@@ -1,7 +1,7 @@
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { BalAlertButton } from '@/lib/shared/components/alerts/BalAlertButton'
-import { BalAlertContent } from '@/lib/shared/components/alerts/BalAlertContent'
-import { GqlPoolTokenDetail } from '@/lib/shared/services/api/generated/graphql'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { BalAlertButton } from '@repo/lib/shared/components/alerts/BalAlertButton'
+import { BalAlertContent } from '@repo/lib/shared/components/alerts/BalAlertContent'
+import { GqlPoolTokenDetail } from '@repo/lib/shared/services/api/generated/graphql'
import { isNil } from 'lodash'
import { usePathname, useRouter } from 'next/navigation'
import { useEffect, useState } from 'react'
@@ -12,7 +12,7 @@ import { hasReviewedRateProvider } from '../pool.helpers'
import { shouldMigrateStake } from '../user-balance.helpers'
import { VulnerabilityDataMap } from './pool-issues/PoolIssue.labels'
import { PoolIssue } from './pool-issues/PoolIssue.type'
-import { BalAlertProps } from '@/lib/shared/components/alerts/BalAlert'
+import { BalAlertProps } from '@repo/lib/shared/components/alerts/BalAlert'
export type PoolAlert = {
identifier: string
diff --git a/apps/frontend-v3/lib/modules/pool/categories/PoolCategories.tsx b/packages/lib/modules/pool/categories/PoolCategories.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/categories/PoolCategories.tsx
rename to packages/lib/modules/pool/categories/PoolCategories.tsx
diff --git a/apps/frontend-v3/lib/modules/pool/categories/PoolCategoriesProvider.tsx b/packages/lib/modules/pool/categories/PoolCategoriesProvider.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/categories/PoolCategoriesProvider.tsx
rename to packages/lib/modules/pool/categories/PoolCategoriesProvider.tsx
index a895bba3..56cc4ee2 100644
--- a/apps/frontend-v3/lib/modules/pool/categories/PoolCategoriesProvider.tsx
+++ b/packages/lib/modules/pool/categories/PoolCategoriesProvider.tsx
@@ -1,6 +1,6 @@
'use client'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { createContext, PropsWithChildren } from 'react'
import { Pool } from '../PoolProvider'
import { PoolCategory } from './getPoolCategories'
diff --git a/apps/frontend-v3/lib/modules/pool/categories/getPoolCategories.ts b/packages/lib/modules/pool/categories/getPoolCategories.ts
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/categories/getPoolCategories.ts
rename to packages/lib/modules/pool/categories/getPoolCategories.ts
index 4116925b..e6dadbb3 100644
--- a/apps/frontend-v3/lib/modules/pool/categories/getPoolCategories.ts
+++ b/packages/lib/modules/pool/categories/getPoolCategories.ts
@@ -1,4 +1,4 @@
-import { mins } from '@/lib/shared/utils/time'
+import { mins } from '@repo/lib/shared/utils/time'
const POOL_CATEGORIES_URL =
'https://raw.githubusercontent.com/balancer/metadata/main/pools/categories/index.json'
diff --git a/apps/frontend-v3/lib/modules/pool/pool.constants.ts b/packages/lib/modules/pool/pool.constants.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/pool.constants.ts
rename to packages/lib/modules/pool/pool.constants.ts
diff --git a/apps/frontend-v3/lib/modules/pool/pool.helpers.spec.ts b/packages/lib/modules/pool/pool.helpers.spec.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/pool.helpers.spec.ts
rename to packages/lib/modules/pool/pool.helpers.spec.ts
index 5a6ff99a..8fca7304 100644
--- a/apps/frontend-v3/lib/modules/pool/pool.helpers.spec.ts
+++ b/packages/lib/modules/pool/pool.helpers.spec.ts
@@ -1,6 +1,6 @@
/* eslint-disable max-len */
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
import { Pool } from './PoolProvider'
import { getPoolTokens } from './pool.helpers'
diff --git a/apps/frontend-v3/lib/modules/pool/pool.helpers.ts b/packages/lib/modules/pool/pool.helpers.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/pool.helpers.ts
rename to packages/lib/modules/pool/pool.helpers.ts
index 97621eff..8597caa8 100644
--- a/apps/frontend-v3/lib/modules/pool/pool.helpers.ts
+++ b/packages/lib/modules/pool/pool.helpers.ts
@@ -1,5 +1,5 @@
-import { getChainId, getNetworkConfig } from '@/lib/config/app.config'
-import { getBlockExplorerAddressUrl } from '@/lib/shared/hooks/useBlockExplorer'
+import { getChainId, getNetworkConfig } from '@repo/lib/config/app.config'
+import { getBlockExplorerAddressUrl } from '@repo/lib/shared/hooks/useBlockExplorer'
import {
GetPoolQuery,
GqlChain,
@@ -10,9 +10,9 @@ import {
GqlPoolTokenDetail,
GqlPoolType,
GqlToken,
-} from '@/lib/shared/services/api/generated/graphql'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
-import { Numberish, bn } from '@/lib/shared/utils/numbers'
+} from '@repo/lib/shared/services/api/generated/graphql'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { Numberish, bn } from '@repo/lib/shared/utils/numbers'
import BigNumber from 'bignumber.js'
import { isEmpty, isNil } from 'lodash'
import { Address, getAddress, parseUnits, zeroAddress } from 'viem'
@@ -21,7 +21,7 @@ import { isNotMainnet } from '../chains/chain.utils'
import { ClaimablePool } from './actions/claim/ClaimProvider'
import { PoolIssue } from './alerts/pool-issues/PoolIssue.type'
import { getUserTotalBalanceInt } from './user-balance.helpers'
-import { dateToUnixTimestamp } from '@/lib/shared/utils/time'
+import { dateToUnixTimestamp } from '@repo/lib/shared/utils/time'
import { balancerV2VaultAbi } from '../web3/contracts/abi/generated'
import { balancerV3VaultAbi } from '../web3/contracts/abi/balancerV3VaultAbi'
import { supportsNestedActions } from './actions/LiquidityActionHelpers'
diff --git a/apps/frontend-v3/lib/modules/pool/pool.hooks.ts b/packages/lib/modules/pool/pool.hooks.ts
similarity index 91%
rename from apps/frontend-v3/lib/modules/pool/pool.hooks.ts
rename to packages/lib/modules/pool/pool.hooks.ts
index 0719d922..a7b3e7ef 100644
--- a/apps/frontend-v3/lib/modules/pool/pool.hooks.ts
+++ b/packages/lib/modules/pool/pool.hooks.ts
@@ -3,8 +3,8 @@ import { useRouter } from 'next/navigation'
import { getPoolPath } from './pool.utils'
import { Pool } from './PoolProvider'
import { useParams } from 'next/navigation'
-import { PartnerVariant } from '@/lib/modules/pool/pool.types'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
+import { PartnerVariant } from '@repo/lib/modules/pool/pool.types'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
import { isCowAmmPool } from './pool.helpers'
export function usePoolRedirect(pool: Pool) {
diff --git a/apps/frontend-v3/lib/modules/pool/pool.types.ts b/packages/lib/modules/pool/pool.types.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/pool/pool.types.ts
rename to packages/lib/modules/pool/pool.types.ts
index 070bb292..b824b814 100644
--- a/apps/frontend-v3/lib/modules/pool/pool.types.ts
+++ b/packages/lib/modules/pool/pool.types.ts
@@ -5,7 +5,7 @@ import {
GqlPoolType,
GqlPoolOrderBy,
GqlPoolOrderDirection,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import {
parseAsArrayOf,
parseAsFloat,
diff --git a/apps/frontend-v3/lib/modules/pool/pool.utils.ts b/packages/lib/modules/pool/pool.utils.ts
similarity index 97%
rename from apps/frontend-v3/lib/modules/pool/pool.utils.ts
rename to packages/lib/modules/pool/pool.utils.ts
index 965cde4d..b4209b2d 100644
--- a/apps/frontend-v3/lib/modules/pool/pool.utils.ts
+++ b/packages/lib/modules/pool/pool.utils.ts
@@ -7,7 +7,7 @@ import {
GqlPoolAprItem,
GqlPoolTokenDisplay,
GqlPoolAprItemType,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { invert } from 'lodash'
import {
BaseVariant,
@@ -17,14 +17,14 @@ import {
PoolListItem,
PoolVariant,
} from './pool.types'
-import { Numberish, bn, fNum } from '@/lib/shared/utils/numbers'
+import { Numberish, bn, fNum } from '@repo/lib/shared/utils/numbers'
import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime'
import { TokenAmountHumanReadable } from '../tokens/token.types'
import { formatUnits, parseUnits } from 'viem'
import { ClaimablePool } from './actions/claim/ClaimProvider'
import { Pool } from './PoolProvider'
import BigNumber from 'bignumber.js'
-import { TOTAL_APR_TYPES } from '@/lib/shared/hooks/useAprTooltip'
+import { TOTAL_APR_TYPES } from '@repo/lib/shared/hooks/useAprTooltip'
// URL slug for each chain
export enum ChainSlug {
diff --git a/apps/frontend-v3/lib/modules/pool/queries/useOnchainUserPoolBalances.integration.spec.ts b/packages/lib/modules/pool/queries/useOnchainUserPoolBalances.integration.spec.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/pool/queries/useOnchainUserPoolBalances.integration.spec.ts
rename to packages/lib/modules/pool/queries/useOnchainUserPoolBalances.integration.spec.ts
index 3f331165..58fcff4f 100644
--- a/apps/frontend-v3/lib/modules/pool/queries/useOnchainUserPoolBalances.integration.spec.ts
+++ b/packages/lib/modules/pool/queries/useOnchainUserPoolBalances.integration.spec.ts
@@ -1,16 +1,16 @@
-import { getSdkTestUtils } from '@/test/integration/sdk-utils'
+import { getSdkTestUtils } from '@repo/lib/test/integration/sdk-utils'
import {
aBalWethPoolElementMock,
toGqlWeighedPoolMock,
-} from '@/test/msw/builders/gqlPoolElement.builders'
-import { testHook } from '@/test/utils/custom-renderers'
-import { mainnetTestPublicClient } from '@/test/utils/wagmi/wagmi-test-clients'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+} from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
+import { mainnetTestPublicClient } from '@repo/lib/test/utils/wagmi/wagmi-test-clients'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { ChainId } from '@balancer/sdk'
import { waitFor } from '@testing-library/react'
import { useOnchainUserPoolBalances } from './useOnchainUserPoolBalances'
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
-import { connectWithDefaultUser } from '@/test/utils/wagmi/wagmi-connections'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
async function testUseChainPoolBalances(pool: GqlPoolElement) {
const weightedPoolMock = toGqlWeighedPoolMock(pool)
diff --git a/apps/frontend-v3/lib/modules/pool/queries/useOnchainUserPoolBalances.ts b/packages/lib/modules/pool/queries/useOnchainUserPoolBalances.ts
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/queries/useOnchainUserPoolBalances.ts
rename to packages/lib/modules/pool/queries/useOnchainUserPoolBalances.ts
index 1a40906b..daaec8d7 100644
--- a/apps/frontend-v3/lib/modules/pool/queries/useOnchainUserPoolBalances.ts
+++ b/packages/lib/modules/pool/queries/useOnchainUserPoolBalances.ts
@@ -2,10 +2,10 @@
import {
GqlPoolUserBalance,
GqlUserStakedBalance,
-} from '@/lib/shared/services/api/generated/graphql'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
-import { bn, safeSum } from '@/lib/shared/utils/numbers'
-import { captureNonFatalError } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/shared/services/api/generated/graphql'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { bn, safeSum } from '@repo/lib/shared/utils/numbers'
+import { captureNonFatalError } from '@repo/lib/shared/utils/query-errors'
import { HumanAmount } from '@balancer/sdk'
import BigNumber from 'bignumber.js'
import { useEffect } from 'react'
diff --git a/apps/frontend-v3/lib/modules/pool/queries/usePoolEnrichWithOnChainData.integration.spec.tsx b/packages/lib/modules/pool/queries/usePoolEnrichWithOnChainData.integration.spec.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/pool/queries/usePoolEnrichWithOnChainData.integration.spec.tsx
rename to packages/lib/modules/pool/queries/usePoolEnrichWithOnChainData.integration.spec.tsx
index 9415a133..beba841b 100644
--- a/apps/frontend-v3/lib/modules/pool/queries/usePoolEnrichWithOnChainData.integration.spec.tsx
+++ b/packages/lib/modules/pool/queries/usePoolEnrichWithOnChainData.integration.spec.tsx
@@ -1,6 +1,6 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
-import { testHook } from '@/test/utils/custom-renderers'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
import { Pool } from '../PoolProvider'
import { getPoolMock } from '../__mocks__/getPoolMock'
diff --git a/apps/frontend-v3/lib/modules/pool/queries/usePoolEnrichWithOnChainData.tsx b/packages/lib/modules/pool/queries/usePoolEnrichWithOnChainData.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/queries/usePoolEnrichWithOnChainData.tsx
rename to packages/lib/modules/pool/queries/usePoolEnrichWithOnChainData.tsx
index 2cc4dcb8..44971d91 100644
--- a/apps/frontend-v3/lib/modules/pool/queries/usePoolEnrichWithOnChainData.tsx
+++ b/packages/lib/modules/pool/queries/usePoolEnrichWithOnChainData.tsx
@@ -6,10 +6,10 @@ import { balancerV3ExtensionVaultAbi } from '../../web3/contracts/abi/balancerV3
import { weightedPoolV3Abi } from '../../web3/contracts/abi/weightedPoolV3Abi'
import { Pool } from '../PoolProvider'
import { BPT_DECIMALS } from '../pool.constants'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { bn, safeSum } from '@/lib/shared/utils/numbers'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { bn, safeSum } from '@repo/lib/shared/utils/numbers'
import { getVaultConfig, isCowAmmPool, isV1Pool, isV2Pool, isV3Pool } from '../pool.helpers'
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import {
balancerV2ComposableStablePoolV5Abi,
balancerV2VaultAbi,
diff --git a/apps/frontend-v3/lib/modules/pool/queries/useUserStakedBalance.integration.spec.ts b/packages/lib/modules/pool/queries/useUserStakedBalance.integration.spec.ts
similarity index 87%
rename from apps/frontend-v3/lib/modules/pool/queries/useUserStakedBalance.integration.spec.ts
rename to packages/lib/modules/pool/queries/useUserStakedBalance.integration.spec.ts
index 3f9d7ba4..bc9c5765 100644
--- a/apps/frontend-v3/lib/modules/pool/queries/useUserStakedBalance.integration.spec.ts
+++ b/packages/lib/modules/pool/queries/useUserStakedBalance.integration.spec.ts
@@ -1,7 +1,7 @@
-import { GqlChain, GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
-import { userStakedInNonPreferentialGauge } from '@/test/anvil/anvil-setup'
-import { testHook } from '@/test/utils/custom-renderers'
-import { connectWith, disconnectWith } from '@/test/utils/wagmi/wagmi-connections'
+import { GqlChain, GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
+import { userStakedInNonPreferentialGauge } from '@repo/lib/test/anvil/anvil-setup'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
+import { connectWith, disconnectWith } from '@repo/lib/test/utils/wagmi/wagmi-connections'
import { waitFor } from '@testing-library/react'
import { getPoolMock } from '../__mocks__/getPoolMock'
import { useUserStakedBalance } from './useUserStakedBalance'
diff --git a/apps/frontend-v3/lib/modules/pool/queries/useUserStakedBalance.tsx b/packages/lib/modules/pool/queries/useUserStakedBalance.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/pool/queries/useUserStakedBalance.tsx
rename to packages/lib/modules/pool/queries/useUserStakedBalance.tsx
index 7d1f3f6d..f7b1064f 100644
--- a/apps/frontend-v3/lib/modules/pool/queries/useUserStakedBalance.tsx
+++ b/packages/lib/modules/pool/queries/useUserStakedBalance.tsx
@@ -1,9 +1,9 @@
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import {
GqlPoolStakingType,
GqlUserStakedBalance,
-} from '@/lib/shared/services/api/generated/graphql'
-import { bn } from '@/lib/shared/utils/numbers'
+} from '@repo/lib/shared/services/api/generated/graphql'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { compact, groupBy } from 'lodash'
import { Address, formatUnits } from 'viem'
import { useReadContracts } from 'wagmi'
diff --git a/apps/frontend-v3/lib/modules/pool/queries/useUserUnstakedBalance.tsx b/packages/lib/modules/pool/queries/useUserUnstakedBalance.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/pool/queries/useUserUnstakedBalance.tsx
rename to packages/lib/modules/pool/queries/useUserUnstakedBalance.tsx
index 330e9593..f549b6b3 100644
--- a/apps/frontend-v3/lib/modules/pool/queries/useUserUnstakedBalance.tsx
+++ b/packages/lib/modules/pool/queries/useUserUnstakedBalance.tsx
@@ -1,5 +1,5 @@
-import { getChainId } from '@/lib/config/app.config'
-import { bn } from '@/lib/shared/utils/numbers'
+import { getChainId } from '@repo/lib/config/app.config'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { compact, keyBy } from 'lodash'
import { Address, formatUnits } from 'viem'
import { useReadContracts } from 'wagmi'
diff --git a/apps/frontend-v3/lib/modules/pool/useModalWithPoolRedirect.ts b/packages/lib/modules/pool/useModalWithPoolRedirect.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/pool/useModalWithPoolRedirect.ts
rename to packages/lib/modules/pool/useModalWithPoolRedirect.ts
diff --git a/apps/frontend-v3/lib/modules/pool/usePoolEvents.tsx b/packages/lib/modules/pool/usePoolEvents.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/usePoolEvents.tsx
rename to packages/lib/modules/pool/usePoolEvents.tsx
index ab119431..b4ce008f 100644
--- a/apps/frontend-v3/lib/modules/pool/usePoolEvents.tsx
+++ b/packages/lib/modules/pool/usePoolEvents.tsx
@@ -4,7 +4,7 @@ import {
GqlPoolEventType,
GqlPoolEventsDataRange,
GetPoolEventsQuery,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { FetchPolicy } from '@apollo/client'
import { useQuery } from '@apollo/client'
diff --git a/apps/frontend-v3/lib/modules/pool/user-balance.helpers.spec.ts b/packages/lib/modules/pool/user-balance.helpers.spec.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/pool/user-balance.helpers.spec.ts
rename to packages/lib/modules/pool/user-balance.helpers.spec.ts
index 86c75795..ac794e85 100644
--- a/apps/frontend-v3/lib/modules/pool/user-balance.helpers.spec.ts
+++ b/packages/lib/modules/pool/user-balance.helpers.spec.ts
@@ -1,9 +1,9 @@
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
import {
GqlPoolStakingType,
GqlPoolUserBalance,
GqlUserStakedBalance,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import {
calcNonOnChainFetchedStakedBalance,
calcTotalStakedBalanceInt,
diff --git a/apps/frontend-v3/lib/modules/pool/user-balance.helpers.ts b/packages/lib/modules/pool/user-balance.helpers.ts
similarity index 97%
rename from apps/frontend-v3/lib/modules/pool/user-balance.helpers.ts
rename to packages/lib/modules/pool/user-balance.helpers.ts
index 2fb77b66..d0248869 100644
--- a/apps/frontend-v3/lib/modules/pool/user-balance.helpers.ts
+++ b/packages/lib/modules/pool/user-balance.helpers.ts
@@ -1,10 +1,10 @@
-import { bn, safeSum } from '@/lib/shared/utils/numbers'
+import { bn, safeSum } from '@repo/lib/shared/utils/numbers'
import { Pool } from './PoolProvider'
import { PoolListItem } from './pool.types'
import { parseUnits } from 'viem'
import { BPT_DECIMALS } from './pool.constants'
import { HumanAmount } from '@balancer/sdk'
-import { GqlPoolStakingType } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolStakingType } from '@repo/lib/shared/services/api/generated/graphql'
import { hasNonPreferentialStakedBalance, hasPreferentialGauge } from './actions/stake.helpers'
export function calcTotalStakedBalance(pool: Pool | PoolListItem): HumanAmount {
diff --git a/apps/frontend-v3/lib/modules/portfolio/Portfolio.tsx b/packages/lib/modules/portfolio/Portfolio.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/portfolio/Portfolio.tsx
rename to packages/lib/modules/portfolio/Portfolio.tsx
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkBlock.tsx b/packages/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkBlock.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkBlock.tsx
rename to packages/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkBlock.tsx
index c33f3e2a..d06ff511 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkBlock.tsx
+++ b/packages/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkBlock.tsx
@@ -1,9 +1,9 @@
-import { NetworkIcon } from '@/lib/shared/components/icons/NetworkIcon'
+import { NetworkIcon } from '@repo/lib/shared/components/icons/NetworkIcon'
import { Button, Card, Flex, HStack, Heading, IconButton, Stack } from '@chakra-ui/react'
import { chainToSlugMap } from '../../../pool/pool.utils'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
import { ChevronRight } from 'react-feather'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPools.tsx b/packages/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPools.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPools.tsx
rename to packages/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPools.tsx
index b6aceb0e..e792f454 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPools.tsx
+++ b/packages/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPools.tsx
@@ -3,13 +3,13 @@
import { Heading, Stack, Skeleton, SimpleGrid, Center, Text } from '@chakra-ui/react'
import { usePortfolio } from '../../PortfolioProvider'
import { ClaimNetworkBlock } from './ClaimNetworkBlock'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { chainToSlugMap } from '../../../pool/pool.utils'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useState } from 'react'
import ClaimProtocolRevenueModal from '../ClaimProtocolRevenueModal'
import { useRouter } from 'next/navigation'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
import { useHasMerklRewards } from '../../merkl/useHasMerklRewards'
import { MerklAlert } from '../../merkl/MerklAlert'
import { motion, easeOut } from 'framer-motion'
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPoolsLayout.tsx b/packages/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPoolsLayout.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPoolsLayout.tsx
rename to packages/lib/modules/portfolio/PortfolioClaim/ClaimNetworkPools/ClaimNetworkPoolsLayout.tsx
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimProtocolRevenueModal.tsx b/packages/lib/modules/portfolio/PortfolioClaim/ClaimProtocolRevenueModal.tsx
similarity index 84%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimProtocolRevenueModal.tsx
rename to packages/lib/modules/portfolio/PortfolioClaim/ClaimProtocolRevenueModal.tsx
index c3eaaec2..5a6347b5 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/ClaimProtocolRevenueModal.tsx
+++ b/packages/lib/modules/portfolio/PortfolioClaim/ClaimProtocolRevenueModal.tsx
@@ -1,25 +1,25 @@
'use client'
import { Modal, ModalBody, ModalCloseButton, ModalContent, Card } from '@chakra-ui/react'
-import { UsePortfolio, usePortfolio } from '@/lib/modules/portfolio/PortfolioProvider'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { UsePortfolio, usePortfolio } from '@repo/lib/modules/portfolio/PortfolioProvider'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { Address } from 'viem'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
import { DesktopStepTracker } from '../../transactions/transaction-steps/step-tracker/DesktopStepTracker'
import { MobileStepTracker } from '../../transactions/transaction-steps/step-tracker/MobileStepTracker'
import { useTransactionSteps } from '../../transactions/transaction-steps/useTransactionSteps'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
// eslint-disable-next-line max-len
import { getStylesForModalContentWithStepTracker } from '../../transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
import { TokenRowGroup } from '../../tokens/TokenRow/TokenRowGroup'
import { HumanTokenAmountWithAddress } from '../../tokens/token.types'
-import { ActionModalFooter } from '@/lib/shared/components/modals/ActionModalFooter'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
+import { ActionModalFooter } from '@repo/lib/shared/components/modals/ActionModalFooter'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
import { useClaimVeBalRewardsStep } from '../../pool/actions/claim/useClaimVeBalRewardsStep'
import { useEffect, useState } from 'react'
import BigNumber from 'bignumber.js'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
type Props = {
isOpen: boolean
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useBalRewards.tsx b/packages/lib/modules/portfolio/PortfolioClaim/useBalRewards.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useBalRewards.tsx
rename to packages/lib/modules/portfolio/PortfolioClaim/useBalRewards.tsx
index 0f0293cf..57deb227 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useBalRewards.tsx
+++ b/packages/lib/modules/portfolio/PortfolioClaim/useBalRewards.tsx
@@ -1,6 +1,6 @@
-import { getChainId } from '@/lib/config/app.config'
-import networkConfigs from '@/lib/config/networks'
-import { bn } from '@/lib/shared/utils/numbers'
+import { getChainId } from '@repo/lib/config/app.config'
+import networkConfigs from '@repo/lib/config/networks'
+import { bn } from '@repo/lib/shared/utils/numbers'
import BigNumber from 'bignumber.js'
import { useMemo } from 'react'
import { Address, formatUnits } from 'viem'
@@ -14,7 +14,7 @@ import { ClaimablePool } from '../../pool/actions/claim/ClaimProvider'
import { balancerV2GaugeV5Abi } from '../../web3/contracts/abi/generated'
import { WriteContractParameters } from 'wagmi/actions'
import { compact } from 'lodash'
-import { onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
export interface BalTokenReward {
balance: bigint
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useClaimableBalances.ts b/packages/lib/modules/portfolio/PortfolioClaim/useClaimableBalances.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useClaimableBalances.ts
rename to packages/lib/modules/portfolio/PortfolioClaim/useClaimableBalances.ts
index 359ee467..ce17545f 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useClaimableBalances.ts
+++ b/packages/lib/modules/portfolio/PortfolioClaim/useClaimableBalances.ts
@@ -1,5 +1,5 @@
-import { getChainId } from '@/lib/config/app.config'
-import { bn } from '@/lib/shared/utils/numbers'
+import { getChainId } from '@repo/lib/config/app.config'
+import { bn } from '@repo/lib/shared/utils/numbers'
import BigNumber from 'bignumber.js'
import { useMemo } from 'react'
import { Address, formatUnits } from 'viem'
@@ -9,9 +9,12 @@ import { AbiMap } from '../../web3/contracts/AbiMap'
import { useUserAccount } from '../../web3/UserAccountProvider'
import { BPT_DECIMALS } from '../../pool/pool.constants'
import { ClaimablePool } from '../../pool/actions/claim/ClaimProvider'
-import { GqlChain, GqlPoolStakingGaugeReward } from '@/lib/shared/services/api/generated/graphql'
+import {
+ GqlChain,
+ GqlPoolStakingGaugeReward,
+} from '@repo/lib/shared/services/api/generated/graphql'
import { groupBy, uniqBy } from 'lodash'
-import { onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
interface ClaimableRewardRef {
tokenAddress: Address
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useProtocolRewards.ts b/packages/lib/modules/portfolio/PortfolioClaim/useProtocolRewards.ts
similarity index 95%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useProtocolRewards.ts
rename to packages/lib/modules/portfolio/PortfolioClaim/useProtocolRewards.ts
index 637827fb..4b855f41 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioClaim/useProtocolRewards.ts
+++ b/packages/lib/modules/portfolio/PortfolioClaim/useProtocolRewards.ts
@@ -1,10 +1,10 @@
import { useReadContract } from 'wagmi'
import { useUserAccount } from '../../web3/UserAccountProvider'
import { FeeDistributorStaticAbi } from '../../web3/contracts/abi/FeeDistributorStaticAbi'
-import networkConfigs from '@/lib/config/networks'
+import networkConfigs from '@repo/lib/config/networks'
import { formatUnits } from 'viem'
import { useTokens } from '../../tokens/TokensProvider'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { BPT_DECIMALS } from '../../pool/pool.constants'
export const claimableVeBalRewardsTokens: string[] = [
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioProvider.tsx b/packages/lib/modules/portfolio/PortfolioProvider.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioProvider.tsx
rename to packages/lib/modules/portfolio/PortfolioProvider.tsx
index f086a64a..cb331226 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioProvider.tsx
+++ b/packages/lib/modules/portfolio/PortfolioProvider.tsx
@@ -1,16 +1,16 @@
'use client'
-import { GetPoolsDocument } from '@/lib/shared/services/api/generated/graphql'
+import { GetPoolsDocument } from '@repo/lib/shared/services/api/generated/graphql'
import { useQuery as useApolloQuery } from '@apollo/experimental-nextjs-app-support/ssr'
import { createContext, PropsWithChildren, useCallback, useMemo } from 'react'
import { useProtocolRewards } from './PortfolioClaim/useProtocolRewards'
import { ClaimableReward, useClaimableBalances } from './PortfolioClaim/useClaimableBalances'
import { BalTokenReward, useBalTokenRewards } from './PortfolioClaim/useBalRewards'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import BigNumber from 'bignumber.js'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { useUserAccount } from '../web3/UserAccountProvider'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
import { useOnchainUserPoolBalances } from '../pool/queries/useOnchainUserPoolBalances'
import { Pool } from '../pool/PoolProvider'
import { useRecentTransactions } from '../transactions/RecentTransactionsProvider'
@@ -21,7 +21,7 @@ import {
getUserTotalBalance,
getUserTotalBalanceUsd,
} from '../pool/user-balance.helpers'
-import { getTimestamp } from '@/lib/shared/utils/time'
+import { getTimestamp } from '@repo/lib/shared/utils/time'
export interface ClaimableBalanceResult {
status: 'success' | 'error'
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioSummary.tsx b/packages/lib/modules/portfolio/PortfolioSummary.tsx
similarity index 88%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioSummary.tsx
rename to packages/lib/modules/portfolio/PortfolioSummary.tsx
index cb3e20ed..e40c28b3 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioSummary.tsx
+++ b/packages/lib/modules/portfolio/PortfolioSummary.tsx
@@ -1,11 +1,11 @@
import { BoxProps, Card, Heading, Icon, Skeleton } from '@chakra-ui/react'
import { usePortfolio } from './PortfolioProvider'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import StarsIcon from '@/lib/shared/components/icons/StarsIcon'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import StarsIcon from '@repo/lib/shared/components/icons/StarsIcon'
import { BarChart } from 'react-feather'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
-import { ZenGarden } from '@/lib/shared/components/zen/ZenGarden'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
+import { ZenGarden } from '@repo/lib/shared/components/zen/ZenGarden'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
const commonNoisyCardProps: { contentProps: BoxProps; cardProps: BoxProps } = {
contentProps: {
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTable.tsx b/packages/lib/modules/portfolio/PortfolioTable/PortfolioTable.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTable.tsx
rename to packages/lib/modules/portfolio/PortfolioTable/PortfolioTable.tsx
index d5e8c677..234ab318 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTable.tsx
+++ b/packages/lib/modules/portfolio/PortfolioTable/PortfolioTable.tsx
@@ -1,12 +1,12 @@
-import { PaginatedTable } from '@/lib/shared/components/tables/PaginatedTable'
+import { PaginatedTable } from '@repo/lib/shared/components/tables/PaginatedTable'
import { usePortfolio } from '../PortfolioProvider'
import { PortfolioTableHeader } from './PortfolioTableHeader'
import { PortfolioTableRow } from './PortfolioTableRow'
import { Card, Center, Checkbox, HStack, Heading, Stack, Text } from '@chakra-ui/react'
import { useMemo, useState } from 'react'
-import { GqlPoolOrderBy } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolOrderBy } from '@repo/lib/shared/services/api/generated/graphql'
import { useVebalBoost } from '../../vebal/useVebalBoost'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
import {
getUserTotalBalanceUsd,
hasAuraStakedBalance,
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTableHeader.tsx b/packages/lib/modules/portfolio/PortfolioTable/PortfolioTableHeader.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTableHeader.tsx
rename to packages/lib/modules/portfolio/PortfolioTable/PortfolioTableHeader.tsx
index e0673c05..f01db7be 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTableHeader.tsx
+++ b/packages/lib/modules/portfolio/PortfolioTable/PortfolioTableHeader.tsx
@@ -1,7 +1,7 @@
import { Grid, GridItem, Icon, Text, VStack } from '@chakra-ui/react'
import { Globe } from 'react-feather'
-import { SortableHeader } from '@/lib/shared/components/tables/SortableHeader'
+import { SortableHeader } from '@repo/lib/shared/components/tables/SortableHeader'
import { PortfolioTableSortingId, PortfolioSortingData, portfolioOrderBy } from './PortfolioTable'
const setIsDesc = (id: PortfolioTableSortingId, currentSortingObj: PortfolioSortingData) =>
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTableRow.tsx b/packages/lib/modules/portfolio/PortfolioTable/PortfolioTableRow.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTableRow.tsx
rename to packages/lib/modules/portfolio/PortfolioTable/PortfolioTableRow.tsx
index eaf4a5ec..fd540a9c 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioTable/PortfolioTableRow.tsx
+++ b/packages/lib/modules/portfolio/PortfolioTable/PortfolioTableRow.tsx
@@ -1,17 +1,17 @@
import { Box, Grid, GridItem, GridProps, HStack, Text } from '@chakra-ui/react'
import Link from 'next/link'
-import MainAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
+import MainAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip'
import { memo } from 'react'
-import { NetworkIcon } from '@/lib/shared/components/icons/NetworkIcon'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { NetworkIcon } from '@repo/lib/shared/components/icons/NetworkIcon'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { getPoolPath, getPoolTypeLabel } from '../../pool/pool.utils'
import { PoolListTokenPills } from '../../pool/PoolList/PoolListTokenPills'
-import { ProtocolIcon } from '@/lib/shared/components/icons/ProtocolIcon'
+import { ProtocolIcon } from '@repo/lib/shared/components/icons/ProtocolIcon'
import { Protocol } from '../../protocols/useProtocols'
import { ExpandedPoolInfo, ExpandedPoolType } from './useExpandedPools'
import { getCanStake } from '../../pool/actions/stake.helpers'
-import AuraAprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/AuraAprTooltip'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import AuraAprTooltip from '@repo/lib/shared/components/tooltips/apr-tooltip/AuraAprTooltip'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
interface Props extends GridProps {
pool: ExpandedPoolInfo
diff --git a/apps/frontend-v3/lib/modules/portfolio/PortfolioTable/useExpandedPools.ts b/packages/lib/modules/portfolio/PortfolioTable/useExpandedPools.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/portfolio/PortfolioTable/useExpandedPools.ts
rename to packages/lib/modules/portfolio/PortfolioTable/useExpandedPools.ts
index fcab1268..d8cf93d4 100644
--- a/apps/frontend-v3/lib/modules/portfolio/PortfolioTable/useExpandedPools.ts
+++ b/packages/lib/modules/portfolio/PortfolioTable/useExpandedPools.ts
@@ -1,7 +1,7 @@
import { useMemo } from 'react'
import { Pool } from '../../pool/PoolProvider'
import { isVebalPool } from '../../pool/pool.helpers'
-import { GqlPoolStakingType } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolStakingType } from '@repo/lib/shared/services/api/generated/graphql'
export enum ExpandedPoolType {
StakedBal = 'staked-bal',
diff --git a/apps/frontend-v3/lib/modules/portfolio/merkl/MerklAlert.tsx b/packages/lib/modules/portfolio/merkl/MerklAlert.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/portfolio/merkl/MerklAlert.tsx
rename to packages/lib/modules/portfolio/merkl/MerklAlert.tsx
diff --git a/apps/frontend-v3/lib/modules/portfolio/merkl/merkl.types.ts b/packages/lib/modules/portfolio/merkl/merkl.types.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/portfolio/merkl/merkl.types.ts
rename to packages/lib/modules/portfolio/merkl/merkl.types.ts
diff --git a/apps/frontend-v3/lib/modules/portfolio/merkl/useHasMerklRewards.ts b/packages/lib/modules/portfolio/merkl/useHasMerklRewards.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/portfolio/merkl/useHasMerklRewards.ts
rename to packages/lib/modules/portfolio/merkl/useHasMerklRewards.ts
diff --git a/apps/frontend-v3/lib/modules/price-impact/PriceImpactAcceptModal.tsx b/packages/lib/modules/price-impact/PriceImpactAcceptModal.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/price-impact/PriceImpactAcceptModal.tsx
rename to packages/lib/modules/price-impact/PriceImpactAcceptModal.tsx
index b7337563..04e5cbfa 100644
--- a/apps/frontend-v3/lib/modules/price-impact/PriceImpactAcceptModal.tsx
+++ b/packages/lib/modules/price-impact/PriceImpactAcceptModal.tsx
@@ -16,8 +16,8 @@ import {
Code,
} from '@chakra-ui/react'
import { useState } from 'react'
-import { useDebounce } from '@/lib/shared/hooks/useDebounce'
-import { defaultDebounceMs } from '@/lib/shared/utils/queries'
+import { useDebounce } from '@repo/lib/shared/hooks/useDebounce'
+import { defaultDebounceMs } from '@repo/lib/shared/utils/queries'
type Props = {
isOpen: boolean
diff --git a/apps/frontend-v3/lib/modules/price-impact/PriceImpactAccordion.tsx b/packages/lib/modules/price-impact/PriceImpactAccordion.tsx
similarity index 97%
rename from apps/frontend-v3/lib/modules/price-impact/PriceImpactAccordion.tsx
rename to packages/lib/modules/price-impact/PriceImpactAccordion.tsx
index 7945bce8..16ddea14 100644
--- a/apps/frontend-v3/lib/modules/price-impact/PriceImpactAccordion.tsx
+++ b/packages/lib/modules/price-impact/PriceImpactAccordion.tsx
@@ -18,8 +18,8 @@ import {
CardFooter,
CardBody,
} from '@chakra-ui/react'
-import { usePriceImpact } from '@/lib/modules/price-impact/PriceImpactProvider'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { usePriceImpact } from '@repo/lib/modules/price-impact/PriceImpactProvider'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import { ReactNode, useEffect } from 'react'
import { PriceImpactAcceptModal } from './PriceImpactAcceptModal'
diff --git a/apps/frontend-v3/lib/modules/price-impact/PriceImpactError.tsx b/packages/lib/modules/price-impact/PriceImpactError.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/price-impact/PriceImpactError.tsx
rename to packages/lib/modules/price-impact/PriceImpactError.tsx
index f2d8f2f4..fa6d296d 100644
--- a/apps/frontend-v3/lib/modules/price-impact/PriceImpactError.tsx
+++ b/packages/lib/modules/price-impact/PriceImpactError.tsx
@@ -1,4 +1,4 @@
-import { GenericError } from '@/lib/shared/components/errors/GenericError'
+import { GenericError } from '@repo/lib/shared/components/errors/GenericError'
import { isUnhandledAddPriceImpactError } from './price-impact.utils'
import { UseQueryResult } from '@tanstack/react-query'
diff --git a/apps/frontend-v3/lib/modules/price-impact/PriceImpactProvider.tsx b/packages/lib/modules/price-impact/PriceImpactProvider.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/price-impact/PriceImpactProvider.tsx
rename to packages/lib/modules/price-impact/PriceImpactProvider.tsx
diff --git a/apps/frontend-v3/lib/modules/price-impact/price-impact.utils.spec.ts b/packages/lib/modules/price-impact/price-impact.utils.spec.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/price-impact/price-impact.utils.spec.ts
rename to packages/lib/modules/price-impact/price-impact.utils.spec.ts
diff --git a/apps/frontend-v3/lib/modules/price-impact/price-impact.utils.ts b/packages/lib/modules/price-impact/price-impact.utils.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/price-impact/price-impact.utils.ts
rename to packages/lib/modules/price-impact/price-impact.utils.ts
index 3e72d107..8df53e88 100644
--- a/apps/frontend-v3/lib/modules/price-impact/price-impact.utils.ts
+++ b/packages/lib/modules/price-impact/price-impact.utils.ts
@@ -1,4 +1,4 @@
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import BigNumber from 'bignumber.js'
/*
diff --git a/apps/frontend-v3/lib/modules/protocols/useProtocols.ts b/packages/lib/modules/protocols/useProtocols.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/protocols/useProtocols.ts
rename to packages/lib/modules/protocols/useProtocols.ts
diff --git a/apps/frontend-v3/lib/modules/relayer/RelayerSignatureProvider.tsx b/packages/lib/modules/relayer/RelayerSignatureProvider.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/relayer/RelayerSignatureProvider.tsx
rename to packages/lib/modules/relayer/RelayerSignatureProvider.tsx
index d4148a7f..5e8d2420 100644
--- a/apps/frontend-v3/lib/modules/relayer/RelayerSignatureProvider.tsx
+++ b/packages/lib/modules/relayer/RelayerSignatureProvider.tsx
@@ -1,6 +1,6 @@
'use client'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { PropsWithChildren, createContext, useState } from 'react'
import { Address } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/relayer/signRelayerApproval.hooks.integration.spec.tsx b/packages/lib/modules/relayer/signRelayerApproval.hooks.integration.spec.tsx
similarity index 89%
rename from apps/frontend-v3/lib/modules/relayer/signRelayerApproval.hooks.integration.spec.tsx
rename to packages/lib/modules/relayer/signRelayerApproval.hooks.integration.spec.tsx
index 03ba6995..d92504ae 100644
--- a/apps/frontend-v3/lib/modules/relayer/signRelayerApproval.hooks.integration.spec.tsx
+++ b/packages/lib/modules/relayer/signRelayerApproval.hooks.integration.spec.tsx
@@ -2,13 +2,13 @@ import {
DefaultAddLiquidityTestProvider,
DefaultPoolTestProvider,
testHook,
-} from '@/test/utils/custom-renderers'
+} from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
import { PropsWithChildren } from 'react'
import { act } from 'react-dom/test-utils'
import { useSignRelayerApproval } from './signRelayerApproval.hooks'
import { useRelayerSignature } from './RelayerSignatureProvider'
-import { connectWithDefaultUser } from '../../../test/utils/wagmi/wagmi-connections'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
const Providers = ({ children }: PropsWithChildren) => (
diff --git a/apps/frontend-v3/lib/modules/relayer/signRelayerApproval.hooks.tsx b/packages/lib/modules/relayer/signRelayerApproval.hooks.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/relayer/signRelayerApproval.hooks.tsx
rename to packages/lib/modules/relayer/signRelayerApproval.hooks.tsx
index b105e217..aff830e8 100644
--- a/apps/frontend-v3/lib/modules/relayer/signRelayerApproval.hooks.tsx
+++ b/packages/lib/modules/relayer/signRelayerApproval.hooks.tsx
@@ -1,12 +1,12 @@
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useToast } from '@chakra-ui/react'
import { useEffect, useState } from 'react'
import { signRelayerApproval } from './signRelayerApproval'
import { useHasApprovedRelayer } from './useHasApprovedRelayer'
import { RelayerMode } from './useRelayerMode'
import { useRelayerSignature } from './RelayerSignatureProvider'
-import { SupportedChainId } from '@/lib/config/config.types'
-import { Toast } from '@/lib/shared/components/toasts/Toast'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { Toast } from '@repo/lib/shared/components/toasts/Toast'
import { useSdkWalletClient } from '../web3/useSdkViemClient'
import {
SignatureState,
diff --git a/apps/frontend-v3/lib/modules/relayer/signRelayerApproval.ts b/packages/lib/modules/relayer/signRelayerApproval.ts
similarity index 79%
rename from apps/frontend-v3/lib/modules/relayer/signRelayerApproval.ts
rename to packages/lib/modules/relayer/signRelayerApproval.ts
index a808d120..d8e7da76 100644
--- a/apps/frontend-v3/lib/modules/relayer/signRelayerApproval.ts
+++ b/packages/lib/modules/relayer/signRelayerApproval.ts
@@ -1,6 +1,6 @@
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { SupportedChainId } from '@/lib/config/config.types'
-import { ensureError } from '@/lib/shared/utils/errors'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { ensureError } from '@repo/lib/shared/utils/errors'
import { PublicWalletClient, Relayer } from '@balancer/sdk'
import { Address } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/relayer/useApproveRelayerStep.integration.spec.ts b/packages/lib/modules/relayer/useApproveRelayerStep.integration.spec.ts
similarity index 78%
rename from apps/frontend-v3/lib/modules/relayer/useApproveRelayerStep.integration.spec.ts
rename to packages/lib/modules/relayer/useApproveRelayerStep.integration.spec.ts
index 790e5423..b0aedadd 100644
--- a/apps/frontend-v3/lib/modules/relayer/useApproveRelayerStep.integration.spec.ts
+++ b/packages/lib/modules/relayer/useApproveRelayerStep.integration.spec.ts
@@ -1,6 +1,6 @@
-import { testHook } from '@/test/utils/custom-renderers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
-import { connectWithDefaultUser } from '../../../test/utils/wagmi/wagmi-connections'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
import { useApproveRelayerStep } from './useApproveRelayerStep'
import { TransactionStateProvider } from '../transactions/transaction-steps/TransactionStateProvider'
diff --git a/apps/frontend-v3/lib/modules/relayer/useApproveRelayerStep.tsx b/packages/lib/modules/relayer/useApproveRelayerStep.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/relayer/useApproveRelayerStep.tsx
rename to packages/lib/modules/relayer/useApproveRelayerStep.tsx
index de613afc..e257d899 100644
--- a/apps/frontend-v3/lib/modules/relayer/useApproveRelayerStep.tsx
+++ b/packages/lib/modules/relayer/useApproveRelayerStep.tsx
@@ -1,11 +1,11 @@
-import { SupportedChainId } from '@/lib/config/config.types'
+import { SupportedChainId } from '@repo/lib/config/config.types'
import { TransactionLabels, TransactionStep } from '../transactions/transaction-steps/lib'
import { ManagedTransactionButton } from '../transactions/transaction-steps/TransactionButton'
import { ManagedTransactionInput } from '../web3/contracts/useManagedTransaction'
import { useUserAccount } from '../web3/UserAccountProvider'
-import { getNetworkConfig } from '@/lib/config/app.config'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
import { useHasApprovedRelayer } from './useHasApprovedRelayer'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useMemo } from 'react'
const approveRelayerStepId = 'approve-relayer'
diff --git a/apps/frontend-v3/lib/modules/relayer/useHasApprovedRelayer.ts b/packages/lib/modules/relayer/useHasApprovedRelayer.ts
similarity index 71%
rename from apps/frontend-v3/lib/modules/relayer/useHasApprovedRelayer.ts
rename to packages/lib/modules/relayer/useHasApprovedRelayer.ts
index 436a40ea..6ccd1947 100644
--- a/apps/frontend-v3/lib/modules/relayer/useHasApprovedRelayer.ts
+++ b/packages/lib/modules/relayer/useHasApprovedRelayer.ts
@@ -1,7 +1,7 @@
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { SupportedChainId } from '@/lib/config/config.types'
-import { balancerV2VaultAbi } from '@/lib/modules/web3/contracts/abi/generated'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { balancerV2VaultAbi } from '@repo/lib/modules/web3/contracts/abi/generated'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useReadContract } from 'wagmi'
import { useChainSwitch } from '../web3/useChainSwitch'
diff --git a/apps/frontend-v3/lib/modules/relayer/useRelayerMode.ts b/packages/lib/modules/relayer/useRelayerMode.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/relayer/useRelayerMode.ts
rename to packages/lib/modules/relayer/useRelayerMode.ts
diff --git a/apps/frontend-v3/lib/modules/staking/gauge/useHasMinterApproval.tsx b/packages/lib/modules/staking/gauge/useHasMinterApproval.tsx
similarity index 71%
rename from apps/frontend-v3/lib/modules/staking/gauge/useHasMinterApproval.tsx
rename to packages/lib/modules/staking/gauge/useHasMinterApproval.tsx
index 6f86038c..f2270620 100644
--- a/apps/frontend-v3/lib/modules/staking/gauge/useHasMinterApproval.tsx
+++ b/packages/lib/modules/staking/gauge/useHasMinterApproval.tsx
@@ -1,6 +1,6 @@
-import { useNetworkConfig } from '@/lib/config/useNetworkConfig'
-import { balancerMinterAbi } from '@/lib/modules/web3/contracts/abi/generated'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useNetworkConfig } from '@repo/lib/config/useNetworkConfig'
+import { balancerMinterAbi } from '@repo/lib/modules/web3/contracts/abi/generated'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useReadContract } from 'wagmi'
export function useHasMinterApproval() {
diff --git a/apps/frontend-v3/lib/modules/staking/gauge/useMinterApprovalStep.tsx b/packages/lib/modules/staking/gauge/useMinterApprovalStep.tsx
similarity index 80%
rename from apps/frontend-v3/lib/modules/staking/gauge/useMinterApprovalStep.tsx
rename to packages/lib/modules/staking/gauge/useMinterApprovalStep.tsx
index adb9a0b7..7a5cfbfc 100644
--- a/apps/frontend-v3/lib/modules/staking/gauge/useMinterApprovalStep.tsx
+++ b/packages/lib/modules/staking/gauge/useMinterApprovalStep.tsx
@@ -1,14 +1,14 @@
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { ManagedTransactionInput } from '@/lib/modules/web3/contracts/useManagedTransaction'
-import { getNetworkConfig } from '@/lib/config/app.config'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { ManagedTransactionInput } from '@repo/lib/modules/web3/contracts/useManagedTransaction'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
import { useHasMinterApproval } from './useHasMinterApproval'
import { useMemo } from 'react'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { ManagedTransactionButton } from '../../transactions/transaction-steps/TransactionButton'
const approveMinterStepId = 'approve-minter'
diff --git a/packages/lib/modules/staking/selectStakingService.ts b/packages/lib/modules/staking/selectStakingService.ts
new file mode 100644
index 00000000..83977c0b
--- /dev/null
+++ b/packages/lib/modules/staking/selectStakingService.ts
@@ -0,0 +1,17 @@
+import { GaugeService } from '@repo/lib/shared/services/staking/gauge.service'
+import { BatchRelayerService } from '@repo/lib/shared/services/batch-relayer/batch-relayer.service'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { gaugeActionsService } from '@repo/lib/shared/services/batch-relayer/extensions/gauge-actions.service'
+import { GqlChain, GqlPoolStakingType } from '@repo/lib/shared/services/api/generated/graphql'
+
+export function selectStakingService(chain: GqlChain, stakingType: GqlPoolStakingType) {
+ const networkConfig = getNetworkConfig(chain)
+ const batchRelayerService = new BatchRelayerService(
+ networkConfig.contracts.balancer.relayerV6,
+ gaugeActionsService
+ )
+
+ if (stakingType === 'GAUGE') {
+ return new GaugeService(batchRelayerService)
+ }
+}
diff --git a/apps/frontend-v3/lib/modules/swap/SwapDetails.tsx b/packages/lib/modules/swap/SwapDetails.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/swap/SwapDetails.tsx
rename to packages/lib/modules/swap/SwapDetails.tsx
index 8cc89507..9002583c 100644
--- a/apps/frontend-v3/lib/modules/swap/SwapDetails.tsx
+++ b/packages/lib/modules/swap/SwapDetails.tsx
@@ -1,7 +1,7 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { NumberText } from '@/lib/shared/components/typography/NumberText'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { bn, fNum } from '@/lib/shared/utils/numbers'
+import { NumberText } from '@repo/lib/shared/components/typography/NumberText'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { bn, fNum } from '@repo/lib/shared/utils/numbers'
import {
HStack,
VStack,
@@ -12,14 +12,14 @@ import {
PopoverContent,
} from '@chakra-ui/react'
import { useSwap } from './SwapProvider'
-import { GqlSorSwapType } from '@/lib/shared/services/api/generated/graphql'
+import { GqlSorSwapType } from '@repo/lib/shared/services/api/generated/graphql'
import { useUserSettings } from '../user/settings/UserSettingsProvider'
-import { usePriceImpact } from '@/lib/modules/price-impact/PriceImpactProvider'
+import { usePriceImpact } from '@repo/lib/modules/price-impact/PriceImpactProvider'
import { SdkSimulateSwapResponse } from './swap.types'
import { DefaultSwapHandler } from './handlers/DefaultSwap.handler'
import { useTokens } from '../tokens/TokensProvider'
import { NativeWrapHandler } from './handlers/NativeWrap.handler'
-import { InfoIcon } from '@/lib/shared/components/icons/InfoIcon'
+import { InfoIcon } from '@repo/lib/shared/components/icons/InfoIcon'
import pluralize from 'pluralize'
export function OrderRoute() {
diff --git a/apps/frontend-v3/lib/modules/swap/SwapForm.tsx b/packages/lib/modules/swap/SwapForm.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/swap/SwapForm.tsx
rename to packages/lib/modules/swap/SwapForm.tsx
index 5fb100a5..4a0d526f 100644
--- a/apps/frontend-v3/lib/modules/swap/SwapForm.tsx
+++ b/packages/lib/modules/swap/SwapForm.tsx
@@ -1,7 +1,7 @@
'use client'
-import { TokenInput } from '@/lib/modules/tokens/TokenInput/TokenInput'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { TokenInput } from '@repo/lib/modules/tokens/TokenInput/TokenInput'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { HumanAmount } from '@balancer/sdk'
import {
Card,
@@ -30,13 +30,13 @@ import { SwapRate } from './SwapRate'
import { SwapDetails } from './SwapDetails'
import { capitalize } from 'lodash'
import { motion, easeOut } from 'framer-motion'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
-import { ErrorAlert } from '@/lib/shared/components/errors/ErrorAlert'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
+import { ErrorAlert } from '@repo/lib/shared/components/errors/ErrorAlert'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
import { parseSwapError } from './swap.helpers'
import { useUserAccount } from '../web3/UserAccountProvider'
import { ConnectWallet } from '../web3/ConnectWallet'
-import { SafeAppAlert } from '@/lib/shared/components/alerts/SafeAppAlert'
+import { SafeAppAlert } from '@repo/lib/shared/components/alerts/SafeAppAlert'
import { useTokens } from '../tokens/TokensProvider'
export function SwapForm() {
diff --git a/apps/frontend-v3/lib/modules/swap/SwapProvider.tsx b/packages/lib/modules/swap/SwapProvider.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/swap/SwapProvider.tsx
rename to packages/lib/modules/swap/SwapProvider.tsx
index 5a28b4ff..ae67957e 100644
--- a/apps/frontend-v3/lib/modules/swap/SwapProvider.tsx
+++ b/packages/lib/modules/swap/SwapProvider.tsx
@@ -1,18 +1,18 @@
'use client'
/* eslint-disable react-hooks/exhaustive-deps */
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { GqlChain, GqlSorSwapType, GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { GqlChain, GqlSorSwapType, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { ApolloClient, useApolloClient, useReactiveVar } from '@apollo/client'
import { PropsWithChildren, createContext, useEffect, useMemo, useState } from 'react'
import { Address, Hash, isAddress, parseUnits } from 'viem'
import { emptyAddress } from '../web3/contracts/wagmi-helpers'
import { useUserAccount } from '../web3/UserAccountProvider'
-import { LABELS } from '@/lib/shared/labels'
-import { isDisabledWithReason } from '@/lib/shared/utils/functions/isDisabledWithReason'
+import { LABELS } from '@repo/lib/shared/labels'
+import { isDisabledWithReason } from '@repo/lib/shared/utils/functions/isDisabledWithReason'
import { DefaultSwapHandler } from './handlers/DefaultSwap.handler'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { useSimulateSwapQuery } from './queries/useSimulateSwapQuery'
import { useTokens } from '../tokens/TokensProvider'
import { useDisclosure } from '@chakra-ui/react'
@@ -25,8 +25,8 @@ import {
SwapState,
} from './swap.types'
import { SwapHandler } from './handlers/Swap.handler'
-import { isSameAddress, selectByAddress } from '@/lib/shared/utils/addresses'
-import { useVault } from '@/lib/shared/hooks/useVault'
+import { isSameAddress, selectByAddress } from '@repo/lib/shared/utils/addresses'
+import { useVault } from '@repo/lib/shared/hooks/useVault'
import { NativeWrapHandler } from './handlers/NativeWrap.handler'
import {
getWrapHandlerClass,
@@ -37,13 +37,13 @@ import {
isWrapOrUnwrap,
} from './wrap.helpers'
import { useTokenInputsValidation } from '../tokens/TokenInputsValidationProvider'
-import { useMakeVarPersisted } from '@/lib/shared/hooks/useMakeVarPersisted'
+import { useMakeVarPersisted } from '@repo/lib/shared/hooks/useMakeVarPersisted'
import { HumanAmount } from '@balancer/sdk'
import { ChainSlug, chainToSlugMap, slugToChainMap } from '../pool/pool.utils'
import { invert } from 'lodash'
import { useTransactionSteps } from '../transactions/transaction-steps/useTransactionSteps'
import { useTokenBalances } from '../tokens/TokenBalancesProvider'
-import { useNetworkConfig } from '@/lib/config/useNetworkConfig'
+import { useNetworkConfig } from '@repo/lib/config/useNetworkConfig'
import { usePriceImpact } from '../price-impact/PriceImpactProvider'
import { calcMarketPriceImpact } from '../price-impact/price-impact.utils'
import { isAuraBalSwap } from './swap.helpers'
diff --git a/apps/frontend-v3/lib/modules/swap/SwapRate.tsx b/packages/lib/modules/swap/SwapRate.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/swap/SwapRate.tsx
rename to packages/lib/modules/swap/SwapRate.tsx
index 143f5f59..dd36a95b 100644
--- a/apps/frontend-v3/lib/modules/swap/SwapRate.tsx
+++ b/packages/lib/modules/swap/SwapRate.tsx
@@ -1,9 +1,9 @@
import { Text } from '@chakra-ui/react'
import { useState } from 'react'
import { useSwap } from './SwapProvider'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { useTokens } from '../tokens/TokensProvider'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { fNum } from '@repo/lib/shared/utils/numbers'
export function SwapRate() {
const [priceDirection, setPriceDirection] = useState<'givenIn' | 'givenOut'>('givenIn')
diff --git a/apps/frontend-v3/lib/modules/swap/handlers/AuraBalSwap.handler.ts b/packages/lib/modules/swap/handlers/AuraBalSwap.handler.ts
similarity index 91%
rename from apps/frontend-v3/lib/modules/swap/handlers/AuraBalSwap.handler.ts
rename to packages/lib/modules/swap/handlers/AuraBalSwap.handler.ts
index a9bb56d1..c55c9af1 100644
--- a/apps/frontend-v3/lib/modules/swap/handlers/AuraBalSwap.handler.ts
+++ b/packages/lib/modules/swap/handlers/AuraBalSwap.handler.ts
@@ -1,6 +1,6 @@
-import { getChainId, getWrappedNativeAssetAddress } from '@/lib/config/app.config'
+import { getChainId, getWrappedNativeAssetAddress } from '@repo/lib/config/app.config'
import { SwapHandler } from './Swap.handler'
-import { GqlSorSwapType, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlSorSwapType, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { AuraBalSwap, HumanAmount, Slippage, SwapKind, Token, TokenAmount } from '@balancer/sdk'
import { formatUnits } from 'viem'
import { TransactionConfig } from '../../web3/contracts/contract.types'
@@ -10,8 +10,8 @@ import {
SimulateSwapInputs,
} from '../swap.types'
import { getRpcUrl } from '../../web3/transports'
-import { isNativeAsset, isSameAddress } from '@/lib/shared/utils/addresses'
-import { bn } from '@/lib/shared/utils/numbers'
+import { isNativeAsset, isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { bn } from '@repo/lib/shared/utils/numbers'
export class AuraBalSwapHandler implements SwapHandler {
name = 'AuraBalSwapHandler'
diff --git a/apps/frontend-v3/lib/modules/swap/handlers/DefaultSwap.handler.ts b/packages/lib/modules/swap/handlers/DefaultSwap.handler.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/swap/handlers/DefaultSwap.handler.ts
rename to packages/lib/modules/swap/handlers/DefaultSwap.handler.ts
index 9faddfcd..67605e0b 100644
--- a/apps/frontend-v3/lib/modules/swap/handlers/DefaultSwap.handler.ts
+++ b/packages/lib/modules/swap/handlers/DefaultSwap.handler.ts
@@ -1,13 +1,16 @@
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import { SwapHandler } from './Swap.handler'
-import { GetSorSwapsDocument, GqlSorSwapType } from '@/lib/shared/services/api/generated/graphql'
+import {
+ GetSorSwapsDocument,
+ GqlSorSwapType,
+} from '@repo/lib/shared/services/api/generated/graphql'
import { ApolloClient } from '@apollo/client'
import { Path, Slippage, Swap, SwapKind, TokenAmount } from '@balancer/sdk'
import { formatUnits } from 'viem'
import { TransactionConfig } from '../../web3/contracts/contract.types'
import { SdkBuildSwapInputs, SdkSimulateSwapResponse, SimulateSwapInputs } from '../swap.types'
import { getRpcUrl } from '../../web3/transports'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
export class DefaultSwapHandler implements SwapHandler {
name = 'DefaultSwapHandler'
diff --git a/apps/frontend-v3/lib/modules/swap/handlers/LidoWrap.handler.ts b/packages/lib/modules/swap/handlers/LidoWrap.handler.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/swap/handlers/LidoWrap.handler.ts
rename to packages/lib/modules/swap/handlers/LidoWrap.handler.ts
index 2ff09f47..5aa077a4 100644
--- a/apps/frontend-v3/lib/modules/swap/handlers/LidoWrap.handler.ts
+++ b/packages/lib/modules/swap/handlers/LidoWrap.handler.ts
@@ -1,4 +1,4 @@
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import { SwapHandler } from './Swap.handler'
import { TransactionConfig } from '../../web3/contracts/contract.types'
import {
@@ -11,9 +11,9 @@ import {
import { getWrapConfig, getWrapType } from '../wrap.helpers'
import { Address, encodeFunctionData, formatUnits } from 'viem'
import { Hex } from 'viem'
-import { bn } from '@/lib/shared/utils/numbers'
-import { getViemClient } from '@/lib/shared/services/viem/viem.client'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { bn } from '@repo/lib/shared/utils/numbers'
+import { getViemClient } from '@repo/lib/shared/services/viem/viem.client'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
const lidoRateProviderMap: Partial> = {
[GqlChain.Mainnet]: '0x72d07d7dca67b8a406ad1ec34ce969c90bfee768',
diff --git a/apps/frontend-v3/lib/modules/swap/handlers/NativeWrap.handler.ts b/packages/lib/modules/swap/handlers/NativeWrap.handler.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/swap/handlers/NativeWrap.handler.ts
rename to packages/lib/modules/swap/handlers/NativeWrap.handler.ts
index 9816cff0..e728794a 100644
--- a/apps/frontend-v3/lib/modules/swap/handlers/NativeWrap.handler.ts
+++ b/packages/lib/modules/swap/handlers/NativeWrap.handler.ts
@@ -1,4 +1,4 @@
-import { getChainId, getNetworkConfig } from '@/lib/config/app.config'
+import { getChainId, getNetworkConfig } from '@repo/lib/config/app.config'
import { SwapHandler } from './Swap.handler'
import { ApolloClient } from '@apollo/client'
import { TransactionConfig } from '../../web3/contracts/contract.types'
diff --git a/apps/frontend-v3/lib/modules/swap/handlers/Swap.handler.ts b/packages/lib/modules/swap/handlers/Swap.handler.ts
similarity index 89%
rename from apps/frontend-v3/lib/modules/swap/handlers/Swap.handler.ts
rename to packages/lib/modules/swap/handlers/Swap.handler.ts
index 3b97e29c..20151b18 100644
--- a/apps/frontend-v3/lib/modules/swap/handlers/Swap.handler.ts
+++ b/packages/lib/modules/swap/handlers/Swap.handler.ts
@@ -1,7 +1,7 @@
import { ApolloClient } from '@apollo/client'
import { TransactionConfig } from '../../web3/contracts/contract.types'
import { BuildSwapInputs, SimulateSwapResponse, SimulateSwapInputs } from '../swap.types'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
/**
* SwapHandler is an interface that defines the methods that must be implemented by a handler.
diff --git a/apps/frontend-v3/lib/modules/swap/modal/SwapModal.tsx b/packages/lib/modules/swap/modal/SwapModal.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/swap/modal/SwapModal.tsx
rename to packages/lib/modules/swap/modal/SwapModal.tsx
index 4f71d8a3..27db8d0c 100644
--- a/apps/frontend-v3/lib/modules/swap/modal/SwapModal.tsx
+++ b/packages/lib/modules/swap/modal/SwapModal.tsx
@@ -6,14 +6,14 @@ import { RefObject, useEffect, useRef } from 'react'
import { DesktopStepTracker } from '../../transactions/transaction-steps/step-tracker/DesktopStepTracker'
import { useSwap } from '../SwapProvider'
import { SwapTimeout } from './SwapTimeout'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
import { capitalize } from 'lodash'
import { ActionModalFooter } from '../../../shared/components/modals/ActionModalFooter'
import { TransactionModalHeader } from '../../../shared/components/modals/TransactionModalHeader'
import { chainToSlugMap } from '../../pool/pool.utils'
// eslint-disable-next-line max-len
import { getStylesForModalContentWithStepTracker } from '../../transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
import { useResetStepIndexOnOpen } from '../../pool/actions/useResetStepIndexOnOpen'
import { useOnUserAccountChanged } from '../../web3/useOnUserAccountChanged'
import { SwapSummary } from './SwapSummary'
diff --git a/apps/frontend-v3/lib/modules/swap/modal/SwapSummary.tsx b/packages/lib/modules/swap/modal/SwapSummary.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/swap/modal/SwapSummary.tsx
rename to packages/lib/modules/swap/modal/SwapSummary.tsx
index 7088e21b..876ab80c 100644
--- a/apps/frontend-v3/lib/modules/swap/modal/SwapSummary.tsx
+++ b/packages/lib/modules/swap/modal/SwapSummary.tsx
@@ -1,4 +1,4 @@
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
import { Card, HStack, Text } from '@chakra-ui/react'
import { SwapTokenRow } from '../../tokens/TokenRow/SwapTokenRow'
import { MobileStepTracker } from '../../transactions/transaction-steps/step-tracker/MobileStepTracker'
@@ -7,11 +7,11 @@ import { SwapRate } from '../SwapRate'
import { useSwap } from '../SwapProvider'
import { SwapReceiptResult } from '../../transactions/transaction-steps/receipts/receipt.hooks'
import { useUserAccount } from '../../web3/UserAccountProvider'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
import { HumanAmount } from '@balancer/sdk'
-import { slippageDiffLabel } from '@/lib/shared/utils/slippage'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
-import { CardPopAnim } from '@/lib/shared/components/animations/CardPopAnim'
+import { slippageDiffLabel } from '@repo/lib/shared/utils/slippage'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
+import { CardPopAnim } from '@repo/lib/shared/components/animations/CardPopAnim'
export function SwapSummary({
isLoading: isLoadingReceipt,
diff --git a/apps/frontend-v3/lib/modules/swap/modal/SwapTimeout.tsx b/packages/lib/modules/swap/modal/SwapTimeout.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/swap/modal/SwapTimeout.tsx
rename to packages/lib/modules/swap/modal/SwapTimeout.tsx
index c5ee19b4..23a81b69 100644
--- a/apps/frontend-v3/lib/modules/swap/modal/SwapTimeout.tsx
+++ b/packages/lib/modules/swap/modal/SwapTimeout.tsx
@@ -3,7 +3,7 @@ import { HStack, Text } from '@chakra-ui/react'
import { useEffect } from 'react'
import { useCountdown } from 'usehooks-ts'
import { useSwap } from '../SwapProvider'
-import { NumberText } from '@/lib/shared/components/typography/NumberText'
+import { NumberText } from '@repo/lib/shared/components/typography/NumberText'
import { useShouldFreezeQuote } from '../../transactions/transaction-steps/useShouldFreezeQuote'
import { swapStepId } from '../useSwapStep'
diff --git a/apps/frontend-v3/lib/modules/swap/queries/swapQueryKeys.ts b/packages/lib/modules/swap/queries/swapQueryKeys.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/swap/queries/swapQueryKeys.ts
rename to packages/lib/modules/swap/queries/swapQueryKeys.ts
diff --git a/apps/frontend-v3/lib/modules/swap/queries/useBuildSwapQuery.ts b/packages/lib/modules/swap/queries/useBuildSwapQuery.ts
similarity index 85%
rename from apps/frontend-v3/lib/modules/swap/queries/useBuildSwapQuery.ts
rename to packages/lib/modules/swap/queries/useBuildSwapQuery.ts
index 4d4b1c51..1253e312 100644
--- a/apps/frontend-v3/lib/modules/swap/queries/useBuildSwapQuery.ts
+++ b/packages/lib/modules/swap/queries/useBuildSwapQuery.ts
@@ -1,6 +1,6 @@
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
import { useQuery } from '@tanstack/react-query'
import { ensureLastQueryResponse } from '../../pool/actions/LiquidityActionHelpers'
import { SwapHandler } from '../handlers/Swap.handler'
@@ -8,8 +8,8 @@ import { SimulateSwapResponse, SwapState } from '../swap.types'
import { swapQueryKeys } from './swapQueryKeys'
import { SwapSimulationQueryResult } from './useSimulateSwapQuery'
import { useRelayerSignature } from '../../relayer/RelayerSignatureProvider'
-import { SwapMetaParams, sentryMetaForSwapHandler } from '@/lib/shared/utils/query-errors'
-import { getChainId } from '@/lib/config/app.config'
+import { SwapMetaParams, sentryMetaForSwapHandler } from '@repo/lib/shared/utils/query-errors'
+import { getChainId } from '@repo/lib/config/app.config'
import { useBlockNumber } from 'wagmi'
export type BuildSwapQueryResponse = ReturnType
diff --git a/apps/frontend-v3/lib/modules/swap/queries/useSimulateSwapQuery.ts b/packages/lib/modules/swap/queries/useSimulateSwapQuery.ts
similarity index 83%
rename from apps/frontend-v3/lib/modules/swap/queries/useSimulateSwapQuery.ts
rename to packages/lib/modules/swap/queries/useSimulateSwapQuery.ts
index c3ebc2b8..2627f9d5 100644
--- a/apps/frontend-v3/lib/modules/swap/queries/useSimulateSwapQuery.ts
+++ b/packages/lib/modules/swap/queries/useSimulateSwapQuery.ts
@@ -1,14 +1,14 @@
'use client'
-import { defaultDebounceMs, onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { defaultDebounceMs, onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
import { useDebounce } from 'use-debounce'
import { useQuery } from '@tanstack/react-query'
import { SwapHandler } from '../handlers/Swap.handler'
import { swapQueryKeys } from './swapQueryKeys'
import { SimulateSwapInputs, SimulateSwapResponse } from '../swap.types'
-import { sentryMetaForSwapHandler } from '@/lib/shared/utils/query-errors'
-import { isZero } from '@/lib/shared/utils/numbers'
-import { getChainId } from '@/lib/config/app.config'
+import { sentryMetaForSwapHandler } from '@repo/lib/shared/utils/query-errors'
+import { isZero } from '@repo/lib/shared/utils/numbers'
+import { getChainId } from '@repo/lib/config/app.config'
import { useBlockNumber } from 'wagmi'
export type SwapSimulationQueryResult = ReturnType
diff --git a/apps/frontend-v3/lib/modules/swap/swap.helpers.ts b/packages/lib/modules/swap/swap.helpers.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/swap/swap.helpers.ts
rename to packages/lib/modules/swap/swap.helpers.ts
index 3428fa49..dd636713 100644
--- a/apps/frontend-v3/lib/modules/swap/swap.helpers.ts
+++ b/packages/lib/modules/swap/swap.helpers.ts
@@ -1,12 +1,12 @@
import { Address } from 'viem'
import { OSwapAction, SwapAction } from './swap.types'
-import { GqlChain, GqlSorSwapType } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlSorSwapType } from '@repo/lib/shared/services/api/generated/graphql'
import {
getNativeAssetAddress,
getNetworkConfig,
getWrappedNativeAssetAddress,
-} from '@/lib/config/app.config'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
+} from '@repo/lib/config/app.config'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
import { isMainnet } from '../chains/chain.utils'
export function swapActionPastTense(action: SwapAction): string {
diff --git a/apps/frontend-v3/lib/modules/swap/swap.types.ts b/packages/lib/modules/swap/swap.types.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/swap/swap.types.ts
rename to packages/lib/modules/swap/swap.types.ts
index c6bcc84e..52182019 100644
--- a/apps/frontend-v3/lib/modules/swap/swap.types.ts
+++ b/packages/lib/modules/swap/swap.types.ts
@@ -2,7 +2,7 @@ import {
GetSorSwapsQuery,
GqlChain,
GqlSorSwapType,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import {
AuraBalSwapQueryOutput,
ExactInQueryOutput,
diff --git a/apps/frontend-v3/lib/modules/swap/useSwapStep.tsx b/packages/lib/modules/swap/useSwapStep.tsx
similarity index 88%
rename from apps/frontend-v3/lib/modules/swap/useSwapStep.tsx
rename to packages/lib/modules/swap/useSwapStep.tsx
index f08c6ecf..bb982b56 100644
--- a/apps/frontend-v3/lib/modules/swap/useSwapStep.tsx
+++ b/packages/lib/modules/swap/useSwapStep.tsx
@@ -1,11 +1,11 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { ManagedSendTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
+import { ManagedSendTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { VStack } from '@chakra-ui/react'
import { capitalize } from 'lodash'
import { useEffect, useMemo, useState } from 'react'
@@ -16,7 +16,7 @@ import { SwapAction } from './swap.types'
import { useTokenBalances } from '../tokens/TokenBalancesProvider'
import { useUserAccount } from '../web3/UserAccountProvider'
import { useTenderly } from '../web3/useTenderly'
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
export const swapStepId = 'swap'
diff --git a/apps/frontend-v3/lib/modules/swap/useSwapSteps.tsx b/packages/lib/modules/swap/useSwapSteps.tsx
similarity index 98%
rename from apps/frontend-v3/lib/modules/swap/useSwapSteps.tsx
rename to packages/lib/modules/swap/useSwapSteps.tsx
index 311fb697..73ac7f6b 100644
--- a/apps/frontend-v3/lib/modules/swap/useSwapSteps.tsx
+++ b/packages/lib/modules/swap/useSwapSteps.tsx
@@ -7,7 +7,7 @@ import { OSwapAction } from './swap.types'
import { SwapStepParams, useSwapStep } from './useSwapStep'
import { useRelayerMode } from '../relayer/useRelayerMode'
import { useShouldSignRelayerApproval } from '../relayer/signRelayerApproval.hooks'
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import { useApproveRelayerStep } from '../relayer/useApproveRelayerStep'
import { useSignRelayerStep } from '../transactions/transaction-steps/useSignRelayerStep'
diff --git a/apps/frontend-v3/lib/modules/swap/wrap.helpers.ts b/packages/lib/modules/swap/wrap.helpers.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/swap/wrap.helpers.ts
rename to packages/lib/modules/swap/wrap.helpers.ts
index 597206cb..1978465b 100644
--- a/apps/frontend-v3/lib/modules/swap/wrap.helpers.ts
+++ b/packages/lib/modules/swap/wrap.helpers.ts
@@ -1,8 +1,8 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { Address } from 'viem'
import { isNativeAsset, isWrappedNativeAsset } from '../tokens/token.helpers'
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { isSameAddress, sameAddresses } from '@/lib/shared/utils/addresses'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { isSameAddress, sameAddresses } from '@repo/lib/shared/utils/addresses'
import { LidoWrapHandler } from './handlers/LidoWrap.handler'
import { SwapHandler } from './handlers/Swap.handler'
import { OWrapType, SupportedWrapHandler, WrapType } from './swap.types'
diff --git a/apps/frontend-v3/lib/modules/tokens/AddTokenToWalletButton.tsx b/packages/lib/modules/tokens/AddTokenToWalletButton.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/tokens/AddTokenToWalletButton.tsx
rename to packages/lib/modules/tokens/AddTokenToWalletButton.tsx
index 0ee24c1a..579ac0d5 100644
--- a/apps/frontend-v3/lib/modules/tokens/AddTokenToWalletButton.tsx
+++ b/packages/lib/modules/tokens/AddTokenToWalletButton.tsx
@@ -4,7 +4,7 @@ import { PlusSquareIcon } from '@chakra-ui/icons'
import { IconButton, IconButtonProps, Tooltip } from '@chakra-ui/react'
import { useWalletClient } from 'wagmi'
import { useTokens } from './TokensProvider'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
export function AddTokenToWalletButton({
tokenAddress,
diff --git a/apps/frontend-v3/lib/modules/tokens/CopyTokenAddressButton.tsx b/packages/lib/modules/tokens/CopyTokenAddressButton.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/tokens/CopyTokenAddressButton.tsx
rename to packages/lib/modules/tokens/CopyTokenAddressButton.tsx
diff --git a/apps/frontend-v3/lib/modules/tokens/NativeAssetSelectList.tsx b/packages/lib/modules/tokens/NativeAssetSelectList.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/tokens/NativeAssetSelectList.tsx
rename to packages/lib/modules/tokens/NativeAssetSelectList.tsx
index c790322e..2c05be3f 100644
--- a/apps/frontend-v3/lib/modules/tokens/NativeAssetSelectList.tsx
+++ b/packages/lib/modules/tokens/NativeAssetSelectList.tsx
@@ -2,9 +2,9 @@
import { Box, BoxProps, Center, Text } from '@chakra-ui/react'
import { TokenSelectListRow } from './TokenSelectModal/TokenSelectList/TokenSelectListRow'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { useTokenBalances } from './TokenBalancesProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useState } from 'react'
import { useHotkeys } from 'react-hotkeys-hook'
import { Virtuoso } from 'react-virtuoso'
diff --git a/apps/frontend-v3/lib/modules/tokens/NativeAssetSelectModal.tsx b/packages/lib/modules/tokens/NativeAssetSelectModal.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/tokens/NativeAssetSelectModal.tsx
rename to packages/lib/modules/tokens/NativeAssetSelectModal.tsx
index e317156f..14da0419 100644
--- a/apps/frontend-v3/lib/modules/tokens/NativeAssetSelectModal.tsx
+++ b/packages/lib/modules/tokens/NativeAssetSelectModal.tsx
@@ -12,7 +12,7 @@ import {
VStack,
} from '@chakra-ui/react'
import { RefObject } from 'react'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { NativeAssetSelectList } from './NativeAssetSelectList'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenBalancesProvider.integration.spec.ts b/packages/lib/modules/tokens/TokenBalancesProvider.integration.spec.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/tokens/TokenBalancesProvider.integration.spec.ts
rename to packages/lib/modules/tokens/TokenBalancesProvider.integration.spec.ts
index ded07297..4bf4b89b 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenBalancesProvider.integration.spec.ts
+++ b/packages/lib/modules/tokens/TokenBalancesProvider.integration.spec.ts
@@ -1,7 +1,7 @@
-import { allFakeGqlTokens, fakeTokenBySymbol } from '@/test/data/all-gql-tokens.fake'
-import { testHook } from '@/test/utils/custom-renderers'
+import { allFakeGqlTokens, fakeTokenBySymbol } from '@repo/lib/test/data/all-gql-tokens.fake'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { act, waitFor } from '@testing-library/react'
-import { connectWithDefaultUser } from '../../../test/utils/wagmi/wagmi-connections'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
import { _useTokenBalances } from './TokenBalancesProvider'
await connectWithDefaultUser()
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenBalancesProvider.tsx b/packages/lib/modules/tokens/TokenBalancesProvider.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/tokens/TokenBalancesProvider.tsx
rename to packages/lib/modules/tokens/TokenBalancesProvider.tsx
index a46bc910..c46870f8 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenBalancesProvider.tsx
+++ b/packages/lib/modules/tokens/TokenBalancesProvider.tsx
@@ -5,12 +5,16 @@ import { useBalance, useReadContracts } from 'wagmi'
import { erc20Abi } from 'viem'
import { TokenAmount, TokenBase } from './token.types'
import { Address, formatUnits } from 'viem'
-import { isLoadingQueries, isRefetchingQueries, refetchQueries } from '@/lib/shared/utils/queries'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
+import {
+ isLoadingQueries,
+ isRefetchingQueries,
+ refetchQueries,
+} from '@repo/lib/shared/utils/queries'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
import { PropsWithChildren, createContext, useState } from 'react'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { exclNativeAssetFilter, nativeAssetFilter } from './token.helpers'
import { HumanAmount, Slippage } from '@balancer/sdk'
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenIcon.tsx b/packages/lib/modules/tokens/TokenIcon.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/tokens/TokenIcon.tsx
rename to packages/lib/modules/tokens/TokenIcon.tsx
index 9fad10b6..4a19ceec 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenIcon.tsx
+++ b/packages/lib/modules/tokens/TokenIcon.tsx
@@ -1,7 +1,7 @@
'use client'
import { useMemo, useState } from 'react'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { createAvatar } from '@dicebear/core'
import { identicon } from '@dicebear/collection'
import { Address } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenIconStack.tsx b/packages/lib/modules/tokens/TokenIconStack.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/tokens/TokenIconStack.tsx
rename to packages/lib/modules/tokens/TokenIconStack.tsx
index 7d504cd5..f134b393 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenIconStack.tsx
+++ b/packages/lib/modules/tokens/TokenIconStack.tsx
@@ -2,7 +2,7 @@ import {
GqlChain,
GqlPoolTokenDisplay,
GqlToken,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { Box, HStack, StackProps } from '@chakra-ui/react'
import { TokenIcon } from './TokenIcon'
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenInfoPopover.tsx b/packages/lib/modules/tokens/TokenInfoPopover.tsx
similarity index 88%
rename from apps/frontend-v3/lib/modules/tokens/TokenInfoPopover.tsx
rename to packages/lib/modules/tokens/TokenInfoPopover.tsx
index 0915aca6..d3133b36 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenInfoPopover.tsx
+++ b/packages/lib/modules/tokens/TokenInfoPopover.tsx
@@ -1,5 +1,5 @@
-import { getBlockExplorerName, useBlockExplorer } from '@/lib/shared/hooks/useBlockExplorer'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { getBlockExplorerName, useBlockExplorer } from '@repo/lib/shared/hooks/useBlockExplorer'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import {
HStack,
IconButton,
@@ -13,11 +13,11 @@ import {
} from '@chakra-ui/react'
import { Address } from 'viem'
import { CopyTokenAddressButton } from './CopyTokenAddressButton'
-import { abbreviateAddress } from '@/lib/shared/utils/addresses'
-import { CoingeckoIcon } from '@/lib/shared/components/icons/CoingeckoIcon'
+import { abbreviateAddress } from '@repo/lib/shared/utils/addresses'
+import { CoingeckoIcon } from '@repo/lib/shared/components/icons/CoingeckoIcon'
import { AddTokenToWalletButton } from './AddTokenToWalletButton'
import { ExternalLink } from 'react-feather'
-import { InfoIcon } from '@/lib/shared/components/icons/InfoIcon'
+import { InfoIcon } from '@repo/lib/shared/components/icons/InfoIcon'
import { useTokens } from './TokensProvider'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenInput/TokenInput.tsx b/packages/lib/modules/tokens/TokenInput/TokenInput.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/tokens/TokenInput/TokenInput.tsx
rename to packages/lib/modules/tokens/TokenInput/TokenInput.tsx
index cde353d3..8d63b747 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenInput/TokenInput.tsx
+++ b/packages/lib/modules/tokens/TokenInput/TokenInput.tsx
@@ -16,20 +16,20 @@ import {
forwardRef,
useTheme,
} from '@chakra-ui/react'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { useTokens } from '../TokensProvider'
import { useTokenBalances } from '../TokenBalancesProvider'
import { useTokenInput } from './useTokenInput'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { blockInvalidNumberInput, bn, fNum } from '@/lib/shared/utils/numbers'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { blockInvalidNumberInput, bn, fNum } from '@repo/lib/shared/utils/numbers'
import { TokenIcon } from '../TokenIcon'
import { useTokenInputsValidation } from '../TokenInputsValidationProvider'
import { ChevronDown } from 'react-feather'
-import { WalletIcon } from '@/lib/shared/components/icons/WalletIcon'
-import { usePriceImpact } from '@/lib/modules/price-impact/PriceImpactProvider'
+import { WalletIcon } from '@repo/lib/shared/components/icons/WalletIcon'
+import { usePriceImpact } from '@repo/lib/modules/price-impact/PriceImpactProvider'
import { useEffect, useState } from 'react'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
-import { isNativeAsset } from '@/lib/shared/utils/addresses'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
+import { isNativeAsset } from '@repo/lib/shared/utils/addresses'
type TokenInputSelectorProps = {
token: GqlToken | undefined
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenInput/useTokenInput.ts b/packages/lib/modules/tokens/TokenInput/useTokenInput.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/tokens/TokenInput/useTokenInput.ts
rename to packages/lib/modules/tokens/TokenInput/useTokenInput.ts
index a2eb8f1f..ca074a75 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenInput/useTokenInput.ts
+++ b/packages/lib/modules/tokens/TokenInput/useTokenInput.ts
@@ -1,5 +1,5 @@
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { Numberish, bn } from '@/lib/shared/utils/numbers'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { Numberish, bn } from '@repo/lib/shared/utils/numbers'
import { ChangeEvent } from 'react'
import { useTokenBalances } from '../TokenBalancesProvider'
import { useTokenInputsValidation } from '../TokenInputsValidationProvider'
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenInputsValidationProvider.tsx b/packages/lib/modules/tokens/TokenInputsValidationProvider.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/tokens/TokenInputsValidationProvider.tsx
rename to packages/lib/modules/tokens/TokenInputsValidationProvider.tsx
index 4cf65ab5..22bec3fc 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenInputsValidationProvider.tsx
+++ b/packages/lib/modules/tokens/TokenInputsValidationProvider.tsx
@@ -1,7 +1,7 @@
'use client'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { PropsWithChildren, createContext, useState } from 'react'
import { Address } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenRow/BptRow.tsx b/packages/lib/modules/tokens/TokenRow/BptRow.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/tokens/TokenRow/BptRow.tsx
rename to packages/lib/modules/tokens/TokenRow/BptRow.tsx
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenRow/SwapTokenRow.tsx b/packages/lib/modules/tokens/TokenRow/SwapTokenRow.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/tokens/TokenRow/SwapTokenRow.tsx
rename to packages/lib/modules/tokens/TokenRow/SwapTokenRow.tsx
index 1fb028da..99602f67 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenRow/SwapTokenRow.tsx
+++ b/packages/lib/modules/tokens/TokenRow/SwapTokenRow.tsx
@@ -1,10 +1,10 @@
import { VStack, HStack, Text } from '@chakra-ui/react'
import { Address } from 'viem'
import TokenRow from './TokenRow'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { HumanAmount } from '@balancer/sdk'
import { useSwap } from '../../swap/SwapProvider'
-import { slippageDiffLabel } from '@/lib/shared/utils/slippage'
+import { slippageDiffLabel } from '@repo/lib/shared/utils/slippage'
export function ReceiptTokenOutRow({
chain,
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenRow/TokenRow.tsx b/packages/lib/modules/tokens/TokenRow/TokenRow.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/tokens/TokenRow/TokenRow.tsx
rename to packages/lib/modules/tokens/TokenRow/TokenRow.tsx
index f019fe09..4c303b2d 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenRow/TokenRow.tsx
+++ b/packages/lib/modules/tokens/TokenRow/TokenRow.tsx
@@ -18,17 +18,17 @@ import {
GqlChain,
GqlPoolTokenDisplay,
GqlToken,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { ReactNode, useEffect, useState } from 'react'
import { TokenIcon } from '../TokenIcon'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { Numberish, fNum, isZero } from '@/lib/shared/utils/numbers'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { Numberish, fNum, isZero } from '@repo/lib/shared/utils/numbers'
import { Pool } from '../../pool/PoolProvider'
import { bptUsdValue } from '../../pool/pool.helpers'
import { TokenInfoPopover } from '../TokenInfoPopover'
import { ChevronDown } from 'react-feather'
-import { BullseyeIcon } from '@/lib/shared/components/icons/BullseyeIcon'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
+import { BullseyeIcon } from '@repo/lib/shared/components/icons/BullseyeIcon'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
type DataProps = {
address: Address
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenRow/TokenRowGroup.tsx b/packages/lib/modules/tokens/TokenRow/TokenRowGroup.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/tokens/TokenRow/TokenRowGroup.tsx
rename to packages/lib/modules/tokens/TokenRow/TokenRowGroup.tsx
index e77f34c8..0208907c 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenRow/TokenRowGroup.tsx
+++ b/packages/lib/modules/tokens/TokenRow/TokenRowGroup.tsx
@@ -1,5 +1,5 @@
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { VStack, HStack, Skeleton, Text } from '@chakra-ui/react'
import TokenRow from './TokenRow'
import { useTotalUsdValue } from '../useTotalUsdValue'
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectList.tsx b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectList.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectList.tsx
rename to packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectList.tsx
index e0b89956..efb65689 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectList.tsx
+++ b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectList.tsx
@@ -2,19 +2,19 @@
import { Box, BoxProps, Button, HStack, Text, Divider } from '@chakra-ui/react'
import { TokenSelectListRow } from './TokenSelectListRow'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { useTokenBalances } from '../../TokenBalancesProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useEffect, useRef, useState } from 'react'
import { useHotkeys } from 'react-hotkeys-hook'
import { useTokenSelectList } from './useTokenSelectList'
import { GroupedVirtuoso, GroupedVirtuosoHandle } from 'react-virtuoso'
import { useConnectModal } from '@rainbow-me/rainbowkit'
-import { CoinsIcon } from '@/lib/shared/components/icons/CoinsIcon'
-import { WalletIcon } from '@/lib/shared/components/icons/WalletIcon'
+import { CoinsIcon } from '@repo/lib/shared/components/icons/CoinsIcon'
+import { WalletIcon } from '@repo/lib/shared/components/icons/WalletIcon'
import { useTokens } from '../../TokensProvider'
import { Address } from 'viem'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
type Props = {
chain: GqlChain
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectListRow.tsx b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectListRow.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectListRow.tsx
rename to packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectListRow.tsx
index 7b32de36..e9d990a8 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectListRow.tsx
+++ b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/TokenSelectListRow.tsx
@@ -3,11 +3,11 @@
import { Box, BoxProps, HStack, VStack, Text } from '@chakra-ui/react'
import { TokenIcon } from '../../TokenIcon'
import { TokenAmount } from '../../token.types'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useTokens } from '../../TokensProvider'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import { TokenInfoPopover } from '../../TokenInfoPopover'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/useTokenSelectList.tsx b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/useTokenSelectList.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/useTokenSelectList.tsx
rename to packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/useTokenSelectList.tsx
index 409bedc3..48d6dda6 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectList/useTokenSelectList.tsx
+++ b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectList/useTokenSelectList.tsx
@@ -1,6 +1,6 @@
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { useTokens } from '../../TokensProvider'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
import { orderBy } from 'lodash'
import { useTokenBalances } from '../../TokenBalancesProvider'
import { exclNativeAssetFilter, nativeAssetFilter } from '../../token.helpers'
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectModal.tsx b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectModal.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectModal.tsx
rename to packages/lib/modules/tokens/TokenSelectModal/TokenSelectModal.tsx
index 5546abaa..64038d7e 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectModal.tsx
+++ b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectModal.tsx
@@ -13,10 +13,10 @@ import {
} from '@chakra-ui/react'
import { RefObject, useState } from 'react'
import { TokenSelectList } from './TokenSelectList/TokenSelectList'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { TokenSelectPopular } from './TokenSelectPopular'
-import { SearchInput } from '@/lib/shared/components/inputs/SearchInput'
-import { getChainShortName } from '@/lib/config/app.config'
+import { SearchInput } from '@repo/lib/shared/components/inputs/SearchInput'
+import { getChainShortName } from '@repo/lib/config/app.config'
import { Address } from 'viem'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectPopular.tsx b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectPopular.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectPopular.tsx
rename to packages/lib/modules/tokens/TokenSelectModal/TokenSelectPopular.tsx
index a0f21fcc..a917ca0a 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokenSelectModal/TokenSelectPopular.tsx
+++ b/packages/lib/modules/tokens/TokenSelectModal/TokenSelectPopular.tsx
@@ -1,13 +1,13 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { HStack, Tag, Text, Wrap, WrapItem } from '@chakra-ui/react'
import { useTokens } from '../TokensProvider'
import { useMemo } from 'react'
import { TokenIcon } from '../TokenIcon'
import { nativeAssetFilter } from '../token.helpers'
import { Address } from 'viem'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
type Props = {
chain: GqlChain
diff --git a/apps/frontend-v3/lib/modules/tokens/TokensProvider.spec.tsx b/packages/lib/modules/tokens/TokensProvider.spec.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/tokens/TokensProvider.spec.tsx
rename to packages/lib/modules/tokens/TokensProvider.spec.tsx
index 451e23c5..3fdcf905 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokensProvider.spec.tsx
+++ b/packages/lib/modules/tokens/TokensProvider.spec.tsx
@@ -1,5 +1,5 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { testHook } from '@/test/utils/custom-renderers'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
import { Address } from 'viem'
import {
diff --git a/apps/frontend-v3/lib/modules/tokens/TokensProvider.tsx b/packages/lib/modules/tokens/TokensProvider.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/tokens/TokensProvider.tsx
rename to packages/lib/modules/tokens/TokensProvider.tsx
index 248aeafb..8f59e357 100644
--- a/apps/frontend-v3/lib/modules/tokens/TokensProvider.tsx
+++ b/packages/lib/modules/tokens/TokensProvider.tsx
@@ -10,17 +10,17 @@ import {
GqlChain,
GqlPoolTokenDetail,
GqlToken,
-} from '@/lib/shared/services/api/generated/graphql'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
-import { bn, Numberish } from '@/lib/shared/utils/numbers'
+} from '@repo/lib/shared/services/api/generated/graphql'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
+import { bn, Numberish } from '@repo/lib/shared/utils/numbers'
import { useQuery } from '@apollo/client'
import { Dictionary, zipObject } from 'lodash'
import { createContext, PropsWithChildren, useCallback } from 'react'
import { Address } from 'viem'
-import { useSkipInitialQuery } from '@/lib/shared/hooks/useSkipInitialQuery'
-import { getNativeAssetAddress, getWrappedNativeAssetAddress } from '@/lib/config/app.config'
-import { mins } from '@/lib/shared/utils/time'
+import { useSkipInitialQuery } from '@repo/lib/shared/hooks/useSkipInitialQuery'
+import { getNativeAssetAddress, getWrappedNativeAssetAddress } from '@repo/lib/config/app.config'
+import { mins } from '@repo/lib/shared/utils/time'
export type UseTokensResult = ReturnType
export const TokensContext = createContext(null)
diff --git a/apps/frontend-v3/lib/modules/tokens/__mocks__/AppGlobalData.builders.ts b/packages/lib/modules/tokens/__mocks__/AppGlobalData.builders.ts
similarity index 74%
rename from apps/frontend-v3/lib/modules/tokens/__mocks__/AppGlobalData.builders.ts
rename to packages/lib/modules/tokens/__mocks__/AppGlobalData.builders.ts
index 306e09e4..8a178b65 100644
--- a/apps/frontend-v3/lib/modules/tokens/__mocks__/AppGlobalData.builders.ts
+++ b/packages/lib/modules/tokens/__mocks__/AppGlobalData.builders.ts
@@ -1,6 +1,6 @@
-import { GetAppGlobalPollingDataQuery } from '@/lib/shared/services/api/generated/graphql'
-import { fakeTokenBySymbol } from '@/test/data/all-gql-tokens.fake'
-import { aGqlTokenPriceMock } from '@/test/msw/builders/gqlTokenPrice.builders'
+import { GetAppGlobalPollingDataQuery } from '@repo/lib/shared/services/api/generated/graphql'
+import { fakeTokenBySymbol } from '@repo/lib/test/data/all-gql-tokens.fake'
+import { aGqlTokenPriceMock } from '@repo/lib/test/msw/builders/gqlTokenPrice.builders'
export function anAppGlobalData(options?: Partial) {
const defaultAppGlobalData: GetAppGlobalPollingDataQuery = {
diff --git a/apps/frontend-v3/lib/modules/tokens/__mocks__/token.builders.ts b/packages/lib/modules/tokens/__mocks__/token.builders.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/tokens/__mocks__/token.builders.ts
rename to packages/lib/modules/tokens/__mocks__/token.builders.ts
index 92bc4a16..4776180f 100644
--- a/apps/frontend-v3/lib/modules/tokens/__mocks__/token.builders.ts
+++ b/packages/lib/modules/tokens/__mocks__/token.builders.ts
@@ -1,4 +1,4 @@
-import { wETHAddress, wjAuraAddress } from '@/lib/debug-helpers'
+import { wETHAddress, wjAuraAddress } from '@repo/lib/debug-helpers'
import {
GetTokenPricesQuery,
GetTokensQuery,
@@ -8,12 +8,12 @@ import {
GqlPoolTokenDetail,
GqlPoolTokenExpanded,
GqlTokenPrice,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import {
FakeTokenSymbol,
allFakeGqlTokens,
fakeTokenBySymbol,
-} from '@/test/data/all-gql-tokens.fake'
+} from '@repo/lib/test/data/all-gql-tokens.fake'
import { mock } from 'vitest-mock-extended'
import { TokenAllowances } from '../../web3/useTokenAllowances'
import { TokenAmount, TokenBase } from '../token.types'
@@ -21,7 +21,7 @@ import { MswTokenList } from './token.test.types'
import { emptyAddress } from '../../web3/contracts/wagmi-helpers'
import { MinimalToken } from '@balancer/sdk'
import { Address } from 'viem'
-import { MAX_BIGINT } from '@/lib/shared/utils/numbers'
+import { MAX_BIGINT } from '@repo/lib/shared/utils/numbers'
export const defaultTokenMock = aTokenMock({ symbol: 'TEST-TOKEN' })
export const defaultTokenListMock: MswTokenList = allFakeGqlTokens
diff --git a/apps/frontend-v3/lib/modules/tokens/__mocks__/token.test.types.ts b/packages/lib/modules/tokens/__mocks__/token.test.types.ts
similarity index 73%
rename from apps/frontend-v3/lib/modules/tokens/__mocks__/token.test.types.ts
rename to packages/lib/modules/tokens/__mocks__/token.test.types.ts
index 14e7c775..fb91f1be 100644
--- a/apps/frontend-v3/lib/modules/tokens/__mocks__/token.test.types.ts
+++ b/packages/lib/modules/tokens/__mocks__/token.test.types.ts
@@ -2,7 +2,7 @@
* The types in this file only exist for testing reasons (MSW handlers will use them to mock GQL responses)
*/
-import { GetTokensQuery } from '@/lib/shared/services/api/generated/graphql'
+import { GetTokensQuery } from '@repo/lib/shared/services/api/generated/graphql'
// Each Token in this list is a superset of TokenBase
export type MswTokenList = GetTokensQuery['tokens']
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/approval-labels.spec.ts b/packages/lib/modules/tokens/approvals/approval-labels.spec.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/tokens/approvals/approval-labels.spec.ts
rename to packages/lib/modules/tokens/approvals/approval-labels.spec.ts
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/approval-labels.ts b/packages/lib/modules/tokens/approvals/approval-labels.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/tokens/approvals/approval-labels.ts
rename to packages/lib/modules/tokens/approvals/approval-labels.ts
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/approval-rules.spec.ts b/packages/lib/modules/tokens/approvals/approval-rules.spec.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/tokens/approvals/approval-rules.spec.ts
rename to packages/lib/modules/tokens/approvals/approval-rules.spec.ts
index 2d51073e..c9588c59 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/approval-rules.spec.ts
+++ b/packages/lib/modules/tokens/approvals/approval-rules.spec.ts
@@ -1,7 +1,7 @@
-import { SupportedChainId } from '@/lib/config/config.types'
-import { usdtAddress, wETHAddress, wjAuraAddress } from '@/lib/debug-helpers'
-import { MAX_BIGINT } from '@/lib/shared/utils/numbers'
-import { testRawAmount } from '@/test/utils/numbers'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { usdtAddress, wETHAddress, wjAuraAddress } from '@repo/lib/debug-helpers'
+import { MAX_BIGINT } from '@repo/lib/shared/utils/numbers'
+import { testRawAmount } from '@repo/lib/test/utils/numbers'
import { RawAmount, getRequiredTokenApprovals } from './approval-rules'
const chainId: SupportedChainId = 1
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/approval-rules.ts b/packages/lib/modules/tokens/approvals/approval-rules.ts
similarity index 91%
rename from apps/frontend-v3/lib/modules/tokens/approvals/approval-rules.ts
rename to packages/lib/modules/tokens/approvals/approval-rules.ts
index cc8987ec..e74abdaa 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/approval-rules.ts
+++ b/packages/lib/modules/tokens/approvals/approval-rules.ts
@@ -1,9 +1,9 @@
-import { SupportedChainId } from '@/lib/config/config.types'
-import { isNativeAsset } from '@/lib/shared/utils/addresses'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { isNativeAsset } from '@repo/lib/shared/utils/addresses'
import { Address } from 'viem'
-import { MAX_BIGINT } from '@/lib/shared/utils/numbers'
+import { MAX_BIGINT } from '@repo/lib/shared/utils/numbers'
import { InputAmount } from '@balancer/sdk'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { requiresDoubleApproval } from '../token.helpers'
export type TokenAmountToApprove = {
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/permit/signRemoveLiquidityPermit.tsx b/packages/lib/modules/tokens/approvals/permit/signRemoveLiquidityPermit.tsx
similarity index 88%
rename from apps/frontend-v3/lib/modules/tokens/approvals/permit/signRemoveLiquidityPermit.tsx
rename to packages/lib/modules/tokens/approvals/permit/signRemoveLiquidityPermit.tsx
index a6e57859..fd849771 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/permit/signRemoveLiquidityPermit.tsx
+++ b/packages/lib/modules/tokens/approvals/permit/signRemoveLiquidityPermit.tsx
@@ -1,6 +1,6 @@
// eslint-disable-next-line max-len
-import { constructRemoveBaseBuildCallInput } from '@/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils'
-import { ensureError } from '@/lib/shared/utils/errors'
+import { constructRemoveBaseBuildCallInput } from '@repo/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils'
+import { ensureError } from '@repo/lib/shared/utils/errors'
import {
Address,
Permit,
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/permit/useSignPermit.tsx b/packages/lib/modules/tokens/approvals/permit/useSignPermit.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/tokens/approvals/permit/useSignPermit.tsx
rename to packages/lib/modules/tokens/approvals/permit/useSignPermit.tsx
index 9c1aee1e..33bac55c 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/permit/useSignPermit.tsx
+++ b/packages/lib/modules/tokens/approvals/permit/useSignPermit.tsx
@@ -1,17 +1,17 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { Pool } from '@/lib/modules/pool/PoolProvider'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { useSdkWalletClient } from '@/lib/modules/web3/useSdkViemClient'
-import { Toast } from '@/lib/shared/components/toasts/Toast'
+import { Pool } from '@repo/lib/modules/pool/PoolProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { useSdkWalletClient } from '@repo/lib/modules/web3/useSdkViemClient'
+import { Toast } from '@repo/lib/shared/components/toasts/Toast'
import { useToast } from '@chakra-ui/react'
import { useEffect, useState } from 'react'
import { usePermitSignature } from '../permit2/PermitSignatureProvider'
-import { SdkQueryRemoveLiquidityOutput } from '@/lib/modules/pool/actions/remove-liquidity/remove-liquidity.types'
+import { SdkQueryRemoveLiquidityOutput } from '@repo/lib/modules/pool/actions/remove-liquidity/remove-liquidity.types'
import {
SignatureState,
isSignatureDisabled,
isSignatureLoading,
-} from '@/lib/modules/web3/signatures/signature.helpers'
+} from '@repo/lib/modules/web3/signatures/signature.helpers'
import { signRemoveLiquidityPermit } from './signRemoveLiquidityPermit'
export type RemoveLiquidityPermitParams = {
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider.tsx b/packages/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider.tsx
rename to packages/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider.tsx
index 00d23e91..eb221f85 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider.tsx
+++ b/packages/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider.tsx
@@ -1,7 +1,7 @@
'use client'
-import { SignatureState } from '@/lib/modules/web3/signatures/signature.helpers'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { SignatureState } from '@repo/lib/modules/web3/signatures/signature.helpers'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { Permit2 } from '@balancer/sdk'
import { PropsWithChildren, createContext, useState } from 'react'
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/PermitSignatureProvider.tsx b/packages/lib/modules/tokens/approvals/permit2/PermitSignatureProvider.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/tokens/approvals/permit2/PermitSignatureProvider.tsx
rename to packages/lib/modules/tokens/approvals/permit2/PermitSignatureProvider.tsx
index b01aa23f..77854e83 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/PermitSignatureProvider.tsx
+++ b/packages/lib/modules/tokens/approvals/permit2/PermitSignatureProvider.tsx
@@ -1,7 +1,7 @@
'use client'
-import { SignatureState } from '@/lib/modules/web3/signatures/signature.helpers'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { SignatureState } from '@repo/lib/modules/web3/signatures/signature.helpers'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { Permit } from '@balancer/sdk'
import { PropsWithChildren, createContext, useState } from 'react'
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/permit2.helpers.ts b/packages/lib/modules/tokens/approvals/permit2/permit2.helpers.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/tokens/approvals/permit2/permit2.helpers.ts
rename to packages/lib/modules/tokens/approvals/permit2/permit2.helpers.ts
index 451523fb..51928867 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/permit2.helpers.ts
+++ b/packages/lib/modules/tokens/approvals/permit2/permit2.helpers.ts
@@ -1,9 +1,9 @@
-import { SdkQueryAddLiquidityOutput } from '@/lib/modules/pool/actions/add-liquidity/add-liquidity.types'
-import { getNowTimestampInSecs } from '@/lib/shared/utils/time'
+import { SdkQueryAddLiquidityOutput } from '@repo/lib/modules/pool/actions/add-liquidity/add-liquidity.types'
+import { getNowTimestampInSecs } from '@repo/lib/shared/utils/time'
import { AllowedAmountsByTokenAddress, ExpirationByTokenAddress } from './usePermit2Allowance'
import { Address } from 'viem'
import { TokenAmount } from '@balancer/sdk'
-import { getGqlChain } from '@/lib/config/app.config'
+import { getGqlChain } from '@repo/lib/config/app.config'
import { filterWrappedNativeAsset } from '../../token.helpers'
import { GetTokenFn } from '../../TokensProvider'
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/signPermit2Add.tsx b/packages/lib/modules/tokens/approvals/permit2/signPermit2Add.tsx
similarity index 89%
rename from apps/frontend-v3/lib/modules/tokens/approvals/permit2/signPermit2Add.tsx
rename to packages/lib/modules/tokens/approvals/permit2/signPermit2Add.tsx
index 8afd958c..697c4639 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/signPermit2Add.tsx
+++ b/packages/lib/modules/tokens/approvals/permit2/signPermit2Add.tsx
@@ -1,6 +1,6 @@
-import { Pool } from '@/lib/modules/pool/PoolProvider'
-import { ensureError } from '@/lib/shared/utils/errors'
-import { get24HoursFromNowInSecs } from '@/lib/shared/utils/time'
+import { Pool } from '@repo/lib/modules/pool/PoolProvider'
+import { ensureError } from '@repo/lib/shared/utils/errors'
+import { get24HoursFromNowInSecs } from '@repo/lib/shared/utils/time'
import {
AddLiquidityBaseQueryOutput,
AddLiquidityQueryOutput,
@@ -12,7 +12,7 @@ import {
} from '@balancer/sdk'
import { HumanTokenAmountWithAddress } from '../../token.types'
import { NoncesByTokenAddress } from './usePermit2Allowance'
-import { constructBaseBuildCallInput } from '@/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils'
+import { constructBaseBuildCallInput } from '@repo/lib/modules/pool/actions/add-liquidity/handlers/add-liquidity.utils'
import { filterWrappedNativeAsset } from '../../token.helpers'
export interface Permit2AddLiquidityInput {
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/usePermit2Allowance.tsx b/packages/lib/modules/tokens/approvals/permit2/usePermit2Allowance.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/tokens/approvals/permit2/usePermit2Allowance.tsx
rename to packages/lib/modules/tokens/approvals/permit2/usePermit2Allowance.tsx
index 0d2608ee..6e5cfd98 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/usePermit2Allowance.tsx
+++ b/packages/lib/modules/tokens/approvals/permit2/usePermit2Allowance.tsx
@@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
-import { getGqlChain, getNetworkConfig } from '@/lib/config/app.config'
+import { getGqlChain, getNetworkConfig } from '@repo/lib/config/app.config'
import { permit2Abi } from '@balancer/sdk'
import { zipObject } from 'lodash'
import { Address } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/useSignPermit2.tsx b/packages/lib/modules/tokens/approvals/permit2/useSignPermit2.tsx
similarity index 89%
rename from apps/frontend-v3/lib/modules/tokens/approvals/permit2/useSignPermit2.tsx
rename to packages/lib/modules/tokens/approvals/permit2/useSignPermit2.tsx
index a9f8e097..d50db942 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/permit2/useSignPermit2.tsx
+++ b/packages/lib/modules/tokens/approvals/permit2/useSignPermit2.tsx
@@ -1,14 +1,14 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { Pool } from '@/lib/modules/pool/PoolProvider'
-import { SdkQueryAddLiquidityOutput } from '@/lib/modules/pool/actions/add-liquidity/add-liquidity.types'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { Pool } from '@repo/lib/modules/pool/PoolProvider'
+import { SdkQueryAddLiquidityOutput } from '@repo/lib/modules/pool/actions/add-liquidity/add-liquidity.types'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import {
SignatureState,
isSignatureDisabled,
isSignatureLoading,
-} from '@/lib/modules/web3/signatures/signature.helpers'
-import { useSdkWalletClient } from '@/lib/modules/web3/useSdkViemClient'
-import { Toast } from '@/lib/shared/components/toasts/Toast'
+} from '@repo/lib/modules/web3/signatures/signature.helpers'
+import { useSdkWalletClient } from '@repo/lib/modules/web3/useSdkViemClient'
+import { Toast } from '@repo/lib/shared/components/toasts/Toast'
import { useToast } from '@chakra-ui/react'
import { useEffect, useState } from 'react'
import { useTokens } from '../../TokensProvider'
diff --git a/apps/frontend-v3/lib/modules/tokens/approvals/useTokenApprovalSteps.tsx b/packages/lib/modules/tokens/approvals/useTokenApprovalSteps.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/tokens/approvals/useTokenApprovalSteps.tsx
rename to packages/lib/modules/tokens/approvals/useTokenApprovalSteps.tsx
index ca5c5ef1..823bde8d 100644
--- a/apps/frontend-v3/lib/modules/tokens/approvals/useTokenApprovalSteps.tsx
+++ b/packages/lib/modules/tokens/approvals/useTokenApprovalSteps.tsx
@@ -1,8 +1,8 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { getChainId, getNativeAssetAddress } from '@/lib/config/app.config'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+import { getChainId, getNativeAssetAddress } from '@repo/lib/config/app.config'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useMemo } from 'react'
import { Address } from 'viem'
import { ManagedErc20TransactionButton } from '../../transactions/transaction-steps/TransactionButton'
diff --git a/apps/frontend-v3/lib/modules/tokens/token.helpers.spec.ts b/packages/lib/modules/tokens/token.helpers.spec.ts
similarity index 88%
rename from apps/frontend-v3/lib/modules/tokens/token.helpers.spec.ts
rename to packages/lib/modules/tokens/token.helpers.spec.ts
index 849e09d1..329c4197 100644
--- a/apps/frontend-v3/lib/modules/tokens/token.helpers.spec.ts
+++ b/packages/lib/modules/tokens/token.helpers.spec.ts
@@ -1,7 +1,7 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { isWrappedNativeAsset, swapNativeWithWrapped, swapWrappedWithNative } from './token.helpers'
import { HumanTokenAmountWithAddress } from './token.types'
-import { ethAddress, wETHAddress } from '@/lib/debug-helpers'
+import { ethAddress, wETHAddress } from '@repo/lib/debug-helpers'
import { InputAmount } from '@balancer/sdk'
test('isWrappedNativeAsset', () => {
diff --git a/apps/frontend-v3/lib/modules/tokens/token.helpers.ts b/packages/lib/modules/tokens/token.helpers.ts
similarity index 94%
rename from apps/frontend-v3/lib/modules/tokens/token.helpers.ts
rename to packages/lib/modules/tokens/token.helpers.ts
index 38f2ef78..d355a2c6 100644
--- a/apps/frontend-v3/lib/modules/tokens/token.helpers.ts
+++ b/packages/lib/modules/tokens/token.helpers.ts
@@ -2,10 +2,10 @@ import {
getNativeAssetAddress,
getNetworkConfig,
getWrappedNativeAssetAddress,
-} from '@/lib/config/app.config'
-import { SupportedChainId } from '@/lib/config/config.types'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { includesAddress, isSameAddress } from '@/lib/shared/utils/addresses'
+} from '@repo/lib/config/app.config'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { includesAddress, isSameAddress } from '@repo/lib/shared/utils/addresses'
import { Address } from 'viem'
import { HumanTokenAmountWithAddress, TokenBase } from './token.types'
import { InputAmount, TokenAmount } from '@balancer/sdk'
diff --git a/apps/frontend-v3/lib/modules/tokens/token.types.ts b/packages/lib/modules/tokens/token.types.ts
similarity index 92%
rename from apps/frontend-v3/lib/modules/tokens/token.types.ts
rename to packages/lib/modules/tokens/token.types.ts
index c44ff7a6..f8aa2126 100644
--- a/apps/frontend-v3/lib/modules/tokens/token.types.ts
+++ b/packages/lib/modules/tokens/token.types.ts
@@ -1,4 +1,4 @@
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { Address, HumanAmount } from '@balancer/sdk'
export type TokenBase = Pick
diff --git a/apps/frontend-v3/lib/modules/tokens/useTotalUsdValue.spec.ts b/packages/lib/modules/tokens/useTotalUsdValue.spec.ts
similarity index 69%
rename from apps/frontend-v3/lib/modules/tokens/useTotalUsdValue.spec.ts
rename to packages/lib/modules/tokens/useTotalUsdValue.spec.ts
index f87088e2..a02c27aa 100644
--- a/apps/frontend-v3/lib/modules/tokens/useTotalUsdValue.spec.ts
+++ b/packages/lib/modules/tokens/useTotalUsdValue.spec.ts
@@ -1,12 +1,12 @@
-import { balAddress, wETHAddress } from '@/lib/debug-helpers'
-import { fakeTokenBySymbol } from '@/test/data/all-gql-tokens.fake'
-import { testHook } from '@/test/utils/custom-renderers'
+import { balAddress, wETHAddress } from '@repo/lib/debug-helpers'
+import { fakeTokenBySymbol } from '@repo/lib/test/data/all-gql-tokens.fake'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { act } from '@testing-library/react'
import { useTotalUsdValue } from './useTotalUsdValue'
-import { mockTokenPricesList } from '@/test/msw/handlers/Tokens.handlers'
-import { aTokenPriceMock } from '@/lib/modules/tokens/__mocks__/token.builders'
+import { mockTokenPricesList } from '@repo/lib/test/msw/handlers/Tokens.handlers'
+import { aTokenPriceMock } from '@repo/lib/modules/tokens/__mocks__/token.builders'
import { HumanTokenAmountWithAddress } from './token.types'
-import { actSleep } from '@/lib/shared/utils/sleep'
+import { actSleep } from '@repo/lib/shared/utils/sleep'
const balPrice = 2
const wethPrice = 3
diff --git a/apps/frontend-v3/lib/modules/tokens/useTotalUsdValue.ts b/packages/lib/modules/tokens/useTotalUsdValue.ts
similarity index 73%
rename from apps/frontend-v3/lib/modules/tokens/useTotalUsdValue.ts
rename to packages/lib/modules/tokens/useTotalUsdValue.ts
index c410875d..081e3c88 100644
--- a/apps/frontend-v3/lib/modules/tokens/useTotalUsdValue.ts
+++ b/packages/lib/modules/tokens/useTotalUsdValue.ts
@@ -1,8 +1,8 @@
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
-import { safeSum } from '@/lib/shared/utils/numbers'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { safeSum } from '@repo/lib/shared/utils/numbers'
import { useCallback } from 'react'
-import { GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
import { HumanTokenAmountWithAddress } from './token.types'
export function useTotalUsdValue(tokens: GqlToken[]) {
diff --git a/apps/frontend-v3/lib/modules/transactions/RecentTransactionsProvider.tsx b/packages/lib/modules/transactions/RecentTransactionsProvider.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/transactions/RecentTransactionsProvider.tsx
rename to packages/lib/modules/transactions/RecentTransactionsProvider.tsx
index 9c783f31..eb3050cc 100644
--- a/apps/frontend-v3/lib/modules/transactions/RecentTransactionsProvider.tsx
+++ b/packages/lib/modules/transactions/RecentTransactionsProvider.tsx
@@ -1,13 +1,13 @@
'use client'
-import { getChainId } from '@/lib/config/app.config'
-import { Toast } from '@/lib/shared/components/toasts/Toast'
-import { getBlockExplorerTxUrl } from '@/lib/shared/hooks/useBlockExplorer'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
-import { ensureError } from '@/lib/shared/utils/errors'
-import { captureFatalError } from '@/lib/shared/utils/query-errors'
-import { secs } from '@/lib/shared/utils/time'
+import { getChainId } from '@repo/lib/config/app.config'
+import { Toast } from '@repo/lib/shared/components/toasts/Toast'
+import { getBlockExplorerTxUrl } from '@repo/lib/shared/hooks/useBlockExplorer'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
+import { ensureError } from '@repo/lib/shared/utils/errors'
+import { captureFatalError } from '@repo/lib/shared/utils/query-errors'
+import { secs } from '@repo/lib/shared/utils/time'
import { AlertStatus, ToastId, useToast } from '@chakra-ui/react'
import { keyBy, orderBy, take } from 'lodash'
import React, { ReactNode, createContext, useCallback, useEffect, useState } from 'react'
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/TransactionButton.tsx b/packages/lib/modules/transactions/transaction-steps/TransactionButton.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/TransactionButton.tsx
rename to packages/lib/modules/transactions/transaction-steps/TransactionButton.tsx
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/TransactionStateProvider.tsx b/packages/lib/modules/transactions/transaction-steps/TransactionStateProvider.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/TransactionStateProvider.tsx
rename to packages/lib/modules/transactions/transaction-steps/TransactionStateProvider.tsx
index 50e9071d..1526de6f 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/TransactionStateProvider.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/TransactionStateProvider.tsx
@@ -2,7 +2,7 @@
import { createContext, PropsWithChildren, useState } from 'react'
import { ManagedResult } from './lib'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { TransactionResult } from '../../web3/contracts/contract.types'
export function _useTransactionState() {
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/TransactionStepButton.tsx b/packages/lib/modules/transactions/transaction-steps/TransactionStepButton.tsx
similarity index 87%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/TransactionStepButton.tsx
rename to packages/lib/modules/transactions/transaction-steps/TransactionStepButton.tsx
index 4830f3eb..b97659a2 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/TransactionStepButton.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/TransactionStepButton.tsx
@@ -1,15 +1,15 @@
'use client'
-import { ConnectWallet } from '@/lib/modules/web3/ConnectWallet'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { Button, VStack } from '@chakra-ui/react'
import { ManagedResult, TransactionLabels, TransactionState, getTransactionState } from './lib'
-import { useChainSwitch } from '@/lib/modules/web3/useChainSwitch'
-import { GenericError } from '@/lib/shared/components/errors/GenericError'
-import { getGqlChain } from '@/lib/config/app.config'
-import { TransactionTimeoutError } from '@/lib/shared/components/errors/TransactionTimeoutError'
+import { useChainSwitch } from '@repo/lib/modules/web3/useChainSwitch'
+import { GenericError } from '@repo/lib/shared/components/errors/GenericError'
+import { getGqlChain } from '@repo/lib/config/app.config'
+import { TransactionTimeoutError } from '@repo/lib/shared/components/errors/TransactionTimeoutError'
import { useState } from 'react'
-import { ensureError } from '@/lib/shared/utils/errors'
+import { ensureError } from '@repo/lib/shared/utils/errors'
interface Props {
step: { labels: TransactionLabels } & ManagedResult
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/lib.tsx b/packages/lib/modules/transactions/transaction-steps/lib.tsx
similarity index 97%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/lib.tsx
rename to packages/lib/modules/transactions/transaction-steps/lib.tsx
index b9780214..d5552516 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/lib.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/lib.tsx
@@ -1,4 +1,4 @@
-import { TransactionBundle } from '@/lib/modules/web3/contracts/contract.types'
+import { TransactionBundle } from '@repo/lib/modules/web3/contracts/contract.types'
import { ReactNode } from 'react'
import { LockActionType } from '../../vebal/lock/lock.helpers'
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt-parsers.ts b/packages/lib/modules/transactions/transaction-steps/receipts/receipt-parsers.ts
similarity index 95%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt-parsers.ts
rename to packages/lib/modules/transactions/transaction-steps/receipts/receipt-parsers.ts
index b8a52266..ca3aa12c 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt-parsers.ts
+++ b/packages/lib/modules/transactions/transaction-steps/receipts/receipt-parsers.ts
@@ -1,7 +1,7 @@
-import { getNativeAssetAddress, getNetworkConfig } from '@/lib/config/app.config'
-import { BPT_DECIMALS } from '@/lib/modules/pool/pool.constants'
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
-import { bn } from '@/lib/shared/utils/numbers'
+import { getNativeAssetAddress, getNetworkConfig } from '@repo/lib/config/app.config'
+import { BPT_DECIMALS } from '@repo/lib/modules/pool/pool.constants'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { HumanAmount } from '@balancer/sdk'
import { Address, Log, erc20Abi, formatUnits, parseAbiItem, parseEventLogs } from 'viem'
import { HumanTokenAmountWithAddress } from '../../../tokens/token.types'
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.integration.spec.ts b/packages/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.integration.spec.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.integration.spec.ts
rename to packages/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.integration.spec.ts
index 191d841b..7a320b5c 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.integration.spec.ts
+++ b/packages/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.integration.spec.ts
@@ -1,9 +1,9 @@
-import { testHook } from '@/test/utils/custom-renderers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
-import { getGqlChain } from '@/lib/config/app.config'
-import { polAddress } from '@/lib/debug-helpers'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { getGqlChain } from '@repo/lib/config/app.config'
+import { polAddress } from '@repo/lib/debug-helpers'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { Address, Hash } from 'viem'
import { polygon } from 'viem/chains'
import { useAddLiquidityReceipt, useRemoveLiquidityReceipt, useSwapReceipt } from './receipt.hooks'
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.ts b/packages/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.ts
rename to packages/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.ts
index 197d9d03..8355068e 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.ts
+++ b/packages/lib/modules/transactions/transaction-steps/receipts/receipt.hooks.ts
@@ -1,6 +1,6 @@
-import { getChainId } from '@/lib/config/app.config'
-import { useTokens } from '@/lib/modules/tokens/TokensProvider'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { getChainId } from '@repo/lib/config/app.config'
+import { useTokens } from '@repo/lib/modules/tokens/TokensProvider'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { Address, Hex } from 'viem'
import { useTransaction, useWaitForTransactionReceipt } from 'wagmi'
import {
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker.tsx b/packages/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker.tsx
similarity index 85%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker.tsx
rename to packages/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker.tsx
index b8d40af4..c845ea08 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker.tsx
@@ -2,8 +2,8 @@
import { Card, Box, Divider, HStack, Heading, VStack } from '@chakra-ui/react'
import { Steps } from './Steps'
-import { GasPriceCard } from '@/lib/shared/hooks/useGasPrice'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GasPriceCard } from '@repo/lib/shared/hooks/useGasPrice'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { TransactionStepsResponse } from '../useTransactionSteps'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker.tsx b/packages/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker.tsx
rename to packages/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker.tsx
index c7034ff2..fb28106a 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker.tsx
@@ -12,9 +12,9 @@ import {
import { StepIndicator } from './Step'
import { Steps } from './Steps'
-import { GasPriceCard } from '@/lib/shared/hooks/useGasPrice'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { useThemeColorMode } from '@/lib/shared/services/chakra/useThemeColorMode'
+import { GasPriceCard } from '@repo/lib/shared/hooks/useGasPrice'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { useThemeColorMode } from '@repo/lib/shared/services/chakra/useThemeColorMode'
import { TransactionStepsResponse } from '../useTransactionSteps'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/Step.tsx b/packages/lib/modules/transactions/transaction-steps/step-tracker/Step.tsx
similarity index 98%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/Step.tsx
rename to packages/lib/modules/transactions/transaction-steps/step-tracker/Step.tsx
index 61d4003d..d656ad3e 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/Step.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/step-tracker/Step.tsx
@@ -10,7 +10,7 @@ import { StepProps, getStepSettings } from './getStepSettings'
import { Check } from 'react-feather'
import { ManagedResult, StepDetails } from '../lib'
import { useTransactionState } from '../TransactionStateProvider'
-import { indexToLetter } from '@/lib/shared/labels'
+import { indexToLetter } from '@repo/lib/shared/labels'
export function Step(props: StepProps) {
const { getTransaction } = useTransactionState()
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/Steps.tsx b/packages/lib/modules/transactions/transaction-steps/step-tracker/Steps.tsx
similarity index 89%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/Steps.tsx
rename to packages/lib/modules/transactions/transaction-steps/step-tracker/Steps.tsx
index d55f2661..fec8afba 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/Steps.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/step-tracker/Steps.tsx
@@ -1,6 +1,6 @@
import { VStack } from '@chakra-ui/react'
import { Step } from './Step'
-import { useThemeColorMode } from '@/lib/shared/services/chakra/useThemeColorMode'
+import { useThemeColorMode } from '@repo/lib/shared/services/chakra/useThemeColorMode'
import { TransactionStepsResponse } from '../useTransactionSteps'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.spec.tsx b/packages/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.spec.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.spec.tsx
rename to packages/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.spec.tsx
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.tsx b/packages/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.tsx
rename to packages/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.tsx
index 2c5afe86..eb233bf4 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/step-tracker/getStepSettings.tsx
@@ -3,8 +3,8 @@ import {
TransactionState,
TransactionStep,
getTransactionState,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { ColorMode } from '@/lib/shared/services/chakra/useThemeColorMode'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { ColorMode } from '@repo/lib/shared/services/chakra/useThemeColorMode'
type StepStatus = 'active' | 'complete' | 'incomplete'
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils.ts b/packages/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils.ts
rename to packages/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils.ts
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useSafeAppLogs.tsx b/packages/lib/modules/transactions/transaction-steps/useSafeAppLogs.tsx
similarity index 86%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/useSafeAppLogs.tsx
rename to packages/lib/modules/transactions/transaction-steps/useSafeAppLogs.tsx
index 7b0054b0..b2f53ca0 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useSafeAppLogs.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/useSafeAppLogs.tsx
@@ -1,10 +1,10 @@
-import { getGqlChain } from '@/lib/config/app.config'
-import { getViemClient } from '@/lib/shared/services/viem/viem.client'
+import { getGqlChain } from '@repo/lib/config/app.config'
+import { getViemClient } from '@repo/lib/shared/services/viem/viem.client'
import { useQuery } from '@tanstack/react-query'
import { useEffect, useState } from 'react'
import { Hex, parseAbiItem } from 'viem'
import { useUserAccount } from '../../web3/UserAccountProvider'
-import { onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
type Props = {
enabled: boolean
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useShouldFreezeQuote.ts b/packages/lib/modules/transactions/transaction-steps/useShouldFreezeQuote.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/useShouldFreezeQuote.ts
rename to packages/lib/modules/transactions/transaction-steps/useShouldFreezeQuote.ts
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignPermit2Step.tsx b/packages/lib/modules/transactions/transaction-steps/useSignPermit2Step.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignPermit2Step.tsx
rename to packages/lib/modules/transactions/transaction-steps/useSignPermit2Step.tsx
index d6f538e5..b095ff83 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignPermit2Step.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/useSignPermit2Step.tsx
@@ -1,9 +1,9 @@
'use client'
-import { getChainId } from '@/lib/config/app.config'
-import { ConnectWallet } from '@/lib/modules/web3/ConnectWallet'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
+import { getChainId } from '@repo/lib/config/app.config'
+import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
import { Button, VStack } from '@chakra-ui/react'
import { useMemo } from 'react'
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignPermitStep.tsx b/packages/lib/modules/transactions/transaction-steps/useSignPermitStep.tsx
similarity index 83%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignPermitStep.tsx
rename to packages/lib/modules/transactions/transaction-steps/useSignPermitStep.tsx
index a7d9a109..676aded8 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignPermitStep.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/useSignPermitStep.tsx
@@ -1,8 +1,8 @@
'use client'
-import { ConnectWallet } from '@/lib/modules/web3/ConnectWallet'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { BalAlert } from '@/lib/shared/components/alerts/BalAlert'
+import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { BalAlert } from '@repo/lib/shared/components/alerts/BalAlert'
import { Button, HStack, VStack, Text, Spacer } from '@chakra-ui/react'
import { useMemo } from 'react'
import {
@@ -11,9 +11,9 @@ import {
} from '../../tokens/approvals/permit/useSignPermit'
import { useChainSwitch } from '../../web3/useChainSwitch'
import { TransactionStep } from './lib'
-import { getChainId } from '@/lib/config/app.config'
-import { SignIcon } from '@/lib/shared/components/icons/SignIcon'
-import { primaryTextColor } from '@/lib/shared/services/chakra/themes/bal/colors'
+import { getChainId } from '@repo/lib/config/app.config'
+import { SignIcon } from '@repo/lib/shared/components/icons/SignIcon'
+import { primaryTextColor } from '@repo/lib/shared/services/chakra/themes/bal/colors'
import { SignatureState } from '../../web3/signatures/signature.helpers'
export function useSignPermitStep(params: RemoveLiquidityPermitParams): TransactionStep {
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignRelayerStep.tsx b/packages/lib/modules/transactions/transaction-steps/useSignRelayerStep.tsx
similarity index 83%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignRelayerStep.tsx
rename to packages/lib/modules/transactions/transaction-steps/useSignRelayerStep.tsx
index 13863f68..a5bb1cce 100644
--- a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useSignRelayerStep.tsx
+++ b/packages/lib/modules/transactions/transaction-steps/useSignRelayerStep.tsx
@@ -1,14 +1,14 @@
'use client'
-import { useSignRelayerApproval } from '@/lib/modules/relayer/signRelayerApproval.hooks'
-import { ConnectWallet } from '@/lib/modules/web3/ConnectWallet'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useSignRelayerApproval } from '@repo/lib/modules/relayer/signRelayerApproval.hooks'
+import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { Alert, Button, VStack } from '@chakra-ui/react'
import { TransactionStep } from './lib'
import { useMemo } from 'react'
import { useChainSwitch } from '../../web3/useChainSwitch'
-import { getChainId } from '@/lib/config/app.config'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { getChainId } from '@repo/lib/config/app.config'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { SignatureState } from '../../web3/signatures/signature.helpers'
export const signRelayerStepTitle = 'Sign relayer'
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useTransactionSteps.tsx b/packages/lib/modules/transactions/transaction-steps/useTransactionSteps.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/useTransactionSteps.tsx
rename to packages/lib/modules/transactions/transaction-steps/useTransactionSteps.tsx
diff --git a/apps/frontend-v3/lib/modules/transactions/transaction-steps/useTxSound.ts b/packages/lib/modules/transactions/transaction-steps/useTxSound.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/transactions/transaction-steps/useTxSound.ts
rename to packages/lib/modules/transactions/transaction-steps/useTxSound.ts
diff --git a/apps/frontend-v3/lib/modules/user/settings/CurrencySelect.tsx b/packages/lib/modules/user/settings/CurrencySelect.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/user/settings/CurrencySelect.tsx
rename to packages/lib/modules/user/settings/CurrencySelect.tsx
index 37c36c48..3b7279da 100644
--- a/apps/frontend-v3/lib/modules/user/settings/CurrencySelect.tsx
+++ b/packages/lib/modules/user/settings/CurrencySelect.tsx
@@ -1,12 +1,12 @@
'use client'
-import { SupportedCurrency } from '@/lib/shared/utils/currencies'
+import { SupportedCurrency } from '@repo/lib/shared/utils/currencies'
import { Circle, HStack, Text } from '@chakra-ui/react'
import { GroupBase, OptionBase, Select, SingleValue } from 'chakra-react-select'
import { ReactNode } from 'react'
import Image from 'next/image'
import { useUserSettings } from './UserSettingsProvider'
-import { getSelectStyles } from '@/lib/shared/services/chakra/custom/chakra-react-select'
+import { getSelectStyles } from '@repo/lib/shared/services/chakra/custom/chakra-react-select'
interface CurrencyOption extends OptionBase {
label: ReactNode
diff --git a/apps/frontend-v3/lib/modules/user/settings/TransactionSettings.tsx b/packages/lib/modules/user/settings/TransactionSettings.tsx
similarity index 98%
rename from apps/frontend-v3/lib/modules/user/settings/TransactionSettings.tsx
rename to packages/lib/modules/user/settings/TransactionSettings.tsx
index 9100ee42..8a7030a5 100644
--- a/apps/frontend-v3/lib/modules/user/settings/TransactionSettings.tsx
+++ b/packages/lib/modules/user/settings/TransactionSettings.tsx
@@ -16,7 +16,7 @@ import {
useDisclosure,
} from '@chakra-ui/react'
import { useUserSettings } from './UserSettingsProvider'
-import { fNum } from '@/lib/shared/utils/numbers'
+import { fNum } from '@repo/lib/shared/utils/numbers'
import { AlertTriangle, Settings } from 'react-feather'
import { CurrencySelect } from './CurrencySelect'
import { SlippageInput } from './UserSettings'
diff --git a/apps/frontend-v3/lib/modules/user/settings/UserSettings.tsx b/packages/lib/modules/user/settings/UserSettings.tsx
similarity index 98%
rename from apps/frontend-v3/lib/modules/user/settings/UserSettings.tsx
rename to packages/lib/modules/user/settings/UserSettings.tsx
index e8948dd3..bd13ddd9 100644
--- a/apps/frontend-v3/lib/modules/user/settings/UserSettings.tsx
+++ b/packages/lib/modules/user/settings/UserSettings.tsx
@@ -19,7 +19,7 @@ import {
Switch,
} from '@chakra-ui/react'
import { useUserSettings } from './UserSettingsProvider'
-import { blockInvalidNumberInput } from '@/lib/shared/utils/numbers'
+import { blockInvalidNumberInput } from '@repo/lib/shared/utils/numbers'
import { Percent, Settings } from 'react-feather'
import { CurrencySelect } from './CurrencySelect'
diff --git a/apps/frontend-v3/lib/modules/user/settings/UserSettingsProvider.tsx b/packages/lib/modules/user/settings/UserSettingsProvider.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/user/settings/UserSettingsProvider.tsx
rename to packages/lib/modules/user/settings/UserSettingsProvider.tsx
index 0c245292..2d567c11 100644
--- a/apps/frontend-v3/lib/modules/user/settings/UserSettingsProvider.tsx
+++ b/packages/lib/modules/user/settings/UserSettingsProvider.tsx
@@ -1,12 +1,12 @@
'use client'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
-import { SupportedCurrency } from '@/lib/shared/utils/currencies'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
+import { SupportedCurrency } from '@repo/lib/shared/utils/currencies'
import { PropsWithChildren, createContext } from 'react'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { useLocalStorage } from 'usehooks-ts'
import { LS_KEYS } from '../../local-storage/local-storage.constants'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
export type YesNo = 'yes' | 'no'
diff --git a/apps/frontend-v3/lib/modules/vebal/VebalBreadcrumbs.tsx b/packages/lib/modules/vebal/VebalBreadcrumbs.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/vebal/VebalBreadcrumbs.tsx
rename to packages/lib/modules/vebal/VebalBreadcrumbs.tsx
diff --git a/apps/frontend-v3/lib/modules/vebal/VebalManage.tsx b/packages/lib/modules/vebal/VebalManage.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/vebal/VebalManage.tsx
rename to packages/lib/modules/vebal/VebalManage.tsx
index 7284976b..2f2b98e0 100644
--- a/apps/frontend-v3/lib/modules/vebal/VebalManage.tsx
+++ b/packages/lib/modules/vebal/VebalManage.tsx
@@ -1,7 +1,7 @@
import { useUserAccount } from '../web3/UserAccountProvider'
import { Button, Heading, Stack, Text, VStack } from '@chakra-ui/react'
import { VebalStatsLayout } from './VebalStats/VebalStatsLayout'
-import { VebalBreadcrumbs } from '@/lib/modules/vebal/VebalBreadcrumbs'
+import { VebalBreadcrumbs } from '@repo/lib/modules/vebal/VebalBreadcrumbs'
export function VebalManage() {
const { isConnected } = useUserAccount()
diff --git a/apps/frontend-v3/lib/modules/vebal/VebalRedirectModal.tsx b/packages/lib/modules/vebal/VebalRedirectModal.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/vebal/VebalRedirectModal.tsx
rename to packages/lib/modules/vebal/VebalRedirectModal.tsx
diff --git a/apps/frontend-v3/lib/modules/vebal/VebalStats/AllVebalStatsValues.tsx b/packages/lib/modules/vebal/VebalStats/AllVebalStatsValues.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/vebal/VebalStats/AllVebalStatsValues.tsx
rename to packages/lib/modules/vebal/VebalStats/AllVebalStatsValues.tsx
diff --git a/apps/frontend-v3/lib/modules/vebal/VebalStats/UserVebalStatsValues.tsx b/packages/lib/modules/vebal/VebalStats/UserVebalStatsValues.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/vebal/VebalStats/UserVebalStatsValues.tsx
rename to packages/lib/modules/vebal/VebalStats/UserVebalStatsValues.tsx
index 4a189234..578d4e4c 100644
--- a/apps/frontend-v3/lib/modules/vebal/VebalStats/UserVebalStatsValues.tsx
+++ b/packages/lib/modules/vebal/VebalStats/UserVebalStatsValues.tsx
@@ -2,9 +2,9 @@
import React, { useMemo } from 'react'
import { Heading, Skeleton, Text, Tooltip, VStack } from '@chakra-ui/react'
-import { bn, fNum } from '@/lib/shared/utils/numbers'
-import { useVebalUserData } from '@/lib/modules/vebal/useVebalUserData'
-import { useVebalLockInfo } from '@/lib/modules/vebal/useVebalLockInfo'
+import { bn, fNum } from '@repo/lib/shared/utils/numbers'
+import { useVebalUserData } from '@repo/lib/modules/vebal/useVebalUserData'
+import { useVebalLockInfo } from '@repo/lib/modules/vebal/useVebalLockInfo'
import { differenceInDays, format } from 'date-fns'
import BigNumber from 'bignumber.js'
diff --git a/apps/frontend-v3/lib/modules/vebal/VebalStats/VebalStats.tsx b/packages/lib/modules/vebal/VebalStats/VebalStats.tsx
similarity index 82%
rename from apps/frontend-v3/lib/modules/vebal/VebalStats/VebalStats.tsx
rename to packages/lib/modules/vebal/VebalStats/VebalStats.tsx
index 1a121615..9ebdcc16 100644
--- a/apps/frontend-v3/lib/modules/vebal/VebalStats/VebalStats.tsx
+++ b/packages/lib/modules/vebal/VebalStats/VebalStats.tsx
@@ -3,14 +3,14 @@
import React, { useState } from 'react'
import { Box, BoxProps, Card, CardProps, VStack } from '@chakra-ui/react'
-import { NoisyCard } from '@/lib/shared/components/containers/NoisyCard'
-import { ZenGarden } from '@/lib/shared/components/zen/ZenGarden'
+import { NoisyCard } from '@repo/lib/shared/components/containers/NoisyCard'
+import { ZenGarden } from '@repo/lib/shared/components/zen/ZenGarden'
import ButtonGroup, {
ButtonGroupOption,
-} from '@/lib/shared/components/btns/button-group/ButtonGroup'
+} from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
-import { UserVebalStatsValues } from '@/lib/modules/vebal/VebalStats/UserVebalStatsValues'
-import { AllVebalStatsValues } from '@/lib/modules/vebal/VebalStats/AllVebalStatsValues'
+import { UserVebalStatsValues } from '@repo/lib/modules/vebal/VebalStats/UserVebalStatsValues'
+import { AllVebalStatsValues } from '@repo/lib/modules/vebal/VebalStats/AllVebalStatsValues'
const COMMON_NOISY_CARD_PROPS: { contentProps: BoxProps; cardProps: BoxProps } = {
contentProps: {
diff --git a/apps/frontend-v3/lib/modules/vebal/VebalStats/VebalStatsLayout.tsx b/packages/lib/modules/vebal/VebalStats/VebalStatsLayout.tsx
similarity index 67%
rename from apps/frontend-v3/lib/modules/vebal/VebalStats/VebalStatsLayout.tsx
rename to packages/lib/modules/vebal/VebalStats/VebalStatsLayout.tsx
index 122b0890..bd46e5f1 100644
--- a/apps/frontend-v3/lib/modules/vebal/VebalStats/VebalStatsLayout.tsx
+++ b/packages/lib/modules/vebal/VebalStats/VebalStatsLayout.tsx
@@ -1,8 +1,8 @@
'use client'
import { Stack } from '@chakra-ui/react'
-import { VebalStats } from '@/lib/modules/vebal/VebalStats/VebalStats'
-import { VeBALLocksChart } from '@/lib/modules/vebal/vebal-chart/VebalLocksChart'
+import { VebalStats } from '@repo/lib/modules/vebal/VebalStats/VebalStats'
+import { VeBALLocksChart } from '@repo/lib/modules/vebal/vebal-chart/VebalLocksChart'
export function VebalStatsLayout() {
return (
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainBoost.tsx b/packages/lib/modules/vebal/cross-chain/CrossChainBoost.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainBoost.tsx
rename to packages/lib/modules/vebal/cross-chain/CrossChainBoost.tsx
index 13d14aae..db970ce1 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainBoost.tsx
+++ b/packages/lib/modules/vebal/cross-chain/CrossChainBoost.tsx
@@ -18,12 +18,12 @@ import {
import { useCrossChainSync } from './CrossChainSyncProvider'
import Image from 'next/image'
-import { useVebalUserData } from '@/lib/modules/vebal/useVebalUserData'
-import { useVebalLockInfo } from '@/lib/modules/vebal/useVebalLockInfo'
+import { useVebalUserData } from '@repo/lib/modules/vebal/useVebalUserData'
+import { useVebalLockInfo } from '@repo/lib/modules/vebal/useVebalLockInfo'
-import { CrossChainSyncModal } from '@/lib/modules/vebal/cross-chain/CrossChainSyncModal'
+import { CrossChainSyncModal } from '@repo/lib/modules/vebal/cross-chain/CrossChainSyncModal'
import { useState } from 'react'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { InfoOutlineIcon } from '@chakra-ui/icons'
const tooltipLabel = `Sidechains & Layer 2 networks like Polygon and Arbitrum don't know
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncModal.tsx b/packages/lib/modules/vebal/cross-chain/CrossChainSyncModal.tsx
similarity index 81%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncModal.tsx
rename to packages/lib/modules/vebal/cross-chain/CrossChainSyncModal.tsx
index 62cfaef1..539d3b85 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncModal.tsx
+++ b/packages/lib/modules/vebal/cross-chain/CrossChainSyncModal.tsx
@@ -15,23 +15,23 @@ import {
HStack,
Heading,
} from '@chakra-ui/react'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints'
-import { TransactionModalHeader } from '@/lib/shared/components/modals/TransactionModalHeader'
-import { ActionModalFooter } from '@/lib/shared/components/modals/ActionModalFooter'
-import { SuccessOverlay } from '@/lib/shared/components/modals/SuccessOverlay'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { useBreakpoints } from '@repo/lib/shared/hooks/useBreakpoints'
+import { TransactionModalHeader } from '@repo/lib/shared/components/modals/TransactionModalHeader'
+import { ActionModalFooter } from '@repo/lib/shared/components/modals/ActionModalFooter'
+import { SuccessOverlay } from '@repo/lib/shared/components/modals/SuccessOverlay'
import { useState } from 'react'
-import { AnimateHeightChange } from '@/lib/shared/components/animations/AnimateHeightChange'
-import { useCrossChainSyncSteps } from '@/lib/modules/vebal/cross-chain/useCrossChainSyncSteps'
+import { AnimateHeightChange } from '@repo/lib/shared/components/animations/AnimateHeightChange'
+import { useCrossChainSyncSteps } from '@repo/lib/modules/vebal/cross-chain/useCrossChainSyncSteps'
import { useTransactionSteps } from '../../transactions/transaction-steps/useTransactionSteps'
// eslint-disable-next-line max-len
-import { getStylesForModalContentWithStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
-import { DesktopStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
-import { MobileStepTracker } from '@/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
+import { getStylesForModalContentWithStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/step-tracker.utils'
+import { DesktopStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/DesktopStepTracker'
+import { MobileStepTracker } from '@repo/lib/modules/transactions/transaction-steps/step-tracker/MobileStepTracker'
import { uniq } from 'lodash'
-import { getChainShortName } from '@/lib/config/app.config'
+import { getChainShortName } from '@repo/lib/config/app.config'
-import { useVebalUserData } from '@/lib/modules/vebal/useVebalUserData'
+import { useVebalUserData } from '@repo/lib/modules/vebal/useVebalUserData'
import { useCrossChainSync } from './CrossChainSyncProvider'
type Props = {
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncModalContent.tsx b/packages/lib/modules/vebal/cross-chain/CrossChainSyncModalContent.tsx
similarity index 70%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncModalContent.tsx
rename to packages/lib/modules/vebal/cross-chain/CrossChainSyncModalContent.tsx
index d0414371..c973bae9 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncModalContent.tsx
+++ b/packages/lib/modules/vebal/cross-chain/CrossChainSyncModalContent.tsx
@@ -1,6 +1,6 @@
import { Card } from '@chakra-ui/react'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { CrossChainSyncRow } from '@/lib/modules/vebal/cross-chain/CrossChainSyncRow'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { CrossChainSyncRow } from '@repo/lib/modules/vebal/cross-chain/CrossChainSyncRow'
export function CrossChainSyncModalContent({
currentNetwork,
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncProvider.tsx b/packages/lib/modules/vebal/cross-chain/CrossChainSyncProvider.tsx
similarity index 96%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncProvider.tsx
rename to packages/lib/modules/vebal/cross-chain/CrossChainSyncProvider.tsx
index 0cf0fe91..8fe85f32 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncProvider.tsx
+++ b/packages/lib/modules/vebal/cross-chain/CrossChainSyncProvider.tsx
@@ -1,4 +1,4 @@
-import networkConfigs from '@/lib/config/networks'
+import networkConfigs from '@repo/lib/config/networks'
import { useEffect, useMemo, useCallback, createContext, PropsWithChildren } from 'react'
import { OmniEscrowLock, useOmniEscrowLocksQuery } from './useOmniEscrowLocksQuery'
import { useUserAccount } from '../../web3/UserAccountProvider'
@@ -8,14 +8,14 @@ import {
getNetworkSyncState,
useCrossChainNetworks,
} from './useCrossChainNetworks'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { Address, Hash } from 'viem'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { keyBy } from 'lodash'
import { useLocalStorage } from 'usehooks-ts'
-import { LS_KEYS } from '@/lib/modules/local-storage/local-storage.constants'
+import { LS_KEYS } from '@repo/lib/modules/local-storage/local-storage.constants'
import { useLayerZeroTxLinks } from './useLayerZeroTxLinks'
-import { secs } from '@/lib/shared/utils/time'
+import { secs } from '@repo/lib/shared/utils/time'
const veBalSyncSupportedNetworks: GqlChain[] = Object.keys(networkConfigs)
.filter(key => networkConfigs[key as keyof typeof networkConfigs].supportsVeBalSync)
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncRow.tsx b/packages/lib/modules/vebal/cross-chain/CrossChainSyncRow.tsx
similarity index 84%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncRow.tsx
rename to packages/lib/modules/vebal/cross-chain/CrossChainSyncRow.tsx
index 8f7afc9e..7d6420b8 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/CrossChainSyncRow.tsx
+++ b/packages/lib/modules/vebal/cross-chain/CrossChainSyncRow.tsx
@@ -1,9 +1,9 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
-import { useVebalUserData } from '@/lib/modules/vebal/useVebalUserData'
+import { useVebalUserData } from '@repo/lib/modules/vebal/useVebalUserData'
import { HStack, Text, VStack } from '@chakra-ui/react'
import Image from 'next/image'
-import { getChainShortName } from '@/lib/config/app.config'
+import { getChainShortName } from '@repo/lib/config/app.config'
import { useCrossChainSync } from './CrossChainSyncProvider'
export function CrossChainSyncRow({ network, current }: { network: GqlChain; current: boolean }) {
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/useCrossChainNetworks.ts b/packages/lib/modules/vebal/cross-chain/useCrossChainNetworks.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/useCrossChainNetworks.ts
rename to packages/lib/modules/vebal/cross-chain/useCrossChainNetworks.ts
index 94d695b1..97ac7d00 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/useCrossChainNetworks.ts
+++ b/packages/lib/modules/vebal/cross-chain/useCrossChainNetworks.ts
@@ -1,15 +1,15 @@
import { useMemo } from 'react'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import networkConfigs from '@/lib/config/networks'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import networkConfigs from '@repo/lib/config/networks'
import { OmniEscrowLock } from './useOmniEscrowLocksQuery'
import {
useVotingEscrowLocksQueries,
VotingEscrowLock,
VotingEscrowLockResponse,
} from './useVotingEscrowLocksQueries'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { useUserAccount } from '../../web3/UserAccountProvider'
-import { allEqual } from '@/lib/shared/utils/array'
+import { allEqual } from '@repo/lib/shared/utils/array'
import { UseQueryResult } from '@tanstack/react-query'
export enum NetworkSyncState {
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/useCrossChainSyncSteps.tsx b/packages/lib/modules/vebal/cross-chain/useCrossChainSyncSteps.tsx
similarity index 81%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/useCrossChainSyncSteps.tsx
rename to packages/lib/modules/vebal/cross-chain/useCrossChainSyncSteps.tsx
index 8a499688..c5901e81 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/useCrossChainSyncSteps.tsx
+++ b/packages/lib/modules/vebal/cross-chain/useCrossChainSyncSteps.tsx
@@ -1,19 +1,19 @@
-import { ManagedTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
-import { useTransactionState } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { ManagedTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
+import { useTransactionState } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { ManagedTransactionInput } from '@/lib/modules/web3/contracts/useManagedTransaction'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { ManagedTransactionInput } from '@repo/lib/modules/web3/contracts/useManagedTransaction'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { useMemo } from 'react'
import { Address } from 'viem'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { useNetworkConfig } from '@/lib/config/useNetworkConfig'
-import { useEstimateSendUserBalance } from '@/lib/modules/vebal/cross-chain/useEstimateSendUserBalance'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { useNetworkConfig } from '@repo/lib/config/useNetworkConfig'
+import { useEstimateSendUserBalance } from '@repo/lib/modules/vebal/cross-chain/useEstimateSendUserBalance'
import { Button } from '@chakra-ui/react'
-import { getChainShortName, getNetworkConfig } from '@/lib/config/app.config'
+import { getChainShortName, getNetworkConfig } from '@repo/lib/config/app.config'
export const crossChainSyncStepPrefix = 'cross-chain-sync'
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/useEstimateSendUserBalance.ts b/packages/lib/modules/vebal/cross-chain/useEstimateSendUserBalance.ts
similarity index 68%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/useEstimateSendUserBalance.ts
rename to packages/lib/modules/vebal/cross-chain/useEstimateSendUserBalance.ts
index b52d426c..cccdcb83 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/useEstimateSendUserBalance.ts
+++ b/packages/lib/modules/vebal/cross-chain/useEstimateSendUserBalance.ts
@@ -1,9 +1,9 @@
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { useReadContract } from 'wagmi'
-import { OmniVotingEscrowAbi } from '@/lib/modules/web3/contracts/abi/OmniVotingEscrowAbi'
+import { OmniVotingEscrowAbi } from '@repo/lib/modules/web3/contracts/abi/OmniVotingEscrowAbi'
import { Address } from 'viem'
-import { useNetworkConfig } from '@/lib/config/useNetworkConfig'
-import { bn } from '@/lib/shared/utils/numbers'
+import { useNetworkConfig } from '@repo/lib/config/useNetworkConfig'
+import { bn } from '@repo/lib/shared/utils/numbers'
export function useEstimateSendUserBalance(tokenAddress: Address, layerZeroChainId: number) {
const { userAddress } = useUserAccount()
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/useLayerZeroTxLinks.ts b/packages/lib/modules/vebal/cross-chain/useLayerZeroTxLinks.ts
similarity index 91%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/useLayerZeroTxLinks.ts
rename to packages/lib/modules/vebal/cross-chain/useLayerZeroTxLinks.ts
index 3d783649..353fcf20 100644
--- a/apps/frontend-v3/lib/modules/vebal/cross-chain/useLayerZeroTxLinks.ts
+++ b/packages/lib/modules/vebal/cross-chain/useLayerZeroTxLinks.ts
@@ -1,11 +1,11 @@
import { useState, useEffect, useCallback } from 'react'
import { getMessagesBySrcTxHash } from '@layerzerolabs/scan-client'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { Address } from 'viem'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
import { SyncTxHashes } from './CrossChainSyncProvider'
-import { secs } from '@/lib/shared/utils/time'
+import { secs } from '@repo/lib/shared/utils/time'
const REFETCH_GET_LAYER_ZERO_TX_LINKS_INTERVAL = secs(5).toMs()
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/useOmniEscrowLocksQuery.ts b/packages/lib/modules/vebal/cross-chain/useOmniEscrowLocksQuery.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/useOmniEscrowLocksQuery.ts
rename to packages/lib/modules/vebal/cross-chain/useOmniEscrowLocksQuery.ts
diff --git a/apps/frontend-v3/lib/modules/vebal/cross-chain/useVotingEscrowLocksQueries.ts b/packages/lib/modules/vebal/cross-chain/useVotingEscrowLocksQueries.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/vebal/cross-chain/useVotingEscrowLocksQueries.ts
rename to packages/lib/modules/vebal/cross-chain/useVotingEscrowLocksQueries.ts
diff --git a/apps/frontend-v3/lib/modules/vebal/lock/lock.helpers.ts b/packages/lib/modules/vebal/lock/lock.helpers.ts
similarity index 98%
rename from apps/frontend-v3/lib/modules/vebal/lock/lock.helpers.ts
rename to packages/lib/modules/vebal/lock/lock.helpers.ts
index d5dc0fc9..c33ebbb1 100644
--- a/apps/frontend-v3/lib/modules/vebal/lock/lock.helpers.ts
+++ b/packages/lib/modules/vebal/lock/lock.helpers.ts
@@ -1,4 +1,4 @@
-import { toUtcTime } from '@/lib/shared/utils/time'
+import { toUtcTime } from '@repo/lib/shared/utils/time'
import { RawAmount } from '../../tokens/approvals/approval-rules'
export enum LockActionType {
diff --git a/apps/frontend-v3/lib/modules/vebal/lock/useLockSteps.tsx b/packages/lib/modules/vebal/lock/useLockSteps.tsx
similarity index 91%
rename from apps/frontend-v3/lib/modules/vebal/lock/useLockSteps.tsx
rename to packages/lib/modules/vebal/lock/useLockSteps.tsx
index 6482afb8..c4869a12 100644
--- a/apps/frontend-v3/lib/modules/vebal/lock/useLockSteps.tsx
+++ b/packages/lib/modules/vebal/lock/useLockSteps.tsx
@@ -1,14 +1,14 @@
import { useMemo, useCallback } from 'react'
import { useTokenApprovalSteps } from '../../tokens/approvals/useTokenApprovalSteps'
import { useUserAccount } from '../../web3/UserAccountProvider'
-import mainnetNetworkConfig from '@/lib/config/networks/mainnet'
+import mainnetNetworkConfig from '@repo/lib/config/networks/mainnet'
import { RawAmount } from '../../tokens/approvals/approval-rules'
-import { ManagedTransactionButton } from '@/lib/modules/transactions/transaction-steps/TransactionButton'
+import { ManagedTransactionButton } from '@repo/lib/modules/transactions/transaction-steps/TransactionButton'
import {
TransactionLabels,
TransactionStep,
-} from '@/lib/modules/transactions/transaction-steps/lib'
-import { sentryMetaForWagmiSimulation } from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { sentryMetaForWagmiSimulation } from '@repo/lib/shared/utils/query-errors'
import { Address, parseUnits } from 'viem'
import { ManagedTransactionInput } from '../../web3/contracts/useManagedTransaction'
import {
diff --git a/apps/frontend-v3/lib/modules/vebal/useGaugeTotalSupplyAndUserBalance.ts b/packages/lib/modules/vebal/useGaugeTotalSupplyAndUserBalance.ts
similarity index 91%
rename from apps/frontend-v3/lib/modules/vebal/useGaugeTotalSupplyAndUserBalance.ts
rename to packages/lib/modules/vebal/useGaugeTotalSupplyAndUserBalance.ts
index 7c6848e8..a6395ea0 100644
--- a/apps/frontend-v3/lib/modules/vebal/useGaugeTotalSupplyAndUserBalance.ts
+++ b/packages/lib/modules/vebal/useGaugeTotalSupplyAndUserBalance.ts
@@ -1,10 +1,10 @@
import { useMulticall } from '../web3/contracts/useMulticall'
import { AbiMap } from '../web3/contracts/AbiMap'
import { useUserAccount } from '../web3/UserAccountProvider'
-import networkConfigs from '@/lib/config/networks'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import networkConfigs from '@repo/lib/config/networks'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { GaugeArg } from './useVebalBoost'
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
export function useGaugeTotalSupplyAndUserBalance(gauges: GaugeArg[]) {
const { userAddress } = useUserAccount()
diff --git a/apps/frontend-v3/lib/modules/vebal/useGaugeWorkingBalanceQuery.ts b/packages/lib/modules/vebal/useGaugeWorkingBalanceQuery.ts
similarity index 89%
rename from apps/frontend-v3/lib/modules/vebal/useGaugeWorkingBalanceQuery.ts
rename to packages/lib/modules/vebal/useGaugeWorkingBalanceQuery.ts
index 100ec7f3..89fabafc 100644
--- a/apps/frontend-v3/lib/modules/vebal/useGaugeWorkingBalanceQuery.ts
+++ b/packages/lib/modules/vebal/useGaugeWorkingBalanceQuery.ts
@@ -1,7 +1,7 @@
import { useReadContract } from 'wagmi'
import { GaugeWorkingBalanceHelperAbi } from '../web3/contracts/abi/GaugeWorkingBalanceHelperAbi'
import { Address } from '@balancer/sdk'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
export function useGaugeWorkingBalanceQuery(
chainId: number,
diff --git a/apps/frontend-v3/lib/modules/vebal/useGaugesSupplyAndBalance.ts b/packages/lib/modules/vebal/useGaugesSupplyAndBalance.ts
similarity index 97%
rename from apps/frontend-v3/lib/modules/vebal/useGaugesSupplyAndBalance.ts
rename to packages/lib/modules/vebal/useGaugesSupplyAndBalance.ts
index 886b3556..964ded41 100644
--- a/apps/frontend-v3/lib/modules/vebal/useGaugesSupplyAndBalance.ts
+++ b/packages/lib/modules/vebal/useGaugesSupplyAndBalance.ts
@@ -6,7 +6,7 @@ import { useMulticall } from '../web3/contracts/useMulticall'
import { AbiMap } from '../web3/contracts/AbiMap'
import { Hex } from 'viem'
-import { getChainId, getGqlChain } from '@/lib/config/app.config'
+import { getChainId, getGqlChain } from '@repo/lib/config/app.config'
type GaugeDataByPool = Record
diff --git a/apps/frontend-v3/lib/modules/vebal/useVebalBoost.tsx b/packages/lib/modules/vebal/useVebalBoost.tsx
similarity index 95%
rename from apps/frontend-v3/lib/modules/vebal/useVebalBoost.tsx
rename to packages/lib/modules/vebal/useVebalBoost.tsx
index 0a6ab864..1878189c 100644
--- a/apps/frontend-v3/lib/modules/vebal/useVebalBoost.tsx
+++ b/packages/lib/modules/vebal/useVebalBoost.tsx
@@ -1,11 +1,11 @@
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { useMemo } from 'react'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { isUndefined } from 'lodash'
import { useGaugesSupplyAndBalance } from './useGaugesSupplyAndBalance'
import { useGaugeTotalSupplyAndUserBalance } from './useGaugeTotalSupplyAndUserBalance'
import { useVebalLockInfo } from './useVebalLockInfo'
-import { getChainId } from '@/lib/config/app.config'
+import { getChainId } from '@repo/lib/config/app.config'
import { Pool } from '../pool/PoolProvider'
export type VeBalLockInfo = {
diff --git a/apps/frontend-v3/lib/modules/vebal/useVebalLockInfo.ts b/packages/lib/modules/vebal/useVebalLockInfo.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/vebal/useVebalLockInfo.ts
rename to packages/lib/modules/vebal/useVebalLockInfo.ts
index 6587edc4..b8643777 100644
--- a/apps/frontend-v3/lib/modules/vebal/useVebalLockInfo.ts
+++ b/packages/lib/modules/vebal/useVebalLockInfo.ts
@@ -1,12 +1,12 @@
import { useMemo } from 'react'
import { useUserAccount } from '../web3/UserAccountProvider'
import { useMulticall } from '../web3/contracts/useMulticall'
-import mainnetNetworkConfig from '@/lib/config/networks/mainnet'
+import mainnetNetworkConfig from '@repo/lib/config/networks/mainnet'
import { Hex, formatUnits } from 'viem'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import { AbiMap } from '../web3/contracts/AbiMap'
import { mainnet } from 'viem/chains'
-import { toJsTimestamp } from '@/lib/shared/utils/time'
+import { toJsTimestamp } from '@repo/lib/shared/utils/time'
interface MulticallLockInfoResponse {
locked: {
diff --git a/apps/frontend-v3/lib/modules/vebal/useVebalUserData.ts b/packages/lib/modules/vebal/useVebalUserData.ts
similarity index 82%
rename from apps/frontend-v3/lib/modules/vebal/useVebalUserData.ts
rename to packages/lib/modules/vebal/useVebalUserData.ts
index 95a8b42d..cd5e4ae9 100644
--- a/apps/frontend-v3/lib/modules/vebal/useVebalUserData.ts
+++ b/packages/lib/modules/vebal/useVebalUserData.ts
@@ -1,4 +1,4 @@
-import { GetVeBalUserDocument, GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GetVeBalUserDocument, GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { useUserAccount } from '../web3/UserAccountProvider'
import { useQuery } from '@apollo/client'
diff --git a/apps/frontend-v3/lib/modules/vebal/vebal-chart/VebalLocksChart.tsx b/packages/lib/modules/vebal/vebal-chart/VebalLocksChart.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/vebal/vebal-chart/VebalLocksChart.tsx
rename to packages/lib/modules/vebal/vebal-chart/VebalLocksChart.tsx
diff --git a/apps/frontend-v3/lib/modules/vebal/vebal-chart/test-locks.ts b/packages/lib/modules/vebal/vebal-chart/test-locks.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/vebal/vebal-chart/test-locks.ts
rename to packages/lib/modules/vebal/vebal-chart/test-locks.ts
diff --git a/apps/frontend-v3/lib/modules/vebal/vebal-chart/useVebalLocksChart.tsx b/packages/lib/modules/vebal/vebal-chart/useVebalLocksChart.tsx
similarity index 99%
rename from apps/frontend-v3/lib/modules/vebal/vebal-chart/useVebalLocksChart.tsx
rename to packages/lib/modules/vebal/vebal-chart/useVebalLocksChart.tsx
index f6095365..ea6fdad1 100644
--- a/apps/frontend-v3/lib/modules/vebal/vebal-chart/useVebalLocksChart.tsx
+++ b/packages/lib/modules/vebal/vebal-chart/useVebalLocksChart.tsx
@@ -10,7 +10,7 @@ import { format, differenceInDays } from 'date-fns'
import BigNumber from 'bignumber.js'
import { lockSnapshots } from './test-locks'
import { useVebalLockInfo } from '../../vebal/useVebalLockInfo'
-import { bn, fNum } from '@/lib/shared/utils/numbers'
+import { bn, fNum } from '@repo/lib/shared/utils/numbers'
import { useTheme as useNextTheme } from 'next-themes'
type ChartValueAcc = [string, number][]
diff --git a/apps/frontend-v3/lib/modules/web3/AcceptPoliciesModal.tsx b/packages/lib/modules/web3/AcceptPoliciesModal.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/AcceptPoliciesModal.tsx
rename to packages/lib/modules/web3/AcceptPoliciesModal.tsx
diff --git a/apps/frontend-v3/lib/modules/web3/BlockedAddressModal.tsx b/packages/lib/modules/web3/BlockedAddressModal.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/BlockedAddressModal.tsx
rename to packages/lib/modules/web3/BlockedAddressModal.tsx
diff --git a/apps/frontend-v3/lib/modules/web3/ChainConfig.tsx b/packages/lib/modules/web3/ChainConfig.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/web3/ChainConfig.tsx
rename to packages/lib/modules/web3/ChainConfig.tsx
index cfcadfae..bb9159c6 100644
--- a/apps/frontend-v3/lib/modules/web3/ChainConfig.tsx
+++ b/packages/lib/modules/web3/ChainConfig.tsx
@@ -16,10 +16,10 @@ import {
sepolia,
} from 'wagmi/chains'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { keyBy } from 'lodash'
-import { getBaseUrl } from '@/lib/shared/utils/urls'
+import { getBaseUrl } from '@repo/lib/shared/utils/urls'
/* If a request with the default rpc fails, it will fall back to the next one in the list.
https://viem.sh/docs/clients/transports/fallback#fallback-transport
diff --git a/apps/frontend-v3/lib/modules/web3/ConnectWallet.tsx b/packages/lib/modules/web3/ConnectWallet.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/ConnectWallet.tsx
rename to packages/lib/modules/web3/ConnectWallet.tsx
diff --git a/apps/frontend-v3/lib/modules/web3/CustomAvatar.tsx b/packages/lib/modules/web3/CustomAvatar.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/CustomAvatar.tsx
rename to packages/lib/modules/web3/CustomAvatar.tsx
diff --git a/apps/frontend-v3/lib/modules/web3/UserAccountProvider.integration.spec.tsx b/packages/lib/modules/web3/UserAccountProvider.integration.spec.tsx
similarity index 73%
rename from apps/frontend-v3/lib/modules/web3/UserAccountProvider.integration.spec.tsx
rename to packages/lib/modules/web3/UserAccountProvider.integration.spec.tsx
index 8b01ab2c..615f4ccb 100644
--- a/apps/frontend-v3/lib/modules/web3/UserAccountProvider.integration.spec.tsx
+++ b/packages/lib/modules/web3/UserAccountProvider.integration.spec.tsx
@@ -1,10 +1,10 @@
-import { alternativeTestUserAccount } from '@/test/anvil/anvil-setup'
-import { testHook } from '@/test/utils/custom-renderers'
+import { alternativeTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
import {
connectWithAlternativeUser,
disconnectAlternativeUser,
-} from '../../../test/utils/wagmi/wagmi-connections'
+} from '@repo/lib/test/utils/wagmi/wagmi-connections'
import { useUserAccount } from './UserAccountProvider'
function testUseUserAccount() {
diff --git a/apps/frontend-v3/lib/modules/web3/UserAccountProvider.tsx b/packages/lib/modules/web3/UserAccountProvider.tsx
similarity index 92%
rename from apps/frontend-v3/lib/modules/web3/UserAccountProvider.tsx
rename to packages/lib/modules/web3/UserAccountProvider.tsx
index 3509ad1c..74dcd18c 100644
--- a/apps/frontend-v3/lib/modules/web3/UserAccountProvider.tsx
+++ b/packages/lib/modules/web3/UserAccountProvider.tsx
@@ -5,12 +5,12 @@
import { useAccount, useDisconnect } from 'wagmi'
import { emptyAddress } from './contracts/wagmi-helpers'
import { PropsWithChildren, createContext, useEffect, useState } from 'react'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { Address, isAddress } from 'viem'
import { setTag, setUser } from '@sentry/nextjs'
-import { config, isProd } from '@/lib/config/app.config'
-import { captureError, ensureError } from '@/lib/shared/utils/errors'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import { config, isProd } from '@repo/lib/config/app.config'
+import { captureError, ensureError } from '@repo/lib/shared/utils/errors'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
import { useSafeAppConnectionGuard } from './useSafeAppConnectionGuard'
async function isAuthorizedAddress(address: Address): Promise {
diff --git a/apps/frontend-v3/lib/modules/web3/WagmiConfig.tsx b/packages/lib/modules/web3/WagmiConfig.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/web3/WagmiConfig.tsx
rename to packages/lib/modules/web3/WagmiConfig.tsx
index 84d92f41..b03d304d 100644
--- a/apps/frontend-v3/lib/modules/web3/WagmiConfig.tsx
+++ b/packages/lib/modules/web3/WagmiConfig.tsx
@@ -4,7 +4,7 @@ import { connectorsForWallets } from '@rainbow-me/rainbowkit'
import { createConfig } from 'wagmi'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
import {
coinbaseWallet,
rabbyWallet,
diff --git a/apps/frontend-v3/lib/modules/web3/Web3Provider.spec.tsx b/packages/lib/modules/web3/Web3Provider.spec.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/Web3Provider.spec.tsx
rename to packages/lib/modules/web3/Web3Provider.spec.tsx
diff --git a/apps/frontend-v3/lib/modules/web3/Web3Provider.tsx b/packages/lib/modules/web3/Web3Provider.tsx
similarity index 94%
rename from apps/frontend-v3/lib/modules/web3/Web3Provider.tsx
rename to packages/lib/modules/web3/Web3Provider.tsx
index 763018a4..ffb2203c 100644
--- a/apps/frontend-v3/lib/modules/web3/Web3Provider.tsx
+++ b/packages/lib/modules/web3/Web3Provider.tsx
@@ -3,8 +3,8 @@
import '@rainbow-me/rainbowkit/styles.css'
import { RainbowKitProvider, Theme, darkTheme, lightTheme } from '@rainbow-me/rainbowkit'
import { WagmiProvider } from 'wagmi'
-import { ReactQueryClientProvider } from '@/app/react-query.provider'
-import { useThemeColorMode } from '@/lib/shared/services/chakra/useThemeColorMode'
+import { ReactQueryClientProvider } from '@repo/lib/shared/app/react-query.provider'
+import { useThemeColorMode } from '@repo/lib/shared/services/chakra/useThemeColorMode'
import { useTheme } from '@chakra-ui/react'
import { merge } from 'lodash'
import { UserSettingsProvider } from '../user/settings/UserSettingsProvider'
@@ -14,7 +14,7 @@ import { CustomAvatar } from './CustomAvatar'
import { UserAccountProvider } from './UserAccountProvider'
import { PropsWithChildren } from 'react'
import { WagmiConfig } from './WagmiConfig'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
export function Web3Provider({
children,
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/AbiMap.ts b/packages/lib/modules/web3/contracts/AbiMap.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/AbiMap.ts
rename to packages/lib/modules/web3/contracts/AbiMap.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/FeeDistributorStaticAbi.ts b/packages/lib/modules/web3/contracts/abi/FeeDistributorStaticAbi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/FeeDistributorStaticAbi.ts
rename to packages/lib/modules/web3/contracts/abi/FeeDistributorStaticAbi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/GaugeWorkingBalanceHelperAbi.ts b/packages/lib/modules/web3/contracts/abi/GaugeWorkingBalanceHelperAbi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/GaugeWorkingBalanceHelperAbi.ts
rename to packages/lib/modules/web3/contracts/abi/GaugeWorkingBalanceHelperAbi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/LiquidityGaugeAbi.ts b/packages/lib/modules/web3/contracts/abi/LiquidityGaugeAbi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/LiquidityGaugeAbi.ts
rename to packages/lib/modules/web3/contracts/abi/LiquidityGaugeAbi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/OmniVotingEscrowAbi.ts b/packages/lib/modules/web3/contracts/abi/OmniVotingEscrowAbi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/OmniVotingEscrowAbi.ts
rename to packages/lib/modules/web3/contracts/abi/OmniVotingEscrowAbi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/UsdtAbi.ts b/packages/lib/modules/web3/contracts/abi/UsdtAbi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/UsdtAbi.ts
rename to packages/lib/modules/web3/contracts/abi/UsdtAbi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/balancerV3ExtensionVaultAbi.ts b/packages/lib/modules/web3/contracts/abi/balancerV3ExtensionVaultAbi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/balancerV3ExtensionVaultAbi.ts
rename to packages/lib/modules/web3/contracts/abi/balancerV3ExtensionVaultAbi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/balancerV3VaultAbi.ts b/packages/lib/modules/web3/contracts/abi/balancerV3VaultAbi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/balancerV3VaultAbi.ts
rename to packages/lib/modules/web3/contracts/abi/balancerV3VaultAbi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/cowAmmAbi.ts b/packages/lib/modules/web3/contracts/abi/cowAmmAbi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/cowAmmAbi.ts
rename to packages/lib/modules/web3/contracts/abi/cowAmmAbi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/generated.ts b/packages/lib/modules/web3/contracts/abi/generated.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/generated.ts
rename to packages/lib/modules/web3/contracts/abi/generated.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/veDelegationProxyL2.ts b/packages/lib/modules/web3/contracts/abi/veDelegationProxyL2.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/veDelegationProxyL2.ts
rename to packages/lib/modules/web3/contracts/abi/veDelegationProxyL2.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/abi/weightedPoolV3Abi.ts b/packages/lib/modules/web3/contracts/abi/weightedPoolV3Abi.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/abi/weightedPoolV3Abi.ts
rename to packages/lib/modules/web3/contracts/abi/weightedPoolV3Abi.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/contract.types.ts b/packages/lib/modules/web3/contracts/contract.types.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/web3/contracts/contract.types.ts
rename to packages/lib/modules/web3/contracts/contract.types.ts
index 14035509..a8d6dbaa 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/contract.types.ts
+++ b/packages/lib/modules/web3/contracts/contract.types.ts
@@ -6,7 +6,7 @@ import {
useWriteContract,
} from 'wagmi'
import { Abi, Address, erc20Abi } from 'viem'
-import { SupportedChainId } from '@/lib/config/config.types'
+import { SupportedChainId } from '@repo/lib/config/config.types'
export type TransactionSimulation = (
| ReturnType
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/transactionLabels.ts b/packages/lib/modules/web3/contracts/transactionLabels.ts
similarity index 65%
rename from apps/frontend-v3/lib/modules/web3/contracts/transactionLabels.ts
rename to packages/lib/modules/web3/contracts/transactionLabels.ts
index edac0797..df381f3c 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/transactionLabels.ts
+++ b/packages/lib/modules/web3/contracts/transactionLabels.ts
@@ -1,4 +1,4 @@
-import { TransactionLabels } from '@/lib/modules/transactions/transaction-steps/lib'
+import { TransactionLabels } from '@repo/lib/modules/transactions/transaction-steps/lib'
import { TransactionBundle } from './contract.types'
export type BuildTransactionLabels = (
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useContractAddress.ts b/packages/lib/modules/web3/contracts/useContractAddress.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/useContractAddress.ts
rename to packages/lib/modules/web3/contracts/useContractAddress.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useManagedErc20Transaction.integration.spec.ts b/packages/lib/modules/web3/contracts/useManagedErc20Transaction.integration.spec.ts
similarity index 83%
rename from apps/frontend-v3/lib/modules/web3/contracts/useManagedErc20Transaction.integration.spec.ts
rename to packages/lib/modules/web3/contracts/useManagedErc20Transaction.integration.spec.ts
index 2bc65fad..8a300e73 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useManagedErc20Transaction.integration.spec.ts
+++ b/packages/lib/modules/web3/contracts/useManagedErc20Transaction.integration.spec.ts
@@ -1,6 +1,6 @@
-import { TransactionLabels } from '@/lib/modules/transactions/transaction-steps/lib'
-import { testHook } from '@/test/utils/custom-renderers'
-import { connectWithDefaultUser } from '@/test/utils/wagmi/wagmi-connections'
+import { TransactionLabels } from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
import { waitFor } from '@testing-library/react'
import { act } from 'react-dom/test-utils'
import { Address, parseUnits } from 'viem'
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useManagedErc20Transaction.ts b/packages/lib/modules/web3/contracts/useManagedErc20Transaction.ts
similarity index 88%
rename from apps/frontend-v3/lib/modules/web3/contracts/useManagedErc20Transaction.ts
rename to packages/lib/modules/web3/contracts/useManagedErc20Transaction.ts
index 6151936b..fca05d7c 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useManagedErc20Transaction.ts
+++ b/packages/lib/modules/web3/contracts/useManagedErc20Transaction.ts
@@ -1,12 +1,15 @@
/* eslint-disable react-hooks/rules-of-hooks */
'use client'
-import { getGqlChain } from '@/lib/config/app.config'
-import { SupportedChainId } from '@/lib/config/config.types'
-import { useNetworkConfig } from '@/lib/config/useNetworkConfig'
-import { ManagedResult, TransactionLabels } from '@/lib/modules/transactions/transaction-steps/lib'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
-import { captureWagmiExecutionError } from '@/lib/shared/utils/query-errors'
+import { getGqlChain } from '@repo/lib/config/app.config'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { useNetworkConfig } from '@repo/lib/config/useNetworkConfig'
+import {
+ ManagedResult,
+ TransactionLabels,
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
+import { captureWagmiExecutionError } from '@repo/lib/shared/utils/query-errors'
import { useEffect, useState } from 'react'
import { Address, ContractFunctionArgs, ContractFunctionName, erc20Abi } from 'viem'
import { useSimulateContract, useWaitForTransactionReceipt, useWriteContract } from 'wagmi'
@@ -17,7 +20,7 @@ import { TransactionExecution, TransactionSimulation, WriteAbiMutability } from
import { useOnTransactionConfirmation } from './useOnTransactionConfirmation'
import { useOnTransactionSubmission } from './useOnTransactionSubmission'
import { getWaitForReceiptTimeout } from './wagmi-helpers'
-import { onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
type Erc20Abi = typeof erc20Abi
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useManagedSendTransaction.integration.spec.ts b/packages/lib/modules/web3/contracts/useManagedSendTransaction.integration.spec.ts
similarity index 83%
rename from apps/frontend-v3/lib/modules/web3/contracts/useManagedSendTransaction.integration.spec.ts
rename to packages/lib/modules/web3/contracts/useManagedSendTransaction.integration.spec.ts
index d152e666..1216a091 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useManagedSendTransaction.integration.spec.ts
+++ b/packages/lib/modules/web3/contracts/useManagedSendTransaction.integration.spec.ts
@@ -2,17 +2,17 @@
/* eslint-disable max-len */
import { describe, expect, test } from 'vitest'
-import { getSdkTestUtils } from '@/test/integration/sdk-utils'
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
-import { testHook } from '@/test/utils/custom-renderers'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import { getSdkTestUtils } from '@repo/lib/test/integration/sdk-utils'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { ChainId, HumanAmount } from '@balancer/sdk'
import { act, waitFor } from '@testing-library/react'
import { UnbalancedAddLiquidityV2Handler } from '../../pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler'
import { selectAddLiquidityHandler } from '../../pool/actions/add-liquidity/handlers/selectAddLiquidityHandler'
-import { connectWithDefaultUser } from '../../../../test/utils/wagmi/wagmi-connections'
+import { connectWithDefaultUser } from '@repo/lib/test/utils/wagmi/wagmi-connections'
import { Address } from 'viem'
-import { mainnetTestPublicClient } from '@/test/utils/wagmi/wagmi-test-clients'
+import { mainnetTestPublicClient } from '@repo/lib/test/utils/wagmi/wagmi-test-clients'
import { useManagedSendTransaction } from './useManagedSendTransaction'
import { HumanTokenAmountWithAddress } from '../../tokens/token.types'
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useManagedSendTransaction.ts b/packages/lib/modules/web3/contracts/useManagedSendTransaction.ts
similarity index 93%
rename from apps/frontend-v3/lib/modules/web3/contracts/useManagedSendTransaction.ts
rename to packages/lib/modules/web3/contracts/useManagedSendTransaction.ts
index ba9d3b22..990277a0 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useManagedSendTransaction.ts
+++ b/packages/lib/modules/web3/contracts/useManagedSendTransaction.ts
@@ -1,24 +1,27 @@
/* eslint-disable react-hooks/rules-of-hooks */
'use client'
-import { ManagedResult, TransactionLabels } from '@/lib/modules/transactions/transaction-steps/lib'
+import {
+ ManagedResult,
+ TransactionLabels,
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
import { useEffect } from 'react'
import { useEstimateGas, useSendTransaction, useWaitForTransactionReceipt } from 'wagmi'
import { TransactionConfig, TransactionExecution, TransactionSimulation } from './contract.types'
import { useOnTransactionConfirmation } from './useOnTransactionConfirmation'
import { useOnTransactionSubmission } from './useOnTransactionSubmission'
-import { getGqlChain } from '@/lib/config/app.config'
+import { getGqlChain } from '@repo/lib/config/app.config'
import { useChainSwitch } from '../useChainSwitch'
import {
captureWagmiExecutionError,
sentryMetaForWagmiExecution,
-} from '@/lib/shared/utils/query-errors'
-import { useNetworkConfig } from '@/lib/config/useNetworkConfig'
+} from '@repo/lib/shared/utils/query-errors'
+import { useNetworkConfig } from '@repo/lib/config/useNetworkConfig'
import { useRecentTransactions } from '../../transactions/RecentTransactionsProvider'
import { mainnet } from 'viem/chains'
import { useTxHash } from '../safe.hooks'
import { getWaitForReceiptTimeout } from './wagmi-helpers'
-import { onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
export type ManagedSendTransactionInput = {
labels: TransactionLabels
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useManagedTransaction.integration.spec.ts b/packages/lib/modules/web3/contracts/useManagedTransaction.integration.spec.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/useManagedTransaction.integration.spec.ts
rename to packages/lib/modules/web3/contracts/useManagedTransaction.integration.spec.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useManagedTransaction.ts b/packages/lib/modules/web3/contracts/useManagedTransaction.ts
similarity index 86%
rename from apps/frontend-v3/lib/modules/web3/contracts/useManagedTransaction.ts
rename to packages/lib/modules/web3/contracts/useManagedTransaction.ts
index 904c9464..14102f1b 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useManagedTransaction.ts
+++ b/packages/lib/modules/web3/contracts/useManagedTransaction.ts
@@ -1,10 +1,13 @@
/* eslint-disable react-hooks/rules-of-hooks */
'use client'
-import { getGqlChain, allowSkipTransaction } from '@/lib/config/app.config'
-import { SupportedChainId } from '@/lib/config/config.types'
-import { useNetworkConfig } from '@/lib/config/useNetworkConfig'
-import { ManagedResult, TransactionLabels } from '@/lib/modules/transactions/transaction-steps/lib'
+import { getGqlChain, allowSkipTransaction } from '@repo/lib/config/app.config'
+import { SupportedChainId } from '@repo/lib/config/config.types'
+import { useNetworkConfig } from '@repo/lib/config/useNetworkConfig'
+import {
+ ManagedResult,
+ TransactionLabels,
+} from '@repo/lib/modules/transactions/transaction-steps/lib'
import { Abi, Address, ContractFunctionArgs, ContractFunctionName } from 'viem'
import { useSimulateContract, useWaitForTransactionReceipt, useWriteContract } from 'wagmi'
import { useChainSwitch } from '../useChainSwitch'
@@ -12,11 +15,11 @@ import { AbiMap } from './AbiMap'
import { TransactionExecution, TransactionSimulation, WriteAbiMutability } from './contract.types'
import { useOnTransactionConfirmation } from './useOnTransactionConfirmation'
import { useOnTransactionSubmission } from './useOnTransactionSubmission'
-import { captureWagmiExecutionError } from '@/lib/shared/utils/query-errors'
+import { captureWagmiExecutionError } from '@repo/lib/shared/utils/query-errors'
import { useTxHash } from '../safe.hooks'
import { getWaitForReceiptTimeout } from './wagmi-helpers'
-import { onlyExplicitRefetch } from '@/lib/shared/utils/queries'
-import { useMockedTxHash } from '@/lib/modules/web3/contracts/useMockedTxHash'
+import { onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
+import { useMockedTxHash } from '@repo/lib/modules/web3/contracts/useMockedTxHash'
type IAbiMap = typeof AbiMap
type AbiMapKey = keyof typeof AbiMap
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useMockedTxHash.ts b/packages/lib/modules/web3/contracts/useMockedTxHash.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/useMockedTxHash.ts
rename to packages/lib/modules/web3/contracts/useMockedTxHash.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useMulticall.integration.spec.ts b/packages/lib/modules/web3/contracts/useMulticall.integration.spec.ts
similarity index 90%
rename from apps/frontend-v3/lib/modules/web3/contracts/useMulticall.integration.spec.ts
rename to packages/lib/modules/web3/contracts/useMulticall.integration.spec.ts
index 8125399c..a6b6e9ec 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useMulticall.integration.spec.ts
+++ b/packages/lib/modules/web3/contracts/useMulticall.integration.spec.ts
@@ -1,6 +1,6 @@
-import { daiAddress, polAddress } from '@/lib/debug-helpers'
-import { alternativeTestUserAccount, defaultTestUserAccount } from '@/test/anvil/anvil-setup'
-import { testHook } from '@/test/utils/custom-renderers'
+import { daiAddress, polAddress } from '@repo/lib/debug-helpers'
+import { alternativeTestUserAccount, defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { waitFor } from '@testing-library/react'
import { erc20Abi } from 'viem'
import { ChainContractConfig, useMulticall } from './useMulticall'
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useMulticall.ts b/packages/lib/modules/web3/contracts/useMulticall.ts
similarity index 96%
rename from apps/frontend-v3/lib/modules/web3/contracts/useMulticall.ts
rename to packages/lib/modules/web3/contracts/useMulticall.ts
index 71ff438d..adde6099 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useMulticall.ts
+++ b/packages/lib/modules/web3/contracts/useMulticall.ts
@@ -4,7 +4,7 @@ import { ContractFunctionParameters } from 'viem'
import { multicall } from 'wagmi/actions'
import { useCallback } from 'react'
import { useConfig } from 'wagmi'
-import { SupportedChainId } from '@/lib/config/config.types'
+import { SupportedChainId } from '@repo/lib/config/config.types'
export type ChainContractConfig = ContractFunctionParameters & {
chainId: SupportedChainId
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useOnTransactionConfirmation.ts b/packages/lib/modules/web3/contracts/useOnTransactionConfirmation.ts
similarity index 85%
rename from apps/frontend-v3/lib/modules/web3/contracts/useOnTransactionConfirmation.ts
rename to packages/lib/modules/web3/contracts/useOnTransactionConfirmation.ts
index cf71bf86..72270c78 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useOnTransactionConfirmation.ts
+++ b/packages/lib/modules/web3/contracts/useOnTransactionConfirmation.ts
@@ -1,8 +1,8 @@
import { useEffect } from 'react'
import { Address } from 'viem'
import { useRecentTransactions } from '../../transactions/RecentTransactionsProvider'
-import { TransactionLabels } from '@/lib/modules/transactions/transaction-steps/lib'
-import { AnalyticsEvent, trackEvent } from '@/lib/shared/services/fathom/Fathom'
+import { TransactionLabels } from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { AnalyticsEvent, trackEvent } from '@repo/lib/shared/services/fathom/Fathom'
type updateTrackedTransactionRequest = {
labels: TransactionLabels
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/useOnTransactionSubmission.ts b/packages/lib/modules/web3/contracts/useOnTransactionSubmission.ts
similarity index 78%
rename from apps/frontend-v3/lib/modules/web3/contracts/useOnTransactionSubmission.ts
rename to packages/lib/modules/web3/contracts/useOnTransactionSubmission.ts
index 4bf25f29..a492ac07 100644
--- a/apps/frontend-v3/lib/modules/web3/contracts/useOnTransactionSubmission.ts
+++ b/packages/lib/modules/web3/contracts/useOnTransactionSubmission.ts
@@ -1,9 +1,9 @@
import { useEffect } from 'react'
import { Address } from 'viem'
import { useRecentTransactions } from '../../transactions/RecentTransactionsProvider'
-import { TransactionLabels } from '@/lib/modules/transactions/transaction-steps/lib'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { AnalyticsEvent, trackEvent } from '@/lib/shared/services/fathom/Fathom'
+import { TransactionLabels } from '@repo/lib/modules/transactions/transaction-steps/lib'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { AnalyticsEvent, trackEvent } from '@repo/lib/shared/services/fathom/Fathom'
type NewTrackedTransactionRequest = {
labels: TransactionLabels
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/wagmi-helpers.spec.ts b/packages/lib/modules/web3/contracts/wagmi-helpers.spec.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/wagmi-helpers.spec.ts
rename to packages/lib/modules/web3/contracts/wagmi-helpers.spec.ts
diff --git a/apps/frontend-v3/lib/modules/web3/contracts/wagmi-helpers.ts b/packages/lib/modules/web3/contracts/wagmi-helpers.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/contracts/wagmi-helpers.ts
rename to packages/lib/modules/web3/contracts/wagmi-helpers.ts
diff --git a/apps/frontend-v3/lib/modules/web3/safe.hooks.tsx b/packages/lib/modules/web3/safe.hooks.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/safe.hooks.tsx
rename to packages/lib/modules/web3/safe.hooks.tsx
diff --git a/apps/frontend-v3/lib/modules/web3/signatures/signature.helpers.ts b/packages/lib/modules/web3/signatures/signature.helpers.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/signatures/signature.helpers.ts
rename to packages/lib/modules/web3/signatures/signature.helpers.ts
diff --git a/apps/frontend-v3/lib/modules/web3/transports.ts b/packages/lib/modules/web3/transports.ts
similarity index 87%
rename from apps/frontend-v3/lib/modules/web3/transports.ts
rename to packages/lib/modules/web3/transports.ts
index a99a310d..375d43ce 100644
--- a/apps/frontend-v3/lib/modules/web3/transports.ts
+++ b/packages/lib/modules/web3/transports.ts
@@ -2,8 +2,8 @@
import { Chain } from '@rainbow-me/rainbowkit'
import { fallback, http } from 'wagmi'
-import { getGqlChain } from '@/lib/config/app.config'
-import { SupportedChainId } from '@/lib/config/config.types'
+import { getGqlChain } from '@repo/lib/config/app.config'
+import { SupportedChainId } from '@repo/lib/config/config.types'
import { chains, getDefaultRpcUrl, rpcFallbacks, rpcOverrides } from './ChainConfig'
export function getTransports(chain: Chain) {
diff --git a/apps/frontend-v3/lib/modules/web3/useChainSwitch.tsx b/packages/lib/modules/web3/useChainSwitch.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/web3/useChainSwitch.tsx
rename to packages/lib/modules/web3/useChainSwitch.tsx
index 20087722..dfe2bf5f 100644
--- a/apps/frontend-v3/lib/modules/web3/useChainSwitch.tsx
+++ b/packages/lib/modules/web3/useChainSwitch.tsx
@@ -3,8 +3,8 @@
import { useSwitchChain } from 'wagmi'
import { Button } from '@chakra-ui/react'
-import { getChainShortName } from '@/lib/config/app.config'
-import { SupportedChainId } from '@/lib/config/config.types'
+import { getChainShortName } from '@repo/lib/config/app.config'
+import { SupportedChainId } from '@repo/lib/config/config.types'
import { useUserAccount } from './UserAccountProvider'
export function useChainSwitch(chainId: SupportedChainId) {
diff --git a/apps/frontend-v3/lib/modules/web3/useOnUserAccountChanged.tsx b/packages/lib/modules/web3/useOnUserAccountChanged.tsx
similarity index 90%
rename from apps/frontend-v3/lib/modules/web3/useOnUserAccountChanged.tsx
rename to packages/lib/modules/web3/useOnUserAccountChanged.tsx
index 65ee15e5..53c1fc40 100644
--- a/apps/frontend-v3/lib/modules/web3/useOnUserAccountChanged.tsx
+++ b/packages/lib/modules/web3/useOnUserAccountChanged.tsx
@@ -1,7 +1,7 @@
import { useEffect, useState } from 'react'
import { useUserAccount } from './UserAccountProvider'
import { Address } from 'viem'
-import { useIsMounted } from '@/lib/shared/hooks/useIsMounted'
+import { useIsMounted } from '@repo/lib/shared/hooks/useIsMounted'
import { emptyAddress } from './contracts/wagmi-helpers'
export function useOnUserAccountChanged(callback: () => void) {
diff --git a/apps/frontend-v3/lib/modules/web3/useSafeAppConnectionGuard.tsx b/packages/lib/modules/web3/useSafeAppConnectionGuard.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/useSafeAppConnectionGuard.tsx
rename to packages/lib/modules/web3/useSafeAppConnectionGuard.tsx
diff --git a/apps/frontend-v3/lib/modules/web3/useSdkViemClient.tsx b/packages/lib/modules/web3/useSdkViemClient.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/useSdkViemClient.tsx
rename to packages/lib/modules/web3/useSdkViemClient.tsx
diff --git a/apps/frontend-v3/lib/modules/web3/useTenderly.ts b/packages/lib/modules/web3/useTenderly.ts
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/useTenderly.ts
rename to packages/lib/modules/web3/useTenderly.ts
diff --git a/apps/frontend-v3/lib/modules/web3/useTokenAllowances.integration.spec.ts b/packages/lib/modules/web3/useTokenAllowances.integration.spec.ts
similarity index 84%
rename from apps/frontend-v3/lib/modules/web3/useTokenAllowances.integration.spec.ts
rename to packages/lib/modules/web3/useTokenAllowances.integration.spec.ts
index 2c1d1745..8d63aa89 100644
--- a/apps/frontend-v3/lib/modules/web3/useTokenAllowances.integration.spec.ts
+++ b/packages/lib/modules/web3/useTokenAllowances.integration.spec.ts
@@ -1,6 +1,6 @@
-import { vaultV2Address, wETHAddress, wjAuraAddress } from '@/lib/debug-helpers'
-import { testHook } from '@/test/utils/custom-renderers'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import { vaultV2Address, wETHAddress, wjAuraAddress } from '@repo/lib/debug-helpers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import { act, waitFor } from '@testing-library/react'
import { Address } from 'viem'
import { useTokenAllowances } from './useTokenAllowances'
diff --git a/apps/frontend-v3/lib/modules/web3/useTokenAllowances.tsx b/packages/lib/modules/web3/useTokenAllowances.tsx
similarity index 93%
rename from apps/frontend-v3/lib/modules/web3/useTokenAllowances.tsx
rename to packages/lib/modules/web3/useTokenAllowances.tsx
index d68ea117..f8b08162 100644
--- a/apps/frontend-v3/lib/modules/web3/useTokenAllowances.tsx
+++ b/packages/lib/modules/web3/useTokenAllowances.tsx
@@ -2,9 +2,9 @@ import { zipObject } from 'lodash'
import { Address, ReadContractParameters, erc20Abi } from 'viem'
import { useReadContracts } from 'wagmi'
import { Erc20Abi } from './contracts/contract.types'
-import { SupportedChainId } from '@/lib/config/config.types'
+import { SupportedChainId } from '@repo/lib/config/config.types'
import { useCallback, useMemo } from 'react'
-import { onlyExplicitRefetch } from '@/lib/shared/utils/queries'
+import { onlyExplicitRefetch } from '@repo/lib/shared/utils/queries'
export type TokenAllowances = Record
diff --git a/apps/frontend-v3/lib/modules/web3/useWalletConnectMetadata.tsx b/packages/lib/modules/web3/useWalletConnectMetadata.tsx
similarity index 100%
rename from apps/frontend-v3/lib/modules/web3/useWalletConnectMetadata.tsx
rename to packages/lib/modules/web3/useWalletConnectMetadata.tsx
diff --git a/packages/lib/package.json b/packages/lib/package.json
new file mode 100644
index 00000000..5591f75d
--- /dev/null
+++ b/packages/lib/package.json
@@ -0,0 +1,123 @@
+{
+ "name": "@repo/lib",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "gen:theme-typings": "chakra-cli tokens ./shared/services/chakra/themes/bal/bal.theme.ts",
+ "postinstall": "npm run gen:theme-typings",
+ "graphql:gen": "DOTENV_CONFIG_PATH=./.env.local graphql-codegen -r dotenv/config -c ./shared/services/api/codegen.ts",
+ "lint": "eslint .",
+ "lint:fix": "eslint . --fix",
+ "prepare": "cd ../.. && husky apps/frontend-v3/.husky",
+ "test": "pnpm test:unit & pnpm run test:integration",
+ "test:integration": "vitest -c ./vitest.config.integration.ts",
+ "test:unit": "vitest",
+ "test:unit:coverage": "vitest --coverage",
+ "test:unit:silent:coverage": "SILENT_TESTS=true vitest --coverage",
+ "typecheck": "tsc --project tsconfig.json --noEmit"
+ },
+ "dependencies": {
+ "@apollo/client": "^3.11.8",
+ "@balancer/sdk": "^0.27.0",
+ "@chakra-ui/anatomy": "^2.2.2",
+ "@chakra-ui/hooks": "^2.2.1",
+ "@chakra-ui/icons": "^2.1.1",
+ "@chakra-ui/next-js": "^2.2.0",
+ "@chakra-ui/react": "^2.8.2",
+ "@chakra-ui/theme-tools": "^2.1.2",
+ "@dicebear/collection": "^7.0.1",
+ "@dicebear/core": "^7.0.1",
+ "@emotion/react": "^11.11.1",
+ "@emotion/styled": "^11.11.0",
+ "@layerzerolabs/scan-client": "^0.0.8",
+ "@nikolovlazar/chakra-ui-prose": "^1.2.1",
+ "@rainbow-me/rainbowkit": "^2.1.6",
+ "@sentry/nextjs": "^8.13.0",
+ "@studio-freight/react-lenis": "^0.0.47",
+ "@tanstack/react-query": "^5.56.2",
+ "@tanstack/react-query-devtools": "^5.56.0",
+ "@tanstack/react-table": "^8.9.3",
+ "@vercel/speed-insights": "^1.0.1",
+ "bignumber.js": "^9.1.2",
+ "chakra-react-select": "^4.7.6",
+ "date-fns": "^2.30.0",
+ "deepmerge": "^4.3.1",
+ "echarts": "^5.4.3",
+ "echarts-for-react": "^3.0.2",
+ "fathom-client": "^3.7.0",
+ "framer-motion": "^10.13.0",
+ "graphql": "^16.7.1",
+ "graphql-request": "^6.1.0",
+ "graphql-tag": "^2.12.6",
+ "lodash": "^4.17.21",
+ "next": "14.2.0",
+ "next-themes": "^0.3.0",
+ "nextjs-toploader": "^1.6.4",
+ "numeral": "^2.0.6",
+ "nuqs": "^1.19.1",
+ "pluralize": "^8.0.0",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "react-error-boundary": "^4.0.13",
+ "react-feather": "^2.0.10",
+ "react-hook-form": "^7.47.0",
+ "react-hotkeys-hook": "^4.4.1",
+ "react-swipeable": "^7.0.1",
+ "react-syntax-highlighter": "^15.5.0",
+ "react-use-measure": "^2.1.1",
+ "react-virtuoso": "^4.7.1",
+ "tinycolor2": "^1.6.0",
+ "use-debounce": "^10.0.0",
+ "use-sound": "^4.0.1",
+ "usehooks-ts": "^3.1.0",
+ "viem": "^2.21.18",
+ "wagmi": "^2.12.16"
+ },
+ "devDependencies": {
+ "@apollo/experimental-nextjs-app-support": "^0.11.3",
+ "@chakra-ui/cli": "^2.4.1",
+ "@chakra-ui/styled-system": "^2.9.2",
+ "@graphql-codegen/cli": "^5.0.0",
+ "@graphql-codegen/client-preset": "^4.1.0",
+ "@graphql-codegen/schema-ast": "^4.0.0",
+ "@graphql-codegen/typescript-document-nodes": "^4.0.1",
+ "@graphql-codegen/typescript-msw": "^1.1.6",
+ "@graphql-typed-document-node/core": "^3.2.0",
+ "@repo/eslint-config": "workspace:*",
+ "@repo/typescript-config": "workspace:*",
+ "@sentry/types": "^7.89.0",
+ "@testing-library/jest-dom": "^6.1.5",
+ "@testing-library/react": "^15.0.5",
+ "@types/echarts": "^4.9.19",
+ "@types/js-cookie": "^3.0.6",
+ "@types/lodash": "^4.14.195",
+ "@types/node": "20.3.2",
+ "@types/numeral": "^2.0.2",
+ "@types/pluralize": "^0.0.33",
+ "@types/react": "18.2.34",
+ "@types/react-dom": "18.2.6",
+ "@types/react-syntax-highlighter": "^15.5.13",
+ "@types/tinycolor2": "^1.4.6",
+ "@typescript-eslint/eslint-plugin": "^5.60.1",
+ "@typescript-eslint/parser": "^5.60.1",
+ "@viem/anvil": "^0.0.10",
+ "@vitejs/plugin-react": "^4.2.1",
+ "@vitest/coverage-v8": "^1.3.0",
+ "@wagmi/cli": "^2.1.15",
+ "autoprefixer": "^10.4.14",
+ "concurrently": "^8.2.2",
+ "cross-fetch": "^4.0.0",
+ "eslint": "8.43.0",
+ "eslint-config-next": "14.0.1",
+ "eslint-config-prettier": "^8.8.0",
+ "eslint-plugin-prettier": "^4.2.1",
+ "happy-dom": "^12.10.3",
+ "lokijs": "^1.5.12",
+ "msw": "2.0.10",
+ "prettier": "^2.8.8",
+ "sentry-testkit": "^5.0.9",
+ "typescript": "5.4.5",
+ "vitest": "^2.1.1",
+ "vitest-mock-extended": "^2.0.2"
+ }
+}
diff --git a/apps/frontend-v3/app/react-query.provider.tsx b/packages/lib/shared/app/react-query.provider.tsx
similarity index 92%
rename from apps/frontend-v3/app/react-query.provider.tsx
rename to packages/lib/shared/app/react-query.provider.tsx
index b4b276fa..d9af80ee 100644
--- a/apps/frontend-v3/app/react-query.provider.tsx
+++ b/packages/lib/shared/app/react-query.provider.tsx
@@ -1,13 +1,13 @@
'use client'
-import { isDev } from '@/lib/config/app.config'
-import { captureError, getTenderlyUrlFromErrorMessage } from '@/lib/shared/utils/errors'
+import { isDev } from '../../config/app.config'
+import { captureError, getTenderlyUrlFromErrorMessage } from '../utils/errors'
import {
SentryMetadata,
captureSentryError,
getTenderlyUrl,
shouldIgnore,
-} from '@/lib/shared/utils/query-errors'
+} from '../utils/query-errors'
import { ScopeContext } from '@sentry/types'
import { MutationCache, QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
diff --git a/apps/frontend-v3/lib/shared/components/BlockExplorerLink.tsx b/packages/lib/shared/components/BlockExplorerLink.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/BlockExplorerLink.tsx
rename to packages/lib/shared/components/BlockExplorerLink.tsx
diff --git a/apps/frontend-v3/lib/shared/components/accordion/TransactionDetailsAccordion.tsx b/packages/lib/shared/components/accordion/TransactionDetailsAccordion.tsx
similarity index 88%
rename from apps/frontend-v3/lib/shared/components/accordion/TransactionDetailsAccordion.tsx
rename to packages/lib/shared/components/accordion/TransactionDetailsAccordion.tsx
index fa0746bc..f1513a21 100644
--- a/apps/frontend-v3/lib/shared/components/accordion/TransactionDetailsAccordion.tsx
+++ b/packages/lib/shared/components/accordion/TransactionDetailsAccordion.tsx
@@ -1,5 +1,5 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import { useAddLiquidity } from '@/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider'
+import { useAddLiquidity } from '@repo/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider'
import {
Accordion,
AccordionButton,
@@ -12,8 +12,8 @@ import {
} from '@chakra-ui/react'
import { useCurrency } from '../../hooks/useCurrency'
import { bn, fNum } from '../../utils/numbers'
-import { usePool } from '@/lib/modules/pool/PoolProvider'
-import { calcUserShareOfPool, isCowAmmPool } from '@/lib/modules/pool/pool.helpers'
+import { usePool } from '@repo/lib/modules/pool/PoolProvider'
+import { calcUserShareOfPool, isCowAmmPool } from '@repo/lib/modules/pool/pool.helpers'
export function TransactionDetailsAccordion() {
const { totalUSDValue, priceImpactQuery } = useAddLiquidity()
diff --git a/apps/frontend-v3/lib/shared/components/alerts/BalAlert.tsx b/packages/lib/shared/components/alerts/BalAlert.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/alerts/BalAlert.tsx
rename to packages/lib/shared/components/alerts/BalAlert.tsx
diff --git a/apps/frontend-v3/lib/shared/components/alerts/BalAlertButton.tsx b/packages/lib/shared/components/alerts/BalAlertButton.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/alerts/BalAlertButton.tsx
rename to packages/lib/shared/components/alerts/BalAlertButton.tsx
diff --git a/apps/frontend-v3/lib/shared/components/alerts/BalAlertButtonLink.tsx b/packages/lib/shared/components/alerts/BalAlertButtonLink.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/alerts/BalAlertButtonLink.tsx
rename to packages/lib/shared/components/alerts/BalAlertButtonLink.tsx
diff --git a/apps/frontend-v3/lib/shared/components/alerts/BalAlertContent.tsx b/packages/lib/shared/components/alerts/BalAlertContent.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/alerts/BalAlertContent.tsx
rename to packages/lib/shared/components/alerts/BalAlertContent.tsx
diff --git a/apps/frontend-v3/lib/shared/components/alerts/BalAlertLink.tsx b/packages/lib/shared/components/alerts/BalAlertLink.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/alerts/BalAlertLink.tsx
rename to packages/lib/shared/components/alerts/BalAlertLink.tsx
diff --git a/apps/frontend-v3/lib/shared/components/alerts/GlobalAlertsProvider.tsx b/packages/lib/shared/components/alerts/GlobalAlertsProvider.tsx
similarity index 93%
rename from apps/frontend-v3/lib/shared/components/alerts/GlobalAlertsProvider.tsx
rename to packages/lib/shared/components/alerts/GlobalAlertsProvider.tsx
index f63ca8dc..93282d80 100644
--- a/apps/frontend-v3/lib/shared/components/alerts/GlobalAlertsProvider.tsx
+++ b/packages/lib/shared/components/alerts/GlobalAlertsProvider.tsx
@@ -1,6 +1,6 @@
'use client'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { PropsWithChildren, createContext, useState } from 'react'
import { BalAlertProps } from './BalAlert'
diff --git a/apps/frontend-v3/lib/shared/components/alerts/SafeAppAlert.tsx b/packages/lib/shared/components/alerts/SafeAppAlert.tsx
similarity index 91%
rename from apps/frontend-v3/lib/shared/components/alerts/SafeAppAlert.tsx
rename to packages/lib/shared/components/alerts/SafeAppAlert.tsx
index fa29fa1a..f04da5a9 100644
--- a/apps/frontend-v3/lib/shared/components/alerts/SafeAppAlert.tsx
+++ b/packages/lib/shared/components/alerts/SafeAppAlert.tsx
@@ -2,7 +2,7 @@ import { HStack } from '@chakra-ui/react'
import { BalAlert } from './BalAlert'
import { BalAlertButtonLink } from './BalAlertButtonLink'
import { BalAlertContent } from './BalAlertContent'
-import { useWalletConnectMetadata } from '@/lib/modules/web3/useWalletConnectMetadata'
+import { useWalletConnectMetadata } from '@repo/lib/modules/web3/useWalletConnectMetadata'
import { useBreakpoints } from '../../hooks/useBreakpoints'
export function SafeAppAlert() {
diff --git a/apps/frontend-v3/lib/shared/components/animations/AnimateHeightChange.tsx b/packages/lib/shared/components/animations/AnimateHeightChange.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/animations/AnimateHeightChange.tsx
rename to packages/lib/shared/components/animations/AnimateHeightChange.tsx
diff --git a/apps/frontend-v3/lib/shared/components/animations/CardPopAnim.tsx b/packages/lib/shared/components/animations/CardPopAnim.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/animations/CardPopAnim.tsx
rename to packages/lib/shared/components/animations/CardPopAnim.tsx
diff --git a/apps/frontend-v3/lib/shared/components/badges/GradientBadge.tsx b/packages/lib/shared/components/badges/GradientBadge.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/badges/GradientBadge.tsx
rename to packages/lib/shared/components/badges/GradientBadge.tsx
diff --git a/apps/frontend-v3/lib/shared/components/btns/DarkModeToggle.tsx b/packages/lib/shared/components/btns/DarkModeToggle.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/btns/DarkModeToggle.tsx
rename to packages/lib/shared/components/btns/DarkModeToggle.tsx
diff --git a/apps/frontend-v3/lib/shared/components/btns/button-group/ButtonGroup.tsx b/packages/lib/shared/components/btns/button-group/ButtonGroup.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/btns/button-group/ButtonGroup.tsx
rename to packages/lib/shared/components/btns/button-group/ButtonGroup.tsx
diff --git a/apps/frontend-v3/lib/shared/components/containers/DefaultPageContainer.tsx b/packages/lib/shared/components/containers/DefaultPageContainer.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/containers/DefaultPageContainer.tsx
rename to packages/lib/shared/components/containers/DefaultPageContainer.tsx
diff --git a/apps/frontend-v3/lib/shared/components/containers/FadeInOnView.tsx b/packages/lib/shared/components/containers/FadeInOnView.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/containers/FadeInOnView.tsx
rename to packages/lib/shared/components/containers/FadeInOnView.tsx
diff --git a/apps/frontend-v3/lib/shared/components/containers/GradientCard.tsx b/packages/lib/shared/components/containers/GradientCard.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/containers/GradientCard.tsx
rename to packages/lib/shared/components/containers/GradientCard.tsx
diff --git a/apps/frontend-v3/lib/shared/components/containers/NoisyCard.tsx b/packages/lib/shared/components/containers/NoisyCard.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/containers/NoisyCard.tsx
rename to packages/lib/shared/components/containers/NoisyCard.tsx
diff --git a/apps/frontend-v3/lib/shared/components/errors/ErrorAlert.tsx b/packages/lib/shared/components/errors/ErrorAlert.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/errors/ErrorAlert.tsx
rename to packages/lib/shared/components/errors/ErrorAlert.tsx
diff --git a/apps/frontend-v3/lib/shared/components/errors/ErrorBoundary.tsx b/packages/lib/shared/components/errors/ErrorBoundary.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/errors/ErrorBoundary.tsx
rename to packages/lib/shared/components/errors/ErrorBoundary.tsx
diff --git a/apps/frontend-v3/lib/shared/components/errors/GenericError.tsx b/packages/lib/shared/components/errors/GenericError.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/errors/GenericError.tsx
rename to packages/lib/shared/components/errors/GenericError.tsx
diff --git a/apps/frontend-v3/lib/shared/components/errors/SimulationError.tsx b/packages/lib/shared/components/errors/SimulationError.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/errors/SimulationError.tsx
rename to packages/lib/shared/components/errors/SimulationError.tsx
diff --git a/apps/frontend-v3/lib/shared/components/errors/TransactionTimeoutError.tsx b/packages/lib/shared/components/errors/TransactionTimeoutError.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/errors/TransactionTimeoutError.tsx
rename to packages/lib/shared/components/errors/TransactionTimeoutError.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/ArrowDownIcon.tsx b/packages/lib/shared/components/icons/ArrowDownIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/ArrowDownIcon.tsx
rename to packages/lib/shared/components/icons/ArrowDownIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/ArrowIcon.tsx b/packages/lib/shared/components/icons/ArrowIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/ArrowIcon.tsx
rename to packages/lib/shared/components/icons/ArrowIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/ArrowUpIcon.tsx b/packages/lib/shared/components/icons/ArrowUpIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/ArrowUpIcon.tsx
rename to packages/lib/shared/components/icons/ArrowUpIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/BullseyeIcon.tsx b/packages/lib/shared/components/icons/BullseyeIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/BullseyeIcon.tsx
rename to packages/lib/shared/components/icons/BullseyeIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/ChartBubbleIcon.tsx b/packages/lib/shared/components/icons/ChartBubbleIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/ChartBubbleIcon.tsx
rename to packages/lib/shared/components/icons/ChartBubbleIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/CoingeckoIcon.tsx b/packages/lib/shared/components/icons/CoingeckoIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/CoingeckoIcon.tsx
rename to packages/lib/shared/components/icons/CoingeckoIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/CoinsIcon.tsx b/packages/lib/shared/components/icons/CoinsIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/CoinsIcon.tsx
rename to packages/lib/shared/components/icons/CoinsIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/ElevatedIcon.tsx b/packages/lib/shared/components/icons/ElevatedIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/ElevatedIcon.tsx
rename to packages/lib/shared/components/icons/ElevatedIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/ExpandIcon.tsx b/packages/lib/shared/components/icons/ExpandIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/ExpandIcon.tsx
rename to packages/lib/shared/components/icons/ExpandIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/GasIcon.tsx b/packages/lib/shared/components/icons/GasIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/GasIcon.tsx
rename to packages/lib/shared/components/icons/GasIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/InfoIcon.tsx b/packages/lib/shared/components/icons/InfoIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/InfoIcon.tsx
rename to packages/lib/shared/components/icons/InfoIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/NetworkIcon.tsx b/packages/lib/shared/components/icons/NetworkIcon.tsx
similarity index 94%
rename from apps/frontend-v3/lib/shared/components/icons/NetworkIcon.tsx
rename to packages/lib/shared/components/icons/NetworkIcon.tsx
index 92c9ed18..df179530 100644
--- a/apps/frontend-v3/lib/shared/components/icons/NetworkIcon.tsx
+++ b/packages/lib/shared/components/icons/NetworkIcon.tsx
@@ -1,6 +1,6 @@
import { Circle, SquareProps } from '@chakra-ui/react'
import { GqlChain } from '../../services/api/generated/graphql'
-import { getNetworkConfig } from '@/lib/config/app.config'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
import Image from 'next/image'
import { useEffect, useState } from 'react'
diff --git a/apps/frontend-v3/lib/shared/components/icons/ProtocolIcon.tsx b/packages/lib/shared/components/icons/ProtocolIcon.tsx
similarity index 80%
rename from apps/frontend-v3/lib/shared/components/icons/ProtocolIcon.tsx
rename to packages/lib/shared/components/icons/ProtocolIcon.tsx
index 4d2f8903..4ca4a6a4 100644
--- a/apps/frontend-v3/lib/shared/components/icons/ProtocolIcon.tsx
+++ b/packages/lib/shared/components/icons/ProtocolIcon.tsx
@@ -1,4 +1,4 @@
-import { Protocol, protocolIconPaths } from '@/lib/modules/protocols/useProtocols'
+import { Protocol, protocolIconPaths } from '@repo/lib/modules/protocols/useProtocols'
import Image, { ImageProps } from 'next/image'
type Props = Omit & {
diff --git a/apps/frontend-v3/lib/shared/components/icons/SignIcon.tsx b/packages/lib/shared/components/icons/SignIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/SignIcon.tsx
rename to packages/lib/shared/components/icons/SignIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/SortableIcon.tsx b/packages/lib/shared/components/icons/SortableIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/SortableIcon.tsx
rename to packages/lib/shared/components/icons/SortableIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/SortingIcon.tsx b/packages/lib/shared/components/icons/SortingIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/SortingIcon.tsx
rename to packages/lib/shared/components/icons/SortingIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/StarIcon.tsx b/packages/lib/shared/components/icons/StarIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/StarIcon.tsx
rename to packages/lib/shared/components/icons/StarIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/StarsIcon.tsx b/packages/lib/shared/components/icons/StarsIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/StarsIcon.tsx
rename to packages/lib/shared/components/icons/StarsIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/TableIcon.tsx b/packages/lib/shared/components/icons/TableIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/TableIcon.tsx
rename to packages/lib/shared/components/icons/TableIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/WalletIcon.tsx b/packages/lib/shared/components/icons/WalletIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/WalletIcon.tsx
rename to packages/lib/shared/components/icons/WalletIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/logos/AaveIcon.tsx b/packages/lib/shared/components/icons/logos/AaveIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/logos/AaveIcon.tsx
rename to packages/lib/shared/components/icons/logos/AaveIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/logos/AuraIcon.tsx b/packages/lib/shared/components/icons/logos/AuraIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/logos/AuraIcon.tsx
rename to packages/lib/shared/components/icons/logos/AuraIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/logos/BeetsIcon.tsx b/packages/lib/shared/components/icons/logos/BeetsIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/logos/BeetsIcon.tsx
rename to packages/lib/shared/components/icons/logos/BeetsIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/logos/CowIcon.tsx b/packages/lib/shared/components/icons/logos/CowIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/logos/CowIcon.tsx
rename to packages/lib/shared/components/icons/logos/CowIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/logos/CronIcon.tsx b/packages/lib/shared/components/icons/logos/CronIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/logos/CronIcon.tsx
rename to packages/lib/shared/components/icons/logos/CronIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/logos/FjordIcon.tsx b/packages/lib/shared/components/icons/logos/FjordIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/logos/FjordIcon.tsx
rename to packages/lib/shared/components/icons/logos/FjordIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/logos/GyroIcon.tsx b/packages/lib/shared/components/icons/logos/GyroIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/logos/GyroIcon.tsx
rename to packages/lib/shared/components/icons/logos/GyroIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/logos/XaveIcon.tsx b/packages/lib/shared/components/icons/logos/XaveIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/logos/XaveIcon.tsx
rename to packages/lib/shared/components/icons/logos/XaveIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/social/DiscordIcon.tsx b/packages/lib/shared/components/icons/social/DiscordIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/social/DiscordIcon.tsx
rename to packages/lib/shared/components/icons/social/DiscordIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/social/GithubIcon.tsx b/packages/lib/shared/components/icons/social/GithubIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/social/GithubIcon.tsx
rename to packages/lib/shared/components/icons/social/GithubIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/social/MediumIcon.tsx b/packages/lib/shared/components/icons/social/MediumIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/social/MediumIcon.tsx
rename to packages/lib/shared/components/icons/social/MediumIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/social/XIcon.tsx b/packages/lib/shared/components/icons/social/XIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/social/XIcon.tsx
rename to packages/lib/shared/components/icons/social/XIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/icons/social/YoutubeIcon.tsx b/packages/lib/shared/components/icons/social/YoutubeIcon.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/icons/social/YoutubeIcon.tsx
rename to packages/lib/shared/components/icons/social/YoutubeIcon.tsx
diff --git a/apps/frontend-v3/lib/shared/components/imgs/BalancerLogo.tsx b/packages/lib/shared/components/imgs/BalancerLogo.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/imgs/BalancerLogo.tsx
rename to packages/lib/shared/components/imgs/BalancerLogo.tsx
diff --git a/apps/frontend-v3/lib/shared/components/imgs/BalancerLogoType.tsx b/packages/lib/shared/components/imgs/BalancerLogoType.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/imgs/BalancerLogoType.tsx
rename to packages/lib/shared/components/imgs/BalancerLogoType.tsx
diff --git a/apps/frontend-v3/lib/shared/components/imgs/CowSandPattern.tsx b/packages/lib/shared/components/imgs/CowSandPattern.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/imgs/CowSandPattern.tsx
rename to packages/lib/shared/components/imgs/CowSandPattern.tsx
diff --git a/apps/frontend-v3/lib/shared/components/imgs/FeaturedPoolSvgs.tsx b/packages/lib/shared/components/imgs/FeaturedPoolSvgs.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/imgs/FeaturedPoolSvgs.tsx
rename to packages/lib/shared/components/imgs/FeaturedPoolSvgs.tsx
diff --git a/apps/frontend-v3/lib/shared/components/inputs/InputWithSlider/InputWithSlider.tsx b/packages/lib/shared/components/inputs/InputWithSlider/InputWithSlider.tsx
similarity index 96%
rename from apps/frontend-v3/lib/shared/components/inputs/InputWithSlider/InputWithSlider.tsx
rename to packages/lib/shared/components/inputs/InputWithSlider/InputWithSlider.tsx
index e6f81867..f672efbe 100644
--- a/apps/frontend-v3/lib/shared/components/inputs/InputWithSlider/InputWithSlider.tsx
+++ b/packages/lib/shared/components/inputs/InputWithSlider/InputWithSlider.tsx
@@ -1,7 +1,7 @@
'use client'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
-import { blockInvalidNumberInput } from '@/lib/shared/utils/numbers'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
+import { blockInvalidNumberInput } from '@repo/lib/shared/utils/numbers'
import {
Box,
BoxProps,
diff --git a/apps/frontend-v3/lib/shared/components/inputs/MultiSelect.tsx b/packages/lib/shared/components/inputs/MultiSelect.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/inputs/MultiSelect.tsx
rename to packages/lib/shared/components/inputs/MultiSelect.tsx
diff --git a/apps/frontend-v3/lib/shared/components/inputs/SearchInput.tsx b/packages/lib/shared/components/inputs/SearchInput.tsx
similarity index 94%
rename from apps/frontend-v3/lib/shared/components/inputs/SearchInput.tsx
rename to packages/lib/shared/components/inputs/SearchInput.tsx
index 197512be..223820f7 100644
--- a/apps/frontend-v3/lib/shared/components/inputs/SearchInput.tsx
+++ b/packages/lib/shared/components/inputs/SearchInput.tsx
@@ -1,7 +1,7 @@
import { InputGroup, Input, InputRightElement, IconButton, InputProps } from '@chakra-ui/react'
import { useForm } from 'react-hook-form'
-import { useDebounce } from '@/lib/shared/hooks/useDebounce'
-import { defaultDebounceMs } from '@/lib/shared/utils/queries'
+import { useDebounce } from '@repo/lib/shared/hooks/useDebounce'
+import { defaultDebounceMs } from '@repo/lib/shared/utils/queries'
import { Search, X } from 'react-feather'
interface SearchInputProps {
diff --git a/apps/frontend-v3/lib/shared/components/layout/Section.tsx b/packages/lib/shared/components/layout/Section.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/layout/Section.tsx
rename to packages/lib/shared/components/layout/Section.tsx
diff --git a/apps/frontend-v3/lib/shared/components/marketing/AnimatedNumber.tsx b/packages/lib/shared/components/marketing/AnimatedNumber.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/marketing/AnimatedNumber.tsx
rename to packages/lib/shared/components/marketing/AnimatedNumber.tsx
diff --git a/apps/frontend-v3/lib/shared/components/marketing/AnimatedSVG.tsx b/packages/lib/shared/components/marketing/AnimatedSVG.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/marketing/AnimatedSVG.tsx
rename to packages/lib/shared/components/marketing/AnimatedSVG.tsx
diff --git a/apps/frontend-v3/lib/shared/components/marketing/EcosystemActivityChart.tsx b/packages/lib/shared/components/marketing/EcosystemActivityChart.tsx
similarity index 92%
rename from apps/frontend-v3/lib/shared/components/marketing/EcosystemActivityChart.tsx
rename to packages/lib/shared/components/marketing/EcosystemActivityChart.tsx
index b1b986f1..b488e5d3 100644
--- a/apps/frontend-v3/lib/shared/components/marketing/EcosystemActivityChart.tsx
+++ b/packages/lib/shared/components/marketing/EcosystemActivityChart.tsx
@@ -13,18 +13,18 @@ import {
Text,
VStack,
} from '@chakra-ui/react'
-import ButtonGroup from '@/lib/shared/components/btns/button-group/ButtonGroup'
+import ButtonGroup from '@repo/lib/shared/components/btns/button-group/ButtonGroup'
import { FC, PropsWithChildren } from 'react'
import { motion } from 'framer-motion'
import { EcosystemChainSelect } from './EcosystemChainSelect'
-import { getChainShortName } from '@/lib/config/app.config'
-import { supportedNetworks } from '@/lib/modules/web3/ChainConfig'
+import { getChainShortName } from '@repo/lib/config/app.config'
+import { supportedNetworks } from '@repo/lib/modules/web3/ChainConfig'
import {
PoolActivityChartTypeTab,
gradientMap,
useEcosystemPoolActivityChart,
-} from '@/lib/modules/marketing/useEcosystemPoolActivity'
+} from '@repo/lib/modules/marketing/useEcosystemPoolActivity'
const AnimateOpacity: FC> = ({ children }) => (
diff --git a/apps/frontend-v3/lib/shared/components/marketing/EcosystemChainSelect.tsx b/packages/lib/shared/components/marketing/EcosystemChainSelect.tsx
similarity index 82%
rename from apps/frontend-v3/lib/shared/components/marketing/EcosystemChainSelect.tsx
rename to packages/lib/shared/components/marketing/EcosystemChainSelect.tsx
index 0afd9005..aeb609ec 100644
--- a/apps/frontend-v3/lib/shared/components/marketing/EcosystemChainSelect.tsx
+++ b/packages/lib/shared/components/marketing/EcosystemChainSelect.tsx
@@ -1,17 +1,17 @@
'use client'
-import { getChainShortName } from '@/lib/config/app.config'
-import { getSelectStyles } from '@/lib/shared/services/chakra/custom/chakra-react-select'
+import { getChainShortName } from '@repo/lib/config/app.config'
+import { getSelectStyles } from '@repo/lib/shared/services/chakra/custom/chakra-react-select'
import { Box, HStack, Text } from '@chakra-ui/react'
import { Select, OptionBase, GroupBase, SingleValue, chakraComponents } from 'chakra-react-select'
import { ReactNode, useEffect, useState } from 'react'
import { ChevronDown } from 'react-feather'
import { motion } from 'framer-motion'
-import { pulseOnceWithDelay } from '@/lib/shared/utils/animations'
+import { pulseOnceWithDelay } from '@repo/lib/shared/utils/animations'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
-import { supportedNetworks } from '@/lib/modules/web3/ChainConfig'
-import { gradientMap } from '@/lib/modules/marketing/useEcosystemPoolActivity'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
+import { supportedNetworks } from '@repo/lib/modules/web3/ChainConfig'
+import { gradientMap } from '@repo/lib/modules/marketing/useEcosystemPoolActivity'
interface ChainOption extends OptionBase {
label: ReactNode
diff --git a/apps/frontend-v3/lib/shared/components/marketing/HomeActivity.tsx b/packages/lib/shared/components/marketing/HomeActivity.tsx
similarity index 85%
rename from apps/frontend-v3/lib/shared/components/marketing/HomeActivity.tsx
rename to packages/lib/shared/components/marketing/HomeActivity.tsx
index 6813f31f..68a03a1f 100644
--- a/apps/frontend-v3/lib/shared/components/marketing/HomeActivity.tsx
+++ b/packages/lib/shared/components/marketing/HomeActivity.tsx
@@ -1,8 +1,8 @@
import { Button, Center, Heading, Text, Flex, Box } from '@chakra-ui/react'
-import Section from '@/lib/shared/components/layout/Section'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
-import { EcosystemActivityChart } from '@/lib/shared/components/marketing/EcosystemActivityChart'
-import { ProtocolStatsSection } from '@/lib/modules/marketing/ProtocolStatsSection'
+import Section from '@repo/lib/shared/components/layout/Section'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
+import { EcosystemActivityChart } from '@repo/lib/shared/components/marketing/EcosystemActivityChart'
+import { ProtocolStatsSection } from '@repo/lib/modules/marketing/ProtocolStatsSection'
import NextLink from 'next/link'
export function HomeActivity() {
diff --git a/apps/frontend-v3/lib/shared/components/marketing/HomeBuilders.tsx b/packages/lib/shared/components/marketing/HomeBuilders.tsx
similarity index 96%
rename from apps/frontend-v3/lib/shared/components/marketing/HomeBuilders.tsx
rename to packages/lib/shared/components/marketing/HomeBuilders.tsx
index a1dd377e..aa055c85 100644
--- a/apps/frontend-v3/lib/shared/components/marketing/HomeBuilders.tsx
+++ b/packages/lib/shared/components/marketing/HomeBuilders.tsx
@@ -1,10 +1,10 @@
import { Card, Grid, Heading, Text, Flex, Box } from '@chakra-ui/react'
-import Section from '@/lib/shared/components/layout/Section'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import Section from '@repo/lib/shared/components/layout/Section'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
-import { ParallaxImage } from '@/lib/shared/components/marketing/ParallaxImage'
+import { ParallaxImage } from '@repo/lib/shared/components/marketing/ParallaxImage'
-import { Picture } from '@/lib/shared/components/other/Picture'
+import { Picture } from '@repo/lib/shared/components/other/Picture'
export function HomeBuilders() {
return (
diff --git a/apps/frontend-v3/lib/shared/components/marketing/HomeCaseStudies.tsx b/packages/lib/shared/components/marketing/HomeCaseStudies.tsx
similarity index 90%
rename from apps/frontend-v3/lib/shared/components/marketing/HomeCaseStudies.tsx
rename to packages/lib/shared/components/marketing/HomeCaseStudies.tsx
index 88942d82..2d182c76 100644
--- a/apps/frontend-v3/lib/shared/components/marketing/HomeCaseStudies.tsx
+++ b/packages/lib/shared/components/marketing/HomeCaseStudies.tsx
@@ -3,14 +3,14 @@
import { MotionValue, motion, useMotionValue, useSpring, useTransform } from 'framer-motion'
import { useRef, useState } from 'react'
import { Box, BoxProps, Flex, Text, useDisclosure, VStack } from '@chakra-ui/react'
-import { BeetsIcon } from '@/lib/shared/components/icons/logos/BeetsIcon'
-import { AaveIcon } from '@/lib/shared/components/icons/logos/AaveIcon'
-import { AuraIcon } from '@/lib/shared/components/icons/logos/AuraIcon'
-import { CowIcon } from '@/lib/shared/components/icons/logos/CowIcon'
-import { GyroIcon } from '@/lib/shared/components/icons/logos/GyroIcon'
-import { CronIcon } from '@/lib/shared/components/icons/logos/CronIcon'
-import { XaveIcon } from '@/lib/shared/components/icons/logos/XaveIcon'
-import { FjordIcon } from '@/lib/shared/components/icons/logos/FjordIcon'
+import { BeetsIcon } from '@repo/lib/shared/components/icons/logos/BeetsIcon'
+import { AaveIcon } from '@repo/lib/shared/components/icons/logos/AaveIcon'
+import { AuraIcon } from '@repo/lib/shared/components/icons/logos/AuraIcon'
+import { CowIcon } from '@repo/lib/shared/components/icons/logos/CowIcon'
+import { GyroIcon } from '@repo/lib/shared/components/icons/logos/GyroIcon'
+import { CronIcon } from '@repo/lib/shared/components/icons/logos/CronIcon'
+import { XaveIcon } from '@repo/lib/shared/components/icons/logos/XaveIcon'
+import { FjordIcon } from '@repo/lib/shared/components/icons/logos/FjordIcon'
import { PartnerRedirectModal, RedirectPartner } from '../modals/PartnerRedirectModal'
export function HomeCaseStudies() {
diff --git a/apps/frontend-v3/lib/shared/components/marketing/HomeHero.tsx b/packages/lib/shared/components/marketing/HomeHero.tsx
similarity index 98%
rename from apps/frontend-v3/lib/shared/components/marketing/HomeHero.tsx
rename to packages/lib/shared/components/marketing/HomeHero.tsx
index 9b45f018..b3108ca4 100644
--- a/apps/frontend-v3/lib/shared/components/marketing/HomeHero.tsx
+++ b/packages/lib/shared/components/marketing/HomeHero.tsx
@@ -1,12 +1,12 @@
'use client'
import { Button, Heading, Text, VStack, Flex, Box, useToken } from '@chakra-ui/react'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
import NextLink from 'next/link'
import { Link } from '@chakra-ui/react'
import { ArrowUpRight } from 'react-feather'
-import { HomeCaseStudies } from '@/lib/shared/components/marketing/HomeCaseStudies'
+import { HomeCaseStudies } from '@repo/lib/shared/components/marketing/HomeCaseStudies'
export function HomeHero() {
const [bgColor] = useToken('colors', ['background.level1'])
diff --git a/apps/frontend-v3/lib/shared/components/marketing/HomeProtocols.tsx b/packages/lib/shared/components/marketing/HomeProtocols.tsx
similarity index 91%
rename from apps/frontend-v3/lib/shared/components/marketing/HomeProtocols.tsx
rename to packages/lib/shared/components/marketing/HomeProtocols.tsx
index 661bfded..df95533e 100644
--- a/apps/frontend-v3/lib/shared/components/marketing/HomeProtocols.tsx
+++ b/packages/lib/shared/components/marketing/HomeProtocols.tsx
@@ -1,11 +1,11 @@
'use client'
import { Heading, Text, Box, SimpleGrid } from '@chakra-ui/react'
-import Section from '@/lib/shared/components/layout/Section'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import Section from '@repo/lib/shared/components/layout/Section'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
-import { ParallaxImage } from '@/lib/shared/components/marketing/ParallaxImage'
+import { ParallaxImage } from '@repo/lib/shared/components/marketing/ParallaxImage'
-import { Picture } from '@/lib/shared/components/other/Picture'
+import { Picture } from '@repo/lib/shared/components/other/Picture'
export function HomeProtocols() {
return (
diff --git a/apps/frontend-v3/lib/shared/components/marketing/ParallaxImage.tsx b/packages/lib/shared/components/marketing/ParallaxImage.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/marketing/ParallaxImage.tsx
rename to packages/lib/shared/components/marketing/ParallaxImage.tsx
diff --git a/apps/frontend-v3/lib/shared/components/modals/ActionModalFooter.tsx b/packages/lib/shared/components/modals/ActionModalFooter.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/components/modals/ActionModalFooter.tsx
rename to packages/lib/shared/components/modals/ActionModalFooter.tsx
index 27a37b95..a648bfd2 100644
--- a/apps/frontend-v3/lib/shared/components/modals/ActionModalFooter.tsx
+++ b/packages/lib/shared/components/modals/ActionModalFooter.tsx
@@ -1,4 +1,4 @@
-import { useAppzi } from '@/lib/shared/hooks/useAppzi'
+import { useAppzi } from '@repo/lib/shared/hooks/useAppzi'
import { Button, Divider, HStack, ModalFooter, VStack } from '@chakra-ui/react'
import { AnimatePresence, motion } from 'framer-motion'
import Link from 'next/link'
diff --git a/apps/frontend-v3/lib/shared/components/modals/PartnerRedirectModal.tsx b/packages/lib/shared/components/modals/PartnerRedirectModal.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/modals/PartnerRedirectModal.tsx
rename to packages/lib/shared/components/modals/PartnerRedirectModal.tsx
diff --git a/apps/frontend-v3/lib/shared/components/modals/SuccessOverlay.tsx b/packages/lib/shared/components/modals/SuccessOverlay.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/modals/SuccessOverlay.tsx
rename to packages/lib/shared/components/modals/SuccessOverlay.tsx
diff --git a/apps/frontend-v3/lib/shared/components/modals/TransactionModalHeader.tsx b/packages/lib/shared/components/modals/TransactionModalHeader.tsx
similarity index 93%
rename from apps/frontend-v3/lib/shared/components/modals/TransactionModalHeader.tsx
rename to packages/lib/shared/components/modals/TransactionModalHeader.tsx
index 8bed5ee2..ef7a6199 100644
--- a/apps/frontend-v3/lib/shared/components/modals/TransactionModalHeader.tsx
+++ b/packages/lib/shared/components/modals/TransactionModalHeader.tsx
@@ -1,5 +1,5 @@
-import { useBlockExplorer } from '@/lib/shared/hooks/useBlockExplorer'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { useBlockExplorer } from '@repo/lib/shared/hooks/useBlockExplorer'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { Center, HStack, ModalHeader, VStack, Text, Link } from '@chakra-ui/react'
import { AnimatePresence, motion } from 'framer-motion'
import { ReactNode } from 'react'
diff --git a/apps/frontend-v3/app/(app)/pools/cow/CowFooter.tsx b/packages/lib/shared/components/navs/CowFooter.tsx
similarity index 80%
rename from apps/frontend-v3/app/(app)/pools/cow/CowFooter.tsx
rename to packages/lib/shared/components/navs/CowFooter.tsx
index a702469a..27678ecb 100644
--- a/apps/frontend-v3/app/(app)/pools/cow/CowFooter.tsx
+++ b/packages/lib/shared/components/navs/CowFooter.tsx
@@ -1,9 +1,9 @@
'use client'
-import { getVariantConfig } from '@/lib/modules/pool/pool.hooks'
-import { PartnerVariant } from '@/lib/modules/pool/pool.types'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
-import { Picture } from '@/lib/shared/components/other/Picture'
+import { getVariantConfig } from '@repo/lib/modules/pool/pool.hooks'
+import { PartnerVariant } from '@repo/lib/modules/pool/pool.types'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
+import { Picture } from '@repo/lib/shared/components/other/Picture'
import { Box, Button, Center, Text, VStack } from '@chakra-ui/react'
import Link from 'next/link'
diff --git a/apps/frontend-v3/app/(app)/pools/cow/CowHeader.tsx b/packages/lib/shared/components/navs/CowHeader.tsx
similarity index 96%
rename from apps/frontend-v3/app/(app)/pools/cow/CowHeader.tsx
rename to packages/lib/shared/components/navs/CowHeader.tsx
index 0cb922ba..323b8394 100644
--- a/apps/frontend-v3/app/(app)/pools/cow/CowHeader.tsx
+++ b/packages/lib/shared/components/navs/CowHeader.tsx
@@ -1,6 +1,6 @@
'use client'
-import FadeInOnView from '@/lib/shared/components/containers/FadeInOnView'
+import FadeInOnView from '@repo/lib/shared/components/containers/FadeInOnView'
import { Box, Text, Card, Center, Heading, Link, VStack, Image } from '@chakra-ui/react'
import { ArrowUpRight } from 'react-feather'
diff --git a/apps/frontend-v3/app/(app)/pools/cow/CowPoolBanner.tsx b/packages/lib/shared/components/navs/CowPoolBanner.tsx
similarity index 97%
rename from apps/frontend-v3/app/(app)/pools/cow/CowPoolBanner.tsx
rename to packages/lib/shared/components/navs/CowPoolBanner.tsx
index 91a00eac..2363bb0d 100644
--- a/apps/frontend-v3/app/(app)/pools/cow/CowPoolBanner.tsx
+++ b/packages/lib/shared/components/navs/CowPoolBanner.tsx
@@ -1,6 +1,6 @@
'use client'
-import { Picture } from '@/lib/shared/components/other/Picture'
+import { Picture } from '@repo/lib/shared/components/other/Picture'
import { Button, Flex, Box, Center, useColorModeValue } from '@chakra-ui/react'
import NextLink from 'next/link'
import { ArrowUpRight } from 'react-feather'
diff --git a/apps/frontend-v3/lib/shared/components/navs/Footer.tsx b/packages/lib/shared/components/navs/Footer.tsx
similarity index 99%
rename from apps/frontend-v3/lib/shared/components/navs/Footer.tsx
rename to packages/lib/shared/components/navs/Footer.tsx
index 94ff19b2..93fbed2a 100644
--- a/apps/frontend-v3/lib/shared/components/navs/Footer.tsx
+++ b/packages/lib/shared/components/navs/Footer.tsx
@@ -2,7 +2,7 @@
import NextLink from 'next/link'
import { Stack, Divider, Text, Box, VStack, HStack, Link, IconButton } from '@chakra-ui/react'
-import { staggeredFadeIn } from '@/lib/shared/utils/animations'
+import { staggeredFadeIn } from '@repo/lib/shared/utils/animations'
import { motion } from 'framer-motion'
import { DefaultPageContainer } from '../containers/DefaultPageContainer'
import { BalancerLogoType } from '../imgs/BalancerLogoType'
diff --git a/apps/frontend-v3/lib/shared/components/navs/GlobalAlerts.tsx b/packages/lib/shared/components/navs/GlobalAlerts.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/navs/GlobalAlerts.tsx
rename to packages/lib/shared/components/navs/GlobalAlerts.tsx
diff --git a/apps/frontend-v3/lib/shared/components/navs/MobileNav.tsx b/packages/lib/shared/components/navs/MobileNav.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/components/navs/MobileNav.tsx
rename to packages/lib/shared/components/navs/MobileNav.tsx
index 47019322..e2c40584 100644
--- a/apps/frontend-v3/lib/shared/components/navs/MobileNav.tsx
+++ b/packages/lib/shared/components/navs/MobileNav.tsx
@@ -21,7 +21,7 @@ import { BalancerLogoType } from '../imgs/BalancerLogoType'
import { useNav } from './useNav'
import NextLink from 'next/link'
import { useRouter } from 'next/navigation'
-import { VeBalLink } from '@/lib/modules/vebal/VebalRedirectModal'
+import { VeBalLink } from '@repo/lib/modules/vebal/VebalRedirectModal'
function NavLinks({ onClick }: { onClick?: () => void }) {
const { appLinks, linkColorFor } = useNav()
diff --git a/apps/frontend-v3/lib/shared/components/navs/Navbar.tsx b/packages/lib/shared/components/navs/Navbar.tsx
similarity index 93%
rename from apps/frontend-v3/lib/shared/components/navs/Navbar.tsx
rename to packages/lib/shared/components/navs/Navbar.tsx
index bc747223..1a698bb5 100644
--- a/apps/frontend-v3/lib/shared/components/navs/Navbar.tsx
+++ b/packages/lib/shared/components/navs/Navbar.tsx
@@ -3,20 +3,20 @@
import NextLink from 'next/link'
import DarkModeToggle from '../btns/DarkModeToggle'
import { Box, HStack, BoxProps, Link, Button } from '@chakra-ui/react'
-import { ConnectWallet } from '@/lib/modules/web3/ConnectWallet'
+import { ConnectWallet } from '@repo/lib/modules/web3/ConnectWallet'
import { BalancerLogo } from '../imgs/BalancerLogo'
import { BalancerLogoType } from '../imgs/BalancerLogoType'
-import { UserSettings } from '@/lib/modules/user/settings/UserSettings'
+import { UserSettings } from '@repo/lib/modules/user/settings/UserSettings'
import RecentTransactions from '../other/RecentTransactions'
-import { isDev, isStaging } from '@/lib/config/app.config'
-import { staggeredFadeIn, fadeIn } from '@/lib/shared/utils/animations'
+import { isDev, isStaging } from '@repo/lib/config/app.config'
+import { staggeredFadeIn, fadeIn } from '@repo/lib/shared/utils/animations'
import { motion, useMotionTemplate, useMotionValue, useScroll, useTransform } from 'framer-motion'
-import { VeBalLink } from '@/lib/modules/vebal/VebalRedirectModal'
+import { VeBalLink } from '@repo/lib/modules/vebal/VebalRedirectModal'
import { MobileNav } from './MobileNav'
import { useNav } from './useNav'
import { ReactNode, useEffect, useMemo, useState } from 'react'
import { usePathname } from 'next/navigation'
-import { useUserAccount } from '@/lib/modules/web3/UserAccountProvider'
+import { useUserAccount } from '@repo/lib/modules/web3/UserAccountProvider'
type Props = {
leftSlot?: ReactNode
diff --git a/apps/frontend-v3/lib/shared/components/navs/useNav.tsx b/packages/lib/shared/components/navs/useNav.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/components/navs/useNav.tsx
rename to packages/lib/shared/components/navs/useNav.tsx
index 8ede5679..f3bfc0a5 100644
--- a/apps/frontend-v3/lib/shared/components/navs/useNav.tsx
+++ b/packages/lib/shared/components/navs/useNav.tsx
@@ -5,7 +5,7 @@ import { MediumIcon } from '../icons/social/MediumIcon'
import { YoutubeIcon } from '../icons/social/YoutubeIcon'
import { GithubIcon } from '../icons/social/GithubIcon'
import { useParams } from 'next/navigation'
-import { isDev, isStaging } from '@/lib/config/app.config'
+import { isDev, isStaging } from '@repo/lib/config/app.config'
export function useNav() {
const pathname = usePathname()
diff --git a/apps/frontend-v3/lib/shared/components/other/IncentiveBadge.tsx b/packages/lib/shared/components/other/IncentiveBadge.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/other/IncentiveBadge.tsx
rename to packages/lib/shared/components/other/IncentiveBadge.tsx
diff --git a/apps/frontend-v3/lib/shared/components/other/Picture.tsx b/packages/lib/shared/components/other/Picture.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/other/Picture.tsx
rename to packages/lib/shared/components/other/Picture.tsx
diff --git a/apps/frontend-v3/lib/shared/components/other/RecentTransactions.tsx b/packages/lib/shared/components/other/RecentTransactions.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/components/other/RecentTransactions.tsx
rename to packages/lib/shared/components/other/RecentTransactions.tsx
index df90c5d5..97dc61fd 100644
--- a/apps/frontend-v3/lib/shared/components/other/RecentTransactions.tsx
+++ b/packages/lib/shared/components/other/RecentTransactions.tsx
@@ -22,11 +22,11 @@ import {
TrackedTransaction,
TransactionStatus,
useRecentTransactions,
-} from '@/lib/modules/transactions/RecentTransactionsProvider'
+} from '@repo/lib/modules/transactions/RecentTransactionsProvider'
import { isEmpty, orderBy } from 'lodash'
import { useBlockExplorer } from '../../hooks/useBlockExplorer'
import { Activity, ArrowUpRight, Check, Clock, X, XOctagon } from 'react-feather'
-import { getChainShortName } from '@/lib/config/app.config'
+import { getChainShortName } from '@repo/lib/config/app.config'
import { formatDistanceToNow } from 'date-fns'
function TransactionIcon({ status }: { status: TransactionStatus }) {
diff --git a/apps/frontend-v3/lib/shared/components/pagination/Pagination.tsx b/packages/lib/shared/components/pagination/Pagination.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/pagination/Pagination.tsx
rename to packages/lib/shared/components/pagination/Pagination.tsx
diff --git a/apps/frontend-v3/lib/shared/components/pagination/getPaginationProps.ts b/packages/lib/shared/components/pagination/getPaginationProps.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/pagination/getPaginationProps.ts
rename to packages/lib/shared/components/pagination/getPaginationProps.ts
diff --git a/apps/frontend-v3/lib/shared/components/pagination/pagination.types.ts b/packages/lib/shared/components/pagination/pagination.types.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/pagination/pagination.types.ts
rename to packages/lib/shared/components/pagination/pagination.types.ts
diff --git a/apps/frontend-v3/lib/shared/components/promos/CowGalxeQuestPromoBanner.tsx b/packages/lib/shared/components/promos/CowGalxeQuestPromoBanner.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/promos/CowGalxeQuestPromoBanner.tsx
rename to packages/lib/shared/components/promos/CowGalxeQuestPromoBanner.tsx
diff --git a/apps/frontend-v3/lib/shared/components/promos/CowPromoBanner.tsx b/packages/lib/shared/components/promos/CowPromoBanner.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/components/promos/CowPromoBanner.tsx
rename to packages/lib/shared/components/promos/CowPromoBanner.tsx
index e3dd5cab..803afd87 100644
--- a/apps/frontend-v3/lib/shared/components/promos/CowPromoBanner.tsx
+++ b/packages/lib/shared/components/promos/CowPromoBanner.tsx
@@ -1,6 +1,6 @@
'use client'
-import { Picture } from '@/lib/shared/components/other/Picture'
+import { Picture } from '@repo/lib/shared/components/other/Picture'
import { Button, Heading, Flex, Box, Center, useColorModeValue } from '@chakra-ui/react'
import NextLink from 'next/link'
diff --git a/apps/frontend-v3/lib/shared/components/promos/HookathonPromoBanner.tsx b/packages/lib/shared/components/promos/HookathonPromoBanner.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/components/promos/HookathonPromoBanner.tsx
rename to packages/lib/shared/components/promos/HookathonPromoBanner.tsx
index 97866a16..763f8987 100644
--- a/apps/frontend-v3/lib/shared/components/promos/HookathonPromoBanner.tsx
+++ b/packages/lib/shared/components/promos/HookathonPromoBanner.tsx
@@ -1,6 +1,6 @@
'use client'
-import { Picture } from '@/lib/shared/components/other/Picture'
+import { Picture } from '@repo/lib/shared/components/other/Picture'
import { Button, Heading, Flex, Box, Center } from '@chakra-ui/react'
import NextLink from 'next/link'
import { ArrowUpRight } from 'react-feather'
diff --git a/apps/frontend-v3/lib/shared/components/tables/DataTable.tsx b/packages/lib/shared/components/tables/DataTable.tsx
similarity index 96%
rename from apps/frontend-v3/lib/shared/components/tables/DataTable.tsx
rename to packages/lib/shared/components/tables/DataTable.tsx
index 92ff406e..da1c58b4 100644
--- a/apps/frontend-v3/lib/shared/components/tables/DataTable.tsx
+++ b/packages/lib/shared/components/tables/DataTable.tsx
@@ -20,9 +20,9 @@ import {
SortingState,
useReactTable,
} from '@tanstack/react-table'
-import { SortingIcon } from '@/lib/shared/components/icons/SortingIcon'
-import { Pagination } from '@/lib/shared/components/pagination/Pagination'
-import { getPoolPath } from '@/lib/modules/pool/pool.utils'
+import { SortingIcon } from '@repo/lib/shared/components/icons/SortingIcon'
+import { Pagination } from '@repo/lib/shared/components/pagination/Pagination'
+import { getPoolPath } from '@repo/lib/modules/pool/pool.utils'
import Link from 'next/link'
export type DataTableProps = {
diff --git a/apps/frontend-v3/lib/shared/components/tables/PaginatedTable.tsx b/packages/lib/shared/components/tables/PaginatedTable.tsx
similarity index 96%
rename from apps/frontend-v3/lib/shared/components/tables/PaginatedTable.tsx
rename to packages/lib/shared/components/tables/PaginatedTable.tsx
index 3bc67138..08f3460c 100644
--- a/apps/frontend-v3/lib/shared/components/tables/PaginatedTable.tsx
+++ b/packages/lib/shared/components/tables/PaginatedTable.tsx
@@ -1,6 +1,6 @@
import { ReactNode } from 'react'
import { Box, BoxProps, Center, Text, Spinner, VStack, Skeleton } from '@chakra-ui/react'
-import { Pagination } from '@/lib/shared/components/pagination/Pagination'
+import { Pagination } from '@repo/lib/shared/components/pagination/Pagination'
interface Props extends BoxProps {
items: T[]
diff --git a/apps/frontend-v3/lib/shared/components/tables/SortableHeader.tsx b/packages/lib/shared/components/tables/SortableHeader.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/tables/SortableHeader.tsx
rename to packages/lib/shared/components/tables/SortableHeader.tsx
diff --git a/apps/frontend-v3/lib/shared/components/toasts/Toast.tsx b/packages/lib/shared/components/toasts/Toast.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/toasts/Toast.tsx
rename to packages/lib/shared/components/toasts/Toast.tsx
diff --git a/apps/frontend-v3/lib/shared/components/tooltips/TooltipWithTouch.tsx b/packages/lib/shared/components/tooltips/TooltipWithTouch.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/tooltips/TooltipWithTouch.tsx
rename to packages/lib/shared/components/tooltips/TooltipWithTouch.tsx
diff --git a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/AddLiquidityAprTooltip.tsx b/packages/lib/shared/components/tooltips/apr-tooltip/AddLiquidityAprTooltip.tsx
similarity index 93%
rename from apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/AddLiquidityAprTooltip.tsx
rename to packages/lib/shared/components/tooltips/apr-tooltip/AddLiquidityAprTooltip.tsx
index bbafe22e..ba294990 100644
--- a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/AddLiquidityAprTooltip.tsx
+++ b/packages/lib/shared/components/tooltips/apr-tooltip/AddLiquidityAprTooltip.tsx
@@ -1,10 +1,10 @@
import { Card, HStack, PopoverArrow, PopoverContent, Text, VStack } from '@chakra-ui/react'
import BaseAprTooltip, { BaseAprTooltipProps } from './BaseAprTooltip'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { useCallback } from 'react'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import BigNumber from 'bignumber.js'
-import { Pool } from '@/lib/modules/pool/PoolProvider'
+import { Pool } from '@repo/lib/modules/pool/PoolProvider'
import { SparklesIcon } from './MainAprTooltip'
interface Props
diff --git a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/AuraAprTooltip.tsx b/packages/lib/shared/components/tooltips/apr-tooltip/AuraAprTooltip.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/AuraAprTooltip.tsx
rename to packages/lib/shared/components/tooltips/apr-tooltip/AuraAprTooltip.tsx
index e5224c58..7e46161b 100644
--- a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/AuraAprTooltip.tsx
+++ b/packages/lib/shared/components/tooltips/apr-tooltip/AuraAprTooltip.tsx
@@ -12,7 +12,7 @@ import {
} from '@chakra-ui/react'
import { TooltipAprItem } from './TooltipAprItem'
import BigNumber from 'bignumber.js'
-import { bn, fNum } from '@/lib/shared/utils/numbers'
+import { bn, fNum } from '@repo/lib/shared/utils/numbers'
import StarsIcon from '../../icons/StarsIcon'
interface Props {
diff --git a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/BaseAprTooltip.tsx b/packages/lib/shared/components/tooltips/apr-tooltip/BaseAprTooltip.tsx
similarity index 96%
rename from apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/BaseAprTooltip.tsx
rename to packages/lib/shared/components/tooltips/apr-tooltip/BaseAprTooltip.tsx
index 0ffe0a64..12f51547 100644
--- a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/BaseAprTooltip.tsx
+++ b/packages/lib/shared/components/tooltips/apr-tooltip/BaseAprTooltip.tsx
@@ -1,4 +1,4 @@
-import { GqlPoolAprItem } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolAprItem } from '@repo/lib/shared/services/api/generated/graphql'
import {
PlacementWithLogical,
Popover,
@@ -8,7 +8,7 @@ import {
Stack,
Portal,
} from '@chakra-ui/react'
-import { useThemeColorMode } from '@/lib/shared/services/chakra/useThemeColorMode'
+import { useThemeColorMode } from '@repo/lib/shared/services/chakra/useThemeColorMode'
import {
swapFeesTooltipText,
useAprTooltip,
@@ -18,11 +18,11 @@ import {
votingIncentivesTooltipText,
merklIncentivesTooltipText,
surplusIncentivesTooltipText,
-} from '@/lib/shared/hooks/useAprTooltip'
+} from '@repo/lib/shared/hooks/useAprTooltip'
import { TooltipAprItem } from './TooltipAprItem'
import BigNumber from 'bignumber.js'
-import { bn, fNum } from '@/lib/shared/utils/numbers'
-import { isVebalPool } from '@/lib/modules/pool/pool.helpers'
+import { bn, fNum } from '@repo/lib/shared/utils/numbers'
+import { isVebalPool } from '@repo/lib/modules/pool/pool.helpers'
import { ReactNode } from 'react'
interface Props {
diff --git a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip.tsx b/packages/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip.tsx
similarity index 91%
rename from apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip.tsx
rename to packages/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip.tsx
index 9e123a0f..f7cfa5bd 100644
--- a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip.tsx
+++ b/packages/lib/shared/components/tooltips/apr-tooltip/MainAprTooltip.tsx
@@ -11,13 +11,13 @@ import {
} from '@chakra-ui/react'
import BaseAprTooltip, { BaseAprTooltipProps } from './BaseAprTooltip'
import { Info } from 'react-feather'
-import { getTotalAprLabel } from '@/lib/modules/pool/pool.utils'
+import { getTotalAprLabel } from '@repo/lib/modules/pool/pool.utils'
import StarsIcon from '../../icons/StarsIcon'
-import { PoolListItem } from '@/lib/modules/pool/pool.types'
-import { FeaturedPool, Pool } from '@/lib/modules/pool/PoolProvider'
-import { isLBP } from '@/lib/modules/pool/pool.helpers'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
-import { GqlPoolAprItemType } from '@/lib/shared/services/api/generated/graphql'
+import { PoolListItem } from '@repo/lib/modules/pool/pool.types'
+import { FeaturedPool, Pool } from '@repo/lib/modules/pool/PoolProvider'
+import { isLBP } from '@repo/lib/modules/pool/pool.helpers'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
+import { GqlPoolAprItemType } from '@repo/lib/shared/services/api/generated/graphql'
import StarIcon from '../../icons/StarIcon'
interface Props
diff --git a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip.tsx b/packages/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip.tsx
similarity index 87%
rename from apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip.tsx
rename to packages/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip.tsx
index 4495e59b..f5e1cd64 100644
--- a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip.tsx
+++ b/packages/lib/shared/components/tooltips/apr-tooltip/StakeAprTooltip.tsx
@@ -1,11 +1,11 @@
import { Card, HStack, Text, VStack } from '@chakra-ui/react'
import BaseAprTooltip from './BaseAprTooltip'
-import { useCurrency } from '@/lib/shared/hooks/useCurrency'
+import { useCurrency } from '@repo/lib/shared/hooks/useCurrency'
import { useCallback } from 'react'
-import { bn } from '@/lib/shared/utils/numbers'
+import { bn } from '@repo/lib/shared/utils/numbers'
import BigNumber from 'bignumber.js'
-import { Pool } from '@/lib/modules/pool/PoolProvider'
-import { calcPotentialYieldFor } from '@/lib/modules/pool/pool.utils'
+import { Pool } from '@repo/lib/modules/pool/PoolProvider'
+import { calcPotentialYieldFor } from '@repo/lib/modules/pool/pool.utils'
import { SparklesIcon } from './MainAprTooltip'
interface Props {
diff --git a/apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/TooltipAprItem.tsx b/packages/lib/shared/components/tooltips/apr-tooltip/TooltipAprItem.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/tooltips/apr-tooltip/TooltipAprItem.tsx
rename to packages/lib/shared/components/tooltips/apr-tooltip/TooltipAprItem.tsx
diff --git a/apps/frontend-v3/lib/shared/components/typography/NumberText.tsx b/packages/lib/shared/components/typography/NumberText.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/components/typography/NumberText.tsx
rename to packages/lib/shared/components/typography/NumberText.tsx
diff --git a/apps/frontend-v3/lib/shared/components/zen/ZenGarden.tsx b/packages/lib/shared/components/zen/ZenGarden.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/components/zen/ZenGarden.tsx
rename to packages/lib/shared/components/zen/ZenGarden.tsx
index ec5b85a0..0ce946e1 100644
--- a/apps/frontend-v3/lib/shared/components/zen/ZenGarden.tsx
+++ b/packages/lib/shared/components/zen/ZenGarden.tsx
@@ -1,6 +1,6 @@
import { Box, BoxProps, useColorModeValue } from '@chakra-ui/react'
import { GqlPoolType } from '../../services/api/generated/graphql'
-import { isClp, isStable, isWeighted, isCowAmmPool } from '@/lib/modules/pool/pool.helpers'
+import { isClp, isStable, isWeighted, isCowAmmPool } from '@repo/lib/modules/pool/pool.helpers'
import { CowSandPattern } from '../imgs/CowSandPattern'
type ZenGardenVariant = 'diamond' | 'circle' | 'square' | 'pill'
diff --git a/apps/frontend-v3/lib/shared/data/csp-issue.ts b/packages/lib/shared/data/csp-issue.ts
similarity index 99%
rename from apps/frontend-v3/lib/shared/data/csp-issue.ts
rename to packages/lib/shared/data/csp-issue.ts
index 3769c701..1fbae5f0 100644
--- a/apps/frontend-v3/lib/shared/data/csp-issue.ts
+++ b/packages/lib/shared/data/csp-issue.ts
@@ -1,5 +1,5 @@
-import { PoolId } from '@/lib/modules/pool/pool.types'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { PoolId } from '@repo/lib/modules/pool/pool.types'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
export const NO_RECOVERY_EXIT_POOL_IDS: Record = {
[GqlChain.Mainnet]: [
diff --git a/apps/frontend-v3/lib/shared/hooks/FxRatesProvider.tsx b/packages/lib/shared/hooks/FxRatesProvider.tsx
similarity index 92%
rename from apps/frontend-v3/lib/shared/hooks/FxRatesProvider.tsx
rename to packages/lib/shared/hooks/FxRatesProvider.tsx
index 7441e1ab..846b5497 100644
--- a/apps/frontend-v3/lib/shared/hooks/FxRatesProvider.tsx
+++ b/packages/lib/shared/hooks/FxRatesProvider.tsx
@@ -1,6 +1,6 @@
'use client'
-import { useMandatoryContext } from '@/lib/shared/utils/contexts'
+import { useMandatoryContext } from '@repo/lib/shared/utils/contexts'
import { createContext, PropsWithChildren } from 'react'
import { FxRates, SupportedCurrency } from '../utils/currencies'
diff --git a/apps/frontend-v3/lib/shared/hooks/_mocks_/aprTooltipDataMock.ts b/packages/lib/shared/hooks/_mocks_/aprTooltipDataMock.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/_mocks_/aprTooltipDataMock.ts
rename to packages/lib/shared/hooks/_mocks_/aprTooltipDataMock.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/custom-effect-hooks.ts b/packages/lib/shared/hooks/custom-effect-hooks.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/custom-effect-hooks.ts
rename to packages/lib/shared/hooks/custom-effect-hooks.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useAppzi.ts b/packages/lib/shared/hooks/useAppzi.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useAppzi.ts
rename to packages/lib/shared/hooks/useAppzi.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useAprTooltip.spec.tsx b/packages/lib/shared/hooks/useAprTooltip.spec.tsx
similarity index 98%
rename from apps/frontend-v3/lib/shared/hooks/useAprTooltip.spec.tsx
rename to packages/lib/shared/hooks/useAprTooltip.spec.tsx
index 8accad63..f1d697ff 100644
--- a/apps/frontend-v3/lib/shared/hooks/useAprTooltip.spec.tsx
+++ b/packages/lib/shared/hooks/useAprTooltip.spec.tsx
@@ -1,4 +1,4 @@
-import { testHook } from '@/test/utils/custom-renderers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { bn, fNum } from '../utils/numbers'
import { useAprTooltip } from './useAprTooltip'
import { aprTooltipDataMock } from './_mocks_/aprTooltipDataMock'
diff --git a/apps/frontend-v3/lib/shared/hooks/useAprTooltip.ts b/packages/lib/shared/hooks/useAprTooltip.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useAprTooltip.ts
rename to packages/lib/shared/hooks/useAprTooltip.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useBlockExplorer.ts b/packages/lib/shared/hooks/useBlockExplorer.ts
similarity index 91%
rename from apps/frontend-v3/lib/shared/hooks/useBlockExplorer.ts
rename to packages/lib/shared/hooks/useBlockExplorer.ts
index b20180ff..ea1442b6 100644
--- a/apps/frontend-v3/lib/shared/hooks/useBlockExplorer.ts
+++ b/packages/lib/shared/hooks/useBlockExplorer.ts
@@ -1,5 +1,5 @@
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { useNetworkConfig } from '@/lib/config/useNetworkConfig'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { useNetworkConfig } from '@repo/lib/config/useNetworkConfig'
import { GqlChain } from '../services/api/generated/graphql'
export function getBlockExplorerName(chain?: GqlChain) {
diff --git a/apps/frontend-v3/lib/shared/hooks/useBreakpoints.tsx b/packages/lib/shared/hooks/useBreakpoints.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useBreakpoints.tsx
rename to packages/lib/shared/hooks/useBreakpoints.tsx
diff --git a/apps/frontend-v3/lib/shared/hooks/useCurrency.spec.tsx b/packages/lib/shared/hooks/useCurrency.spec.tsx
similarity index 96%
rename from apps/frontend-v3/lib/shared/hooks/useCurrency.spec.tsx
rename to packages/lib/shared/hooks/useCurrency.spec.tsx
index e8a60902..4324f3ac 100644
--- a/apps/frontend-v3/lib/shared/hooks/useCurrency.spec.tsx
+++ b/packages/lib/shared/hooks/useCurrency.spec.tsx
@@ -1,4 +1,4 @@
-import { testHook } from '@/test/utils/custom-renderers'
+import { testHook } from '@repo/lib/test/utils/custom-renderers'
import { useCurrency } from './useCurrency'
import { PropsWithChildren } from 'react'
diff --git a/apps/frontend-v3/lib/shared/hooks/useCurrency.ts b/packages/lib/shared/hooks/useCurrency.ts
similarity index 94%
rename from apps/frontend-v3/lib/shared/hooks/useCurrency.ts
rename to packages/lib/shared/hooks/useCurrency.ts
index fb247bd1..9239102d 100644
--- a/apps/frontend-v3/lib/shared/hooks/useCurrency.ts
+++ b/packages/lib/shared/hooks/useCurrency.ts
@@ -1,6 +1,6 @@
'use client'
-import { useUserSettings } from '@/lib/modules/user/settings/UserSettingsProvider'
+import { useUserSettings } from '@repo/lib/modules/user/settings/UserSettingsProvider'
import { useFxRates } from './FxRatesProvider'
import { symbolForCurrency } from '../utils/currencies'
import { Numberish, bn, fNum } from '../utils/numbers'
diff --git a/apps/frontend-v3/lib/shared/hooks/useDebounce.ts b/packages/lib/shared/hooks/useDebounce.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useDebounce.ts
rename to packages/lib/shared/hooks/useDebounce.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useDebug.ts b/packages/lib/shared/hooks/useDebug.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useDebug.ts
rename to packages/lib/shared/hooks/useDebug.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useGasPrice.tsx b/packages/lib/shared/hooks/useGasPrice.tsx
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useGasPrice.tsx
rename to packages/lib/shared/hooks/useGasPrice.tsx
diff --git a/apps/frontend-v3/lib/shared/hooks/useIsMounted.ts b/packages/lib/shared/hooks/useIsMounted.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useIsMounted.ts
rename to packages/lib/shared/hooks/useIsMounted.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useMakeVarPersisted.ts b/packages/lib/shared/hooks/useMakeVarPersisted.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useMakeVarPersisted.ts
rename to packages/lib/shared/hooks/useMakeVarPersisted.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useProtocolStats.ts b/packages/lib/shared/hooks/useProtocolStats.ts
similarity index 81%
rename from apps/frontend-v3/lib/shared/hooks/useProtocolStats.ts
rename to packages/lib/shared/hooks/useProtocolStats.ts
index 28cc9e16..4f8a9b09 100644
--- a/apps/frontend-v3/lib/shared/hooks/useProtocolStats.ts
+++ b/packages/lib/shared/hooks/useProtocolStats.ts
@@ -1,6 +1,6 @@
import { useQuery } from '@apollo/client'
import { GetProtocolStatsDocument } from '../services/api/generated/graphql'
-import { supportedNetworks } from '@/lib/modules/web3/ChainConfig'
+import { supportedNetworks } from '@repo/lib/modules/web3/ChainConfig'
export function useProtocolStats() {
const statQuery = useQuery(GetProtocolStatsDocument, {
diff --git a/apps/frontend-v3/lib/shared/hooks/useRefetchCountdown.ts b/packages/lib/shared/hooks/useRefetchCountdown.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useRefetchCountdown.ts
rename to packages/lib/shared/hooks/useRefetchCountdown.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useSkipInitialQuery.ts b/packages/lib/shared/hooks/useSkipInitialQuery.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/hooks/useSkipInitialQuery.ts
rename to packages/lib/shared/hooks/useSkipInitialQuery.ts
diff --git a/apps/frontend-v3/lib/shared/hooks/useVault.ts b/packages/lib/shared/hooks/useVault.ts
similarity index 85%
rename from apps/frontend-v3/lib/shared/hooks/useVault.ts
rename to packages/lib/shared/hooks/useVault.ts
index 9818a520..e6cfc6d8 100644
--- a/apps/frontend-v3/lib/shared/hooks/useVault.ts
+++ b/packages/lib/shared/hooks/useVault.ts
@@ -1,4 +1,4 @@
-import { useContractAddress } from '@/lib/modules/web3/contracts/useContractAddress'
+import { useContractAddress } from '@repo/lib/modules/web3/contracts/useContractAddress'
export type VaultVersion = 2 | 3
diff --git a/apps/frontend-v3/lib/shared/labels.ts b/packages/lib/shared/labels.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/labels.ts
rename to packages/lib/shared/labels.ts
diff --git a/apps/frontend-v3/lib/shared/services/api/apollo-client-provider.tsx b/packages/lib/shared/services/api/apollo-client-provider.tsx
similarity index 79%
rename from apps/frontend-v3/lib/shared/services/api/apollo-client-provider.tsx
rename to packages/lib/shared/services/api/apollo-client-provider.tsx
index 9a62c732..06017970 100644
--- a/apps/frontend-v3/lib/shared/services/api/apollo-client-provider.tsx
+++ b/packages/lib/shared/services/api/apollo-client-provider.tsx
@@ -2,7 +2,7 @@
// eslint-disable-next-line max-len
import { ApolloNextAppProvider } from '@apollo/experimental-nextjs-app-support'
-import { createApolloClient } from '@/lib/shared/services/api/apollo.client'
+import { createApolloClient } from '@repo/lib/shared/services/api/apollo.client'
export function ApolloClientProvider({ children }: React.PropsWithChildren) {
return {children}
diff --git a/apps/frontend-v3/lib/shared/services/api/apollo-global-data.provider.tsx b/packages/lib/shared/services/api/apollo-global-data.provider.tsx
similarity index 79%
rename from apps/frontend-v3/lib/shared/services/api/apollo-global-data.provider.tsx
rename to packages/lib/shared/services/api/apollo-global-data.provider.tsx
index 93fd8555..30e3f377 100644
--- a/apps/frontend-v3/lib/shared/services/api/apollo-global-data.provider.tsx
+++ b/packages/lib/shared/services/api/apollo-global-data.provider.tsx
@@ -7,17 +7,17 @@
* prior to the useQuery call, ensuring the data is already present on the first
* client render pass.
*/
-import { getApolloServerClient } from '@/lib/shared/services/api/apollo-server.client'
+import { getApolloServerClient } from '@repo/lib/shared/services/api/apollo-server.client'
import {
GetTokenPricesDocument,
GetTokensDocument,
-} from '@/lib/shared/services/api/generated/graphql'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
-import { TokensProvider } from '@/lib/modules/tokens/TokensProvider'
+} from '@repo/lib/shared/services/api/generated/graphql'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
+import { TokensProvider } from '@repo/lib/modules/tokens/TokensProvider'
import { FiatFxRatesProvider } from '../../hooks/FxRatesProvider'
import { getFxRates } from '../../utils/currencies'
-import { getPoolCategories } from '@/lib/modules/pool/categories/getPoolCategories'
-import { PoolCategoriesProvider } from '@/lib/modules/pool/categories/PoolCategoriesProvider'
+import { getPoolCategories } from '@repo/lib/modules/pool/categories/getPoolCategories'
+import { PoolCategoriesProvider } from '@repo/lib/modules/pool/categories/PoolCategoriesProvider'
import { mins } from '../../utils/time'
import { PropsWithChildren } from 'react'
diff --git a/apps/frontend-v3/lib/shared/services/api/apollo-server.client.ts b/packages/lib/shared/services/api/apollo-server.client.ts
similarity index 86%
rename from apps/frontend-v3/lib/shared/services/api/apollo-server.client.ts
rename to packages/lib/shared/services/api/apollo-server.client.ts
index 461a1e09..05753234 100644
--- a/apps/frontend-v3/lib/shared/services/api/apollo-server.client.ts
+++ b/packages/lib/shared/services/api/apollo-server.client.ts
@@ -1,4 +1,4 @@
-import { config } from '@/lib/config/app.config'
+import { config } from '@repo/lib/config/app.config'
import { ApolloClient, HttpLink, InMemoryCache } from '@apollo/client'
import { registerApolloClient } from '@apollo/experimental-nextjs-app-support'
diff --git a/apps/frontend-v3/lib/shared/services/api/apollo.client.ts b/packages/lib/shared/services/api/apollo.client.ts
similarity index 97%
rename from apps/frontend-v3/lib/shared/services/api/apollo.client.ts
rename to packages/lib/shared/services/api/apollo.client.ts
index 02aa5728..1b252a28 100644
--- a/apps/frontend-v3/lib/shared/services/api/apollo.client.ts
+++ b/packages/lib/shared/services/api/apollo.client.ts
@@ -1,4 +1,4 @@
-import { config } from '@/lib/config/app.config'
+import { config } from '@repo/lib/config/app.config'
import { ApolloLink, HttpLink } from '@apollo/client'
import {
ApolloClient,
diff --git a/apps/frontend-v3/codegen.ts b/packages/lib/shared/services/api/codegen.ts
similarity index 76%
rename from apps/frontend-v3/codegen.ts
rename to packages/lib/shared/services/api/codegen.ts
index 67cd667a..6123be4b 100644
--- a/apps/frontend-v3/codegen.ts
+++ b/packages/lib/shared/services/api/codegen.ts
@@ -2,13 +2,13 @@ import { CodegenConfig } from '@graphql-codegen/cli'
const config: CodegenConfig = {
generates: {
- ['./lib/shared/services/api/generated/schema.graphql']: {
+ ['./shared/services/api/generated/schema.graphql']: {
schema: process.env.NEXT_PUBLIC_BALANCER_API_URL,
plugins: ['schema-ast'],
},
- [`./lib/shared/services/api/generated/`]: {
+ [`./shared/services/api/generated/`]: {
schema: process.env.NEXT_PUBLIC_BALANCER_API_URL,
- documents: ['./lib/shared/services/api/**/*.graphql'],
+ documents: ['./shared/services/api/**/*.graphql'],
preset: 'client',
config: {
nonOptionalTypename: true,
diff --git a/apps/frontend-v3/lib/shared/services/api/global.graphql b/packages/lib/shared/services/api/global.graphql
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/api/global.graphql
rename to packages/lib/shared/services/api/global.graphql
diff --git a/apps/frontend-v3/lib/shared/services/api/pool.graphql b/packages/lib/shared/services/api/pool.graphql
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/api/pool.graphql
rename to packages/lib/shared/services/api/pool.graphql
diff --git a/apps/frontend-v3/lib/shared/services/api/pools.graphql b/packages/lib/shared/services/api/pools.graphql
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/api/pools.graphql
rename to packages/lib/shared/services/api/pools.graphql
diff --git a/apps/frontend-v3/lib/shared/services/api/protocol-stats.graphql b/packages/lib/shared/services/api/protocol-stats.graphql
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/api/protocol-stats.graphql
rename to packages/lib/shared/services/api/protocol-stats.graphql
diff --git a/apps/frontend-v3/lib/shared/services/api/swap.graphql b/packages/lib/shared/services/api/swap.graphql
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/api/swap.graphql
rename to packages/lib/shared/services/api/swap.graphql
diff --git a/apps/frontend-v3/lib/shared/services/api/trade.graphql b/packages/lib/shared/services/api/trade.graphql
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/api/trade.graphql
rename to packages/lib/shared/services/api/trade.graphql
diff --git a/apps/frontend-v3/lib/shared/services/api/vebal.graphql b/packages/lib/shared/services/api/vebal.graphql
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/api/vebal.graphql
rename to packages/lib/shared/services/api/vebal.graphql
diff --git a/apps/frontend-v3/lib/shared/services/batch-relayer/batch-relayer.service.ts b/packages/lib/shared/services/batch-relayer/batch-relayer.service.ts
similarity index 92%
rename from apps/frontend-v3/lib/shared/services/batch-relayer/batch-relayer.service.ts
rename to packages/lib/shared/services/batch-relayer/batch-relayer.service.ts
index 4fed11dd..fdb93546 100644
--- a/apps/frontend-v3/lib/shared/services/batch-relayer/batch-relayer.service.ts
+++ b/packages/lib/shared/services/batch-relayer/batch-relayer.service.ts
@@ -5,7 +5,7 @@ import {
EncodeGaugeWithdrawInput,
} from './relayer-types'
import { GaugeActionsService } from './extensions/gauge-actions.service'
-import { balancerV2BatchRelayerLibraryAbi } from '@/lib/modules/web3/contracts/abi/generated'
+import { balancerV2BatchRelayerLibraryAbi } from '@repo/lib/modules/web3/contracts/abi/generated'
import { encodeFunctionData, Hex } from 'viem'
export class BatchRelayerService {
diff --git a/apps/frontend-v3/lib/shared/services/batch-relayer/extensions/gauge-actions.service.ts b/packages/lib/shared/services/batch-relayer/extensions/gauge-actions.service.ts
similarity index 92%
rename from apps/frontend-v3/lib/shared/services/batch-relayer/extensions/gauge-actions.service.ts
rename to packages/lib/shared/services/batch-relayer/extensions/gauge-actions.service.ts
index 3ef850b8..32b9e512 100644
--- a/apps/frontend-v3/lib/shared/services/batch-relayer/extensions/gauge-actions.service.ts
+++ b/packages/lib/shared/services/batch-relayer/extensions/gauge-actions.service.ts
@@ -1,5 +1,5 @@
import { encodeFunctionData, Hex } from 'viem'
-import { balancerV2BatchRelayerLibraryAbi } from '@/lib/modules/web3/contracts/abi/generated'
+import { balancerV2BatchRelayerLibraryAbi } from '@repo/lib/modules/web3/contracts/abi/generated'
import {
EncodeGaugeClaimRewardsInput,
EncodeGaugeDepositInput,
diff --git a/apps/frontend-v3/lib/shared/services/batch-relayer/extensions/vault-actions.service.ts b/packages/lib/shared/services/batch-relayer/extensions/vault-actions.service.ts
similarity index 83%
rename from apps/frontend-v3/lib/shared/services/batch-relayer/extensions/vault-actions.service.ts
rename to packages/lib/shared/services/batch-relayer/extensions/vault-actions.service.ts
index ec8a06da..afcd7d5e 100644
--- a/apps/frontend-v3/lib/shared/services/batch-relayer/extensions/vault-actions.service.ts
+++ b/packages/lib/shared/services/batch-relayer/extensions/vault-actions.service.ts
@@ -1,6 +1,6 @@
import { encodeFunctionData } from 'viem'
import { EncodeExitPoolInput } from '../relayer-types'
-import { balancerV2BatchRelayerLibraryAbi } from '@/lib/modules/web3/contracts/abi/generated'
+import { balancerV2BatchRelayerLibraryAbi } from '@repo/lib/modules/web3/contracts/abi/generated'
export class VaultActionsService {
public encodeExitPool(params: EncodeExitPoolInput): string {
diff --git a/apps/frontend-v3/lib/shared/services/batch-relayer/relayer-types.ts b/packages/lib/shared/services/batch-relayer/relayer-types.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/batch-relayer/relayer-types.ts
rename to packages/lib/shared/services/batch-relayer/relayer-types.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/ThemeProvider.tsx b/packages/lib/shared/services/chakra/ThemeProvider.tsx
similarity index 88%
rename from apps/frontend-v3/lib/shared/services/chakra/ThemeProvider.tsx
rename to packages/lib/shared/services/chakra/ThemeProvider.tsx
index 18b64708..5629614c 100644
--- a/apps/frontend-v3/lib/shared/services/chakra/ThemeProvider.tsx
+++ b/packages/lib/shared/services/chakra/ThemeProvider.tsx
@@ -3,10 +3,10 @@
import { ChakraProvider, ThemeTypings } from '@chakra-ui/react'
import { ReactNode } from 'react'
import { useParams, usePathname } from 'next/navigation'
-import { PoolVariant, PartnerVariant } from '@/lib/modules/pool/pool.types'
+import { PoolVariant, PartnerVariant } from '@repo/lib/modules/pool/pool.types'
import { theme as balTheme } from './themes/bal/bal.theme'
import { theme as cowTheme } from './themes/cow/cow.theme'
-import { getProjectConfig } from '@/lib/config/getProjectConfig'
+import { getProjectConfig } from '@repo/lib/config/getProjectConfig'
export function ThemeProvider({ children }: { children: ReactNode }) {
const { variant } = useParams<{ variant?: PoolVariant }>()
diff --git a/apps/frontend-v3/lib/shared/services/chakra/custom/chakra-react-select.ts b/packages/lib/shared/services/chakra/custom/chakra-react-select.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/custom/chakra-react-select.ts
rename to packages/lib/shared/services/chakra/custom/chakra-react-select.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/theme-helpers.ts b/packages/lib/shared/services/chakra/theme-helpers.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/theme-helpers.ts
rename to packages/lib/shared/services/chakra/theme-helpers.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/bal/bal.theme.ts b/packages/lib/shared/services/chakra/themes/bal/bal.theme.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/bal/bal.theme.ts
rename to packages/lib/shared/services/chakra/themes/bal/bal.theme.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/bal/colors.ts b/packages/lib/shared/services/chakra/themes/bal/colors.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/bal/colors.ts
rename to packages/lib/shared/services/chakra/themes/bal/colors.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/base/colors.ts b/packages/lib/shared/services/chakra/themes/base/colors.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/base/colors.ts
rename to packages/lib/shared/services/chakra/themes/base/colors.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/base/components.ts b/packages/lib/shared/services/chakra/themes/base/components.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/base/components.ts
rename to packages/lib/shared/services/chakra/themes/base/components.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/base/foundations.ts b/packages/lib/shared/services/chakra/themes/base/foundations.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/base/foundations.ts
rename to packages/lib/shared/services/chakra/themes/base/foundations.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/base/prose.ts b/packages/lib/shared/services/chakra/themes/base/prose.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/base/prose.ts
rename to packages/lib/shared/services/chakra/themes/base/prose.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/base/semantic-tokens.ts b/packages/lib/shared/services/chakra/themes/base/semantic-tokens.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/base/semantic-tokens.ts
rename to packages/lib/shared/services/chakra/themes/base/semantic-tokens.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/base/tokens.ts b/packages/lib/shared/services/chakra/themes/base/tokens.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/base/tokens.ts
rename to packages/lib/shared/services/chakra/themes/base/tokens.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/cow/colors.ts b/packages/lib/shared/services/chakra/themes/cow/colors.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/cow/colors.ts
rename to packages/lib/shared/services/chakra/themes/cow/colors.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/cow/cow.theme.ts b/packages/lib/shared/services/chakra/themes/cow/cow.theme.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/cow/cow.theme.ts
rename to packages/lib/shared/services/chakra/themes/cow/cow.theme.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/themes/cow/tokens.ts b/packages/lib/shared/services/chakra/themes/cow/tokens.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/themes/cow/tokens.ts
rename to packages/lib/shared/services/chakra/themes/cow/tokens.ts
diff --git a/apps/frontend-v3/lib/shared/services/chakra/useThemeColorMode.ts b/packages/lib/shared/services/chakra/useThemeColorMode.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/chakra/useThemeColorMode.ts
rename to packages/lib/shared/services/chakra/useThemeColorMode.ts
diff --git a/apps/frontend-v3/lib/shared/services/fathom/Fathom.tsx b/packages/lib/shared/services/fathom/Fathom.tsx
similarity index 97%
rename from apps/frontend-v3/lib/shared/services/fathom/Fathom.tsx
rename to packages/lib/shared/services/fathom/Fathom.tsx
index b92e6a4d..244240d3 100644
--- a/apps/frontend-v3/lib/shared/services/fathom/Fathom.tsx
+++ b/packages/lib/shared/services/fathom/Fathom.tsx
@@ -3,7 +3,7 @@
import { load, trackPageview } from 'fathom-client'
import { useEffect, Suspense } from 'react'
import { usePathname, useSearchParams } from 'next/navigation'
-import { isProd } from '@/lib/config/app.config'
+import { isProd } from '@repo/lib/config/app.config'
export enum AnalyticsEvent {
ClickAddLiquidity = 'click: Add liquidity',
diff --git a/apps/frontend-v3/lib/shared/services/staking/gauge.service.ts b/packages/lib/shared/services/staking/gauge.service.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/services/staking/gauge.service.ts
rename to packages/lib/shared/services/staking/gauge.service.ts
diff --git a/apps/frontend-v3/lib/shared/services/viem/viem.client.ts b/packages/lib/shared/services/viem/viem.client.ts
similarity index 72%
rename from apps/frontend-v3/lib/shared/services/viem/viem.client.ts
rename to packages/lib/shared/services/viem/viem.client.ts
index f4388702..2a646e73 100644
--- a/apps/frontend-v3/lib/shared/services/viem/viem.client.ts
+++ b/packages/lib/shared/services/viem/viem.client.ts
@@ -1,9 +1,9 @@
import { createPublicClient } from 'viem'
import { GqlChain } from '../api/generated/graphql'
-import { getNetworkConfig } from '@/lib/config/app.config'
-import { chains, chainsByKey } from '@/lib/modules/web3/ChainConfig'
+import { getNetworkConfig } from '@repo/lib/config/app.config'
+import { chains, chainsByKey } from '@repo/lib/modules/web3/ChainConfig'
import { Chain } from 'viem'
-import { getTransports } from '@/lib/modules/web3/transports'
+import { getTransports } from '@repo/lib/modules/web3/transports'
function getViemChain(chainId: number): Chain {
const chain = chains.find(chain => chain.id === chainId)
diff --git a/apps/frontend-v3/lib/shared/utils/addresses.spec.ts b/packages/lib/shared/utils/addresses.spec.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/addresses.spec.ts
rename to packages/lib/shared/utils/addresses.spec.ts
diff --git a/apps/frontend-v3/lib/shared/utils/addresses.ts b/packages/lib/shared/utils/addresses.ts
similarity index 96%
rename from apps/frontend-v3/lib/shared/utils/addresses.ts
rename to packages/lib/shared/utils/addresses.ts
index 29b7ea85..b5e329e1 100644
--- a/apps/frontend-v3/lib/shared/utils/addresses.ts
+++ b/packages/lib/shared/utils/addresses.ts
@@ -1,5 +1,5 @@
-import { getNativeAssetAddress, getWrappedNativeAssetAddress } from '@/lib/config/app.config'
-import { SupportedChainId } from '@/lib/config/config.types'
+import { getNativeAssetAddress, getWrappedNativeAssetAddress } from '@repo/lib/config/app.config'
+import { SupportedChainId } from '@repo/lib/config/config.types'
import { Address, checksumAddress, isAddress } from 'viem'
import { GqlChain } from '../services/api/generated/graphql'
diff --git a/apps/frontend-v3/lib/shared/utils/animations.ts b/packages/lib/shared/utils/animations.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/animations.ts
rename to packages/lib/shared/utils/animations.ts
diff --git a/apps/frontend-v3/lib/shared/utils/array.ts b/packages/lib/shared/utils/array.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/array.ts
rename to packages/lib/shared/utils/array.ts
diff --git a/apps/frontend-v3/lib/shared/utils/contexts.ts b/packages/lib/shared/utils/contexts.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/contexts.ts
rename to packages/lib/shared/utils/contexts.ts
diff --git a/apps/frontend-v3/lib/shared/utils/currencies.ts b/packages/lib/shared/utils/currencies.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/currencies.ts
rename to packages/lib/shared/utils/currencies.ts
diff --git a/apps/frontend-v3/lib/shared/utils/error-filters.ts b/packages/lib/shared/utils/error-filters.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/error-filters.ts
rename to packages/lib/shared/utils/error-filters.ts
diff --git a/apps/frontend-v3/lib/shared/utils/errors.spec.ts b/packages/lib/shared/utils/errors.spec.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/errors.spec.ts
rename to packages/lib/shared/utils/errors.spec.ts
diff --git a/apps/frontend-v3/lib/shared/utils/errors.ts b/packages/lib/shared/utils/errors.ts
similarity index 96%
rename from apps/frontend-v3/lib/shared/utils/errors.ts
rename to packages/lib/shared/utils/errors.ts
index 27a17dd7..f4491d75 100644
--- a/apps/frontend-v3/lib/shared/utils/errors.ts
+++ b/packages/lib/shared/utils/errors.ts
@@ -14,8 +14,8 @@
* })
* }
*/
-import { TransactionConfig } from '@/lib/modules/web3/contracts/contract.types'
-import { buildTenderlyUrl } from '@/lib/modules/web3/useTenderly'
+import { TransactionConfig } from '@repo/lib/modules/web3/contracts/contract.types'
+import { buildTenderlyUrl } from '@repo/lib/modules/web3/useTenderly'
import { captureException } from '@sentry/nextjs'
import { ScopeContext } from '@sentry/types/types/scope'
diff --git a/apps/frontend-v3/lib/shared/utils/functions/isDisabledWithReason.ts b/packages/lib/shared/utils/functions/isDisabledWithReason.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/functions/isDisabledWithReason.ts
rename to packages/lib/shared/utils/functions/isDisabledWithReason.ts
diff --git a/apps/frontend-v3/lib/shared/utils/numbers.spec.ts b/packages/lib/shared/utils/numbers.spec.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/numbers.spec.ts
rename to packages/lib/shared/utils/numbers.spec.ts
diff --git a/apps/frontend-v3/lib/shared/utils/numbers.ts b/packages/lib/shared/utils/numbers.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/numbers.ts
rename to packages/lib/shared/utils/numbers.ts
diff --git a/apps/frontend-v3/lib/shared/utils/objects.spec.ts b/packages/lib/shared/utils/objects.spec.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/objects.spec.ts
rename to packages/lib/shared/utils/objects.spec.ts
diff --git a/apps/frontend-v3/lib/shared/utils/objects.ts b/packages/lib/shared/utils/objects.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/objects.ts
rename to packages/lib/shared/utils/objects.ts
diff --git a/apps/frontend-v3/lib/shared/utils/paths.ts b/packages/lib/shared/utils/paths.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/paths.ts
rename to packages/lib/shared/utils/paths.ts
diff --git a/apps/frontend-v3/lib/shared/utils/queries.ts b/packages/lib/shared/utils/queries.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/queries.ts
rename to packages/lib/shared/utils/queries.ts
diff --git a/apps/frontend-v3/lib/shared/utils/query-errors.spec.ts b/packages/lib/shared/utils/query-errors.spec.ts
similarity index 89%
rename from apps/frontend-v3/lib/shared/utils/query-errors.spec.ts
rename to packages/lib/shared/utils/query-errors.spec.ts
index f7213013..ac7b2c41 100644
--- a/apps/frontend-v3/lib/shared/utils/query-errors.spec.ts
+++ b/packages/lib/shared/utils/query-errors.spec.ts
@@ -5,9 +5,9 @@ import {
captureSentryError,
sentryMetaForWagmiSimulation,
shouldIgnoreException,
-} from '@/lib/shared/utils/query-errors'
+} from '@repo/lib/shared/utils/query-errors'
import { Exception as SentryException } from '@sentry/nextjs'
-import { defaultTestUserAccount } from '@/test/anvil/anvil-setup'
+import { defaultTestUserAccount } from '@repo/lib/test/anvil/anvil-setup'
import * as Sentry from '@sentry/nextjs'
import { waitFor } from '@testing-library/react'
import sentryTestkit from 'sentry-testkit'
@@ -16,11 +16,11 @@ import { recoveryPoolMock } from '../../modules/pool/__mocks__/recoveryPoolMock'
import { Extras } from '@sentry/types'
// eslint-disable-next-line max-len
import { RecoveryRemoveLiquidityHandler } from '../../modules/pool/actions/remove-liquidity/handlers/RecoveryRemoveLiquidity.handler'
-import { UnbalancedAddLiquidityV2Handler } from '@/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler'
-import { aWjAuraWethPoolElementMock } from '@/test/msw/builders/gqlPoolElement.builders'
-import { AddLiquidityParams } from '@/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys'
-import { wETHAddress, wjAuraAddress } from '@/lib/debug-helpers'
-import { RemoveLiquidityParams } from '@/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys'
+import { UnbalancedAddLiquidityV2Handler } from '@repo/lib/modules/pool/actions/add-liquidity/handlers/UnbalancedAddLiquidityV2.handler'
+import { aWjAuraWethPoolElementMock } from '@repo/lib/test/msw/builders/gqlPoolElement.builders'
+import { AddLiquidityParams } from '@repo/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys'
+import { wETHAddress, wjAuraAddress } from '@repo/lib/debug-helpers'
+import { RemoveLiquidityParams } from '@repo/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys'
const { testkit, sentryTransport } = sentryTestkit()
const test_DSN = 'https://testDns@sentry.io/000001'
diff --git a/apps/frontend-v3/lib/shared/utils/query-errors.ts b/packages/lib/shared/utils/query-errors.ts
similarity index 95%
rename from apps/frontend-v3/lib/shared/utils/query-errors.ts
rename to packages/lib/shared/utils/query-errors.ts
index f2d8fd9e..3bca6435 100644
--- a/apps/frontend-v3/lib/shared/utils/query-errors.ts
+++ b/packages/lib/shared/utils/query-errors.ts
@@ -14,12 +14,12 @@ import {
import {
AddLiquidityParams,
stringifyHumanAmountsIn,
-} from '@/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys'
-import { RemoveLiquidityParams } from '@/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys'
-import { SimulateSwapParams } from '@/lib/modules/swap/queries/useSimulateSwapQuery'
-import { isProd } from '@/lib/config/app.config'
-import { SwapState } from '@/lib/modules/swap/swap.types'
-import { SwapHandler } from '@/lib/modules/swap/handlers/Swap.handler'
+} from '@repo/lib/modules/pool/actions/add-liquidity/queries/add-liquidity-keys'
+import { RemoveLiquidityParams } from '@repo/lib/modules/pool/actions/remove-liquidity/queries/remove-liquidity-keys'
+import { SimulateSwapParams } from '@repo/lib/modules/swap/queries/useSimulateSwapQuery'
+import { isProd } from '@repo/lib/config/app.config'
+import { SwapState } from '@repo/lib/modules/swap/swap.types'
+import { SwapHandler } from '@repo/lib/modules/swap/handlers/Swap.handler'
/**
* Metadata to be added to the captured Sentry error
diff --git a/apps/frontend-v3/lib/shared/utils/sleep.ts b/packages/lib/shared/utils/sleep.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/sleep.ts
rename to packages/lib/shared/utils/sleep.ts
diff --git a/apps/frontend-v3/lib/shared/utils/slippage.ts b/packages/lib/shared/utils/slippage.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/slippage.ts
rename to packages/lib/shared/utils/slippage.ts
diff --git a/apps/frontend-v3/lib/shared/utils/sorting.ts b/packages/lib/shared/utils/sorting.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/sorting.ts
rename to packages/lib/shared/utils/sorting.ts
diff --git a/apps/frontend-v3/lib/shared/utils/strings.ts b/packages/lib/shared/utils/strings.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/strings.ts
rename to packages/lib/shared/utils/strings.ts
diff --git a/apps/frontend-v3/lib/shared/utils/theme.ts b/packages/lib/shared/utils/theme.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/theme.ts
rename to packages/lib/shared/utils/theme.ts
diff --git a/apps/frontend-v3/lib/shared/utils/time.ts b/packages/lib/shared/utils/time.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/time.ts
rename to packages/lib/shared/utils/time.ts
diff --git a/apps/frontend-v3/lib/shared/utils/urls.ts b/packages/lib/shared/utils/urls.ts
similarity index 100%
rename from apps/frontend-v3/lib/shared/utils/urls.ts
rename to packages/lib/shared/utils/urls.ts
diff --git a/apps/frontend-v3/test/TESTING.md b/packages/lib/test/TESTING.md
similarity index 100%
rename from apps/frontend-v3/test/TESTING.md
rename to packages/lib/test/TESTING.md
diff --git a/apps/frontend-v3/test/anvil/anvil-global-setup.ts b/packages/lib/test/anvil/anvil-global-setup.ts
similarity index 94%
rename from apps/frontend-v3/test/anvil/anvil-global-setup.ts
rename to packages/lib/test/anvil/anvil-global-setup.ts
index 057b3109..3efd0979 100644
--- a/apps/frontend-v3/test/anvil/anvil-global-setup.ts
+++ b/packages/lib/test/anvil/anvil-global-setup.ts
@@ -2,7 +2,7 @@ import { startProxy } from '@viem/anvil'
import { ANVIL_NETWORKS, getForkUrl } from './anvil-setup'
import { testChains } from './testWagmiConfig'
-import { sleep } from '@/lib/shared/utils/sleep'
+import { sleep } from '@repo/lib/shared/utils/sleep'
export async function setup() {
const promises = []
diff --git a/apps/frontend-v3/test/anvil/anvil-setup.ts b/packages/lib/test/anvil/anvil-setup.ts
similarity index 100%
rename from apps/frontend-v3/test/anvil/anvil-setup.ts
rename to packages/lib/test/anvil/anvil-setup.ts
diff --git a/apps/frontend-v3/test/anvil/testWagmiConfig.tsx b/packages/lib/test/anvil/testWagmiConfig.tsx
similarity index 97%
rename from apps/frontend-v3/test/anvil/testWagmiConfig.tsx
rename to packages/lib/test/anvil/testWagmiConfig.tsx
index 27ccccbf..2cab9a93 100644
--- a/apps/frontend-v3/test/anvil/testWagmiConfig.tsx
+++ b/packages/lib/test/anvil/testWagmiConfig.tsx
@@ -1,4 +1,4 @@
-import { NetworksWithFork, getTestRpcSetup, testAccounts } from '@/test/anvil/anvil-setup'
+import { NetworksWithFork, getTestRpcSetup, testAccounts } from '@repo/lib/test/anvil/anvil-setup'
import { Address, Chain, http } from 'viem'
import { mainnet, polygon, sepolia } from 'viem/chains'
import { createConfig } from 'wagmi'
diff --git a/apps/frontend-v3/test/data/all-gql-tokens.fake.spec.ts b/packages/lib/test/data/all-gql-tokens.fake.spec.ts
similarity index 100%
rename from apps/frontend-v3/test/data/all-gql-tokens.fake.spec.ts
rename to packages/lib/test/data/all-gql-tokens.fake.spec.ts
diff --git a/apps/frontend-v3/test/data/all-gql-tokens.fake.ts b/packages/lib/test/data/all-gql-tokens.fake.ts
similarity index 98%
rename from apps/frontend-v3/test/data/all-gql-tokens.fake.ts
rename to packages/lib/test/data/all-gql-tokens.fake.ts
index 39f5e413..180eca61 100644
--- a/apps/frontend-v3/test/data/all-gql-tokens.fake.ts
+++ b/packages/lib/test/data/all-gql-tokens.fake.ts
@@ -1,4 +1,4 @@
-import { GqlChain, GqlToken } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain, GqlToken } from '@repo/lib/shared/services/api/generated/graphql'
export const fakeTokenSymbols = [
'ETH',
diff --git a/apps/frontend-v3/test/data/gql-tokens.fake.ts b/packages/lib/test/data/gql-tokens.fake.ts
similarity index 100%
rename from apps/frontend-v3/test/data/gql-tokens.fake.ts
rename to packages/lib/test/data/gql-tokens.fake.ts
diff --git a/apps/frontend-v3/test/integration/sdk-utils.ts b/packages/lib/test/integration/sdk-utils.ts
similarity index 98%
rename from apps/frontend-v3/test/integration/sdk-utils.ts
rename to packages/lib/test/integration/sdk-utils.ts
index b8f957ee..7febf607 100644
--- a/apps/frontend-v3/test/integration/sdk-utils.ts
+++ b/packages/lib/test/integration/sdk-utils.ts
@@ -1,5 +1,5 @@
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
-import { isSameAddress } from '@/lib/shared/utils/addresses'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
+import { isSameAddress } from '@repo/lib/shared/utils/addresses'
import {
VAULT,
ChainId,
diff --git a/apps/frontend-v3/test/msw/builders/gqlPoolElement.builders.spec.ts b/packages/lib/test/msw/builders/gqlPoolElement.builders.spec.ts
similarity index 97%
rename from apps/frontend-v3/test/msw/builders/gqlPoolElement.builders.spec.ts
rename to packages/lib/test/msw/builders/gqlPoolElement.builders.spec.ts
index 31b1083d..b218e7e5 100644
--- a/apps/frontend-v3/test/msw/builders/gqlPoolElement.builders.spec.ts
+++ b/packages/lib/test/msw/builders/gqlPoolElement.builders.spec.ts
@@ -1,6 +1,6 @@
import { aNested50Weth503Pool } from './gqlPoolElement.builders'
import { NestedPoolState, mapPoolToNestedPoolState } from '@balancer/sdk'
-import { daiAddress, usdcAddress, usdtAddress, wETHAddress } from '@/lib/debug-helpers'
+import { daiAddress, usdcAddress, usdtAddress, wETHAddress } from '@repo/lib/debug-helpers'
// Unskip when SDK is migrated to new API schema
test.skip('aNested50Weth503Pool builds a proper nested pool mock', () => {
diff --git a/apps/frontend-v3/test/msw/builders/gqlPoolElement.builders.ts b/packages/lib/test/msw/builders/gqlPoolElement.builders.ts
similarity index 97%
rename from apps/frontend-v3/test/msw/builders/gqlPoolElement.builders.ts
rename to packages/lib/test/msw/builders/gqlPoolElement.builders.ts
index 44bceb6b..13eb75da 100644
--- a/apps/frontend-v3/test/msw/builders/gqlPoolElement.builders.ts
+++ b/packages/lib/test/msw/builders/gqlPoolElement.builders.ts
@@ -4,12 +4,12 @@ import {
poolId,
wETHAddress,
wjAuraAddress,
-} from '@/lib/debug-helpers'
+} from '@repo/lib/debug-helpers'
import {
aTokenExpandedMock,
someGqlTokenMocks,
someTokenExpandedMock,
-} from '@/lib/modules/tokens/__mocks__/token.builders'
+} from '@repo/lib/modules/tokens/__mocks__/token.builders'
import {
GqlChain,
GqlPoolElement,
@@ -18,7 +18,7 @@ import {
GqlPoolTokenExpanded,
GqlPoolType,
GqlPoolWeighted,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { DeepPartial } from '@apollo/client/utilities'
import { mock } from 'vitest-mock-extended'
import { aGqlStakingMock } from './gqlStaking.builders'
diff --git a/apps/frontend-v3/test/msw/builders/gqlPoolMinimal.builders.spec.ts b/packages/lib/test/msw/builders/gqlPoolMinimal.builders.spec.ts
similarity index 100%
rename from apps/frontend-v3/test/msw/builders/gqlPoolMinimal.builders.spec.ts
rename to packages/lib/test/msw/builders/gqlPoolMinimal.builders.spec.ts
diff --git a/apps/frontend-v3/test/msw/builders/gqlPoolMinimal.builders.ts b/packages/lib/test/msw/builders/gqlPoolMinimal.builders.ts
similarity index 97%
rename from apps/frontend-v3/test/msw/builders/gqlPoolMinimal.builders.ts
rename to packages/lib/test/msw/builders/gqlPoolMinimal.builders.ts
index a6d08173..42b137dc 100644
--- a/apps/frontend-v3/test/msw/builders/gqlPoolMinimal.builders.ts
+++ b/packages/lib/test/msw/builders/gqlPoolMinimal.builders.ts
@@ -5,7 +5,7 @@ import {
GqlPoolAprValue,
GqlPoolMinimal,
GqlPoolType,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { DeepPartial } from '@apollo/client/utilities'
import { mock, mockDeep } from 'vitest-mock-extended'
diff --git a/apps/frontend-v3/test/msw/builders/gqlStaking.builders.ts b/packages/lib/test/msw/builders/gqlStaking.builders.ts
similarity index 93%
rename from apps/frontend-v3/test/msw/builders/gqlStaking.builders.ts
rename to packages/lib/test/msw/builders/gqlStaking.builders.ts
index 248cf7b5..4e90e4de 100644
--- a/apps/frontend-v3/test/msw/builders/gqlStaking.builders.ts
+++ b/packages/lib/test/msw/builders/gqlStaking.builders.ts
@@ -3,7 +3,7 @@ import {
GqlPoolStaking,
GqlPoolStakingGaugeStatus,
GqlPoolStakingType,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
export const defaultTestGaugeAddress = '0x2d42910d826e5500579d121596e98a6eb33c0a1b'
diff --git a/apps/frontend-v3/test/msw/builders/gqlTokenPrice.builders.ts b/packages/lib/test/msw/builders/gqlTokenPrice.builders.ts
similarity index 81%
rename from apps/frontend-v3/test/msw/builders/gqlTokenPrice.builders.ts
rename to packages/lib/test/msw/builders/gqlTokenPrice.builders.ts
index f2986ef9..f871ce50 100644
--- a/apps/frontend-v3/test/msw/builders/gqlTokenPrice.builders.ts
+++ b/packages/lib/test/msw/builders/gqlTokenPrice.builders.ts
@@ -1,4 +1,4 @@
-import { GqlTokenPrice } from '@/lib/shared/services/api/generated/graphql'
+import { GqlTokenPrice } from '@repo/lib/shared/services/api/generated/graphql'
import { DeepPartial } from '@apollo/client/utilities'
export function aGqlTokenPriceMock(...options: Partial[]): GqlTokenPrice {
diff --git a/apps/frontend-v3/test/msw/builders/gqlUserBalance.builders.ts b/packages/lib/test/msw/builders/gqlUserBalance.builders.ts
similarity index 81%
rename from apps/frontend-v3/test/msw/builders/gqlUserBalance.builders.ts
rename to packages/lib/test/msw/builders/gqlUserBalance.builders.ts
index 859f6c7c..1778ddb2 100644
--- a/apps/frontend-v3/test/msw/builders/gqlUserBalance.builders.ts
+++ b/packages/lib/test/msw/builders/gqlUserBalance.builders.ts
@@ -1,4 +1,4 @@
-import { GqlPoolUserBalance } from '@/lib/shared/services/api/generated/graphql'
+import { GqlPoolUserBalance } from '@repo/lib/shared/services/api/generated/graphql'
export function aUserPoolBalance(...options: Partial[]): GqlPoolUserBalance {
const defaultBalance: GqlPoolUserBalance = {
diff --git a/apps/frontend-v3/test/msw/default-handlers.ts b/packages/lib/test/msw/default-handlers.ts
similarity index 100%
rename from apps/frontend-v3/test/msw/default-handlers.ts
rename to packages/lib/test/msw/default-handlers.ts
diff --git a/apps/frontend-v3/test/msw/handlers/AppGlobalData.handlers.ts b/packages/lib/test/msw/handlers/AppGlobalData.handlers.ts
similarity index 73%
rename from apps/frontend-v3/test/msw/handlers/AppGlobalData.handlers.ts
rename to packages/lib/test/msw/handlers/AppGlobalData.handlers.ts
index ed88df57..47923401 100644
--- a/apps/frontend-v3/test/msw/handlers/AppGlobalData.handlers.ts
+++ b/packages/lib/test/msw/handlers/AppGlobalData.handlers.ts
@@ -1,7 +1,7 @@
-import { GetAppGlobalPollingDataDocument } from '@/lib/shared/services/api/generated/graphql'
+import { GetAppGlobalPollingDataDocument } from '@repo/lib/shared/services/api/generated/graphql'
import { getQueryName, mockGQL } from '../utils'
import { graphql } from 'msw'
-import { anAppGlobalData } from '@/lib/modules/tokens/__mocks__/AppGlobalData.builders'
+import { anAppGlobalData } from '@repo/lib/modules/tokens/__mocks__/AppGlobalData.builders'
import { GQLResponse } from './msw-helpers'
export const defaultAppGlobalDataMock = anAppGlobalData()
diff --git a/apps/frontend-v3/test/msw/handlers/Pool.handlers.ts b/packages/lib/test/msw/handlers/Pool.handlers.ts
similarity index 86%
rename from apps/frontend-v3/test/msw/handlers/Pool.handlers.ts
rename to packages/lib/test/msw/handlers/Pool.handlers.ts
index f9ad69f9..fd2351cc 100644
--- a/apps/frontend-v3/test/msw/handlers/Pool.handlers.ts
+++ b/packages/lib/test/msw/handlers/Pool.handlers.ts
@@ -1,4 +1,4 @@
-import { GetPoolDocument, GetPoolQuery } from '@/lib/shared/services/api/generated/graphql'
+import { GetPoolDocument, GetPoolQuery } from '@repo/lib/shared/services/api/generated/graphql'
import { graphql } from 'msw'
import { getQueryName, mockGQL } from '../utils'
import { aGqlPoolElementMock } from '../builders/gqlPoolElement.builders'
diff --git a/apps/frontend-v3/test/msw/handlers/PoolList.handlers.ts b/packages/lib/test/msw/handlers/PoolList.handlers.ts
similarity index 81%
rename from apps/frontend-v3/test/msw/handlers/PoolList.handlers.ts
rename to packages/lib/test/msw/handlers/PoolList.handlers.ts
index 68240365..f9156ac2 100644
--- a/apps/frontend-v3/test/msw/handlers/PoolList.handlers.ts
+++ b/packages/lib/test/msw/handlers/PoolList.handlers.ts
@@ -1,8 +1,8 @@
-import { GetPoolsDocument } from '@/lib/shared/services/api/generated/graphql'
+import { GetPoolsDocument } from '@repo/lib/shared/services/api/generated/graphql'
import { getQueryName, mockGQL } from '../utils'
import { graphql } from 'msw'
import { aGqlPoolMinimalMock } from '../builders/gqlPoolMinimal.builders'
-import { PoolList } from '@/lib/modules/pool/pool.types'
+import { PoolList } from '@repo/lib/modules/pool/pool.types'
import { GQLResponse } from './msw-helpers'
export const defaultPoolListItemMock = aGqlPoolMinimalMock()
diff --git a/apps/frontend-v3/test/msw/handlers/Tokens.handlers.ts b/packages/lib/test/msw/handlers/Tokens.handlers.ts
similarity index 90%
rename from apps/frontend-v3/test/msw/handlers/Tokens.handlers.ts
rename to packages/lib/test/msw/handlers/Tokens.handlers.ts
index 5812f9fd..282a95dc 100644
--- a/apps/frontend-v3/test/msw/handlers/Tokens.handlers.ts
+++ b/packages/lib/test/msw/handlers/Tokens.handlers.ts
@@ -2,12 +2,12 @@ import {
defaultGetTokenPricesQueryMock,
defaultTokenListMock,
defaultTokenPriceListMock,
-} from '@/lib/modules/tokens/__mocks__/token.builders'
+} from '@repo/lib/modules/tokens/__mocks__/token.builders'
import {
GetTokenPricesDocument,
GetTokenPricesQuery,
GetTokensDocument,
-} from '@/lib/shared/services/api/generated/graphql'
+} from '@repo/lib/shared/services/api/generated/graphql'
import { graphql } from 'msw'
import { getQueryName, mockGQL } from '../utils'
import { GQLResponse } from './msw-helpers'
diff --git a/apps/frontend-v3/test/msw/handlers/msw-helpers.ts b/packages/lib/test/msw/handlers/msw-helpers.ts
similarity index 100%
rename from apps/frontend-v3/test/msw/handlers/msw-helpers.ts
rename to packages/lib/test/msw/handlers/msw-helpers.ts
diff --git a/apps/frontend-v3/test/msw/handlers/rest-handlers.ts b/packages/lib/test/msw/handlers/rest-handlers.ts
similarity index 100%
rename from apps/frontend-v3/test/msw/handlers/rest-handlers.ts
rename to packages/lib/test/msw/handlers/rest-handlers.ts
diff --git a/apps/frontend-v3/test/msw/server.ts b/packages/lib/test/msw/server.ts
similarity index 100%
rename from apps/frontend-v3/test/msw/server.ts
rename to packages/lib/test/msw/server.ts
diff --git a/apps/frontend-v3/test/msw/utils.spec.ts b/packages/lib/test/msw/utils.spec.ts
similarity index 73%
rename from apps/frontend-v3/test/msw/utils.spec.ts
rename to packages/lib/test/msw/utils.spec.ts
index a0366cd7..d9c7f719 100644
--- a/apps/frontend-v3/test/msw/utils.spec.ts
+++ b/packages/lib/test/msw/utils.spec.ts
@@ -1,4 +1,7 @@
-import { GetPoolsDocument, GetTokensDocument } from '@/lib/shared/services/api/generated/graphql'
+import {
+ GetPoolsDocument,
+ GetTokensDocument,
+} from '@repo/lib/shared/services/api/generated/graphql'
import { getQueryName } from './utils'
describe('getQueryName', () => {
diff --git a/apps/frontend-v3/test/msw/utils.ts b/packages/lib/test/msw/utils.ts
similarity index 100%
rename from apps/frontend-v3/test/msw/utils.ts
rename to packages/lib/test/msw/utils.ts
diff --git a/apps/frontend-v3/test/utils/apollo-test-client.ts b/packages/lib/test/utils/apollo-test-client.ts
similarity index 100%
rename from apps/frontend-v3/test/utils/apollo-test-client.ts
rename to packages/lib/test/utils/apollo-test-client.ts
diff --git a/apps/frontend-v3/test/utils/app-router-context-provider-mock.tsx b/packages/lib/test/utils/app-router-context-provider-mock.tsx
similarity index 100%
rename from apps/frontend-v3/test/utils/app-router-context-provider-mock.tsx
rename to packages/lib/test/utils/app-router-context-provider-mock.tsx
diff --git a/apps/frontend-v3/test/utils/console.ts b/packages/lib/test/utils/console.ts
similarity index 100%
rename from apps/frontend-v3/test/utils/console.ts
rename to packages/lib/test/utils/console.ts
diff --git a/apps/frontend-v3/test/utils/custom-renderers.tsx b/packages/lib/test/utils/custom-renderers.tsx
similarity index 75%
rename from apps/frontend-v3/test/utils/custom-renderers.tsx
rename to packages/lib/test/utils/custom-renderers.tsx
index 37cc97af..6d3074b1 100644
--- a/apps/frontend-v3/test/utils/custom-renderers.tsx
+++ b/packages/lib/test/utils/custom-renderers.tsx
@@ -1,23 +1,23 @@
'use client'
-import { AddLiquidityProvider } from '@/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider'
-import { RemoveLiquidityProvider } from '@/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider'
-import { BaseVariant } from '@/lib/modules/pool/pool.types'
-import { PoolProvider } from '@/lib/modules/pool/PoolProvider'
-import { RelayerSignatureProvider } from '@/lib/modules/relayer/RelayerSignatureProvider'
+import { AddLiquidityProvider } from '@repo/lib/modules/pool/actions/add-liquidity/AddLiquidityProvider'
+import { RemoveLiquidityProvider } from '@repo/lib/modules/pool/actions/remove-liquidity/RemoveLiquidityProvider'
+import { BaseVariant } from '@repo/lib/modules/pool/pool.types'
+import { PoolProvider } from '@repo/lib/modules/pool/PoolProvider'
+import { RelayerSignatureProvider } from '@repo/lib/modules/relayer/RelayerSignatureProvider'
import {
defaultGetTokenPricesQueryMock,
defaultGetTokensQueryMock,
defaultGetTokensQueryVariablesMock,
-} from '@/lib/modules/tokens/__mocks__/token.builders'
-import { TokenInputsValidationProvider } from '@/lib/modules/tokens/TokenInputsValidationProvider'
-import { TokensProvider } from '@/lib/modules/tokens/TokensProvider'
-import { RecentTransactionsProvider } from '@/lib/modules/transactions/RecentTransactionsProvider'
-import { TransactionStateProvider } from '@/lib/modules/transactions/transaction-steps/TransactionStateProvider'
-import { UserSettingsProvider } from '@/lib/modules/user/settings/UserSettingsProvider'
-import { UserAccountProvider } from '@/lib/modules/web3/UserAccountProvider'
-import { GqlPoolElement } from '@/lib/shared/services/api/generated/graphql'
-import { testWagmiConfig } from '@/test/anvil/testWagmiConfig'
+} from '@repo/lib/modules/tokens/__mocks__/token.builders'
+import { TokenInputsValidationProvider } from '@repo/lib/modules/tokens/TokenInputsValidationProvider'
+import { TokensProvider } from '@repo/lib/modules/tokens/TokensProvider'
+import { RecentTransactionsProvider } from '@repo/lib/modules/transactions/RecentTransactionsProvider'
+import { TransactionStateProvider } from '@repo/lib/modules/transactions/transaction-steps/TransactionStateProvider'
+import { UserSettingsProvider } from '@repo/lib/modules/user/settings/UserSettingsProvider'
+import { UserAccountProvider } from '@repo/lib/modules/web3/UserAccountProvider'
+import { GqlPoolElement } from '@repo/lib/shared/services/api/generated/graphql'
+import { testWagmiConfig } from '@repo/lib/test/anvil/testWagmiConfig'
import { ApolloProvider } from '@apollo/client'
import { QueryClientProvider } from '@tanstack/react-query'
import { RenderHookOptions, renderHook, waitFor } from '@testing-library/react'
@@ -27,8 +27,8 @@ import { aGqlPoolElementMock } from '../msw/builders/gqlPoolElement.builders'
import { apolloTestClient } from './apollo-test-client'
import { AppRouterContextProviderMock } from './app-router-context-provider-mock'
import { testQueryClient } from './react-query'
-import { Permit2SignatureProvider } from '@/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider'
-import { PermitSignatureProvider } from '@/lib/modules/tokens/approvals/permit2/PermitSignatureProvider'
+import { Permit2SignatureProvider } from '@repo/lib/modules/tokens/approvals/permit2/Permit2SignatureProvider'
+import { PermitSignatureProvider } from '@repo/lib/modules/tokens/approvals/permit2/PermitSignatureProvider'
export type Wrapper = ({ children }: PropsWithChildren) => ReactNode
diff --git a/apps/frontend-v3/test/utils/network-config-test-utils.ts b/packages/lib/test/utils/network-config-test-utils.ts
similarity index 78%
rename from apps/frontend-v3/test/utils/network-config-test-utils.ts
rename to packages/lib/test/utils/network-config-test-utils.ts
index 99ffcccf..56e11ef5 100644
--- a/apps/frontend-v3/test/utils/network-config-test-utils.ts
+++ b/packages/lib/test/utils/network-config-test-utils.ts
@@ -1,4 +1,4 @@
-import networkConfig from '@/lib/config/networks/mainnet'
+import networkConfig from '@repo/lib/config/networks/mainnet'
export function getNetworkTestUtils() {
return { getEthAddress: getETHAddress }
diff --git a/apps/frontend-v3/test/utils/numbers.ts b/packages/lib/test/utils/numbers.ts
similarity index 100%
rename from apps/frontend-v3/test/utils/numbers.ts
rename to packages/lib/test/utils/numbers.ts
diff --git a/apps/frontend-v3/test/utils/react-query.ts b/packages/lib/test/utils/react-query.ts
similarity index 100%
rename from apps/frontend-v3/test/utils/react-query.ts
rename to packages/lib/test/utils/react-query.ts
diff --git a/apps/frontend-v3/test/utils/silence-devtools.ts b/packages/lib/test/utils/silence-devtools.ts
similarity index 100%
rename from apps/frontend-v3/test/utils/silence-devtools.ts
rename to packages/lib/test/utils/silence-devtools.ts
diff --git a/apps/frontend-v3/test/utils/wagmi/wagmi-connections.tsx b/packages/lib/test/utils/wagmi/wagmi-connections.tsx
similarity index 93%
rename from apps/frontend-v3/test/utils/wagmi/wagmi-connections.tsx
rename to packages/lib/test/utils/wagmi/wagmi-connections.tsx
index 42dcd1b6..2c61b788 100644
--- a/apps/frontend-v3/test/utils/wagmi/wagmi-connections.tsx
+++ b/packages/lib/test/utils/wagmi/wagmi-connections.tsx
@@ -1,5 +1,5 @@
-import { testAccountIndex } from '@/test/anvil/anvil-setup'
-import { addTestUserAddress, testWagmiConfig } from '@/test/anvil/testWagmiConfig'
+import { testAccountIndex } from '@repo/lib/test/anvil/anvil-setup'
+import { addTestUserAddress, testWagmiConfig } from '@repo/lib/test/anvil/testWagmiConfig'
import { act } from '@testing-library/react'
import { Address } from 'viem'
import { Connector } from 'wagmi'
diff --git a/apps/frontend-v3/test/utils/wagmi/wagmi-test-clients.ts b/packages/lib/test/utils/wagmi/wagmi-test-clients.ts
similarity index 88%
rename from apps/frontend-v3/test/utils/wagmi/wagmi-test-clients.ts
rename to packages/lib/test/utils/wagmi/wagmi-test-clients.ts
index 01708414..efff6f35 100644
--- a/apps/frontend-v3/test/utils/wagmi/wagmi-test-clients.ts
+++ b/packages/lib/test/utils/wagmi/wagmi-test-clients.ts
@@ -1,4 +1,4 @@
-import { testWagmiConfig } from '@/test/anvil/testWagmiConfig'
+import { testWagmiConfig } from '@repo/lib/test/anvil/testWagmiConfig'
import { publicActions, testActions, walletActions } from 'viem'
import { mainnet, polygon, sepolia } from 'viem/chains'
diff --git a/apps/frontend-v3/test/vitest/assertions.ts b/packages/lib/test/vitest/assertions.ts
similarity index 100%
rename from apps/frontend-v3/test/vitest/assertions.ts
rename to packages/lib/test/vitest/assertions.ts
diff --git a/apps/frontend-v3/test/vitest/setup-integration.ts b/packages/lib/test/vitest/setup-integration.ts
similarity index 87%
rename from apps/frontend-v3/test/vitest/setup-integration.ts
rename to packages/lib/test/vitest/setup-integration.ts
index 020c41e3..da9141a5 100644
--- a/apps/frontend-v3/test/vitest/setup-integration.ts
+++ b/packages/lib/test/vitest/setup-integration.ts
@@ -1,10 +1,10 @@
import { connectWithDefaultUser, disconnectDefaultUser } from '../utils/wagmi/wagmi-connections'
-import * as transportsModule from '../../lib/modules/web3/transports'
+import * as transportsModule from '@repo/lib/modules/web3/transports'
import { NetworksWithFork, getTestRpcSetup } from '../anvil/anvil-setup'
-import { GqlChain } from '@/lib/shared/services/api/generated/graphql'
+import { GqlChain } from '@repo/lib/shared/services/api/generated/graphql'
import { createPublicClient, http } from 'viem'
import { mainnetTest, polygonTest } from '../anvil/testWagmiConfig'
-import { chainsByKey } from '@/lib/modules/web3/ChainConfig'
+import { chainsByKey } from '@repo/lib/modules/web3/ChainConfig'
/*
Specific setup for integration tests (that it is not needed in unit tests)
diff --git a/apps/frontend-v3/test/vitest/setup-msw.ts b/packages/lib/test/vitest/setup-msw.ts
similarity index 87%
rename from apps/frontend-v3/test/vitest/setup-msw.ts
rename to packages/lib/test/vitest/setup-msw.ts
index 6a4fc643..fe16ecdb 100644
--- a/apps/frontend-v3/test/vitest/setup-msw.ts
+++ b/packages/lib/test/vitest/setup-msw.ts
@@ -1,4 +1,4 @@
-import { mswServer } from '@/test/msw/server'
+import { mswServer } from '@repo/lib/test/msw/server'
// MSW SETUP that we only use for unit tests (not for integration tests)
// Establish API mocking before all tests.
diff --git a/apps/frontend-v3/test/vitest/setup-vitest.tsx b/packages/lib/test/vitest/setup-vitest.tsx
similarity index 100%
rename from apps/frontend-v3/test/vitest/setup-vitest.tsx
rename to packages/lib/test/vitest/setup-vitest.tsx
diff --git a/packages/lib/tsconfig.json b/packages/lib/tsconfig.json
new file mode 100644
index 00000000..2b8c1485
--- /dev/null
+++ b/packages/lib/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "@repo/typescript-config/react-library.json",
+ "compilerOptions": {
+ "module": "esnext",
+ "types": ["vitest/globals"],
+ "baseUrl": ".",
+ "paths": {
+ "@repo/lib/*": ["*"]
+ }
+ },
+ "include": ["**/*.ts", "**/*.tsx", "global.d.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/apps/frontend-v3/vitest.config.integration.ts b/packages/lib/vitest.config.integration.ts
similarity index 100%
rename from apps/frontend-v3/vitest.config.integration.ts
rename to packages/lib/vitest.config.integration.ts
diff --git a/apps/frontend-v3/vitest.config.ts b/packages/lib/vitest.config.ts
similarity index 94%
rename from apps/frontend-v3/vitest.config.ts
rename to packages/lib/vitest.config.ts
index 2ec24541..632c961b 100644
--- a/apps/frontend-v3/vitest.config.ts
+++ b/packages/lib/vitest.config.ts
@@ -6,7 +6,7 @@ export default defineConfig({
plugins: [react()],
resolve: {
alias: {
- '@': resolve(__dirname, '.'),
+ '@repo/lib': resolve(__dirname, '.'),
},
},
envPrefix: ['VITE', 'NEXT'],
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8fb127ab..812277f6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -83,6 +83,9 @@ importers:
'@rainbow-me/rainbowkit':
specifier: ^2.1.6
version: 2.1.6(@tanstack/react-query@5.56.2(react@18.2.0))(@types/react@18.2.34)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.21.22(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.17(@tanstack/query-core@5.56.2)(@tanstack/react-query@5.56.2(react@18.2.0))(@types/react@18.2.34)(bufferutil@4.0.8)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.34)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.22(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))
+ '@repo/lib':
+ specifier: workspace:*
+ version: link:../../packages/lib
'@sentry/nextjs':
specifier: ^8.13.0
version: 8.30.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@14.2.0(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(webpack@5.94.0(esbuild@0.19.12))
@@ -106,7 +109,7 @@ importers:
version: 9.1.2
chakra-react-select:
specifier: ^4.7.6
- version: 4.9.2(banuz2q4qni4rswxudypxspam4)
+ version: 4.9.2(@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(framer-motion@10.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
date-fns:
specifier: ^2.30.0
version: 2.30.0
@@ -364,6 +367,310 @@ importers:
specifier: ^5.3.3
version: 5.3.3
+ packages/lib:
+ dependencies:
+ '@apollo/client':
+ specifier: ^3.11.8
+ version: 3.11.8(@types/react@18.2.34)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@balancer/sdk':
+ specifier: ^0.27.0
+ version: 0.27.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)
+ '@chakra-ui/anatomy':
+ specifier: ^2.2.2
+ version: 2.2.2
+ '@chakra-ui/hooks':
+ specifier: ^2.2.1
+ version: 2.2.1(react@18.2.0)
+ '@chakra-ui/icons':
+ specifier: ^2.1.1
+ version: 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0)
+ '@chakra-ui/next-js':
+ specifier: ^2.2.0
+ version: 2.2.0(@chakra-ui/react@2.8.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(framer-motion@10.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(next@14.2.0(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)
+ '@chakra-ui/react':
+ specifier: ^2.8.2
+ version: 2.8.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(framer-motion@10.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@chakra-ui/theme-tools':
+ specifier: ^2.1.2
+ version: 2.1.2(@chakra-ui/styled-system@2.9.2)
+ '@dicebear/collection':
+ specifier: ^7.0.1
+ version: 7.1.3(@dicebear/core@7.1.3)
+ '@dicebear/core':
+ specifier: ^7.0.1
+ version: 7.1.3
+ '@emotion/react':
+ specifier: ^11.11.1
+ version: 11.13.3(@types/react@18.2.34)(react@18.2.0)
+ '@emotion/styled':
+ specifier: ^11.11.0
+ version: 11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0)
+ '@layerzerolabs/scan-client':
+ specifier: ^0.0.8
+ version: 0.0.8(axios@1.7.7)
+ '@nikolovlazar/chakra-ui-prose':
+ specifier: ^1.2.1
+ version: 1.2.1(@chakra-ui/react@2.8.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(framer-motion@10.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0)
+ '@rainbow-me/rainbowkit':
+ specifier: ^2.1.6
+ version: 2.1.6(@tanstack/react-query@5.56.2(react@18.2.0))(@types/react@18.2.34)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.21.22(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.17(@tanstack/query-core@5.56.2)(@tanstack/react-query@5.56.2(react@18.2.0))(@types/react@18.2.34)(bufferutil@4.0.8)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.34)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.22(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))
+ '@sentry/nextjs':
+ specifier: ^8.13.0
+ version: 8.30.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@14.2.0(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(webpack@5.94.0(esbuild@0.19.12))
+ '@studio-freight/react-lenis':
+ specifier: ^0.0.47
+ version: 0.0.47(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@tanstack/react-query':
+ specifier: ^5.56.2
+ version: 5.56.2(react@18.2.0)
+ '@tanstack/react-query-devtools':
+ specifier: ^5.56.0
+ version: 5.56.2(@tanstack/react-query@5.56.2(react@18.2.0))(react@18.2.0)
+ '@tanstack/react-table':
+ specifier: ^8.9.3
+ version: 8.20.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@vercel/speed-insights':
+ specifier: ^1.0.1
+ version: 1.0.12(next@14.2.0(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)
+ bignumber.js:
+ specifier: ^9.1.2
+ version: 9.1.2
+ chakra-react-select:
+ specifier: ^4.7.6
+ version: 4.9.2(@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(framer-motion@10.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ date-fns:
+ specifier: ^2.30.0
+ version: 2.30.0
+ deepmerge:
+ specifier: ^4.3.1
+ version: 4.3.1
+ echarts:
+ specifier: ^5.4.3
+ version: 5.5.1
+ echarts-for-react:
+ specifier: ^3.0.2
+ version: 3.0.2(echarts@5.5.1)(react@18.2.0)
+ fathom-client:
+ specifier: ^3.7.0
+ version: 3.7.2
+ framer-motion:
+ specifier: ^10.13.0
+ version: 10.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ graphql:
+ specifier: ^16.7.1
+ version: 16.9.0
+ graphql-request:
+ specifier: ^6.1.0
+ version: 6.1.0(graphql@16.9.0)
+ graphql-tag:
+ specifier: ^2.12.6
+ version: 2.12.6(graphql@16.9.0)
+ lodash:
+ specifier: ^4.17.21
+ version: 4.17.21
+ next:
+ specifier: 14.2.0
+ version: 14.2.0(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next-themes:
+ specifier: ^0.3.0
+ version: 0.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ nextjs-toploader:
+ specifier: ^1.6.4
+ version: 1.6.12(next@14.2.0(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ numeral:
+ specifier: ^2.0.6
+ version: 2.0.6
+ nuqs:
+ specifier: ^1.19.1
+ version: 1.19.1(next@14.2.0(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))
+ pluralize:
+ specifier: ^8.0.0
+ version: 8.0.0
+ react:
+ specifier: 18.2.0
+ version: 18.2.0
+ react-dom:
+ specifier: 18.2.0
+ version: 18.2.0(react@18.2.0)
+ react-error-boundary:
+ specifier: ^4.0.13
+ version: 4.0.13(react@18.2.0)
+ react-feather:
+ specifier: ^2.0.10
+ version: 2.0.10(react@18.2.0)
+ react-hook-form:
+ specifier: ^7.47.0
+ version: 7.53.0(react@18.2.0)
+ react-hotkeys-hook:
+ specifier: ^4.4.1
+ version: 4.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ react-swipeable:
+ specifier: ^7.0.1
+ version: 7.0.1(react@18.2.0)
+ react-syntax-highlighter:
+ specifier: ^15.5.0
+ version: 15.5.0(react@18.2.0)
+ react-use-measure:
+ specifier: ^2.1.1
+ version: 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ react-virtuoso:
+ specifier: ^4.7.1
+ version: 4.10.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ tinycolor2:
+ specifier: ^1.6.0
+ version: 1.6.0
+ use-debounce:
+ specifier: ^10.0.0
+ version: 10.0.3(react@18.2.0)
+ use-sound:
+ specifier: ^4.0.1
+ version: 4.0.3(react@18.2.0)
+ usehooks-ts:
+ specifier: ^3.1.0
+ version: 3.1.0(react@18.2.0)
+ viem:
+ specifier: ^2.21.18
+ version: 2.21.22(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)
+ wagmi:
+ specifier: ^2.12.16
+ version: 2.12.17(@tanstack/query-core@5.56.2)(@tanstack/react-query@5.56.2(react@18.2.0))(@types/react@18.2.34)(bufferutil@4.0.8)(react-dom@18.2.0(react@18.2.0))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.34)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@3.29.4)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.22(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)
+ devDependencies:
+ '@apollo/experimental-nextjs-app-support':
+ specifier: ^0.11.3
+ version: 0.11.3(@apollo/client@3.11.8(@types/react@18.2.34)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(next@14.2.0(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)
+ '@chakra-ui/cli':
+ specifier: ^2.4.1
+ version: 2.4.1
+ '@chakra-ui/styled-system':
+ specifier: ^2.9.2
+ version: 2.9.2
+ '@graphql-codegen/cli':
+ specifier: ^5.0.0
+ version: 5.0.2(@parcel/watcher@2.4.1)(@types/node@20.3.2)(bufferutil@4.0.8)(graphql@16.9.0)(typescript@5.4.5)(utf-8-validate@5.0.10)
+ '@graphql-codegen/client-preset':
+ specifier: ^4.1.0
+ version: 4.3.3(graphql@16.9.0)
+ '@graphql-codegen/schema-ast':
+ specifier: ^4.0.0
+ version: 4.1.0(graphql@16.9.0)
+ '@graphql-codegen/typescript-document-nodes':
+ specifier: ^4.0.1
+ version: 4.0.9(graphql@16.9.0)
+ '@graphql-codegen/typescript-msw':
+ specifier: ^1.1.6
+ version: 1.1.6(graphql@16.9.0)
+ '@graphql-typed-document-node/core':
+ specifier: ^3.2.0
+ version: 3.2.0(graphql@16.9.0)
+ '@repo/eslint-config':
+ specifier: workspace:*
+ version: link:../eslint-config
+ '@repo/typescript-config':
+ specifier: workspace:*
+ version: link:../typescript-config
+ '@sentry/types':
+ specifier: ^7.89.0
+ version: 7.119.0
+ '@testing-library/jest-dom':
+ specifier: ^6.1.5
+ version: 6.5.0
+ '@testing-library/react':
+ specifier: ^15.0.5
+ version: 15.0.7(@types/react@18.2.34)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@types/echarts':
+ specifier: ^4.9.19
+ version: 4.9.22
+ '@types/js-cookie':
+ specifier: ^3.0.6
+ version: 3.0.6
+ '@types/lodash':
+ specifier: ^4.14.195
+ version: 4.17.7
+ '@types/node':
+ specifier: 20.3.2
+ version: 20.3.2
+ '@types/numeral':
+ specifier: ^2.0.2
+ version: 2.0.5
+ '@types/pluralize':
+ specifier: ^0.0.33
+ version: 0.0.33
+ '@types/react':
+ specifier: 18.2.34
+ version: 18.2.34
+ '@types/react-dom':
+ specifier: 18.2.6
+ version: 18.2.6
+ '@types/react-syntax-highlighter':
+ specifier: ^15.5.13
+ version: 15.5.13
+ '@types/tinycolor2':
+ specifier: ^1.4.6
+ version: 1.4.6
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^5.60.1
+ version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.4.5))(eslint@8.43.0)(typescript@5.4.5)
+ '@typescript-eslint/parser':
+ specifier: ^5.60.1
+ version: 5.62.0(eslint@8.43.0)(typescript@5.4.5)
+ '@viem/anvil':
+ specifier: ^0.0.10
+ version: 0.0.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@vitejs/plugin-react':
+ specifier: ^4.2.1
+ version: 4.3.1(vite@5.4.5(@types/node@20.3.2)(terser@5.32.0))
+ '@vitest/coverage-v8':
+ specifier: ^1.3.0
+ version: 1.6.0(vitest@2.1.1(@types/node@20.3.2)(happy-dom@12.10.3)(msw@2.0.10(typescript@5.4.5))(terser@5.32.0))
+ '@wagmi/cli':
+ specifier: ^2.1.15
+ version: 2.1.15(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
+ autoprefixer:
+ specifier: ^10.4.14
+ version: 10.4.20(postcss@8.4.47)
+ concurrently:
+ specifier: ^8.2.2
+ version: 8.2.2
+ cross-fetch:
+ specifier: ^4.0.0
+ version: 4.0.0
+ eslint:
+ specifier: 8.43.0
+ version: 8.43.0
+ eslint-config-next:
+ specifier: 14.0.1
+ version: 14.0.1(eslint@8.43.0)(typescript@5.4.5)
+ eslint-config-prettier:
+ specifier: ^8.8.0
+ version: 8.10.0(eslint@8.43.0)
+ eslint-plugin-prettier:
+ specifier: ^4.2.1
+ version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.43.0))(eslint@8.43.0)(prettier@2.8.8)
+ happy-dom:
+ specifier: ^12.10.3
+ version: 12.10.3
+ lokijs:
+ specifier: ^1.5.12
+ version: 1.5.12
+ msw:
+ specifier: 2.0.10
+ version: 2.0.10(typescript@5.4.5)
+ prettier:
+ specifier: ^2.8.8
+ version: 2.8.8
+ sentry-testkit:
+ specifier: ^5.0.9
+ version: 5.0.9
+ typescript:
+ specifier: 5.4.5
+ version: 5.4.5
+ vitest:
+ specifier: ^2.1.1
+ version: 2.1.1(@types/node@20.3.2)(happy-dom@12.10.3)(msw@2.0.10(typescript@5.4.5))(terser@5.32.0)
+ vitest-mock-extended:
+ specifier: ^2.0.2
+ version: 2.0.2(typescript@5.4.5)(vitest@2.1.1(@types/node@20.3.2)(happy-dom@12.10.3)(msw@2.0.10(typescript@5.4.5))(terser@5.32.0))
+
packages/typescript-config: {}
packages:
@@ -3923,9 +4230,6 @@ packages:
'@types/node-forge@1.3.11':
resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
- '@types/node@20.11.24':
- resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==}
-
'@types/node@20.3.2':
resolution: {integrity: sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==}
@@ -9204,9 +9508,6 @@ packages:
uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
- undici-types@5.26.5:
- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
-
unenv@1.10.0:
resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==}
@@ -14223,7 +14524,7 @@ snapshots:
'@swc/helpers@0.5.5':
dependencies:
'@swc/counter': 0.1.3
- tslib: 2.6.2
+ tslib: 2.7.0
'@tanstack/query-core@5.56.2': {}
@@ -14304,7 +14605,7 @@ snapshots:
'@types/connect@3.4.36':
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.3.2
'@types/cookie@0.4.1': {}
@@ -14356,16 +14657,12 @@ snapshots:
'@types/mysql@2.15.26':
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.3.2
'@types/node-forge@1.3.11':
dependencies:
'@types/node': 20.3.2
- '@types/node@20.11.24':
- dependencies:
- undici-types: 5.26.5
-
'@types/node@20.3.2': {}
'@types/normalize-package-data@2.4.4': {}
@@ -14380,7 +14677,7 @@ snapshots:
'@types/pg@8.6.1':
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.3.2
pg-protocol: 1.6.1
pg-types: 2.2.0
@@ -14430,7 +14727,7 @@ snapshots:
'@types/ws@8.5.12':
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.3.2
'@types/yargs-parser@21.0.3': {}
@@ -15906,8 +16203,8 @@ snapshots:
loupe: 3.1.1
pathval: 2.0.0
- chakra-react-select@4.9.2(banuz2q4qni4rswxudypxspam4):
- dependencies:
+ ? chakra-react-select@4.9.2(@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(framer-motion@10.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0))(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ : dependencies:
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0)
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0)
'@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.34)(react@18.2.0))(@types/react@18.2.34)(react@18.2.0))(react@18.2.0))(react@18.2.0)
@@ -16831,23 +17128,24 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.0)(eslint@8.57.0))(eslint@8.57.0):
+ eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.0)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 6.17.0(eslint@8.57.0)(typescript@5.3.3)
eslint: 8.57.0
+ eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.0)(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
+ eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.0)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/parser': 6.17.0(eslint@8.57.0)(typescript@5.3.3)
eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.0)(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
@@ -16894,7 +17192,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.17.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.0)(eslint@8.57.0))(eslint@8.57.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -20893,8 +21191,6 @@ snapshots:
uncrypto@0.1.3: {}
- undici-types@5.26.5: {}
-
unenv@1.10.0:
dependencies:
consola: 3.2.3
diff --git a/turbo.json b/turbo.json
index a5679856..3619781a 100644
--- a/turbo.json
+++ b/turbo.json
@@ -34,7 +34,7 @@
"graphql:gen": {
"dependsOn": ["^graphql:gen"],
"inputs": [".env*"],
- "outputs": ["lib/shared/services/api/generated/**"]
+ "outputs": ["packages/lib/shared/services/api/generated/**"]
}
}
}