From 8a1b5732493aee2fe1afdf7fa2ca465b26c39fc7 Mon Sep 17 00:00:00 2001 From: Rorry Date: Mon, 25 Mar 2024 10:32:06 -0300 Subject: [PATCH 1/2] docs(SWA-138): update docs url (#1917) * feat(SWA-146): add Openocean support (#1913) * docs(SWA-138): update footer links to docs URLs --------- Co-authored-by: Berteotti --- package.json | 2 +- src/assets/images/openocean-logo.png | Bin 0 -> 48795 bytes src/constants/index.tsx | 18 ++++++++++++++++-- src/constants/urls.ts | 5 +++++ src/hooks/useSwapCallback.ts | 5 +++-- src/lib/eco-router/api.ts | 11 +++++++++++ src/lib/eco-router/platforms.ts | 1 + src/utils/prices.ts | 4 +++- src/utils/uiConstants.tsx | 8 ++++---- yarn.lock | 10 +++++----- 10 files changed, 49 insertions(+), 15 deletions(-) create mode 100644 src/assets/images/openocean-logo.png diff --git a/package.json b/package.json index 7ab6d3f8d..04e1474e3 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@reduxjs/toolkit": "^1.9.5", "@swapr/core": "^0.3.19", "@swapr/periphery": "^0.3.22", - "@swapr/sdk": "1.11.3", + "@swapr/sdk": "1.11.4", "@tanstack/react-query": "4.24.6", "@uniswap/token-lists": "^1.0.0-beta.27", "@uniswap/v3-periphery": "1.4.1", diff --git a/src/assets/images/openocean-logo.png b/src/assets/images/openocean-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c4eff39836c0574c621fb289b651c8bf85b36fdb GIT binary patch literal 48795 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%0DlQn;z)Q@?JFJo2W0BhM?gOY@tWw`*e0 z(e;Sps63I-fUi!it6LvAw0~p~;lF&y>9$!OV-?cq@SJkwDEEuPlfDMZB2mm$r`GF6 zk}H;J=zCUs(3azzs%3{pU~ezHOs&G&jEkQ3kBJ8PkZ#bG#?v$K27_;oB0;CT_jPGw zy|7Nw(Bd$6)5~w0EJeI_%Kw@^Qte9n9O_BGLOfZ;>d=Q(NMd#4 zA#7B2?Y-?WRO+O|ktqcQD%7fQUs)t{A%&cwXhKjsBm$EkXv2#AN21Fk zHLY^BxjlC$KJf5OZT@Mx$D^E5y>XBcjO0xpA*w36X4mt;JJ4LbG1M9+&Kb2=okY$~ z(QT){SY^Fubp&<3wL&LNC#%?g`$Tn!$|y|y2w9LAe2T$g9Z2IvJB31&uapj8MADj$ z{E^twq^+gPN}$wR6MjQ)9`txXxdqlx8ZYVF8F~OJ9>H!NkU-PIW}x3ix-U`mzyF3Aq>U%XwDg@_DB-u%bpJpF;2tWkzn?`UKkVii zPT5rKvdR))Y5mpca9*gAQg35t;Uz?8&ffpvHjaL27WnFU7GB>}e1l0Rgj|p{&5G64 zYExqz`8E2=fJMxjUDm|Mm3N`}Qoj#$vmP$$RZx}}V=P?u{th!SknA6q;WWm_t+cXN z;&JaOXw2MJ!Maw5aDn1q#I#y=LbpL}K}qqe-XEmgtp{p!-1_PjC5@dtKu+QEs^69p zt2v8|43^sd&9?b9lrwrby`Qg?ZerGK`rY_x-kr`y(~ZXavDS^7255_^OlkeHw@E|| ziygw@W`4)%&03mL=txW#gA~S$uorVX;m+(Q@&~Q1RJ9|hL=qRkELF%>QC-}8KnXH* zP+(R6%q0KRibzA}fTT;GAC4gir3l$($<0j22o9%pC>F)I7w>H~!unvvq|vs$J}5WZ z`)zB*oni#)kqqd9k1ZANQfvrn+7f678>32%F}a?TS7d%~YI7qR_R^1YJBUz61Q{q* zTeyPRX&Ied8=y82;*xnC?=E#+7JcYF>xu@y z2uiRFyhbWJ!h#nhg@}7(VV>E$O|D!Deefu;R? ze5_IJ%Y=5%W^cXBUVC#7F&AlrcZ=!Mr6X!;wm8+=-fMY<;vu`&W*KPE_CgZ+$)KIbt!@bFL?R8eLXcd6~403 z*EL##_p+X|%+BVEHDfRG)qG#{r1-2_^8FgYKg+#$id|<`me*yn7;*k739f8v9cQcD z;6VaySG^ZIik%;C5?-*Dp||C&F(KGHTCaO>S~bCB+M=_J)1|&*B95*NV5@T&IkE%( zhrz, [RoutablePlatform.SWAPR_V3.name]: Swapr v3, [RoutablePlatform.SUSHISWAP.name]: sushiswap, + [RoutablePlatform.OPENOCEAN.name]: openocean, } export const ChainLabel: any = { diff --git a/src/constants/urls.ts b/src/constants/urls.ts index 79c3da403..5a34cfb28 100644 --- a/src/constants/urls.ts +++ b/src/constants/urls.ts @@ -2,3 +2,8 @@ export const DISCORD_INVITE_LINK = process.env.DISCORD_INVITE_URL ?? 'https://di export const LIQUIDITY_V3_LINK = process.env.LIQUIDITY_V3_URL ?? 'https://v3.swapr.eth.limo/' export const LIQUIDITY_V3_INFO_POOLS_LINK = `${LIQUIDITY_V3_LINK}#/info/pools` export const STACKLY_URL = process.env.REACT_APP_STACKLY_URL ?? 'https://www.stackly.app/' +export const SWAPR_DOCS_BASE_URL = 'https://swapr-eth.gitbook.io/swapr' +export const SWAPR_DOCS_PATH_URLS = { + FAQ: '/faq', + PROJECT_INFO_BRANDING: '/project-information/branding-and-logos', +} diff --git a/src/hooks/useSwapCallback.ts b/src/hooks/useSwapCallback.ts index 40c90d12e..ca980f9a9 100644 --- a/src/hooks/useSwapCallback.ts +++ b/src/hooks/useSwapCallback.ts @@ -5,6 +5,7 @@ import { CoWTrade, CurveTrade, OneInchTrade, + OpenoceanTrade, Trade, TradeType, UniswapTrade, @@ -84,13 +85,13 @@ export function useSwapsCallArguments( } const swapMethods = [] - // Curve, Uniswap v3, ZeroX if ( trade instanceof CurveTrade || trade instanceof UniswapTrade || trade instanceof ZeroXTrade || trade instanceof SwaprV3Trade || - trade instanceof SushiswapTrade + trade instanceof SushiswapTrade || + trade instanceof OpenoceanTrade ) { return [ { diff --git a/src/lib/eco-router/api.ts b/src/lib/eco-router/api.ts index 74ea3b599..ab468173d 100644 --- a/src/lib/eco-router/api.ts +++ b/src/lib/eco-router/api.ts @@ -17,6 +17,7 @@ import { ZeroXTrade, SwaprV3Trade, SushiswapTrade, + OpenoceanTrade, } from '@swapr/sdk' // Low-level API for Uniswap V2 @@ -136,6 +137,16 @@ export async function getExactIn( tradeType: TradeType.EXACT_INPUT, }) } + // Openocean + if (platform.name === RoutablePlatform.OPENOCEAN.name) { + return OpenoceanTrade.getQuote({ + quoteCurrency: currencyOut, + amount: currencyAmountIn, + maximumSlippage, + recipient: receiver, + tradeType: TradeType.EXACT_INPUT, + }) + } // Curve if (platform.name === RoutablePlatform.CURVE.name) { return CurveTrade.bestTradeExactIn({ diff --git a/src/lib/eco-router/platforms.ts b/src/lib/eco-router/platforms.ts index 894e83530..c24834418 100644 --- a/src/lib/eco-router/platforms.ts +++ b/src/lib/eco-router/platforms.ts @@ -39,5 +39,6 @@ export function getSupportedPlatformsByChainId(chainId: ChainId) { RoutablePlatform.VELODROME, RoutablePlatform.SWAPR_V3, RoutablePlatform.SUSHISWAP, + RoutablePlatform.OPENOCEAN, ].filter(platform => platform.supportsChain(chainId)) } diff --git a/src/utils/prices.ts b/src/utils/prices.ts index 062885266..74a3f91a3 100644 --- a/src/utils/prices.ts +++ b/src/utils/prices.ts @@ -21,6 +21,7 @@ import { ZeroXTrade, SwaprV3Trade, SushiswapTrade, + OpenoceanTrade, } from '@swapr/sdk' import _Decimal from 'decimal.js-light' @@ -77,7 +78,8 @@ export function computeTradePriceBreakdown(trade?: Trade): TradePriceBreakdown { trade instanceof UniswapTrade || trade instanceof ZeroXTrade || trade instanceof SwaprV3Trade || - trade instanceof SushiswapTrade + trade instanceof SushiswapTrade || + trade instanceof OpenoceanTrade ) { return trade.fee } else if (trade instanceof CurveTrade || trade instanceof VelodromeTrade || trade instanceof OneInchTrade) { diff --git a/src/utils/uiConstants.tsx b/src/utils/uiConstants.tsx index 996ffc035..6b7db0b9d 100644 --- a/src/utils/uiConstants.tsx +++ b/src/utils/uiConstants.tsx @@ -1,4 +1,4 @@ -import { DISCORD_INVITE_LINK } from '../constants' +import { DISCORD_INVITE_LINK, SWAPR_DOCS_BASE_URL, SWAPR_DOCS_PATH_URLS } from '../constants' import BNBLogo from './../assets/images/BNBLogo.svg' import ArbitrumLogo from './../assets/images/logo-Arbitrum.svg' @@ -25,7 +25,7 @@ import RoutingZerox from './../assets/images/routing-Zerox.svg' export const mainNavigation = [ { label: 'Documentation', - href: 'http://dxdocs.eth.limo.ipns.localhost:8080/docs/Products/swapr/', + href: SWAPR_DOCS_BASE_URL, }, { label: 'Stats', @@ -160,7 +160,7 @@ export const FooterContent = { footerLinks: [ { label: 'FAQ', - href: 'https://dxdocs.eth.limo/docs/Products/swapr/faq/', + href: `${SWAPR_DOCS_BASE_URL}${SWAPR_DOCS_PATH_URLS.FAQ}`, }, { label: 'Blog', @@ -172,7 +172,7 @@ export const FooterContent = { }, { label: 'Brand Assets', - href: 'https://dxdocs.eth.limo/docs/BrandingAssets/#swapr-brand-assets', + href: `${SWAPR_DOCS_BASE_URL}${SWAPR_DOCS_PATH_URLS.PROJECT_INFO_BRANDING}`, }, ], }, diff --git a/yarn.lock b/yarn.lock index acd65225b..9b14e10a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8429,7 +8429,7 @@ __metadata: "@storybook/testing-library": 0.1.0 "@swapr/core": ^0.3.19 "@swapr/periphery": ^0.3.22 - "@swapr/sdk": 1.11.3 + "@swapr/sdk": 1.11.4 "@synthetixio/synpress": ^2.3.3 "@tanstack/react-query": 4.24.6 "@testing-library/cypress": ^9.0.0 @@ -8570,9 +8570,9 @@ __metadata: languageName: node linkType: hard -"@swapr/sdk@npm:1.11.3": - version: 1.11.3 - resolution: "@swapr/sdk@npm:1.11.3" +"@swapr/sdk@npm:1.11.4": + version: 1.11.4 + resolution: "@swapr/sdk@npm:1.11.4" dependencies: "@cowprotocol/cow-sdk": ^1.0.2-RC.0 "@ethersproject/abi": ^5.6.4 @@ -8603,7 +8603,7 @@ __metadata: tslib: ^2.3.1 peerDependencies: ethers: ^5.4.0 - checksum: 14eae4662ce191d30e6749b6be6514545a9965e22b0c00a138821a265599791fce9055dbdbc8dd75eff8ffef6b04274eb1ad588ec66d89abee0b8db4ead23e10 + checksum: 2ae6bb18dec24ad0ef91ab968335e288d76beb756d62b21e013a25210397cc4ee5006e17b20d4279291c4371f06f23e6baf9bbcd1ac7fc8b979b1eb88888b140 languageName: node linkType: hard From 05a650a8902a7d39eeffa315c3fa64c45c84662b Mon Sep 17 00:00:00 2001 From: Rorry Date: Mon, 25 Mar 2024 11:44:34 -0300 Subject: [PATCH 2/2] release: 1.0.0-beta.22.3 (#1918) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 04e1474e3..597ce6f59 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@swapr/frontend", - "version": "1.0.0-beta.22.2", + "version": "1.0.0-beta.22.3", "private": true, "description": "DXswap Decentralized Application", "license": "GPL-3.0-or-later",