Skip to content

Commit a2ba668

Browse files
committed
fixup! feat(shared): mf-6735 add privy setup provider to UI roots
1 parent f13b1b7 commit a2ba668

File tree

36 files changed

+908
-313
lines changed

36 files changed

+908
-313
lines changed

cspell.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,4 +266,3 @@
266266
"youtube"
267267
]
268268
}
269-

packages/mask/content-script/site-adaptors/twitter.com/injection/ToolboxHint.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { MutationObserverWatcher } from '@dimensiondev/holoflows-kit'
2-
import { PrivySetup, PrivySetupProvider } from '@masknet/shared'
2+
import { PrivySetup } from '@masknet/shared'
33
import { ValueRef } from '@masknet/shared-base'
44
import { useValueRef } from '@masknet/shared-base-ui'
55
import { RootWeb3ContextProvider } from '@masknet/web3-hooks-base'
@@ -28,12 +28,10 @@ export function injectToolboxHintAtTwitter(signal: AbortSignal, category: 'walle
2828
signal,
2929
})
3030
attachReactTreeWithContainer(watcher.firstDOMProxy.afterShadow, { signal }).render(
31-
<PrivySetupProvider>
32-
<RootWeb3ContextProvider>
33-
<PrivySetup />
34-
<ToolboxHintAtTwitter category={category} />
35-
</RootWeb3ContextProvider>
36-
</PrivySetupProvider>,
31+
<RootWeb3ContextProvider>
32+
<PrivySetup />
33+
<ToolboxHintAtTwitter category={category} />
34+
</RootWeb3ContextProvider>,
3735
)
3836
injectProfile(signal)
3937
}

