Skip to content

Commit

Permalink
ci(release): publish latest release
Browse files Browse the repository at this point in the history
  • Loading branch information
hello-happy-puppy committed Nov 20, 2024
1 parent 53b8ef2 commit 7c34701
Show file tree
Hide file tree
Showing 98 changed files with 5,287 additions and 4,632 deletions.
41 changes: 34 additions & 7 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
IPFS hash of the deployment:
- CIDv0: `QmevZvvRwjXodt61tEJ2A5m8xG5QfwGPbewx7RhHrwPcKK`
- CIDv1: `bafybeihwnnk2wz3dt7cychtk7meo5tbo7toj3m2ydjxb3z6kd74ndbcmqi`
- CIDv0: `Qmckh3X76dS3aki3F24Hf4GZzDtSPyhMRBa1rV2soC6qJm`
- CIDv1: `bafybeigwfqzd3hshqyg4h4gexgv2yuxodjpaxgkvteoqwjiznjcrukcq7y`

The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).

Expand All @@ -10,15 +10,42 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs.

IPFS gateways:
- https://bafybeihwnnk2wz3dt7cychtk7meo5tbo7toj3m2ydjxb3z6kd74ndbcmqi.ipfs.dweb.link/
- https://bafybeihwnnk2wz3dt7cychtk7meo5tbo7toj3m2ydjxb3z6kd74ndbcmqi.ipfs.cf-ipfs.com/
- [ipfs://QmevZvvRwjXodt61tEJ2A5m8xG5QfwGPbewx7RhHrwPcKK/](ipfs://QmevZvvRwjXodt61tEJ2A5m8xG5QfwGPbewx7RhHrwPcKK/)
- https://bafybeigwfqzd3hshqyg4h4gexgv2yuxodjpaxgkvteoqwjiznjcrukcq7y.ipfs.dweb.link/
- https://bafybeigwfqzd3hshqyg4h4gexgv2yuxodjpaxgkvteoqwjiznjcrukcq7y.ipfs.cf-ipfs.com/
- [ipfs://Qmckh3X76dS3aki3F24Hf4GZzDtSPyhMRBa1rV2soC6qJm/](ipfs://Qmckh3X76dS3aki3F24Hf4GZzDtSPyhMRBa1rV2soC6qJm/)

### 5.58.1 (2024-11-13)
## 5.59.0 (2024-11-20)


### Features

* **web:** add hide button to chain connectivity warning (#13795) 48e7521
* **web:** add max content to liq modals and propagate padding and gap to bottom sheet (#13806) 1991803
* **web:** clear selected limit orders after cancellation (#13808) 084120b
* **web:** mweb responsive liq position cards (#13825) 8757ff6
* **web:** mweb support for pool creation page (#13823) 9c82fec
* **web:** navigate to positions page after migrating liq (#13802) e60979a
* **web:** tweaks to top pools cards (#13824) c2628e0
* **web:** update shadow prop medium and light for interface (#13819) ad78fc4
* **web:** watch swap, send, bridge, wrap txs (#13807) 523abbd


### Bug Fixes

* **web:** broken charts on PDP (#13810) 4d130d3
* **web:** [v4] wrap disconnected welcome text (#13791) dba8373
* **web:** broken charts on PDP (#13809) 5ba405f
* **web:** Fix buy crypto form e2e tests and nft tab nav test (#13790) 44b02ae
* **web:** fix overflow in unconnected menu [staging] (#13938) 9e46347
* **web:** Fix regression in TDP swap component navigation on web (#13779) 3f107e5
* **web:** handle edit text on small screens (#13800) 8a796fa
* **web:** only show warning on invalid price or range (#13805) 1c32c37
* **web:** pool tab zindex was too damn high (#13792) 7d01a6a
* **web:** set max height for advanced info icon (#13801) 4aea7f0
* **web:** uniswapx tests - increase hardhat funding (#13820) 7a43cff


### Continuous Integration

* **web:** update sitemaps 2c6b2bc


2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web/5.58.1
web/5.59.0
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ exports[`AccountSwitcherScreen renders correctly 1`] = `
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-843135005 _fontFamily-299667014 _wordWrap-break-word _fontSize-229441158 _lineHeight-222976511 _fontWeight-233016202"
data-disable-theme="true"
>
0x​9eb6...a2ca
0x​9eb67f...d9a2ca
</span>
<svg
fill="none"
Expand Down Expand Up @@ -382,7 +382,7 @@ exports[`AccountSwitcherScreen renders correctly 1`] = `
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-843135005 _fontFamily-299667014 _wordWrap-break-word _fontSize-229441158 _lineHeight-222976511 _fontWeight-233016202"
data-disable-theme="true"
>
0x​9eb6...a2ca
0x​9eb67f...d9a2ca
</span>
<svg
fill="none"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ exports[`ReceiveScreen renders without error 1`] = `
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-843135005 _fontFamily-299667014 _wordWrap-break-word _fontSize-229441189 _lineHeight-222976542 _fontWeight-233016202"
data-disable-theme="true"
>
0x​82D5...3Fa6
0x​82D56A...373Fa6
</span>
<svg
fill="none"
Expand Down Expand Up @@ -6130,7 +6130,7 @@ exports[`ReceiveScreen renders without error 1`] = `
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-843135005 _fontFamily-299667014 _wordWrap-break-word _fontSize-229441189 _lineHeight-222976542 _fontWeight-233016202"
data-disable-theme="true"
>
0x​82D5...3Fa6
0x​82D56A...373Fa6
</span>
<svg
fill="none"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
}
suppressHighlighting={true}
>
0x​82D5...3Fa6
0x​82D56A...373Fa6
</Text>
<RNSVGSvgView
align="xMidYMid"
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/src/components/explore/SortButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ function _SortButton({ orderBy }: FilterGroupProps): JSX.Element {
pr="$spacing8"
py="$spacing8"
>
<Text ellipse color="$neutral1" flexShrink={1} numberOfLines={1} variant="buttonLabel3">
<Text ellipse color="$neutral2" flexShrink={1} numberOfLines={1} variant="buttonLabel3">
{getTokensOrderBySelectedLabel(orderBy, t)}
</Text>
<RotatableChevron color="$neutral2" direction="down" height={iconSizes.icon20} width={iconSizes.icon20} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ exports[`SortButton renders without error 1`] = `
numberOfLines={1}
style={
{
"color": "#222222",
"color": "#7D7D7D",
"flexShrink": 1,
"fontFamily": "Basel Grotesk",
"fontSize": 15,
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/src/features/notifications/Onesignal.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Linking } from 'react-native'
import OneSignal, { NotificationReceivedEvent, OpenedEvent } from 'react-native-onesignal'
import { config } from 'uniswap/src/config'
import { GQL_QUERIES_TO_REFETCH_ON_TXN_UPDATE } from 'uniswap/src/features/transactions/refetchGQLQueriesSaga'
import { logger } from 'utilities/src/logger/logger'
import { ONE_SECOND_MS } from 'utilities/src/time/time'
import { apolloClientRef } from 'wallet/src/data/apollo/usePersistedApolloClient'
import { GQL_QUERIES_TO_REFETCH_ON_TXN_UPDATE } from 'wallet/src/features/transactions/TransactionHistoryUpdater'

export const initOneSignal = (): void => {
OneSignal.setAppId(config.onesignalAppId)
Expand Down
3 changes: 3 additions & 0 deletions apps/web/cypress/e2e/buy-crypto-form.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { getTestSelector } from "../utils"
import { TestID } from 'uniswap/src/test/fixtures/testIDs'

describe('Buy Crypto Form', () => {
beforeEach(() => {
Expand All @@ -8,6 +9,8 @@ describe('Buy Crypto Form', () => {
cy.intercept('*/fiat-on-ramp/supported-tokens*', { fixture: 'fiatOnRamp/supported-tokens.json' })
cy.intercept('*/fiat-on-ramp/quote*', { fixture: 'fiatOnRamp/quotes.json' })
cy.visit('/buy')
cy.get(getTestSelector(TestID.ChooseInputToken)).click()
cy.get(getTestSelector('token-logo')).first().click()
})

it('quick amount select', () => {
Expand Down
7 changes: 1 addition & 6 deletions apps/web/cypress/e2e/navigation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@ const tabs = [{
}, {
label: 'Transactions',
path: '/explore/transactions'
}, {
label: 'NFTs',
path: '/nfts'
}]
}, {
label: 'Pool',
Expand Down Expand Up @@ -143,9 +140,7 @@ describe('Mobile navigation', () => {
})

it('tabs are accessible in mobile drawer', () => {
const nftLink = { label: 'NFTs', path: '/nfts' }
const tabsPlusNftLink = [...tabs, nftLink]
tabsPlusNftLink.forEach((tab) => {
tabs.forEach((tab) => {
cy.get(getTestSelector('nav-company-menu')).should('be.visible').click()
cy.get(getTestSelector('company-menu-mobile-drawer')).should('be.visible').within(() => {
cy.contains(tab.label).should('be.visible').click()
Expand Down
2 changes: 1 addition & 1 deletion apps/web/cypress/e2e/swap/uniswapx.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ describe('UniswapX v1', () => {
after(() => cy.hardhat({ automine: true }))

setupHardhat(async (hardhat) => {
await hardhat.fund(hardhat.wallet, CurrencyAmount.fromRawAmount(nativeOnChain(UniverseChainId.Mainnet), 2e18))
await hardhat.fund(hardhat.wallet, CurrencyAmount.fromRawAmount(nativeOnChain(UniverseChainId.Mainnet), 5e18))
await hardhat.mine()
})

Expand Down
2 changes: 1 addition & 1 deletion apps/web/cypress/e2e/swap/uniswapxv2.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ describe('UniswapX v2', () => {
after(() => cy.hardhat({ automine: true }))

setupHardhat(async (hardhat) => {
await hardhat.fund(hardhat.wallet, CurrencyAmount.fromRawAmount(nativeOnChain(UniverseChainId.Mainnet), 2e18))
await hardhat.fund(hardhat.wallet, CurrencyAmount.fromRawAmount(nativeOnChain(UniverseChainId.Mainnet), 5e18))
await hardhat.mine()
})

Expand Down
81 changes: 47 additions & 34 deletions apps/web/cypress/e2e/token-details.test.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import { UNI, USDT, USDT_ARBITRUM_ONE } from 'uniswap/src/constants/tokens'
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
import { UNI, USDT } from 'uniswap/src/constants/tokens'
import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
import { TestID } from 'uniswap/src/test/fixtures/testIDs'
import { shortenAddress } from 'utilities/src/addresses'
import { getTestSelector } from '../utils'

const UNI_MAINNET = UNI[UniverseChainId.Mainnet]

const UNI_ADDRESS = '0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984'

const INPUT_TOKEN_LABEL = `${TestID.ChooseInputToken}-label`
const OUTPUT_TOKEN_LABEL = `${TestID.ChooseOutputToken}-label`

describe('Token details', () => {
beforeEach(() => {
cy.viewport(1440, 900)
Expand Down Expand Up @@ -90,61 +94,70 @@ describe('Token details', () => {
beforeEach(() => {
// On mobile widths, we just link back to /swap instead of rendering the swap component.
cy.viewport(1200, 800)
cy.visit(`/explore/tokens/ethereum/${UNI_MAINNET.address}`).then(() => {
cy.scrollTo('top')
cy.visit(`/explore/tokens/ethereum/${UNI_MAINNET.address}`, {
featureFlags: [
{
flag: FeatureFlags.UniversalSwap,
value: true,
},
],
})
})

it('should have the expected output for a tokens detail page', () => {
cy.get(`#swap-currency-input .token-amount-input`).should('have.value', '')
cy.get(`#swap-currency-input .token-symbol-container`).should('contain.text', 'Select token')
cy.get(`#swap-currency-output .token-amount-input`).should('not.have.value')
cy.get(`#swap-currency-output .token-symbol-container`).should('contain.text', 'UNI')
cy.get(getTestSelector(INPUT_TOKEN_LABEL)).should('contain.text', 'Select token')
cy.get(getTestSelector(TestID.AmountInputOut)).should('not.have.value')
cy.get(getTestSelector(OUTPUT_TOKEN_LABEL)).should('contain.text', 'UNI')
})

it('should automatically navigate to the new TDP', () => {
cy.get(`#swap-currency-output .open-currency-select-button`).click()
it('should automatically navigate to the new TDP (erc20)', () => {
cy.get(getTestSelector(OUTPUT_TOKEN_LABEL)).click()
cy.get(getTestSelector('token-option-1-USDT')).click()
cy.url().should('include', `${USDT.address}`)
cy.url().should('not.include', `${UNI_MAINNET.address}`)
})

it('should automatically navigate to the new TDP (native)', () => {
cy.get(getTestSelector(OUTPUT_TOKEN_LABEL)).click()
cy.get(getTestSelector(`token-option-${UniverseChainId.Optimism}-ETH`)).click()
cy.url().should('include', 'optimism')
})

it('should not share swap state with the main swap page', () => {
cy.get(`#swap-currency-output .token-symbol-container`).should('contain.text', 'UNI')
cy.get(`#swap-currency-input .open-currency-select-button`).click()
cy.get(getTestSelector(OUTPUT_TOKEN_LABEL)).should('contain.text', 'UNI')
cy.get(getTestSelector(INPUT_TOKEN_LABEL)).click()
cy.get(getTestSelector('token-option-1-USDT')).click()
cy.visit('/swap')
cy.contains('UNI').should('not.exist')
cy.contains('USDT').should('not.exist')
})

it('can enter an amount into input', () => {
cy.get('#swap-currency-input .token-amount-input').clear().type('0.001').should('have.value', '0.001')
})

it('zero swap amount', () => {
cy.get('#swap-currency-input .token-amount-input').clear().type('0.0').should('have.value', '0.0')
})
describe('swap input', () => {
beforeEach(() => {
cy.get(getTestSelector(INPUT_TOKEN_LABEL)).scrollIntoView().click()
cy.get(getTestSelector('token-option-1-USDT')).click()
})
it('can enter an amount into input', () => {
cy.get(getTestSelector(TestID.AmountInputIn)).clear().type('0.001').should('have.value', '0.001')
})

it('invalid swap amount', () => {
cy.get('#swap-currency-input .token-amount-input').clear().type('\\').should('have.value', '')
})
it('zero swap amount', () => {
cy.get(getTestSelector(TestID.AmountInputIn)).clear().type('0.0').should('have.value', '0.0')
})

it('can enter an amount into output', () => {
cy.get('#swap-currency-output .token-amount-input').clear().type('0.001').should('have.value', '0.001')
it('invalid swap amount', () => {
cy.get(getTestSelector(TestID.AmountInputIn)).clear().type('\\').should('have.value', '')
})
})

it('zero output amount', () => {
cy.get('#swap-currency-output .token-amount-input').clear().type('0.0').should('have.value', '0.0')
})
describe('swap output', () => {
it('can enter an amount into output', () => {
cy.get(getTestSelector(TestID.AmountInputOut)).clear().type('0.001').should('have.value', '0.001')
})

it('should show a L2 token even if the user is connected to a different network', () => {
cy.visit('/explore/tokens/ethereum')
cy.get(getTestSelector('tokens-network-filter-selected')).click()
cy.get(getTestSelector('tokens-network-filter-option-arbitrum')).first().click()
cy.get(getTestSelector('tokens-network-filter-selected')).invoke('attr', 'alt').should('eq', `Arbitrum logo`)
cy.get(getTestSelector(`token-table-row-${USDT_ARBITRUM_ONE.address}`)).click()
cy.get(`#swap-currency-output .token-symbol-container`).should('contain.text', 'USDT')
it('zero output amount', () => {
cy.get(getTestSelector(TestID.AmountInputOut)).clear().type('0.0').should('have.value', '0.0')
})
})
})
})
11 changes: 11 additions & 0 deletions apps/web/cypress/e2e/token-explore.test.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { USDT_ARBITRUM_ONE } from 'uniswap/src/constants/tokens'
import { getTestSelector, getTestSelectorStartsWith } from '../utils'

describe('Token explore', () => {
Expand Down Expand Up @@ -61,4 +62,14 @@ describe('Token explore', () => {
cy.get(getTestSelector('tokens-network-filter-option-optimism')).first().click()
cy.get(getTestSelector('tokens-network-filter-selected')).invoke('attr', 'alt').should('eq', `Optimism logo`)
})

it('should show a L2 token even if the user is connected to a different network', () => {
cy.visit('/explore/tokens/ethereum')
cy.get(getTestSelector('tokens-network-filter-selected')).click()
cy.get(getTestSelector('tokens-network-filter-option-arbitrum')).first().click()
cy.get(getTestSelector('tokens-network-filter-selected')).invoke('attr', 'alt').should('eq', `Arbitrum logo`)
cy.get(getTestSelector(`token-table-row-${USDT_ARBITRUM_ONE.address}`)).click()
cy.get(`#swap-currency-output .token-symbol-container`).should('contain.text', 'USDT')
})

})
40 changes: 40 additions & 0 deletions apps/web/public/pools-sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6945,4 +6945,44 @@
<lastmod>2024-11-08T21:18:05.665Z</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://app.uniswap.org/explore/pools/ethereum/0x0c30062368eefb96bf3ade1218e685306b8e89fa</loc>
<lastmod>2024-11-15T18:29:39.769Z</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://app.uniswap.org/explore/pools/arbitrum/0x6f38e884725a116c9c7fbf208e79fe8828a2595f</loc>
<lastmod>2024-11-15T18:29:39.769Z</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://app.uniswap.org/explore/pools/optimism/0xe612cb2b5644aef0ad3e922bae70a8374c63515f</loc>
<lastmod>2024-11-15T18:29:39.769Z</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://app.uniswap.org/explore/pools/optimism/0xdef705a1864bcba65e4e275bffd58de21b5d44a0</loc>
<lastmod>2024-11-15T18:29:39.769Z</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://app.uniswap.org/explore/pools/base/0x717358a47ac99f3cd233e723be331756b3951164</loc>
<lastmod>2024-11-15T18:29:39.769Z</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://app.uniswap.org/explore/pools/base/0x9166a0139cab9661e08779cd01b1358aaea7b95f</loc>
<lastmod>2024-11-15T18:29:39.769Z</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://app.uniswap.org/explore/pools/base/0xc1a6fbedae68e1472dbb91fe29b51f7a0bd44f97</loc>
<lastmod>2024-11-15T18:29:39.769Z</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://app.uniswap.org/explore/pools/base/0x3a3dc4a26d1aceae12fd1026a5856f12d20658ea</loc>
<lastmod>2024-11-15T18:29:39.769Z</lastmod>
<priority>0.8</priority>
</url>
</urlset>
Loading

0 comments on commit 7c34701

Please sign in to comment.