Skip to content

Commit 4f900b5

Browse files
committed
using latest cow version, contracts and limit orders only for cow
1 parent 381a1ff commit 4f900b5

File tree

5 files changed

+92
-43
lines changed

5 files changed

+92
-43
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"@amplitude/analytics-browser": "^2.13.0",
3838
"@cowprotocol/sdk-app-data": "4.1.6",
3939
"@cowprotocol/cow-sdk": "7.1.1",
40-
"@cowprotocol/sdk-flash-loans": "1.3.0",
40+
"@cowprotocol/sdk-flash-loans": "1.5.0",
4141
"@cowprotocol/sdk-viem-adapter": "0.2.0",
4242
"@bgd-labs/aave-address-book": "^4.36.0",
4343
"@emotion/cache": "11.10.3",

src/components/transactions/Swap/constants/cow.constants.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,51 @@
11
import { CowEnv, OrderClass, SupportedChainId } from '@cowprotocol/cow-sdk';
2+
import { AaveFlashLoanType } from '@cowprotocol/sdk-flash-loans';
23

34
import { getAssetGroup } from '../helpers/shared/assetCorrelation.helpers';
45
import { OrderType, SwapType } from '../types';
56

7+
export const HOOK_ADAPTER_PER_TYPE: Record<AaveFlashLoanType, Record<SupportedChainId, string>> = {
8+
[AaveFlashLoanType.CollateralSwap]: {
9+
[SupportedChainId.MAINNET]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
10+
[SupportedChainId.GNOSIS_CHAIN]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
11+
[SupportedChainId.ARBITRUM_ONE]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
12+
[SupportedChainId.AVALANCHE]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
13+
[SupportedChainId.BNB]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
14+
[SupportedChainId.POLYGON]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
15+
[SupportedChainId.SEPOLIA]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
16+
[SupportedChainId.BASE]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
17+
[SupportedChainId.LENS]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
18+
[SupportedChainId.LINEA]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
19+
[SupportedChainId.PLASMA]: '0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F',
20+
},
21+
[AaveFlashLoanType.DebtSwap]: {
22+
[SupportedChainId.MAINNET]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
23+
[SupportedChainId.GNOSIS_CHAIN]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
24+
[SupportedChainId.ARBITRUM_ONE]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
25+
[SupportedChainId.AVALANCHE]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
26+
[SupportedChainId.BNB]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
27+
[SupportedChainId.POLYGON]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
28+
[SupportedChainId.SEPOLIA]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
29+
[SupportedChainId.BASE]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
30+
[SupportedChainId.LENS]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
31+
[SupportedChainId.LINEA]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
32+
[SupportedChainId.PLASMA]: '0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1',
33+
},
34+
[AaveFlashLoanType.RepayCollateral]: {
35+
[SupportedChainId.MAINNET]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
36+
[SupportedChainId.GNOSIS_CHAIN]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
37+
[SupportedChainId.ARBITRUM_ONE]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
38+
[SupportedChainId.AVALANCHE]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
39+
[SupportedChainId.BNB]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
40+
[SupportedChainId.POLYGON]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
41+
[SupportedChainId.SEPOLIA]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
42+
[SupportedChainId.BASE]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
43+
[SupportedChainId.LENS]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
44+
[SupportedChainId.LINEA]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
45+
[SupportedChainId.PLASMA]: '0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F',
46+
},
47+
};
48+
649
export const COW_UNSUPPORTED_ASSETS: Partial<
750
Record<SwapType | 'ALL', Partial<Record<SupportedChainId, string[] | 'ALL'>>>
851
> = {

src/components/transactions/Swap/helpers/cow/env.helpers.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { ViemAdapter } from '@cowprotocol/sdk-viem-adapter';
44
import { wagmiConfig } from 'src/ui-config/wagmiConfig';
55
import { getPublicClient, getWalletClient } from 'wagmi/actions';
66

7+
import { HOOK_ADAPTER_PER_TYPE } from '../../constants/cow.constants';
78
import { APP_CODE_PER_SWAP_TYPE } from '../../constants/shared.constants';
89
import { SwapState } from '../../types';
910
import { COW_ENV } from './orders.helpers';
@@ -36,7 +37,9 @@ export const getCowTradingSdkByChainIdAndAppCode = async (
3637

3738
export const getCowFlashLoanSdk = async (chainId: number) => {
3839
setGlobalAdapter(await getCowAdapter(chainId));
39-
return new AaveCollateralSwapSdk();
40+
return new AaveCollateralSwapSdk({
41+
hookAdapterPerType: HOOK_ADAPTER_PER_TYPE,
42+
});
4043
};
4144

4245
export const getCowAdapter = async (chainId: number) => {

src/components/transactions/Swap/modals/request/BaseSwapModalContent.tsx

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
SwapDefaultParams,
2525
swapDefaultState,
2626
SwapParams,
27+
SwapProvider,
2728
SwapState,
2829
swapStateFromParamsOrDefault,
2930
} from '../../types';
@@ -132,43 +133,45 @@ export const BaseSwapModalContent = ({
132133
<>
133134
{params.showTitle && <SwapModalTitle params={params} state={state} />}
134135

135-
{params.allowLimitOrders && (
136-
<OrderTypeSelector
137-
switchType={state.orderType}
138-
limitsOrderButtonBlocked={state.limitsOrderButtonBlocked ?? false}
139-
setSwitchType={(orderType: OrderType) => {
140-
const switchingFromLimitToMarket =
141-
state.orderType === OrderType.LIMIT && orderType === OrderType.MARKET;
142-
const switchingFromMarketToLimit =
143-
state.orderType === OrderType.MARKET && orderType === OrderType.LIMIT;
144-
145-
setState({
146-
orderType,
147-
actionsLoading: false,
148-
...(switchingFromLimitToMarket || switchingFromMarketToLimit
149-
? {
150-
inputAmount: '',
151-
debouncedInputAmount: '',
152-
inputAmountUSD: '',
153-
outputAmount: '',
154-
debouncedOutputAmount: '',
155-
outputAmountUSD: '',
156-
swapRate: undefined,
157-
error: undefined,
158-
isLiquidatable: false,
159-
warnings: [],
160-
quoteRefreshPaused: false,
161-
quoteLastUpdatedAt: undefined,
162-
quoteTimerPausedAt: null,
163-
expiry: Expiry.TEN_MINUTES,
164-
quoteTimerPausedAccumMs: 0,
165-
}
166-
: {}),
167-
});
168-
trackingHandlers.trackInputChange(SwapInputChanges.ORDER_TYPE, orderType.toString());
169-
}}
170-
/>
171-
)}
136+
{params.allowLimitOrders &&
137+
state.provider === SwapProvider.COW_PROTOCOL &&
138+
state.isSwapFlowSelected && (
139+
<OrderTypeSelector
140+
switchType={state.orderType}
141+
limitsOrderButtonBlocked={state.limitsOrderButtonBlocked ?? false}
142+
setSwitchType={(orderType: OrderType) => {
143+
const switchingFromLimitToMarket =
144+
state.orderType === OrderType.LIMIT && orderType === OrderType.MARKET;
145+
const switchingFromMarketToLimit =
146+
state.orderType === OrderType.MARKET && orderType === OrderType.LIMIT;
147+
148+
setState({
149+
orderType,
150+
actionsLoading: false,
151+
...(switchingFromLimitToMarket || switchingFromMarketToLimit
152+
? {
153+
inputAmount: '',
154+
debouncedInputAmount: '',
155+
inputAmountUSD: '',
156+
outputAmount: '',
157+
debouncedOutputAmount: '',
158+
outputAmountUSD: '',
159+
swapRate: undefined,
160+
error: undefined,
161+
isLiquidatable: false,
162+
warnings: [],
163+
quoteRefreshPaused: false,
164+
quoteLastUpdatedAt: undefined,
165+
quoteTimerPausedAt: null,
166+
expiry: Expiry.TEN_MINUTES,
167+
quoteTimerPausedAccumMs: 0,
168+
}
169+
: {}),
170+
});
171+
trackingHandlers.trackInputChange(SwapInputChanges.ORDER_TYPE, orderType.toString());
172+
}}
173+
/>
174+
)}
172175

173176
<SwapPreInputWarnings
174177
params={params}

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1426,10 +1426,10 @@
14261426
"@cowprotocol/sdk-common" "0.3.0"
14271427
"@cowprotocol/sdk-config" "0.3.0"
14281428

1429-
"@cowprotocol/sdk-flash-loans@1.3.0":
1430-
version "1.3.0"
1431-
resolved "https://registry.yarnpkg.com/@cowprotocol/sdk-flash-loans/-/sdk-flash-loans-1.3.0.tgz#596ca419d05374fbd626996ea16ed2a561a79fad"
1432-
integrity sha512-RMK76mYJ4AXT/WxliCe/VU6E7R1pMmDAJIefOSpxZqLir8FsWptoRKj5RXmF1S6GHKSrug22amXFuU4coaG5Ww==
1429+
"@cowprotocol/sdk-flash-loans@1.5.0":
1430+
version "1.5.0"
1431+
resolved "https://registry.yarnpkg.com/@cowprotocol/sdk-flash-loans/-/sdk-flash-loans-1.5.0.tgz#c3f4126c5aba99d7691e93b2388d54ccafd74e92"
1432+
integrity sha512-AmKABf0Vwam0RLWoNLHZekE3zrSey5ZN7KXEZNTMNvgISBb/XAuUZCivpsKMfPZTa11Lv0k/vSaQdIKFV3/zLA==
14331433
dependencies:
14341434
"@cowprotocol/sdk-app-data" "4.1.6"
14351435
"@cowprotocol/sdk-common" "0.3.0"

0 commit comments

Comments
 (0)