ci(release): publish latest release

parent b18fcc0c
IPFS hash of the deployment: IPFS hash of the deployment:
- CIDv0: `QmbKgKkW8gPc6Fc4CCbruxzdbgE968pGuSMwaFPPS57kdg` - CIDv0: `QmWXkZCZCVea5C5dkKAgH2jR3a8LWCFmJGedqiEaK21wHj`
- CIDv1: `bafybeiga5awmbukdwmpf4jskzekpy76rzhk4blbqcmzvr745un6k6qulvm` - CIDv1: `bafybeidzwv7ldnoexuakxu7nxwvkvh7bcku5kxdixe7jdgal36mcur7doi`
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org). The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
...@@ -10,63 +10,15 @@ You can also access the Uniswap Interface from an IPFS gateway. ...@@ -10,63 +10,15 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs. Your Uniswap settings are never remembered across different URLs.
IPFS gateways: IPFS gateways:
- https://bafybeiga5awmbukdwmpf4jskzekpy76rzhk4blbqcmzvr745un6k6qulvm.ipfs.dweb.link/ - https://bafybeidzwv7ldnoexuakxu7nxwvkvh7bcku5kxdixe7jdgal36mcur7doi.ipfs.dweb.link/
- https://bafybeiga5awmbukdwmpf4jskzekpy76rzhk4blbqcmzvr745un6k6qulvm.ipfs.cf-ipfs.com/ - https://bafybeidzwv7ldnoexuakxu7nxwvkvh7bcku5kxdixe7jdgal36mcur7doi.ipfs.cf-ipfs.com/
- [ipfs://QmbKgKkW8gPc6Fc4CCbruxzdbgE968pGuSMwaFPPS57kdg/](ipfs://QmbKgKkW8gPc6Fc4CCbruxzdbgE968pGuSMwaFPPS57kdg/) - [ipfs://QmWXkZCZCVea5C5dkKAgH2jR3a8LWCFmJGedqiEaK21wHj/](ipfs://QmWXkZCZCVea5C5dkKAgH2jR3a8LWCFmJGedqiEaK21wHj/)
## 5.51.0 (2024-10-10) ### 5.51.1 (2024-10-10)
### Features
* **web:** add network costs to the addliquidity modal (#12557) 9beb5ce
* **web:** add steps to the modal (#12431) 65639b4
* **web:** add support for permit (#12575) b9d9579
* **web:** add testnet modal (#12636) 350d97e
* **web:** adding create modal (#12441) 3150f48
* **web:** balance fetch switch on testnet mode (#12576) dfa44bd
* **web:** call TradingAPI claim fees endpoint for v3/v4 (#12444) 8acafa7
* **web:** deposit tokens step (#12377) 4c747d8
* **web:** disable testnet on disconnect (#12750) 9f0bdbb
* **web:** disable tx flows on explore pages (#12656) 6ed0b42
* **web:** enable testnet mode on web with flag (#12505) dd7f272
* **web:** hook up LP saga + confirm steps to the decrease flow (#12508) 3f0ff49
* **web:** integrate with trading API for create flow (v2,v3) (#12434) 7283d2e
* **web:** loading state for new PosDP (#12634) 688ea88
* **web:** LP migrate page - update query and loading state (#12652) 88b336e
* **web:** positions pagination and claim fees modal (#12341) 5f1eba2
* **web:** testnet mode (#12566) abe823d
* **web:** testnet portfolio row (#12616) ae5e5f5
* **web:** unichain intro modal (#12554) 16fdb94
* **web:** use single position query for PosDP (#12517) e242d90
* **web:** use universe currency logo for testnets (#12607) d0767bd
* **web:** use v3 uncollected fee values from Data API (#12555) 2a376be
* **web:** v4 create position v2 (#12419) be27df2
* **web:** v4 price range charts (#12525) cf9f515
### Bug Fixes ### Bug Fixes
* **web:** 10 08 fix web log step and original error on web staging (#12825) c895745 * **web:** Cab/web 5130 remove extension launch modal prod (#12891) 07a5a21
* **web:** add requestId and quoteId to post /order request (#12612) e08233f
* **web:** astro chain ui info (#12671) 6923e48
* **web:** default to crypto in send when on testnet (#12758) 5839f86
* **web:** dont respect url flag overrides on prod (#12545) 3a68877
* **web:** fix tick formatting + position details page (#12648) b606211
* **web:** fixing v4 create bugs (#12514) 9da665d
* **web:** hide gas for testnet unichain eth (#12759) 2dfd2d5
* **web:** invalidate local activity cache for updates to transaction or signature state (#12650) f119f63
* **web:** move connected wallet chain logic to universe (#12717) 5f78d74
* **web:** native currency logo fetching on web (#12387) 81eb2ac
* **web:** pass account to getSigner instead of using default [staging] (#12884) a11364b
* **web:** rm prod arb+eth quicknode urls (#12646) d36d711
* **web:** simplify/combine the liquidity saga logic (#12540) 5b72b61
* **web:** ui nits and bugs (#12718) 6330bd4
* **web:** uniswapx toasts/polling (#12658) 53dc7b1
### Continuous Integration
* **web:** update sitemaps 82367d7
web/5.51.0 web/5.51.1
\ No newline at end of file \ No newline at end of file
import { InterfaceElementName, InterfaceModalName } from '@uniswap/analytics-events'
import { ButtonEmphasis, ButtonSize, ThemeButton } from 'components/Button/buttons'
import Modal from 'components/Modal'
import {
LAUNCH_MODAL_DESKTOP_MAX_HEIGHT,
LAUNCH_MODAL_DESKTOP_MAX_WIDTH,
LAUNCH_MODAL_MOBILE_MAX_HEIGHT,
LAUNCH_MODAL_MOBILE_MAX_IMAGE_HEIGHT,
} from 'components/TopLevelModals/constants'
import { useConnectorWithId } from 'components/WalletModal/useOrderedConnections'
import Column from 'components/deprecated/Column'
import Row from 'components/deprecated/Row'
import { useIsMobile } from 'hooks/screenSize/useIsMobile'
import { useIsLandingPage } from 'hooks/useIsLandingPage'
import { useAtom } from 'jotai'
import { atomWithStorage } from 'jotai/utils'
import styled from 'lib/styled-components'
import { X } from 'react-feather'
import { BREAKPOINTS } from 'theme'
import { ClickableStyle, ExternalLink, ThemedText } from 'theme/components'
import { Image } from 'ui/src'
import { UNISWAP_LOGO } from 'ui/src/assets'
import { iconSizes } from 'ui/src/theme'
import { uniswapUrls } from 'uniswap/src/constants/urls'
import { CONNECTION_PROVIDER_IDS } from 'uniswap/src/constants/web3'
import Trace from 'uniswap/src/features/telemetry/Trace'
import { Trans } from 'uniswap/src/i18n'
const ModalWrapper = styled.div`
display: flex;
flex-direction: row;
height: 100%;
width: 100%;
@media screen and (max-width: ${BREAKPOINTS.sm}px) {
flex-direction: column;
}
* {
outline: none;
}
`
const PromoImage = styled.img`
display: flex;
width: 240px;
height: 100%;
border-radius: 20px 0px 0px 20px;
background: url('/images/extension_promo/announcement_modal_desktop.png');
background-repeat: no-repeat;
background-size: cover;
flex: 1;
@media screen and (max-width: ${BREAKPOINTS.sm}px) {
background: url('/images/extension_promo/announcement_modal_mobile.png');
background-size: cover;
background-position: 50%;
height: ${LAUNCH_MODAL_MOBILE_MAX_IMAGE_HEIGHT}px;
width: 100%;
flex: unset;
}
`
const CloseIcon = styled(X)`
height: 20px;
width: 20px;
${ClickableStyle}
color: ${({ theme }) => theme.neutral2};
`
const TextWrapper = styled(Column)`
padding: 20px 24px;
gap: 16px;
height: 100%;
flex: 1;
@media screen and (max-width: ${BREAKPOINTS.sm}px) {
gap: 12px;
text-align: center;
}
`
const HeaderRow = styled(Row)`
justify-content: space-between;
align-items: flex-start;
@media screen and (max-width: ${BREAKPOINTS.sm}px) {
display: none;
}
`
const StyledExternalLink = styled(ExternalLink)`
width: 100%;
`
const StyledThemeButton = styled(ThemeButton)`
padding: 8px 0px;
width: 100%;
border-radius: 12px;
${ClickableStyle}
@media screen and (max-width: ${BREAKPOINTS.sm}px) {
padding: 12px 20px;
border-radius: 16px;
font-size: 18px;
line-height: 24px;
}
`
// Once a user closes the modal, do not reopen for duration of session
const showExtensionLaunchAtom = atomWithStorage('showUniswapExtensionLaunchAtom', true)
export function ExtensionLaunchModal() {
const [showExtensionLaunch, setShowExtensionLaunch] = useAtom(showExtensionLaunchAtom)
const isOnLandingPage = useIsLandingPage()
const uniswapExtensionConnector = useConnectorWithId(CONNECTION_PROVIDER_IDS.UNISWAP_EXTENSION_RDNS)
const isMobile = useIsMobile()
return (
<Trace modal={InterfaceModalName.EXTENSION_LAUNCH_PROMOTIONAL_MODAL}>
<Modal
maxWidth={isMobile ? undefined : LAUNCH_MODAL_DESKTOP_MAX_WIDTH}
height={isMobile ? LAUNCH_MODAL_MOBILE_MAX_HEIGHT : LAUNCH_MODAL_DESKTOP_MAX_HEIGHT}
isOpen={showExtensionLaunch && !isOnLandingPage && !uniswapExtensionConnector}
hideBorder
onDismiss={() => setShowExtensionLaunch(false)}
>
<ModalWrapper>
<PromoImage />
<TextWrapper>
<HeaderRow>
<Image height={iconSizes.icon40} source={UNISWAP_LOGO} width={iconSizes.icon40} />
<Trace logPress element={InterfaceElementName.CLOSE_BUTTON}>
<CloseIcon onClick={() => setShowExtensionLaunch(false)} />
</Trace>
</HeaderRow>
<Column gap="xs">
<ThemedText.SubHeader>
<Trans i18nKey="extension.introduction" />
</ThemedText.SubHeader>
<ThemedText.SubHeaderSmall lineHeight="20px">
<Trans i18nKey="extension.announcement" />
</ThemedText.SubHeaderSmall>
</Column>
<Row gap="8px" marginTop="auto">
{isMobile && (
<Trace logPress element={InterfaceElementName.CLOSE_BUTTON}>
<StyledThemeButton
size={ButtonSize.small}
emphasis={ButtonEmphasis.medium}
onClick={() => setShowExtensionLaunch(false)}
>
<Trans i18nKey="common.dismiss" />
</StyledThemeButton>
</Trace>
)}
<Trace logPress element={InterfaceElementName.LEARN_MORE_LINK}>
<StyledExternalLink href="https://wallet.uniswap.org//?utm_medium=promo-dialogue&utm_source=web-app&utm_campaign=ext-launch&utm_creative=learn-more">
<StyledThemeButton
size={ButtonSize.small}
emphasis={isMobile ? ButtonEmphasis.high : ButtonEmphasis.medium}
onClick={() => setShowExtensionLaunch(false)}
>
<Trans i18nKey="common.button.learn" />
</StyledThemeButton>
</StyledExternalLink>
</Trace>
{!isMobile && (
<Trace logPress element={InterfaceElementName.EXTENSION_DOWNLOAD_BUTTON}>
<StyledExternalLink href={uniswapUrls.chromeExtension}>
<StyledThemeButton
size={ButtonSize.small}
emphasis={ButtonEmphasis.high}
onClick={() => setShowExtensionLaunch(false)}
>
<Trans i18nKey="common.download" />
</StyledThemeButton>
</StyledExternalLink>
</Trace>
)}
</Row>
</TextWrapper>
</ModalWrapper>
</Modal>
</Trace>
)
}
...@@ -8,7 +8,6 @@ import FiatOnrampModal from 'components/FiatOnrampModal' ...@@ -8,7 +8,6 @@ import FiatOnrampModal from 'components/FiatOnrampModal'
import { GetTheAppModal } from 'components/NavBar/DownloadApp/Modal' import { GetTheAppModal } from 'components/NavBar/DownloadApp/Modal'
import { PrivacyPolicyModal } from 'components/PrivacyPolicy' import { PrivacyPolicyModal } from 'components/PrivacyPolicy'
import { ReceiveCryptoModal } from 'components/ReceiveCryptoModal' import { ReceiveCryptoModal } from 'components/ReceiveCryptoModal'
import { ExtensionLaunchModal } from 'components/TopLevelModals/ExtensionLaunchModal'
import { UkDisclaimerModal } from 'components/TopLevelModals/UkDisclaimerModal' import { UkDisclaimerModal } from 'components/TopLevelModals/UkDisclaimerModal'
import { UnichainLaunchModal } from 'components/TopLevelModals/UnichainLaunchModal' import { UnichainLaunchModal } from 'components/TopLevelModals/UnichainLaunchModal'
import AddressClaimModal from 'components/claim/AddressClaimModal' import AddressClaimModal from 'components/claim/AddressClaimModal'
...@@ -62,7 +61,6 @@ export default function TopLevelModals() { ...@@ -62,7 +61,6 @@ export default function TopLevelModals() {
<PrivacyPolicyModal /> <PrivacyPolicyModal />
<FeatureFlagModal /> <FeatureFlagModal />
{shouldShowDevFlags && <DevFlagsBox />} {shouldShowDevFlags && <DevFlagsBox />}
<ExtensionLaunchModal />
{showUnichainLaunchModal && <UnichainLaunchModal />} {showUnichainLaunchModal && <UnichainLaunchModal />}
{isAddLiquidityModalOpen && <IncreaseLiquidityModal />} {isAddLiquidityModalOpen && <IncreaseLiquidityModal />}
......
...@@ -784,14 +784,12 @@ ...@@ -784,14 +784,12 @@
"explore.wallets.favorite.action.remove": "Remove favorite", "explore.wallets.favorite.action.remove": "Remove favorite",
"explore.wallets.favorite.title.default": "Favorite wallets", "explore.wallets.favorite.title.default": "Favorite wallets",
"explore.wallets.favorite.title.edit": "Edit favorite wallets", "explore.wallets.favorite.title.edit": "Edit favorite wallets",
"extension.announcement": "The Uniswap Extension is here. Swap, sign transactions, and send tokens right from your browser.",
"extension.connection.networks": "Networks", "extension.connection.networks": "Networks",
"extension.connection.popup": "Your wallet isn’t connected to this site. Look for a “Connect Wallet” or “Log in” button.", "extension.connection.popup": "Your wallet isn’t connected to this site. Look for a “Connect Wallet” or “Log in” button.",
"extension.connection.popup.trouble": "Trouble connecting?", "extension.connection.popup.trouble": "Trouble connecting?",
"extension.connection.popupWithButton": "Your wallet isn’t connected to this site.", "extension.connection.popupWithButton": "Your wallet isn’t connected to this site.",
"extension.connection.titleConnected": "Connected", "extension.connection.titleConnected": "Connected",
"extension.connection.titleNotConnected": "Not connected", "extension.connection.titleNotConnected": "Not connected",
"extension.introduction": "Introducing the Uniswap Extension.",
"extension.lock.button.forgot": "Forgot password?", "extension.lock.button.forgot": "Forgot password?",
"extension.lock.button.reset": "Reset wallet", "extension.lock.button.reset": "Reset wallet",
"extension.lock.button.submit": "Unlock", "extension.lock.button.submit": "Unlock",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment