ci(release): publish latest release

parent 6586274f
IPFS hash of the deployment: IPFS hash of the deployment:
- CIDv0: `QmZCHeoJuPsFdadwYDZ1gxfLvYaaRxv5pGxTRcmSGXqSgP` - CIDv0: `QmTqFxX9jtCD9To3o7DprzKi8GX2Zcfj78Q1bes3iSu7Pk`
- CIDv1: `bafybeifbjqm3qbn3nu6diizot5gr24pw2dai5r6l5iafo5y4t5nufursoa` - CIDv1: `bafybeicrt2gyxhucirummgef7lv7pudqbamzmjvycfm2my6fkdybdix3z4`
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,39 +10,15 @@ You can also access the Uniswap Interface from an IPFS gateway. ...@@ -10,39 +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://bafybeifbjqm3qbn3nu6diizot5gr24pw2dai5r6l5iafo5y4t5nufursoa.ipfs.dweb.link/ - https://bafybeicrt2gyxhucirummgef7lv7pudqbamzmjvycfm2my6fkdybdix3z4.ipfs.dweb.link/
- https://bafybeifbjqm3qbn3nu6diizot5gr24pw2dai5r6l5iafo5y4t5nufursoa.ipfs.cf-ipfs.com/ - https://bafybeicrt2gyxhucirummgef7lv7pudqbamzmjvycfm2my6fkdybdix3z4.ipfs.cf-ipfs.com/
- [ipfs://QmZCHeoJuPsFdadwYDZ1gxfLvYaaRxv5pGxTRcmSGXqSgP/](ipfs://QmZCHeoJuPsFdadwYDZ1gxfLvYaaRxv5pGxTRcmSGXqSgP/) - [ipfs://QmTqFxX9jtCD9To3o7DprzKi8GX2Zcfj78Q1bes3iSu7Pk/](ipfs://QmTqFxX9jtCD9To3o7DprzKi8GX2Zcfj78Q1bes3iSu7Pk/)
## 5.26.0 (2024-05-09) ### 5.26.1 (2024-05-10)
### Features
* **web:** add dynamic metatag updating w/ react-helmet-async (#7732) 4afd49c
* **web:** add multichain ux flag (#7796) 870f18f
* **web:** automate sitemap generation during prod deploy (#7846) 6010986
* **web:** migrate user state back to localStorage (#7452) b8ff545
### Bug Fixes ### Bug Fixes
* **web:** add "Safe" RPC URLs to CSP (#7844) 7880af0 * **web:** using web accessible resources to block extension (#8097) 3a5dadd
* **web:** align price impact in details and warning (#7734) 65303d4
* **web:** convert useQuery to use QueryOptions (#7729) da4104c
* **web:** disable flaky tests in merge queue runs (#7771) c5fc13b
* **web:** fix token lookups from network for backend-unsupported chains (#7894) 2bcd438
* **web:** fix tokens lookups for avax (#7893) f4deeb6
* **web:** Flip logic for Sells/Buys (#7880) cffd9ec
* **web:** hotfix warning modified extensions (#8073) deeeb4f
* **web:** infinite loop when connecting to unsupported chain (#7891) 4df2b6a
* **web:** pool page stuck in rerender loop (#7892) 45541af
* **web:** reduce gap in AdvancedSwapDetails component (#7733) 278f948
* **web:** refactor chain URL param handling (#7807) a33bc3d
* **web:** remove limits+send feature flags & fix broken /limit page refresh (#7870) 6c5eaa9
* **web:** serialize polling tx receipts (#7908) 3c44924
* **web:** support swapping spam tokens (#7793) 020a1e4
* **web:** update the CTAs on pools page to link to explore/pools page (#7808) cb625d8
* **web:** width of account bottom sheet on mobile (#7886) 03ebbd0
web/5.26.0 web/5.26.1
\ No newline at end of file \ No newline at end of file
...@@ -466,8 +466,30 @@ export function SwapForm({ disableTokenInputs = false, onCurrencyChange }: SwapF ...@@ -466,8 +466,30 @@ export function SwapForm({ disableTokenInputs = false, onCurrencyChange }: SwapF
const switchingChain = useAppSelector((state) => state.wallets.switchingChain) const switchingChain = useAppSelector((state) => state.wallets.switchingChain)
const targetChain = switchingChain ? switchingChain : undefined const targetChain = switchingChain ? switchingChain : undefined
const switchingChainIsSupported = useIsSupportedChainId(targetChain) const switchingChainIsSupported = useIsSupportedChainId(targetChain)
// @ts-ignore
const isUsingBlockedExtension = window.ethereum?.['isPocketUniverseZ'] const [showBannedExtension, setShowBannedExtension] = useState<boolean>(false)
useEffect(() => {
const isBannedExtension = async () => {
let blocked = false
const webAccessibleResources = [
'chrome-extension://gacgndbocaddlemdiaadajmlggabdeod/ccip.08a1ffae.js', // pocket universe extension
]
for (let i = 0; i < webAccessibleResources.length; i++) {
if (blocked) {
break
}
try {
await fetch(webAccessibleResources[i])
// if anything comes back, then the extension is active
blocked = true
} catch (error) {
console.error(error)
}
}
setShowBannedExtension(blocked)
}
if (window.chrome) isBannedExtension().catch(console.error)
}, [])
return ( return (
<> <>
...@@ -662,7 +684,7 @@ export function SwapForm({ disableTokenInputs = false, onCurrencyChange }: SwapF ...@@ -662,7 +684,7 @@ export function SwapForm({ disableTokenInputs = false, onCurrencyChange }: SwapF
}} }}
id="swap-button" id="swap-button"
data-testid="swap-button" data-testid="swap-button"
disabled={isUsingBlockedExtension || !getIsReviewableQuote(trade, tradeState, swapInputError)} disabled={showBannedExtension || !getIsReviewableQuote(trade, tradeState, swapInputError)}
error={!swapInputError && priceImpactSeverity > 2 && allowance.state === AllowanceState.ALLOWED} error={!swapInputError && priceImpactSeverity > 2 && allowance.state === AllowanceState.ALLOWED}
> >
<Text fontSize={20}> <Text fontSize={20}>
...@@ -688,7 +710,7 @@ export function SwapForm({ disableTokenInputs = false, onCurrencyChange }: SwapF ...@@ -688,7 +710,7 @@ export function SwapForm({ disableTokenInputs = false, onCurrencyChange }: SwapF
priceImpact={largerPriceImpact} priceImpact={largerPriceImpact}
/> />
)} )}
{isUsingBlockedExtension && <SwapNotice />} {showBannedExtension && <SwapNotice />}
</div> </div>
</AutoColumn> </AutoColumn>
</> </>
......
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