packages/mask/content-script/utils/shadow-root/ContentScriptGlobalProvider.tsx

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { i18n } from '@lingui/core'
22
import { useSiteThemeMode } from '@masknet/plugin-infra/content-script'
3-
import { LinguiProviderHMR, PrivySetup, PrivySetupProvider, SharedContextProvider } from '@masknet/shared'
3+
import { LinguiProviderHMR, SharedContextProvider, PrivySetup } from '@masknet/shared'
44
import { queryClient } from '@masknet/shared-base-ui'
55
import { DialogStackingProvider, MaskThemeProvider } from '@masknet/theme'
66
import { RootWeb3ContextProvider } from '@masknet/web3-hooks-base'
@@ -29,22 +29,20 @@ export function ContentScriptGlobalProvider(children: React.ReactNode) {
2929
<DialogStackingProvider hasGlobalBackdrop={false}>
3030
<QueryClientProvider client={queryClient}>
3131
<PersistQueryClientProvider client={queryClient} persistOptions={queryPersistOptions}>
32-
<PrivySetupProvider>
33-
<RootWeb3ContextProvider>
34-
<PrivySetup />
35-
<SharedContextProvider>
36-
<LinguiProviderHMR i18n={i18n}>
37-
<MaskThemeProvider
38-
// eslint-disable-next-line react-compiler/react-compiler
39-
useMaskIconPalette={useSiteThemeMode}
40-
// eslint-disable-next-line react-compiler/react-compiler
41-
useTheme={useMaskSiteAdaptorMixedTheme}>
42-
{jsx}
43-
</MaskThemeProvider>
44-
</LinguiProviderHMR>
45-
</SharedContextProvider>
46-
</RootWeb3ContextProvider>
47-
</PrivySetupProvider>
32+
<RootWeb3ContextProvider>
33+
<PrivySetup />
34+
<SharedContextProvider>
35+
<LinguiProviderHMR i18n={i18n}>
36+
<MaskThemeProvider
37+
// eslint-disable-next-line react-compiler/react-compiler
38+
useMaskIconPalette={useSiteThemeMode}
39+
// eslint-disable-next-line react-compiler/react-compiler
40+
useTheme={useMaskSiteAdaptorMixedTheme}>
41+
{jsx}
42+
</MaskThemeProvider>
43+
</LinguiProviderHMR>
44+
</SharedContextProvider>
45+
</RootWeb3ContextProvider>
4846
</PersistQueryClientProvider>
4947
</QueryClientProvider>
5048
</DialogStackingProvider>

packages/mask/dashboard/Dashboard.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
import { LinguiProviderHMR, PersonaContext, SharedContextProvider, Modals } from '@masknet/shared'
1313
import { ErrorBoundary } from '@masknet/shared-base-ui'
1414
import { RootWeb3ContextProvider } from '@masknet/web3-hooks-base'
15-
import { DashboardRoutes } from '@masknet/shared-base'
15+
import { DashboardRoutes, PrivySetupProvider } from '@masknet/shared-base'
1616

1717
import { Pages } from './pages/routes.js'
1818
import { UserContext, useAppearance } from '../shared-ui/index.js'
@@ -55,6 +55,7 @@ export default function Dashboard() {
5555

5656
// prettier-ignore
5757
return (
58+
<PrivySetupProvider>
5859
<RootWeb3ContextProvider enforceEVM>
5960
<LinguiProviderHMR i18n={i18n}>
6061
<StyledEngineProvider injectFirst>
@@ -84,5 +85,6 @@ export default function Dashboard() {
8485
</StyledEngineProvider>
8586
</LinguiProviderHMR>
8687
</RootWeb3ContextProvider>
88+
</PrivySetupProvider>
8789
)
8890
}

packages/mask/popups/Popup.tsx

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Services from '#services'
2-
import { PageUIProvider, PersonaContext, PrivySetup, PrivySetupProvider } from '@masknet/shared'
3-
import { MaskMessages, PopupRoutes, assert } from '@masknet/shared-base'
2+
import { PageUIProvider, PersonaContext, PrivySetup } from '@masknet/shared'
3+
import { MaskMessages, PopupRoutes, PrivySetupProvider, assert } from '@masknet/shared-base'
44
import { queryClient } from '@masknet/shared-base-ui'
55
import { PopupSnackbarProvider } from '@masknet/theme'
66
import { EVMWeb3ContextProvider } from '@masknet/web3-hooks-base'
@@ -112,31 +112,31 @@ export default function Popups() {
112112

113113
// prettier-ignore
114114
return (
115-
<PrivySetupProvider>
116-
<PersistQueryClientProvider client={queryClient} persistOptions={queryPersistOptions}>
117-
{/* eslint-disable-next-line react-compiler/react-compiler */}
118-
<PageUIProvider useTheme={usePopupTheme}>
119-
<PopupSnackbarProvider>
120-
<EVMWeb3ContextProvider providerType={ProviderType.MaskWallet}>
121-
<PopupContext>
122-
<PageTitleContext value={titleContext}>
123-
{/* https://github.com/TanStack/query/issues/5417 */}
124-
{process.env.NODE_ENV === 'development' ?
125-
<ReactQueryDevtools buttonPosition="bottom-right" />
126-
: null}
127-
<PrivySetup />
128-
<RouterProvider
129-
router={router}
130-
fallbackElement={pending}
131-
future={{ v7_startTransition: true }}
132-
/>
133-
</PageTitleContext>
134-
</PopupContext>
135-
</EVMWeb3ContextProvider>
136-
</PopupSnackbarProvider>
137-
</PageUIProvider>
138-
</PersistQueryClientProvider>
139-
</PrivySetupProvider>
115+
<PrivySetupProvider>
116+
<PersistQueryClientProvider client={queryClient} persistOptions={queryPersistOptions}>
117+
{/* eslint-disable-next-line react-compiler/react-compiler */}
118+
<PageUIProvider useTheme={usePopupTheme}>
119+
<PopupSnackbarProvider>
120+
<EVMWeb3ContextProvider providerType={ProviderType.MaskWallet}>
121+
<PopupContext>
122+
<PageTitleContext value={titleContext}>
123+
{/* https://github.com/TanStack/query/issues/5417 */}
124+
{process.env.NODE_ENV === 'development' ?
125+
<ReactQueryDevtools buttonPosition="bottom-right" />
126+
: null}
127+
<PrivySetup />
128+
<RouterProvider
129+
router={router}
130+
fallbackElement={pending}
131+
future={{ v7_startTransition: true }}
132+
/>
133+
</PageTitleContext>
134+
</PopupContext>
135+
</EVMWeb3ContextProvider>
136+
</PopupSnackbarProvider>
137+
</PageUIProvider>
138+
</PersistQueryClientProvider>
139+
</PrivySetupProvider>
140140
)
141141
}
142142

packages/mask/popups/components/Privy/Setup.tsx

Lines changed: 0 additions & 49 deletions
This file was deleted.

packages/mask/popups/configs.ts

Lines changed: 0 additions & 59 deletions
This file was deleted.

packages/mask/popups/pages/Wallet/Interaction/TransactionRequest.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
abiCoder,
99
ChainId,
1010
createJsonRpcPayload,
11+
createJsonRpcResponse,
1112
ErrorEditor,
1213
formatEthereumAddress,
1314
PayloadEditor,
@@ -79,6 +80,7 @@ const approveParametersType = [
7980
},
8081
]
8182

83+
let mockingPrivyPid = Date.now() // Use unix timestamp as pid to avoid duplicate mocking
8284
export function TransactionRequest(props: InteractionItemProps) {
8385
const wallet = useWallet()
8486
const privyWallet = usePrivyWallet(wallet?.address)
@@ -129,9 +131,11 @@ export function TransactionRequest(props: InteractionItemProps) {
129131
setConfirmAction(async () => {
130132
if (privyWallet) {
131133
const provider = await privyWallet.getEthereumProvider()
132-
const result = await provider.request(request.request.arguments)
134+
const result: string = await provider.request(request.request.arguments)
135+
mockingPrivyPid += 1
133136
await Message.updateMessage(request.ID, {
134-
response: result,
137+
request: request.request,
138+
response: createJsonRpcResponse(mockingPrivyPid, result),
135139
state: MessageStateType.APPROVED,
136140
})
137141
return

packages/mask/popups/pages/Wallet/Interaction/WalletSignRequest.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export function WalletSignRequest(props: InteractionItemProps) {
3434
const provider = await privyWallet.getEthereumProvider()
3535
const result = await provider.request(request)
3636
await Message!.updateMessage(currentRequest.ID, {
37+
request: currentRequest.request,
3738
response: result,
3839
state: MessageStateType.APPROVED,
3940
})

packages/mask/shared-ui/locale/en-US.po

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)