Skip to content

Commit 001cf84

Browse files
authored
Merge pull request #6320 from cowprotocol/release/2025-10-01
chore(release): 2025/10/01
2 parents dd386f9 + bd11fc9 commit 001cf84

File tree

46 files changed

+2000
-263
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2000
-263
lines changed

apps/cow-fi/data/cow-protocol/const.tsx

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,51 @@
1-
import { Link } from '@/components/Link'
2-
import IMG_LOGO_SAFE from '@cowprotocol/assets/images/logo-safe.svg'
3-
import IMG_LOGO_LIDO from '@cowprotocol/assets/images/logo-lido.svg'
1+
import { ReactNode } from 'react'
2+
3+
import { useCowAnalytics } from '@cowprotocol/analytics'
4+
import IMG_DOCS from '@cowprotocol/assets/images/image-docs.svg'
5+
import IMG_GRANT_COLOR from '@cowprotocol/assets/images/image-grant-color.svg'
6+
import IMG_HOOKS from '@cowprotocol/assets/images/image-hooks.svg'
7+
import IMG_MILKMAN from '@cowprotocol/assets/images/image-milkman.svg'
8+
import IMG_PROGRAMMATIC_ORDERS from '@cowprotocol/assets/images/image-programmatic-orders.svg'
9+
import IMG_SMARTORDERS from '@cowprotocol/assets/images/image-smartorders.svg'
10+
import IMG_SURPLUS from '@cowprotocol/assets/images/image-surplus.svg'
11+
import IMG_TWAP from '@cowprotocol/assets/images/image-twap.svg'
12+
import IMG_WIDGET from '@cowprotocol/assets/images/image-widget.svg'
13+
import IMG_LOGO_AAVE from '@cowprotocol/assets/images/logo-aave-icon.svg'
14+
import IMG_LOGO_ALCHEMIX from '@cowprotocol/assets/images/logo-alchemix.svg'
15+
import IMG_LOGO_ARAGON from '@cowprotocol/assets/images/logo-aragon.svg'
16+
import IMG_LOGO_AURA from '@cowprotocol/assets/images/logo-aura.svg'
17+
import IMG_LOGO_BALANCER from '@cowprotocol/assets/images/logo-balancer.svg'
418
import IMG_LOGO_CURVE_TEXT from '@cowprotocol/assets/images/logo-curve-text.svg'
19+
import IMG_LOGO_ENS from '@cowprotocol/assets/images/logo-ens-icon.svg'
20+
import IMG_LOGO_FRAX_FINANCE from '@cowprotocol/assets/images/logo-frax.svg'
521
import IMG_LOGO_GNOSIS from '@cowprotocol/assets/images/logo-gnosis.svg'
6-
import IMG_LOGO_BALANCER from '@cowprotocol/assets/images/logo-balancer.svg'
7-
import IMG_LOGO_AURA from '@cowprotocol/assets/images/logo-aura.svg'
22+
import IMG_LOGO_INDEX_COOP from '@cowprotocol/assets/images/logo-index.svg'
823
import IMG_LOGO_KARPATKEY from '@cowprotocol/assets/images/logo-karpatkey.svg'
9-
import IMG_LOGO_SHAPESHIFT from '@cowprotocol/assets/images/logo-shapeshift.svg'
24+
import IMG_LOGO_LIDO from '@cowprotocol/assets/images/logo-lido.svg'
1025
import IMG_LOGO_MAKER from '@cowprotocol/assets/images/logo-maker.svg'
11-
import IMG_LOGO_SYNTHETIX from '@cowprotocol/assets/images/logo-synthetix.svg'
12-
import IMG_LOGO_ARAGON from '@cowprotocol/assets/images/logo-aragon.svg'
26+
import IMG_LOGO_NEXUS from '@cowprotocol/assets/images/logo-nexus-icon.svg'
1327
import IMG_LOGO_PLEASER_DAO from '@cowprotocol/assets/images/logo-pleasrdao.svg'
1428
import IMG_LOGO_POLYGON from '@cowprotocol/assets/images/logo-polygon.svg'
15-
import IMG_LOGO_INDEX_COOP from '@cowprotocol/assets/images/logo-index.svg'
16-
import IMG_LOGO_ALCHEMIX from '@cowprotocol/assets/images/logo-alchemix.svg'
17-
import IMG_LOGO_STAKE_DAO from '@cowprotocol/assets/images/logo-stakedao.svg'
1829
import IMG_LOGO_RHINO_FI from '@cowprotocol/assets/images/logo-rhino.svg'
30+
import IMG_LOGO_SAFE from '@cowprotocol/assets/images/logo-safe.svg'
31+
import IMG_LOGO_SHAPESHIFT from '@cowprotocol/assets/images/logo-shapeshift.svg'
32+
import IMG_LOGO_STAKE_DAO from '@cowprotocol/assets/images/logo-stakedao.svg'
33+
import IMG_LOGO_SYNTHETIX from '@cowprotocol/assets/images/logo-synthetix.svg'
1934
import IMG_LOGO_TELLER_FINANCE from '@cowprotocol/assets/images/logo-teller.svg'
20-
import IMG_LOGO_FRAX_FINANCE from '@cowprotocol/assets/images/logo-frax.svg'
21-
import IMG_GRANT_COLOR from '@cowprotocol/assets/images/image-grant-color.svg'
22-
import IMG_WIDGET from '@cowprotocol/assets/images/image-widget.svg'
23-
import IMG_DOCS from '@cowprotocol/assets/images/image-docs.svg'
24-
import IMG_MILKMAN from '@cowprotocol/assets/images/image-milkman.svg'
25-
import IMG_TWAP from '@cowprotocol/assets/images/image-twap.svg'
26-
import IMG_SURPLUS from '@cowprotocol/assets/images/image-surplus.svg'
27-
import IMG_HOOKS from '@cowprotocol/assets/images/image-hooks.svg'
28-
import IMG_PROGRAMMATIC_ORDERS from '@cowprotocol/assets/images/image-programmatic-orders.svg'
29-
import IMG_SMARTORDERS from '@cowprotocol/assets/images/image-smartorders.svg'
30-
import IMG_LOGO_NEXUS from '@cowprotocol/assets/images/logo-nexus-icon.svg'
31-
import IMG_LOGO_ENS from '@cowprotocol/assets/images/logo-ens-icon.svg'
32-
import IMG_LOGO_AAVE from '@cowprotocol/assets/images/logo-aave-icon.svg'
33-
import { CowFiCategory, toCowFiGtmEvent } from 'src/common/analytics/types'
34-
import { ReactNode } from 'react'
35-
import { useCowAnalytics } from '@cowprotocol/analytics'
3635
import { Color } from '@cowprotocol/ui'
3736

