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 Oct 23, 2024
1 parent a1f64eb commit ccecb65
Show file tree
Hide file tree
Showing 505 changed files with 39,338 additions and 25,588 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ dist/out-tsc/*

# Locale backup/generated files
packages/uniswap/src/i18n/locales/source/*_old.json
packages/uniswap/src/i18n/locales/@types/resources.d.ts

# ci
.ci-cache/
Expand Down
1 change: 1 addition & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @uniswap/web-admins
39 changes: 24 additions & 15 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,15 +1,24 @@
### We’re back with an exciting release! Here’s the latest

### Unichain Testnet Support

Unichain is a new DeFi-native Ethereum L2, built to be the home for liquidity across chains. We now support its testnet, **Unichain Sepolia**!

### Testnet Mode

Now, developers can use the Uniswap Wallet to transact on testnets and store testnet assets. Currently, we support **ETH Sepolia** and **Unichain Sepolia**.

### Other Changes

- Improved visuals around the networks we support
- Better linkouts on transaction details sheet
- Various bug fixes and performance improvements
IPFS hash of the deployment:
- CIDv0: `QmYjBEq2Z9Ya4rgSfzw4kyr2m3ihsk87Mnr7fKyBbHXsFN`
- CIDv1: `bafybeie2livmn2qvua4kx42aaenzc7ukda3dnsjm3n5ovk7n256gajg5xe`

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

You can also access the Uniswap Interface from an IPFS gateway.
**BEWARE**: The Uniswap interface uses [`localStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) to remember your settings, such as which tokens you have imported.
**You should always use an IPFS gateway that enforces origin separation**, or our hosted deployment of the latest release at [app.uniswap.org](https://app.uniswap.org).
Your Uniswap settings are never remembered across different URLs.

IPFS gateways:
- https://bafybeie2livmn2qvua4kx42aaenzc7ukda3dnsjm3n5ovk7n256gajg5xe.ipfs.dweb.link/
- https://bafybeie2livmn2qvua4kx42aaenzc7ukda3dnsjm3n5ovk7n256gajg5xe.ipfs.cf-ipfs.com/
- [ipfs://QmYjBEq2Z9Ya4rgSfzw4kyr2m3ihsk87Mnr7fKyBbHXsFN/](ipfs://QmYjBEq2Z9Ya4rgSfzw4kyr2m3ihsk87Mnr7fKyBbHXsFN/)

## 5.54.0 (2024-10-23)


### Features

* **web:** add mainnet to bridge banner - prod (#13298) 7d8d807


2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
extension/1.7.0
web/5.54.0
2 changes: 1 addition & 1 deletion apps/extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"@svgr/webpack": "8.0.1",
"@tamagui/core": "1.108.4",
"@types/uuid": "9.0.1",
"@uniswap/analytics-events": "2.37.0",
"@uniswap/analytics-events": "2.38.0",
"@uniswap/uniswapx-sdk": "^2.1.0-beta.14",
"@uniswap/universal-router-sdk": "4.2.0",
"@uniswap/v3-sdk": "3.17.0",
Expand Down
14 changes: 13 additions & 1 deletion apps/extension/src/app/SidebarApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import { initExtensionAnalytics } from 'src/app/utils/analytics'
import { getLocalUserId } from 'src/app/utils/storage'
import {
DappBackgroundPortChannel,
backgroundToSidePanelMessageChannel,
createBackgroundToSidePanelMessagePort,
} from 'src/background/messagePassing/messageChannels'
import { BackgroundToSidePanelRequestType } from 'src/background/messagePassing/types/requests'
Expand All @@ -44,7 +45,7 @@ import { syncAppWithDeviceLanguage } from 'uniswap/src/features/settings/slice'
import Trace from 'uniswap/src/features/telemetry/Trace'
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context'
import { UnitagUpdaterContextProvider, useUnitagUpdater } from 'uniswap/src/features/unitags/context'
import i18n from 'uniswap/src/i18n/i18n'
import { isDevEnv } from 'utilities/src/environment/env'
import { logger } from 'utilities/src/logger/logger'
Expand Down Expand Up @@ -205,10 +206,21 @@ function SidebarWrapper(): JSX.Element {
useDappRequestPortListener()
useTestnetModeForLoggingAndAnalytics()

const { triggerRefetchUnitags } = useUnitagUpdater()

useEffect(() => {
dispatch(syncAppWithDeviceLanguage())
}, [dispatch])

useEffect(() => {
return backgroundToSidePanelMessageChannel.addMessageListener(
BackgroundToSidePanelRequestType.RefreshUnitags,
() => {
triggerRefetchUnitags()
},
)
}, [triggerRefetchUnitags])

return (
<>
<WebNavigation />
Expand Down
10 changes: 10 additions & 0 deletions apps/extension/src/app/UnitagClaimApp.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { render } from '@testing-library/react'
import UnitagClaimApp from 'src/app/UnitagClaimApp'
import { initializeReduxStore } from 'src/store/store'

describe('UnitagClaimApp', () => {
it('renders without error', async () => {
await initializeReduxStore()
render(<UnitagClaimApp />)
})
})
27 changes: 26 additions & 1 deletion apps/extension/src/app/UnitagClaimApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ import { GraphqlProvider } from 'src/app/apollo'
import { ErrorElement } from 'src/app/components/ErrorElement'
import { TraceUserProperties } from 'src/app/components/Trace/TraceUserProperties'
import { ClaimUnitagSteps, OnboardingStepsProvider } from 'src/app/features/onboarding/OnboardingSteps'
import { EditUnitagProfileScreen } from 'src/app/features/unitags/EditUnitagProfileScreen'
import { UnitagChooseProfilePicScreen } from 'src/app/features/unitags/UnitagChooseProfilePicScreen'
import { UnitagClaimContextProvider } from 'src/app/features/unitags/UnitagClaimContext'
import { UnitagConfirmationScreen } from 'src/app/features/unitags/UnitagConfirmationScreen'
import { UnitagCreateUsernameScreen } from 'src/app/features/unitags/UnitagCreateUsernameScreen'
import { UnitagIntroScreen } from 'src/app/features/unitags/UnitagIntroScreen'
import { OnboardingRoutes } from 'src/app/navigation/constants'
import { setRouter, setRouterState } from 'src/app/navigation/state'
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
import { initExtensionAnalytics } from 'src/app/utils/analytics'
Expand Down Expand Up @@ -45,6 +48,11 @@ const router = sentryCreateHashRouter([
element: <UnitagClaimAppInner />,
errorElement: <ErrorElement />,
},
{
path: OnboardingRoutes.EditProfile,
element: <EditProfileAppInner />,
errorElement: <ErrorElement />,
},
])

/**
Expand All @@ -61,13 +69,30 @@ setRouter(router)
function UnitagClaimAppInner(): JSX.Element {
useTestnetModeForLoggingAndAnalytics()
return (
<Flex alignItems="center" justifyContent="center" minHeight="100vh" width="100%">
<Flex centered height="100vh" width="100%">
<OnboardingStepsProvider
disableRedirect
steps={{
[ClaimUnitagSteps.Intro]: <UnitagIntroScreen />,
[ClaimUnitagSteps.CreateUsername]: <UnitagCreateUsernameScreen />,
[ClaimUnitagSteps.ChooseProfilePic]: <UnitagChooseProfilePicScreen />,
[ClaimUnitagSteps.Confirmation]: <UnitagConfirmationScreen />,
[ClaimUnitagSteps.EditProfile]: <EditUnitagProfileScreen enableBack />,
}}
ContainerComponent={UnitagClaimContextProvider}
/>
<Outlet />
</Flex>
)
}

function EditProfileAppInner(): JSX.Element {
return (
<Flex centered>
<OnboardingStepsProvider
disableRedirect
steps={{
[ClaimUnitagSteps.Intro]: <EditUnitagProfileScreen />,
}}
ContainerComponent={UnitagClaimContextProvider}
/>
Expand Down
4 changes: 2 additions & 2 deletions apps/extension/src/app/features/accounts/AccountItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ import { iconSizes } from 'ui/src/theme'
import { WarningModal } from 'uniswap/src/components/modals/WarningModal/WarningModal'
import { WarningSeverity } from 'uniswap/src/components/modals/WarningModal/types'
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
import { pushNotification } from 'uniswap/src/features/notifications/slice'
import { AppNotificationType, CopyNotificationType } from 'uniswap/src/features/notifications/types'
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
import { setClipboard } from 'uniswap/src/utils/clipboard'
import { NumberType } from 'utilities/src/format/types'
import { AddressDisplay } from 'wallet/src/components/accounts/AddressDisplay'
import { pushNotification } from 'wallet/src/features/notifications/slice'
import { AppNotificationType, CopyNotificationType } from 'wallet/src/features/notifications/types'
import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga'
import { useActiveAccountWithThrow, useDisplayName, useSignerAccounts } from 'wallet/src/features/wallet/hooks'
import { DisplayNameType } from 'wallet/src/features/wallet/types'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,17 @@ import { updateDappConnectedAddressFromExtension } from 'src/app/features/dapp/a
import { useDappConnectedAccounts } from 'src/app/features/dapp/hooks'
import { isConnectedAccount } from 'src/app/features/dapp/utils'
import { PopupName, openPopup } from 'src/app/features/popups/slice'
import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants'
import { AppRoutes, OnboardingRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants'
import { navigate } from 'src/app/navigation/state'
import { focusOrCreateUnitagTab } from 'src/app/navigation/utils'
import { Button, Flex, MenuContent, MenuContentItem, Popover, ScrollView, Text, useSporeColors } from 'ui/src'
import { WalletFilled, X } from 'ui/src/components/icons'
import { spacing } from 'ui/src/theme'
import { WarningModal } from 'uniswap/src/components/modals/WarningModal/WarningModal'
import { WarningSeverity } from 'uniswap/src/components/modals/WarningModal/types'
import { AccountType } from 'uniswap/src/features/accounts/types'
import { FeatureFlags } from 'uniswap/src/features/gating/flags'
import { useFeatureFlag } from 'uniswap/src/features/gating/hooks'
import Trace from 'uniswap/src/features/telemetry/Trace'
import { ModalName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
Expand Down Expand Up @@ -281,6 +284,20 @@ export function AccountSwitcherScreen(): JSX.Element {

const UnitagActionButton = (): JSX.Element => {
const { t } = useTranslation()
const isClaimUnitagEnabled = useFeatureFlag(FeatureFlags.ExtensionClaimUnitag)

const onPressEditProfile = useCallback(async () => {
await focusOrCreateUnitagTab(OnboardingRoutes.EditProfile)
}, [])

if (isClaimUnitagEnabled) {
return (
<Button color="$neutral1" size="small" testID={TestID.AccountCard} theme="tertiary" onPress={onPressEditProfile}>
{t('account.wallet.header.button.disabled.title')}
</Button>
)
}

return (
<ComingSoon placement="top">
<Button color="$neutral2" disabled={true} size="small" testID={TestID.AccountCard} theme="secondary">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,16 +99,16 @@ exports[`AccountSwitcherScreen renders correctly 1`] = `
<circle
cx="28"
cy="28"
fill="#4300B01F"
fill="#FFBF171F"
r="28"
/>
<g
transform="translate(9.333333333333332, 9.333333333333332) scale(0.7777777777777778)"
>
<path
clip-rule="evenodd"
d="M13.2 6C9.22355 6 6 9.22355 6 13.2V34.8C6 38.7765 9.22355 42 13.2 42H34.8C38.7765 42 42 38.7765 42 34.8V13.2C42 9.22355 38.7765 6 34.8 6H13.2ZM26.1213 14.1213C24.9497 12.9497 23.0503 12.9497 21.8787 14.1213L14.1213 21.8787C12.9497 23.0503 12.9497 24.9497 14.1213 26.1213L21.8787 33.8787C23.0503 35.0503 24.9497 35.0503 26.1213 33.8787L33.8787 26.1213C35.0503 24.9497 35.0503 23.0503 33.8787 21.8787L26.1213 14.1213Z"
fill="#4300B0"
d="M28.541 24C28.541 23.6075 28.7998 23.264 29.1711 23.1367C35.8814 20.8368 40.9702 14.1754 41.9802 5.99363C42.1832 4.34926 40.8202 3 39.1634 3H8.8369C7.18005 3 5.81706 4.34926 6.02011 5.99363C7.03026 14.1742 12.1192 20.8349 18.8286 23.1357C19.2002 23.2632 19.4593 23.6071 19.4593 24C19.4593 24.3929 19.2002 24.7368 18.8286 24.8643C12.1192 27.1651 7.03026 33.8258 6.02011 42.0064C5.81706 43.6507 7.18005 45 8.8369 45H39.1634C40.8202 45 42.1832 43.6507 41.9802 42.0064C40.9702 33.8246 35.8814 27.1632 29.1711 24.8633C28.7998 24.736 28.541 24.3925 28.541 24Z"
fill="#FFBF17"
fill-rule="evenodd"
/>
</g>
Expand All @@ -127,9 +127,9 @@ exports[`AccountSwitcherScreen renders correctly 1`] = `
<span
class="font_heading _display-inline _boxSizing-border-box _whiteSpace-nowrap _mt-0px _mr-0px _mb-0px _ml-0px _color-843134974 _wordWrap-break-word _fontFamily-299667014 _fontSize-18px _lineHeight-24px _fontWeight-233016202 _maxWidth-10037 _overflowX-hidden _overflowY-hidden _textOverflow-ellipsis _textAlign-center _flexShrink-1"
data-disable-theme="true"
data-testid="address-display/name/Jacob Haley"
data-testid="address-display/name/Tamara Brekke"
>
Jacob Haley
Tamara Brekke
</span>
</div>
</div>
Expand All @@ -144,7 +144,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​0fc6...be59
0x​e0c6...ea11
</span>
<svg
fill="none"
Expand Down Expand Up @@ -325,16 +325,16 @@ exports[`AccountSwitcherScreen renders correctly 1`] = `
<circle
cx="28"
cy="28"
fill="#4300B01F"
fill="#FFBF171F"
r="28"
/>
<g
transform="translate(9.333333333333332, 9.333333333333332) scale(0.7777777777777778)"
>
<path
clip-rule="evenodd"
d="M13.2 6C9.22355 6 6 9.22355 6 13.2V34.8C6 38.7765 9.22355 42 13.2 42H34.8C38.7765 42 42 38.7765 42 34.8V13.2C42 9.22355 38.7765 6 34.8 6H13.2ZM26.1213 14.1213C24.9497 12.9497 23.0503 12.9497 21.8787 14.1213L14.1213 21.8787C12.9497 23.0503 12.9497 24.9497 14.1213 26.1213L21.8787 33.8787C23.0503 35.0503 24.9497 35.0503 26.1213 33.8787L33.8787 26.1213C35.0503 24.9497 35.0503 23.0503 33.8787 21.8787L26.1213 14.1213Z"
fill="#4300B0"
d="M28.541 24C28.541 23.6075 28.7998 23.264 29.1711 23.1367C35.8814 20.8368 40.9702 14.1754 41.9802 5.99363C42.1832 4.34926 40.8202 3 39.1634 3H8.8369C7.18005 3 5.81706 4.34926 6.02011 5.99363C7.03026 14.1742 12.1192 20.8349 18.8286 23.1357C19.2002 23.2632 19.4593 23.6071 19.4593 24C19.4593 24.3929 19.2002 24.7368 18.8286 24.8643C12.1192 27.1651 7.03026 33.8258 6.02011 42.0064C5.81706 43.6507 7.18005 45 8.8369 45H39.1634C40.8202 45 42.1832 43.6507 41.9802 42.0064C40.9702 33.8246 35.8814 27.1632 29.1711 24.8633C28.7998 24.736 28.541 24.3925 28.541 24Z"
fill="#FFBF17"
fill-rule="evenodd"
/>
</g>
Expand All @@ -353,9 +353,9 @@ exports[`AccountSwitcherScreen renders correctly 1`] = `
<span
class="font_heading _display-inline _boxSizing-border-box _whiteSpace-nowrap _mt-0px _mr-0px _mb-0px _ml-0px _color-843134974 _wordWrap-break-word _fontFamily-299667014 _fontSize-18px _lineHeight-24px _fontWeight-233016202 _maxWidth-10037 _overflowX-hidden _overflowY-hidden _textOverflow-ellipsis _textAlign-center _flexShrink-1"
data-disable-theme="true"
data-testid="address-display/name/Jacob Haley"
data-testid="address-display/name/Tamara Brekke"
>
Jacob Haley
Tamara Brekke
</span>
</div>
</div>
Expand All @@ -370,7 +370,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​0fc6...be59
0x​e0c6...ea11
</span>
<svg
fill="none"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { useTranslation } from 'react-i18next'
import { useDappLastChainId } from 'src/app/features/dapp/hooks'
import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext'
import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice'
import { DappRequestType } from 'src/app/features/dappRequests/types/DappRequestTypes'
import { Anchor, AnimatePresence, Button, Flex, Text, UniversalImage, UniversalImageResizeMode, styled } from 'ui/src'
import { borderRadii, iconSizes } from 'ui/src/theme'
import { GasFeeResult } from 'uniswap/src/features/gas/types'
Expand Down Expand Up @@ -185,10 +184,7 @@ export function DappRequestFooter({
const shouldCloseSidebar = request.isSidebarClosed && totalRequestCount <= 1

// Disable submission if no gas fee value
const isConfirmEnabled =
request.dappRequest.type === DappRequestType.SendTransaction
? transactionGasFeeResult?.value && hasSufficientGas
: true
const isConfirmEnabled = transactionGasFeeResult?.value && hasSufficientGas

const handleOnConfirm = useCallback(async () => {
if (onConfirm) {
Expand Down
4 changes: 2 additions & 2 deletions apps/extension/src/app/features/dappRequests/accounts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ import { extractBaseUrl } from 'src/app/features/dappRequests/utils'
import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels'
import { call, put, select } from 'typed-redux-saga'
import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils'
import { pushNotification } from 'uniswap/src/features/notifications/slice'
import { AppNotificationType } from 'uniswap/src/features/notifications/types'
import { getEnabledChainIdsSaga } from 'uniswap/src/features/settings/saga'
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
import { UniverseChainId } from 'uniswap/src/types/chains'
import { pushNotification } from 'wallet/src/features/notifications/slice'
import { AppNotificationType } from 'wallet/src/features/notifications/types'
import { getProvider } from 'wallet/src/features/wallet/context'
import { selectActiveAccount } from 'wallet/src/features/wallet/selectors'

Expand Down
4 changes: 2 additions & 2 deletions apps/extension/src/app/features/dappRequests/permissions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ import { Permission } from 'src/contentScript/WindowEthereumRequestTypes'
import { ExtensionEthMethods } from 'src/contentScript/methodHandlers/requestMethods'
import { call, put } from 'typed-redux-saga'
import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils'
import { pushNotification } from 'wallet/src/features/notifications/slice'
import { AppNotificationType } from 'wallet/src/features/notifications/types'
import { pushNotification } from 'uniswap/src/features/notifications/slice'
import { AppNotificationType } from 'uniswap/src/features/notifications/types'

export function getPermissions(dappUrl: string | undefined, connectedAddresses: Address[] | undefined): Permission[] {
const permissions: Permission[] = []
Expand Down
Loading

0 comments on commit ccecb65

Please sign in to comment.