Skip to content

Commit d1c367c

Browse files
authored
Merge pull request #1656 from 0xoscario/feat/v4
update: core logic for V4 (algebra-integral)
2 parents d58886f + b85b4b9 commit d1c367c

Some content is hidden

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

72 files changed

+3924
-3504
lines changed

.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ REACT_APP_COINGECKO_IMMUTABLE_URL="https://tokens.coingecko.com/immutable/all.js
1414
REACT_APP_COINGECKO_DOGE_URL="https://tokens.coingecko.com/dogechain/all.json"
1515
REACT_APP_COINGECKO_ASTAR_URL="https://tokens.coingecko.com/astar/all.json"
1616
REACT_APP_COINGECKO_KAVA_URL="https://tokens.coingecko.com/kava/all.json"
17+
REACT_APP_COINGECKO_SONEIUM_URL="https://tokens.coingecko.com/soneium/all.json"
1718
REACT_APP_COINGECKO_ETHEREUM_URL="https://tokens.coingecko.com/ethereum/all.json"
1819

1920
REACT_APP_STAKING_LIST_DEFAULT_URL="https://unpkg.com/quickswap-default-staking-list-address@latest/build/quickswap-default.lpfarms.json"

public/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@
140140
"crossChain": "Cross Chain",
141141
"marketV2": "Market (V2)",
142142
"marketV3": "Market (V3)",
143+
"marketV4": "Market (V4)",
143144
"limit": "Limit",
144145
"twap": "TWAP",
145146
"proMode": "Pro Mode",

