ci(release): publish latest release

parent 993a9c6f
IPFS hash of the deployment: IPFS hash of the deployment:
- CIDv0: `QmRCNHQbxqepJmwKTbTjue67sfn3LqusjoTaeJ1WsBUzmv` - CIDv0: `QmWVe33WD9yQ38iTfGMAT3s8eejpztReHAdc5Nd356uaMs`
- CIDv1: `bafybeibkoplw7hlmdmxl7shx3c7w47twsz42qpmm3bss54r2wdk5mvyrre` - CIDv1: `bafybeidzfl3a6qljvfeawwzdyywlfgia3fuanjegwpgczxnctmq764h5zy`
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,15 +10,10 @@ You can also access the Uniswap Interface from an IPFS gateway. ...@@ -10,15 +10,10 @@ 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://bafybeibkoplw7hlmdmxl7shx3c7w47twsz42qpmm3bss54r2wdk5mvyrre.ipfs.dweb.link/ - https://bafybeidzfl3a6qljvfeawwzdyywlfgia3fuanjegwpgczxnctmq764h5zy.ipfs.dweb.link/
- https://bafybeibkoplw7hlmdmxl7shx3c7w47twsz42qpmm3bss54r2wdk5mvyrre.ipfs.cf-ipfs.com/ - https://bafybeidzfl3a6qljvfeawwzdyywlfgia3fuanjegwpgczxnctmq764h5zy.ipfs.cf-ipfs.com/
- [ipfs://QmRCNHQbxqepJmwKTbTjue67sfn3LqusjoTaeJ1WsBUzmv/](ipfs://QmRCNHQbxqepJmwKTbTjue67sfn3LqusjoTaeJ1WsBUzmv/) - [ipfs://QmWVe33WD9yQ38iTfGMAT3s8eejpztReHAdc5Nd356uaMs/](ipfs://QmWVe33WD9yQ38iTfGMAT3s8eejpztReHAdc5Nd356uaMs/)
### 5.53.2 (2024-10-16) ### 5.53.3 (2024-10-16)
### Bug Fixes
* **web:** Only poll for bridging status updates if pending txs - prod (#13069) 694cac0
web/5.53.2 web/5.53.3
\ No newline at end of file \ No newline at end of file
...@@ -53,7 +53,7 @@ export function CurrencySearch({ currencyField, onCurrencySelect, onDismiss }: C ...@@ -53,7 +53,7 @@ export function CurrencySearch({ currencyField, onCurrencySelect, onDismiss }: C
return return
} }
showSwapNetworkNotification(chainId, prevChainId) showSwapNetworkNotification({ chainId, prevChainId })
}, [currentTab, chainId, prevChainId, multichainUXEnabled, showSwapNetworkNotification]) }, [currentTab, chainId, prevChainId, multichainUXEnabled, showSwapNetworkNotification])
return ( return (
......
...@@ -3,28 +3,34 @@ import { useAddPopup, useRemovePopup } from 'state/application/hooks' ...@@ -3,28 +3,34 @@ import { useAddPopup, useRemovePopup } from 'state/application/hooks'
import { PopupType } from 'state/application/reducer' import { PopupType } from 'state/application/reducer'
import { SwapTab } from 'uniswap/src/types/screens/interface' import { SwapTab } from 'uniswap/src/types/screens/interface'
type SwapNetworkNotificationCallbackType = {
chainId?: number // The chainId to show notif for, can be input or output chain
prevChainId?: number // The previous chainId the user was swapping on, not used for bridging notifications
outputChainId?: number // The output chainId the user is swapping to
}
export function useShowSwapNetworkNotification() { export function useShowSwapNetworkNotification() {
const addPopup = useAddPopup() const addPopup = useAddPopup()
const removePopup = useRemovePopup() const removePopup = useRemovePopup()
return useCallback( return useCallback(
(chainId?: number, prevChainId?: number) => { ({ chainId, prevChainId, outputChainId }: SwapNetworkNotificationCallbackType) => {
if (!chainId || chainId === prevChainId) { if (!chainId || chainId === prevChainId || chainId === outputChainId) {
return return
} }
const isBridgeNotification = chainId && prevChainId const isBridgeNotification = chainId && outputChainId
removePopup(`switchNetwork-${prevChainId}`) removePopup(`switchNetwork-${prevChainId}`)
if (isBridgeNotification) { if (isBridgeNotification) {
addPopup( addPopup(
{ {
type: PopupType.Bridge, type: PopupType.Bridge,
inputChainId: chainId, inputChainId: chainId,
outputChainId: prevChainId, outputChainId,
}, },
`bridge-${chainId}-to-${prevChainId}`, `bridge-${chainId}-to-${outputChainId}`,
3000, 3000,
) )
} else { } else if (prevChainId) {
addPopup( addPopup(
{ {
type: PopupType.SwitchNetwork, type: PopupType.SwitchNetwork,
......
...@@ -12,7 +12,11 @@ interface UniswapContext { ...@@ -12,7 +12,11 @@ interface UniswapContext {
connector?: Connector connector?: Connector
navigateToBuyOrReceiveWithEmptyWallet?: () => void navigateToBuyOrReceiveWithEmptyWallet?: () => void
navigateToFiatOnRamp: (args: { prefilledCurrency?: FiatOnRampCurrency }) => void navigateToFiatOnRamp: (args: { prefilledCurrency?: FiatOnRampCurrency }) => void
onSwapChainsChanged: (inputChainId: UniverseChainId, outputChainId?: UniverseChainId) => void onSwapChainsChanged: (args: {
chainId: UniverseChainId
prevChainId?: UniverseChainId
outputChainId?: UniverseChainId
}) => void
swapInputChainId?: UniverseChainId swapInputChainId?: UniverseChainId
signer: Signer | undefined signer: Signer | undefined
useProviderHook: (chainId: number) => JsonRpcProvider | undefined useProviderHook: (chainId: number) => JsonRpcProvider | undefined
...@@ -44,9 +48,17 @@ export function UniswapProvider({ ...@@ -44,9 +48,17 @@ export function UniswapProvider({
account, account,
connector, connector,
navigateToBuyOrReceiveWithEmptyWallet, navigateToBuyOrReceiveWithEmptyWallet,
onSwapChainsChanged: (inputChainId: UniverseChainId, outputChanId?: UniverseChainId): void => { onSwapChainsChanged: ({
onSwapChainsChanged(inputChainId, outputChanId) chainId,
setSwapInputChainId(inputChainId) prevChainId,
outputChainId,
}: {
chainId: UniverseChainId
prevChainId?: UniverseChainId
outputChainId?: UniverseChainId
}): void => {
onSwapChainsChanged({ chainId, prevChainId, outputChainId })
setSwapInputChainId(chainId)
}, },
signer, signer,
useProviderHook, useProviderHook,
......
...@@ -22,6 +22,7 @@ export function useSwapNetworkNotification({ ...@@ -22,6 +22,7 @@ export function useSwapNetworkNotification({
useEffect(() => { useEffect(() => {
const { inputChainId: lastInputChainId, outputChainId: lastOutputChainId } = lastNetworkNotification.current const { inputChainId: lastInputChainId, outputChainId: lastOutputChainId } = lastNetworkNotification.current
const prevChainId = lastInputChainId ?? lastOutputChainId
// Set initial values but don't fire notification for first network selection // Set initial values but don't fire notification for first network selection
if (!lastInputChainId && !lastOutputChainId) { if (!lastInputChainId && !lastOutputChainId) {
...@@ -40,9 +41,14 @@ export function useSwapNetworkNotification({ ...@@ -40,9 +41,14 @@ export function useSwapNetworkNotification({
// Determine notification type and trigger // Determine notification type and trigger
if (inputChainId && outputChainId && inputChainId !== outputChainId) { if (inputChainId && outputChainId && inputChainId !== outputChainId) {
onSwapChainsChanged(inputChainId, outputChainId) // Bridging notification onSwapChainsChanged({ chainId: inputChainId, outputChainId }) // Bridging notification
} else if (inputChainId && (hasInputChanged || (hasOutputChanged && inputChainId === outputChainId))) { } else if (inputChainId || (outputChainId && prevChainId)) {
onSwapChainsChanged(inputChainId) // Non-bridging notification const chainId = inputChainId ?? outputChainId
// User is swapping on the same chain, don't show notification
if (!chainId || chainId === prevChainId) {
return
}
onSwapChainsChanged({ chainId, prevChainId }) // Non-bridging notification
} }
// Update last notification state // Update last notification state
......
...@@ -11,10 +11,16 @@ const HIDE_DELAY = ONE_SECOND_MS * 2 ...@@ -11,10 +11,16 @@ const HIDE_DELAY = ONE_SECOND_MS * 2
* Shows a network notification for a swap. * Shows a network notification for a swap.
* Depending on chain inputs passed, shows a bridging or non-bridging notification. * Depending on chain inputs passed, shows a bridging or non-bridging notification.
*/ */
export function useShowSwapNetworkNotification(): (chainId: UniverseChainId, outputChainId?: UniverseChainId) => void { export function useShowSwapNetworkNotification(): ({
chainId,
outputChainId,
}: {
chainId: UniverseChainId
outputChainId?: UniverseChainId
}) => void {
const appDispatch = useDispatch() const appDispatch = useDispatch()
return useCallback( return useCallback(
(chainId: UniverseChainId, outputChainId?: UniverseChainId) => { ({ chainId, outputChainId }: { chainId: UniverseChainId; outputChainId?: UniverseChainId }) => {
// Output chain should only be passed when bridging // Output chain should only be passed when bridging
if (outputChainId && chainId !== outputChainId) { if (outputChainId && chainId !== outputChainId) {
appDispatch( appDispatch(
......
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