Skip to content

Commit fcc6ce1

Browse files
ci(release): publish latest release
1 parent dc816bd commit fcc6ce1

File tree

998 files changed

+69181
-47247
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

998 files changed

+69181
-47247
lines changed

Diff for: .gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,6 @@ packages/uniswap/src/i18n/locales/source/*_old.json
5454

5555
# CodeTours Extension
5656
.tours/*
57+
58+
# auto-generated test ids
59+
apps/mobile/.maestro/scripts/testIds.js
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
diff --git a/dist/esm/Popover.mjs b/dist/esm/Popover.mjs
2+
index ed2dc72f632ed2adab30a9b7c25e79d955ffac5d..6c4f2046942c45908b8f37f66c2e56ef2af1238d 100644
3+
--- a/dist/esm/Popover.mjs
4+
+++ b/dist/esm/Popover.mjs
5+
@@ -10,12 +10,11 @@ import { FloatingOverrideContext } from "@tamagui/floating";
6+
import { FocusScope } from "@tamagui/focus-scope";
7+
import { composeEventHandlers, withStaticProperties } from "@tamagui/helpers";
8+
import { Popper, PopperAnchor, PopperArrow, PopperContent, PopperContentFrame, PopperContext, usePopperContext } from "@tamagui/popper";
9+
-import { Portal, resolveViewZIndex } from "@tamagui/portal";
10+
+import { Portal } from "@tamagui/portal";
11+
import { RemoveScroll } from "@tamagui/remove-scroll";
12+
import { Sheet, SheetController } from "@tamagui/sheet";
13+
import { YStack } from "@tamagui/stacks";
14+
import { useControllableState } from "@tamagui/use-controllable-state";
15+
-import { StackZIndexContext } from "@tamagui/z-index-stack";
16+
import * as React from "react";
17+
import { Platform, ScrollView } from "react-native-web";
18+
import { useFloatingContext } from "./useFloatingContext.mjs";
19+
@@ -49,14 +48,13 @@ const POPOVER_SCOPE = "PopoverScope",
20+
composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
21+
if (!props.children) return null;
22+
const trigger = /* @__PURE__ */jsx(View, {
23+
- "aria-expanded": context.open,
24+
- "data-state": getState(context.open),
25+
- ...rest,
26+
- ref: composedTriggerRef,
27+
- onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
28+
- });
29+
- if (anchorTo) {
30+
- const virtualRef = {
31+
+ "aria-expanded": context.open,
32+
+ "data-state": getState(context.open),
33+
+ ...rest,
34+
+ ref: composedTriggerRef,
35+
+ onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
36+
+ }),
37+
+ virtualRef = React.useMemo(() => anchorTo ? {
38+
current: {
39+
getBoundingClientRect: () => isWeb ? DOMRect.fromRect(anchorTo) : anchorTo,
40+
...(!isWeb && {
41+
@@ -64,16 +62,13 @@ const POPOVER_SCOPE = "PopoverScope",
42+
measureInWindow: c => c(anchorTo?.x, anchorTo?.y, anchorTo?.width, anchorTo?.height)
43+
})
44+
}
45+
- };
46+
- return /* @__PURE__ */jsx(PopperAnchor, {
47+
- virtualRef,
48+
- __scopePopper: __scopePopover || POPOVER_SCOPE,
49+
- children: trigger
50+
- });
51+
- }
52+
+ } : null, [context.anchorTo, anchorTo?.x, anchorTo?.y, anchorTo?.x, anchorTo?.height, anchorTo?.width]);
53+
return context.hasCustomAnchor ? trigger : /* @__PURE__ */jsx(PopperAnchor, {
54+
+ ...(virtualRef && {
55+
+ virtualRef
56+
+ }),
57+
__scopePopper: __scopePopover || POPOVER_SCOPE,
58+
- asChild: !0,
59+
+ asChild: rest.asChild,
60+
children: trigger
61+
});
62+
}),
63+
@@ -143,7 +138,7 @@ function PopoverContentPortal(props) {
64+
const {
65+
__scopePopover
66+
} = props,
67+
- zIndex = props.zIndex,
68+
+ zIndex = props.zIndex ?? 15e4,
69+
context = usePopoverContext(__scopePopover),
70+
popperContext = usePopperContext(__scopePopover || POPOVER_SCOPE),
71+
themeName = useThemeName(),
72+
@@ -156,7 +151,6 @@ function PopoverContentPortal(props) {
73+
adaptContext,
74+
children: props.children
75+
})), /* @__PURE__ */jsx(Portal, {
76+
- stackZIndex: !0,
77+
zIndex,
78+
children: /* @__PURE__ */jsxs(Theme, {
79+
forceClassName: !0,
80+
@@ -164,10 +158,7 @@ function PopoverContentPortal(props) {
81+
children: [!!context.open && !context.breakpointActive && /* @__PURE__ */jsx(YStack, {
82+
fullscreen: !0,
83+
onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
84+
- }), /* @__PURE__ */jsx(StackZIndexContext, {
85+
- zIndex: resolveViewZIndex(zIndex),
86+
- children: contents
87+
- })]
88+
+ }), contents]
89+
})
90+
});
91+
}
92+
@@ -395,4 +386,4 @@ const PopoverSheetController = ({
93+
return context.open === !1 ? !1 : isAdapted;
94+
};
95+
export { Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverContext, PopoverTrigger, usePopoverContext };
96+
-//# sourceMappingURL=Popover.mjs.map
97+
+

Diff for: .yarn/patches/@tamagui-web-npm-1.121.7-4de089c18f.patch renamed to .yarn/patches/@tamagui-web-npm-1.125.17-51d5261cab.patch

+18-17
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
diff --git a/dist/cjs/createComponent.native.js b/dist/cjs/createComponent.native.js
2-
index ddcbfbc5112e148ff6a33fffd986d763b9f32248..fd8b81f75d0a9fc414fbda5eea02d9405d57a89f 100644
2+
index 86d3da13fa485e62f44137ea449320db7ec7e877..d27abf8ee06b0791f14e4a254c7f11cb572580be 100644
33
--- a/dist/cjs/createComponent.native.js
44
+++ b/dist/cjs/createComponent.native.js
5-
@@ -98,7 +98,7 @@ function createComponent(staticConfig) {
5+
@@ -97,7 +97,8 @@ function createComponent(staticConfig) {
66
defaultProps,
77
defaultPropsKeyOrder: defaultProps ? Object.keys(defaultProps) : []
88
});
99
- var component = /* @__PURE__ */ import_react.default.forwardRef(function(propsIn, forwardedRef) {
10+
+
1011
+ var OldComponent = /* @__PURE__ */ import_react.default.forwardRef(function(propsIn, forwardedRef) {
11-
var _themeState_state, _hooks_usePropsTransform, _hooks_useEvents, _config_animations, internalID = process.env.NODE_ENV === "development" ? import_react.default.useId() : "";
12+
var _hooks_usePropsTransform, _hooks_useEvents, _config_animations, internalID = process.env.NODE_ENV === "development" ? import_react.default.useId() : "";
1213
if (process.env.NODE_ENV === "development" && startVisualizer && (startVisualizer(), startVisualizer = void 0), !hasSetupBaseViews) {
1314
var _hooks_getBaseViews;
14-
@@ -548,6 +548,13 @@ If you meant to do this, you can disable this warning - either change untilMeasu
15+
@@ -558,6 +559,13 @@ If you meant to do this, you can disable this warning - either change untilMeasu
1516
delete globalThis.willPrint, time.print(), time = null;
1617
}, 50))), content;
1718
});
@@ -26,29 +27,29 @@ index ddcbfbc5112e148ff6a33fffd986d763b9f32248..fd8b81f75d0a9fc414fbda5eea02d940
2627
var res = component;
2728
(process.env.TAMAGUI_FORCE_MEMO || staticConfig.memo) && (res = /* @__PURE__ */ import_react.default.memo(res)), res.staticConfig = staticConfig;
2829
diff --git a/dist/esm/createComponent.native.js b/dist/esm/createComponent.native.js
29-
index 40466f28af50e22730462702a96e2c8b41969276..92f8f589a72098efc72e58f7cf64fb80e00787d9 100644
30+
index 5c05d1ea28cbcbcaf4cac7bc7826243895b0bae5..e81c77c7b716bf3bfd3c89b1043bb91b86a7dee6 100644
3031
--- a/dist/esm/createComponent.native.js
3132
+++ b/dist/esm/createComponent.native.js
32-
@@ -90,7 +90,7 @@ function createComponent(staticConfig) {
33+
@@ -116,7 +116,7 @@ function createComponent(staticConfig) {
3334
defaultProps,
3435
defaultPropsKeyOrder: defaultProps ? Object.keys(defaultProps) : []
3536
});
36-
- var component = /* @__PURE__ */ React.forwardRef(function(propsIn, forwardedRef) {
37-
+ var OldComponent = /* @__PURE__ */ React.forwardRef(function(propsIn, forwardedRef) {
38-
var _themeState_state, _hooks_usePropsTransform, _hooks_useEvents, _config_animations, internalID = process.env.NODE_ENV === "development" ? React.useId() : "";
39-
if (process.env.NODE_ENV === "development" && startVisualizer && (startVisualizer(), startVisualizer = void 0), !hasSetupBaseViews) {
40-
var _hooks_getBaseViews;
41-
@@ -540,6 +540,13 @@ If you meant to do this, you can disable this warning - either change untilMeasu
37+
- var component = /* @__PURE__ */React.forwardRef(function (propsIn, forwardedRef) {
38+
+ var OldComponent = /* @__PURE__ */React.forwardRef(function (propsIn, forwardedRef) {
39+
var _hooks_usePropsTransform,
40+
_hooks_useEvents,
41+
_config_animations,
42+
@@ -625,6 +625,13 @@ If you meant to do this, you can disable this warning - either change untilMeasu
43+
return process.env.NODE_ENV === "development" && time && (time`rest`, globalThis.willPrint || (globalThis.willPrint = !0, setTimeout(function () {
4244
delete globalThis.willPrint, time.print(), time = null;
4345
}, 50))), content;
44-
});
45-
+ // UNISWAP PATCH: Using key to avoid conditionally calling useAnimation hook
46-
+ var component = /* @__PURE__ */ import_react.default.forwardRef(function(propsIn, forwardedRef) {
46+
+ });
47+
+ // UNISWAP PATCH: Using key to avoid conditionally calling useAnimation hook
48+
+ var component = /* @__PURE__ */ React.forwardRef(function(propsIn, forwardedRef) {
4749
+ return /* @__PURE__ */ _jsx(OldComponent, {
4850
+ ref: forwardedRef,
4951
+ ...propsIn,
5052
+ }, "animation" in propsIn ? 1 : 0);
51-
+ });
53+
});
5254
staticConfig.componentName && (component.displayName = staticConfig.componentName);
5355
var res = component;
54-
(process.env.TAMAGUI_FORCE_MEMO || staticConfig.memo) && (res = /* @__PURE__ */ React.memo(res)), res.staticConfig = staticConfig;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
diff --git a/dist/esm/useStackedZIndex.mjs b/dist/esm/useStackedZIndex.mjs
2+
index a78e5c3ef76034648d57483eb7fabd944815e466..4935bcfcdc35c8e7a494a79c6d507aa526672819 100644
3+
--- a/dist/esm/useStackedZIndex.mjs
4+
+++ b/dist/esm/useStackedZIndex.mjs
5+
@@ -1,31 +1,23 @@
6+
-import { useContext, useEffect, useId, useMemo } from "react";
7+
-import { ZIndexHardcodedContext, ZIndexStackContext } from "./context.mjs";
8+
-const ZIndicesByContext = {},
9+
+import { useEffect, useId, useMemo } from "react";
10+
+const CurrentPortalZIndices = {},
11+
useStackedZIndex = props => {
12+
const {
13+
stackZIndex,
14+
- zIndex: zIndexProp
15+
+ zIndex: zIndexProp = 1e3
16+
} = props,
17+
id = useId(),
18+
- stackingContextLevel = useContext(ZIndexStackContext),
19+
- hardcoded = useContext(ZIndexHardcodedContext);
20+
- ZIndicesByContext[stackingContextLevel] ||= {};
21+
- const stackContext = ZIndicesByContext[stackingContextLevel],
22+
zIndex = useMemo(() => {
23+
- if (typeof zIndexProp == "number") return zIndexProp;
24+
if (stackZIndex) {
25+
- if (hardcoded) return hardcoded + 1;
26+
- const highest = Object.values(stackContext).reduce((acc, cur) => Math.max(acc, cur), 0),
27+
- found = stackingContextLevel * 5e3 + highest + 1;
28+
- return typeof stackZIndex == "number" ? stackZIndex + found : found;
29+
+ const highest = Object.values(CurrentPortalZIndices).reduce((acc, cur) => Math.max(acc, cur), 0);
30+
+ return typeof stackZIndex == "number" ? Math.max(stackZIndex, highest + 1) : highest + 1;
31+
}
32+
- return 1;
33+
- }, [stackingContextLevel, zIndexProp, stackZIndex]);
34+
+ if (zIndexProp) return zIndexProp;
35+
+ }, [stackZIndex]);
36+
return useEffect(() => {
37+
- if (stackZIndex) return stackContext[id] = zIndex, () => {
38+
- delete stackContext[id];
39+
+ if (typeof stackZIndex == "number") return CurrentPortalZIndices[id] = stackZIndex, () => {
40+
+ delete CurrentPortalZIndices[id];
41+
};
42+
- }, [zIndex]), zIndex;
43+
+ }, [stackZIndex]), zIndex;
44+
};
45+
export { useStackedZIndex };
46+
//# sourceMappingURL=useStackedZIndex.mjs.map
47+
diff --git a/dist/esm/useStackedZIndex.mjs.map b/dist/esm/useStackedZIndex.mjs.map
48+
index 655e7d2cc4a905722f7f54eb9bd53c2a2e50a4c2..d41e5caa0cbd0ece2b5e15aa5ab65f178a6e4e57 100644
49+
--- a/dist/esm/useStackedZIndex.mjs.map
50+
+++ b/dist/esm/useStackedZIndex.mjs.map
51+
@@ -1 +1 @@
52+
-{"version":3,"names":["useContext","useEffect","useId","useMemo","ZIndexHardcodedContext","ZIndexStackContext","ZIndicesByContext","useStackedZIndex","props","stackZIndex","zIndex","zIndexProp","id","stackingContextLevel","hardcoded","stackContext","highest","Object","values","reduce","acc","cur","Math","max","found"],"sources":["../../src/useStackedZIndex.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,EAAWC,KAAA,EAAOC,OAAA,QAAe;AACtD,SAASC,sBAAA,EAAwBC,kBAAA,QAA0B;AAG3D,MAAMC,iBAAA,GAA4D,CAAC;EAEtDC,gBAAA,GAAoBC,KAAA,IAG3B;IACJ,MAAM;QAAEC,WAAA;QAAaC,MAAA,EAAQC;MAAW,IAAIH,KAAA;MACtCI,EAAA,GAAKV,KAAA,CAAM;MACXW,oBAAA,GAAuBb,UAAA,CAAWK,kBAAkB;MACpDS,SAAA,GAAYd,UAAA,CAAWI,sBAAsB;IAEnDE,iBAAA,CAAkBO,oBAAoB,MAAM,CAAC;IAC7C,MAAME,YAAA,GAAeT,iBAAA,CAAkBO,oBAAoB;MAErDH,MAAA,GAASP,OAAA,CAAQ,MAAM;QAC3B,IAAI,OAAOQ,UAAA,IAAe,UACxB,OAAOA,UAAA;QAET,IAAIF,WAAA,EAAa;UACf,IAAIK,SAAA,EACF,OAAOA,SAAA,GAAY;UAGrB,MAAME,OAAA,GAAUC,MAAA,CAAOC,MAAA,CAAOH,YAAY,EAAEI,MAAA,CAC1C,CAACC,GAAA,EAAKC,GAAA,KAAQC,IAAA,CAAKC,GAAA,CAAIH,GAAA,EAAKC,GAAG,GAC/B,CACF;YAGMG,KAAA,GAAQX,oBAAA,GAAuB,MAAOG,OAAA,GAAU;UAGtD,OAAO,OAAOP,WAAA,IAAgB,WAAWA,WAAA,GAAce,KAAA,GAAQA,KAAA;QACjE;QAEA,OAAO;MACT,GAAG,CAACX,oBAAA,EAAsBF,UAAA,EAAYF,WAAW,CAAC;IAElD,OAAAR,SAAA,CAAU,MAAM;MACd,IAAIQ,WAAA,EACF,OAAAM,YAAA,CAAaH,EAAE,IAAIF,MAAA,EACZ,MAAM;QACX,OAAOK,YAAA,CAAaH,EAAE;MACxB;IAEJ,GAAG,CAACF,MAAM,CAAC,GAEJA,MAAA;EACT","ignoreList":[]}
53+
\ No newline at end of file
54+
+{"version":3,"names":["useEffect","useId","useMemo","CurrentPortalZIndices","useStackedZIndex","props","stackZIndex","zIndex","zIndexProp","id","highest","Object","values","reduce","acc","cur","Math","max"],"sources":["../../src/useStackedZIndex.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,KAAA,EAAOC,OAAA,QAAe;AAE1C,MAAMC,qBAAA,GAAgD,CAAC;EAE1CC,gBAAA,GAAoBC,KAAA,IAG3B;IACJ,MAAM;QAAEC,WAAA;QAAaC,MAAA,EAAQC,UAAA,GAAa;MAAK,IAAIH,KAAA;MAC7CI,EAAA,GAAKR,KAAA,CAAM;MAEXM,MAAA,GAASL,OAAA,CAAQ,MAAM;QAC3B,IAAII,WAAA,EAAa;UACf,MAAMI,OAAA,GAAUC,MAAA,CAAOC,MAAA,CAAOT,qBAAqB,EAAEU,MAAA,CACnD,CAACC,GAAA,EAAKC,GAAA,KAAQC,IAAA,CAAKC,GAAA,CAAIH,GAAA,EAAKC,GAAG,GAC/B,CACF;UACA,OAAI,OAAOT,WAAA,IAAgB,WAClBU,IAAA,CAAKC,GAAA,CAAIX,WAAA,EAAaI,OAAA,GAAU,CAAC,IAGnCA,OAAA,GAAU;QACnB;QACA,IAAIF,UAAA,EACF,OAAOA,UAAA;MAEX,GAAG,CAACF,WAAW,CAAC;IAEhB,OAAAN,SAAA,CAAU,MAAM;MACd,IAAI,OAAOM,WAAA,IAAgB,UACzB,OAAAH,qBAAA,CAAsBM,EAAE,IAAIH,WAAA,EACrB,MAAM;QACX,OAAOH,qBAAA,CAAsBM,EAAE;MACjC;IAEJ,GAAG,CAACH,WAAW,CAAC,GAETC,MAAA;EACT","ignoreList":[]}

Diff for: CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @uniswap/web-admins

Diff for: RELEASE

+74-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,78 @@
1-
We are back with some new updates! Here’s the latest:
1+
IPFS hash of the deployment:
2+
- CIDv0: `QmSSLdtykr4KjVJGyMjMx4hmMFVhcGkATFLJtfyeMTYMWC`
3+
- CIDv1: `bafybeib44pgd47ej4v7i33ggxbaeadodcp562yv7ct2lgbmjv6fkj367uu`
24

3-
Settings Refresh: Enjoy a more streamlined settings page. Also note that Manage Connections has now moved out of settings and can be accessed by clicking your profile image.
5+
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
46

5-
Dapp Connection Refresh: Once connected to a dapp, click the dapp’s icon in the Extension and view a more condensed network selector, as well as other options for managing that dapp connection.
7+
You can also access the Uniswap Interface from an IPFS gateway.
8+
**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.
9+
**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).
10+
Your Uniswap settings are never remembered across different URLs.
11+
12+
IPFS gateways:
13+
- https://bafybeib44pgd47ej4v7i33ggxbaeadodcp562yv7ct2lgbmjv6fkj367uu.ipfs.dweb.link/
14+
- [ipfs://QmSSLdtykr4KjVJGyMjMx4hmMFVhcGkATFLJtfyeMTYMWC/](ipfs://QmSSLdtykr4KjVJGyMjMx4hmMFVhcGkATFLJtfyeMTYMWC/)
15+
16+
## 5.78.0 (2025-04-02)
17+
18+
19+
### Features
20+
21+
* **web:** [EW] list all passkeys for a wallet (#14815) 3d90cdd
22+
* **web:** add custom cache-control headers to the CF Pages app (#17936) 9310ef1
23+
* **web:** add onPress to search modal items (#17039) aafb4de
24+
* **web:** lazy load nft icons (#17963) e457d19
25+
* **web:** redo search text input for search modal (#17040) 6ed4d95
26+
* **web:** reduce amount of Mini Portfolio code in initial bundle (#17962) 73d4c24
27+
* **web:** refactor transactions tables (#17266) 68a27df
28+
* **web:** remove sentry (#17528) 8460708
29+
* **web:** set cache-control headers for vercel deploys (#17945) 6116753
30+
* **web:** table refactor (#17265) ba668ea
31+
* **web:** table scroll button (#17355) 7e1bdc8
32+
* **web:** use ErrorBoundary for LiquidityPositionRangeChart (#17965) 7c78cb3
33+
* **web:** use new REST endpoint for sitemap, add new chains (#17657) 5666bf0
34+
35+
36+
### Bug Fixes
37+
38+
* **web:** add animations onpress and hover (#17725) 18f86cc
39+
* **web:** add presets to the lp screen (#17930) 7e70c82
40+
* **web:** console errors in LP flow - dedupe TamaguiClickableStyle (#17984) 04910e2
41+
* **web:** emphasis on dropdown button in LP step (#17972) 63bd289
42+
* **web:** fix crash in position range chart when currency decimals is zero (#17882) 6649588
43+
* **web:** fix range inputs with decimals (#17902) 561cab1
44+
* **web:** fix wrong useEnabledChain usage in WebUniswapContext (#17698) 9855fc5
45+
* **web:** handle scientific notation in LP range input auto-range (#18005) 1b00490
46+
* **web:** hover state on positions page (#17747) da3f3ff
47+
* **web:** migrate CopyHelper to tamagui (#17560) b6cec36
48+
* **web:** move vercel config back to root (#18039) 43ea5ef
49+
* **web:** patch stacked zindex sheets (#17740) a8bd517
50+
* **web:** patch z-index stacking (#17904) e3ce986
51+
* **web:** pull out landing page e2e tests around experimental CTAs (#17651) 2274a62
52+
* **web:** remove animation to prevent transparent flicker (#17745) 85e416d
53+
* **web:** remove styled components from positioncard/v2 (#17681) b0ec455
54+
* **web:** remove styled components from sushi card (#17682) 512ef16
55+
* **web:** remove styled components positions/index (#17680) f52bcc5
56+
* **web:** remove text 0 appearing on chart (#17861) ce86a70
57+
* **web:** update animations according to fred feedback (#17588) c5636ca
58+
* **web:** update line chart colors (#17832) c1091e7
59+
* **web:** update missed PR comments (#18029) 23d4d3b
60+
61+
62+
### Continuous Integration
63+
64+
* **web:** update sitemaps dfb1790
65+
66+
67+
### Tests
68+
69+
* **web:** add e2e fees tests (#17600) ab472ec
70+
71+
72+
### Code Refactoring
73+
74+
* **web:** extract SlippageWarningCaption (#17639) d0677bb
75+
* **web:** migrate from styled component to tamagui and ui cleanup (#17649) 4ebbfa7
76+
* **web:** move SwapFormSettings inside swap/form/header (#17536) 624d58f
677

7-
Other changes:
878

9-
- More helpcenter articles
10-
- Various bug fixes and performance improvements

Diff for: VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
extension/1.18.0
1+
web/5.78.0

Diff for: apps/extension/.eslintrc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ rulesDirPlugin.RULES_DIR = '../../packages/uniswap/eslint_rules'
33

44
module.exports = {
55
root: true,
6-
extends: ['@uniswap/eslint-config/native-app'],
6+
extends: ['@uniswap/eslint-config/extension'],
77
plugins: ['rulesdir'],
88
ignorePatterns: [
99
'node_modules',

Diff for: apps/extension/package.json

+8-4
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@
44
"browserslist": "last 2 chrome versions",
55
"dependencies": {
66
"@apollo/client": "3.10.4",
7+
"@datadog/browser-rum": "5.23.3",
8+
"@ethersproject/bignumber": "5.7.0",
79
"@ethersproject/providers": "5.7.2",
10+
"@ethersproject/strings": "5.7.0",
11+
"@ethersproject/wordlists": "5.7.0",
812
"@metamask/rpc-errors": "6.2.1",
913
"@reduxjs/toolkit": "1.9.3",
1014
"@svgr/webpack": "8.0.1",
11-
"@tamagui/core": "1.121.7",
15+
"@tamagui/core": "1.125.17",
1216
"@types/uuid": "9.0.1",
13-
"@uniswap/analytics-events": "2.41.0",
14-
"@uniswap/uniswapx-sdk": "3.0.0-beta.3",
17+
"@uniswap/analytics-events": "2.42.0",
18+
"@uniswap/uniswapx-sdk": "3.0.0-beta.7",
1519
"@uniswap/universal-router-sdk": "4.19.5",
1620
"@uniswap/v3-sdk": "3.25.2",
1721
"@uniswap/v4-sdk": "1.21.2",
@@ -77,7 +81,7 @@
7781
"statsig-js": "4.41.0",
7882
"style-loader": "3.3.2",
7983
"swc-loader": "0.2.6",
80-
"tamagui-loader": "1.121.7",
84+
"tamagui-loader": "1.125.17",
8185
"typescript": "5.3.3",
8286
"webpack": "5.90.0",
8387
"webpack-cli": "5.1.4",

Diff for: apps/extension/src/app/components/Trace/TraceUserProperties.tsx

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { datadogRum } from '@datadog/browser-rum'
12
import { useEffect } from 'react'
23
import { useColorScheme } from 'react-native'
34
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
@@ -24,6 +25,14 @@ export function TraceUserProperties(): null {
2425

2526
useGatingUserPropertyUsernames()
2627

28+
// Set user properties for datadog
29+
30+
useEffect(() => {
31+
datadogRum.setUserProperty(ExtensionUserPropertyName.ActiveWalletAddress, activeAccount?.address)
32+
}, [activeAccount?.address])
33+
34+
// Set user properties for amplitude
35+
2736
useEffect(() => {
2837
setUserProperty(ExtensionUserPropertyName.AppVersion, chrome.runtime.getManifest().version)
2938
return () => {

0 commit comments

Comments
 (0)