src/components/Header/Header.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ const Header: React.FC<{ onUpdateNewsletter: (val: boolean) => void }> = ({
8787
const showPool = config['pools']['available'];
8888
const showFarm = config['farm']['available'];
8989
const showLair = config['lair']['available'];
90+
const showBridge = config['bridge']['available'];
9091
const showConvert = config['convert']['available'];
9192
const showAnalytics = config['analytics']['available'];
9293
const showLending = config['lending']['available'];
@@ -260,7 +261,7 @@ const Header: React.FC<{ onUpdateNewsletter: (val: boolean) => void }> = ({
260261
});
261262
}
262263

263-
if (isSupportedNetwork)
264+
if (showBridge && isSupportedNetwork)
264265
menuItems.push({
265266
link: '/bridge',
266267
text: t('Bridge'),

src/components/Toggle/VersionToggle.tsx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,21 @@ import { Box } from '@material-ui/core';
44
import { useTranslation } from 'react-i18next';
55
import { useHistory, useParams } from 'react-router-dom';
66
import './index.scss';
7-
import { useIsLpLock, useIsV2 } from 'state/application/hooks';
7+
import { useIsLpLock, useIsV2, useIsV4 } from 'state/application/hooks';
88
import { NEW_QUICK_ADDRESS } from 'constants/v3/addresses';
99
import { useActiveWeb3React, useAnalyticsVersion } from 'hooks';
1010
import { getConfig } from 'config/index';
1111

1212
const VersionToggle: React.FC = () => {
1313
const { t } = useTranslation();
14-
const { isV2, updateIsV2 } = useIsV2();
14+
const { updateIsV2 } = useIsV2();
15+
const { updateIsV4 } = useIsV4();
1516
const { isLpLock, updateIsLpLock } = useIsLpLock();
1617
const { chainId } = useActiveWeb3React();
1718
const config = getConfig(chainId);
1819
const v2Available = config['v2'];
1920
const v3Available = config['v3'];
21+
const v4Available = config['v4'];
2022
const lHAnalyticsAvailable = config['analytics']['liquidityHub'];
2123
const singleTokenEnabled = config['ichi']['available'];
2224
const lpLockEnabled = config['lpLock']['available'];
@@ -35,6 +37,7 @@ const VersionToggle: React.FC = () => {
3537
useEffect(() => {
3638
updateIsV2(version === 'v2');
3739
updateIsLpLock(version === 'lpLocker');
40+
updateIsV4(version === 'v4');
3841
// eslint-disable-next-line react-hooks/exhaustive-deps
3942
}, [version]);
4043

@@ -90,6 +93,18 @@ const VersionToggle: React.FC = () => {
9093
</Box>
9194
)}
9295

96+
{v4Available && (
97+
<Box
98+
className={version === 'v4' ? 'version-toggle-active' : ''}
99+
onClick={() => {
100+
redirectWithVersion('v4');
101+
}}
102+
>
103+
<small style={{ lineHeight: 5.85, fontSize: '13px' }}>
104+
{t('V4')}
105+
</small>
106+
</Box>
107+
)}
93108
{/* {isPoolPage && singleTokenEnabled && (
94109
<Box
95110
className={version === 'singleToken' ? 'version-toggle-active' : ''}

src/components/v3/IncreaseLiquidityV3/index.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Currency, CurrencyAmount, Percent } from '@uniswap/sdk-core';
44
import {
55
useUNIV3NFTPositionManagerContract,
66
useV3NFTPositionManagerContract,
7+
useV4NFTPositionManagerContract,
78
} from 'hooks/useContract';
89
import TransactionConfirmationModal, {
910
ConfirmationModalContent,
@@ -24,13 +25,15 @@ import {
2425
} from 'state/mint/v3/hooks';
2526
import { useDerivedPositionInfo } from 'hooks/v3/useDerivedPositionInfo';
2627
import { NonfungiblePositionManager as NonFunPosMan } from 'v3lib/nonfungiblePositionManager';
28+
import { NonfungiblePositionV4Manager as NonFunPosV4Man } from 'v3lib/nonfungiblePositionV4Manager';
2729
import { UniV3NonfungiblePositionManager as UniV3NonFunPosMan } from 'v3lib/uniV3NonfungiblePositionManager';
2830
import './index.scss';
2931
import ReactGA from 'react-ga';
3032
import { WrappedCurrency } from 'models/types';
3133
import { ApprovalState, useApproveCallback } from 'hooks/useV3ApproveCallback';
3234
import {
3335
NONFUNGIBLE_POSITION_MANAGER_ADDRESSES,
36+
NONFUNGIBLE_POSITION_V4_MANAGER_ADDRESSES,
3437
UNI_NFT_POSITION_MANAGER_ADDRESS,
3538
} from 'constants/v3/addresses';
3639
import { useUSDCValue } from 'hooks/v3/useUSDCPrice';
@@ -82,10 +85,14 @@ export default function IncreaseLiquidityV3({
8285
: currencyB;
8386

8487
const algebrapositionManager = useV3NFTPositionManagerContract();
88+
const algebrapositionV4Manager = useV4NFTPositionManagerContract();
8589
const uniPositionManager = useUNIV3NFTPositionManagerContract();
8690
const positionManager = positionDetails.isUni
8791
? uniPositionManager
92+
: positionDetails.isV4
93+
? algebrapositionV4Manager
8894
: algebrapositionManager;
95+
8996
const tokenId = positionDetails.tokenId.toString();
9097
const addTransaction = useTransactionAdder();
9198
const finalizedTransaction = useTransactionFinalizer();
@@ -121,7 +128,9 @@ export default function IncreaseLiquidityV3({
121128
if (positionDetails.isUni) {
122129
return UNI_NFT_POSITION_MANAGER_ADDRESS[chainId];
123130
}
124-
return NONFUNGIBLE_POSITION_MANAGER_ADDRESSES[chainId];
131+
return positionDetails.isV4
132+
? NONFUNGIBLE_POSITION_V4_MANAGER_ADDRESSES[chainId]
133+
: NONFUNGIBLE_POSITION_MANAGER_ADDRESSES[chainId];
125134
}, [chainId, positionDetails]);
126135

127136
const { onFieldAInput, onFieldBInput } = useV3MintActionHandlers(noLiquidity);
@@ -215,6 +224,8 @@ export default function IncreaseLiquidityV3({
215224

216225
const PositionManager = positionDetails.isUni
217226
? UniV3NonFunPosMan
227+
: positionDetails.isV4
228+
? NonFunPosV4Man
218229
: NonFunPosMan;
219230
const { calldata, value } = tokenId
220231
? PositionManager.addCallParameters(position, {

src/components/v3/RemoveLiquidityV3/index.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import usePrevious from 'hooks/usePrevious';
3434
import useDebouncedChangeHandler from 'utils/useDebouncedChangeHandler';
3535
import { WMATIC_EXTENDED } from 'constants/v3/addresses';
3636
import { NonfungiblePositionManager as AlgebraNonfungiblePositionManager } from 'v3lib/nonfungiblePositionManager';
37+
import { NonfungiblePositionV4Manager as AlgebraNonfungiblePositionV4Manager } from 'v3lib/nonfungiblePositionV4Manager';
3738
import { UniV3NonfungiblePositionManager } from 'v3lib/uniV3NonfungiblePositionManager';
3839
import { WrappedCurrency } from 'models/types';
3940
import RangeBadge from 'components/v3/Badge/RangeBadge';
@@ -145,6 +146,8 @@ export default function RemoveLiquidityV3({
145146

146147
const NonfungiblePositionManager = position.isUni
147148
? UniV3NonfungiblePositionManager
149+
: position.isV4
150+
? AlgebraNonfungiblePositionV4Manager
148151
: AlgebraNonfungiblePositionManager;
149152
const { calldata, value } = NonfungiblePositionManager.removeCallParameters(
150153
positionSDK,
@@ -234,6 +237,7 @@ export default function RemoveLiquidityV3({
234237
liquidityPercentage,
235238
library,
236239
position.isUni,
240+
position.isV4,
237241
tokenId,
238242
allowedSlippagePercent,
239243
t,

src/config/astarzkevm.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"v4": false,
23
"v3": true,
34
"v2": false,
45
"rpc": "https://rpc.startale.com/astar-zkevm",
@@ -16,6 +17,7 @@
1617
"decimals": 18
1718
},
1819
"bridge": {
20+
"available": true,
1921
"bridgeCoverImg": "/bridge/astar.webp",
2022
"supportedChains": ["/bridge/eth.svg", "/bridge/astar.webp"]
2123
},

src/config/dogechain.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"v4": false,
23
"v3": true,
34
"v2": true,
45
"rpc": "https://rpc.dogechain.dog",
@@ -16,6 +17,7 @@
1617
"decimals": 18
1718
},
1819
"bridge": {
20+
"available": true,
1921
"bridgeCoverImg": "/bridge/dogchain_cover_img.webp",
2022
"supportedChains": ["/bridge/dog_coin.webp"],
2123
"isBigCoverImg": true

src/config/ethereum.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"v4": false,
23
"v3": false,
34
"v2": false,
45
"rpc": "https://mainnet.infura.io/v3/",
@@ -13,6 +14,9 @@
1314
"symbol": "ETH",
1415
"decimals": 18
1516
},
17+
"bridge": {
18+
"available": true
19+
},
1620
"swap": {
1721
"available": true,
1822
"bestTrade": true,

src/config/imx.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"v4": false,
23
"v3": true,
34
"v2": false,
45
"rpc": "https://rpc.immutable.com",
@@ -16,6 +17,7 @@
1617
"decimals": 18
1718
},
1819
"bridge": {
20+
"available": true,
1921
"bridgeCoverImg": "/bridge/immutable_cover_img.svg",
2022
"supportedChains": ["/bridge/eth.svg", "/bridge/zkevm.webp"]
2123
},

0 commit comments

Comments
 (0)