37+
import { CowFiCategory, toCowFiGtmEvent } from 'src/common/analytics/types'
38+
39+
import { Link } from '@/components/Link'
40+
3841
export interface FaqItem {
3942
question: string
4043
answer: ReactNode
4144
}
4245

46+
// eslint-disable-next-line max-lines-per-function
4347
export function useFaqData(): FaqItem[] {
48+
// eslint-disable-next-line unused-imports/no-unused-vars
4449
const analytics = useCowAnalytics()
4550

4651
return [
@@ -119,7 +124,7 @@ export function useFaqData(): FaqItem[] {
119124
question: 'How does CoW Protocol provide better prices for trades?',
120125
answer: (
121126
<>
122-
CoW Protocol's unique architecture allows it to give users comprehensive MEV protection as well as better
127+
CoW Protocol&#39;s unique architecture allows it to give users comprehensive MEV protection as well as better
123128
prices for their trades. While most other DEX aggregators simply compare quotes from various DEXs and execute
124129
orders against whichever DEX is lowest at the time of quoting, CoW Protocol seeks to find the best execution
125130
price.
@@ -211,7 +216,7 @@ export function useFaqData(): FaqItem[] {
211216
</Link>{' '}
212217
is a signed message that a user submits through their wallet which specifies an action they want to take —
213218
such as trading a token, minting an NFT, entering or exiting a LP position etc. These intents can then be
214-
executed by third parties, such as CoW Protocol's{' '}
219+
executed by third parties, such as CoW Protocol&#39;s{' '}
215220
<Link
216221
href="https://docs.cow.fi/cow-protocol/concepts/introduction/solvers"
217222
external

apps/cowswap-frontend/src/common/updaters/LpBalancesAndAllowancesUpdater.tsx

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { atom, useSetAtom } from 'jotai'
2-
import { useEffect, useMemo, useState } from 'react'
2+
import { ReactNode, useEffect, useMemo, useState } from 'react'
33

4-
import { usePersistBalancesAndAllowances } from '@cowprotocol/balances-and-allowances'
4+
import { BalancesRpcCallUpdater } from '@cowprotocol/balances-and-allowances'
55
import { SWR_NO_REFRESH_OPTIONS } from '@cowprotocol/common-const'
66
import type { SupportedChainId } from '@cowprotocol/cow-sdk'
77
import { LP_TOKEN_LIST_CATEGORIES, useAllLpTokens } from '@cowprotocol/tokens'
@@ -23,25 +23,18 @@ export interface BalancesAndAllowancesUpdaterProps {
2323
chainId: SupportedChainId
2424
enablePolling: boolean
2525
}
26-
// TODO: Add proper return type annotation
27-
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
28-
export function LpBalancesAndAllowancesUpdater({ account, chainId, enablePolling }: BalancesAndAllowancesUpdaterProps) {
26+
27+
export function LpBalancesAndAllowancesUpdater({
28+
account,
29+
chainId,
30+
enablePolling,
31+
}: BalancesAndAllowancesUpdaterProps): ReactNode {
2932
const allLpTokens = useAllLpTokens(LP_TOKEN_LIST_CATEGORIES)
3033
const [isUpdaterPaused, setIsUpdaterPaused] = useState(true)
3134
const setAreLpBalancesLoaded = useSetAtom(areLpBalancesLoadedAtom)
3235

3336
const lpTokenAddresses = useMemo(() => allLpTokens.map((token) => token.address), [allLpTokens])
3437

35-
usePersistBalancesAndAllowances({
36-
account: isUpdaterPaused ? undefined : account,
37-
chainId,
38-
tokenAddresses: lpTokenAddresses,
39-
setLoadingState: false,
40-
balancesSwrConfig: enablePolling ? LP_BALANCES_SWR_CONFIG : SWR_NO_REFRESH_OPTIONS,
41-
multicallOptions: LP_MULTICALL_OPTIONS,
42-
onBalancesLoaded: setAreLpBalancesLoaded,
43-
})
44-
4538
useEffect(() => {
4639
if (!enablePolling) return
4740

@@ -56,5 +49,17 @@ export function LpBalancesAndAllowancesUpdater({ account, chainId, enablePolling
5649
setAreLpBalancesLoaded(false)
5750
}, [account, setAreLpBalancesLoaded])
5851

59-
return null
52+
return (
53+
<>
54+
<BalancesRpcCallUpdater
55+
chainId={chainId}
56+
tokenAddresses={lpTokenAddresses}
57+
balancesSwrConfig={enablePolling ? LP_BALANCES_SWR_CONFIG : SWR_NO_REFRESH_OPTIONS}
58+
account={isUpdaterPaused ? undefined : account}
59+
setLoadingState={false}
60+
onBalancesLoaded={setAreLpBalancesLoaded}
61+
multicallOptions={LP_MULTICALL_OPTIONS}
62+
/>
63+
</>
64+
)
6065
}

apps/cowswap-frontend/src/entities/bridgeProvider/bridgeProviderAtom.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { atom } from 'jotai'
2+
3+
import { isProd } from '@cowprotocol/common-utils'
4+
5+
import { bridgeProviders } from 'tradingSdk/bridgingSdk'
6+
7+
export const bridgeProvidersAtom = atom(isProd ? [bridgeProviders[0]] : bridgeProviders)

apps/cowswap-frontend/src/entities/bridgeProvider/useBridgeProvider.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { useAtomValue } from 'jotai'
2+
3+
import { BridgeProvider, BridgeQuoteResult } from '@cowprotocol/sdk-bridging'
4+
5+
import { bridgeProvidersAtom } from './bridgeProvidersAtom'
6+
7+
export function useBridgeProviders(): BridgeProvider<BridgeQuoteResult>[] {
8+
return useAtomValue(bridgeProvidersAtom)
9+
}

0 commit comments

Comments
 (0)