From 550f05665fa880b5dd52cc23cef313be6585735c Mon Sep 17 00:00:00 2001 From: zhouhanseng Date: Tue, 14 Jun 2022 23:07:35 +0800 Subject: [PATCH 1/6] fix(lucky drop): bug && ui --- .../mask/src/plugins/ITO/SNSAdaptor/CompositionDialog.tsx | 4 +++- .../mask/src/plugins/RedPacket/SNSAdaptor/RedPacket/index.tsx | 2 +- .../src/plugins/RedPacket/SNSAdaptor/RedPacket/useStyles.ts | 2 +- .../mask/src/plugins/RedPacket/SNSAdaptor/RedPacketDialog.tsx | 1 + packages/shared/src/contexts/components/InjectedDialog.tsx | 3 ++- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/mask/src/plugins/ITO/SNSAdaptor/CompositionDialog.tsx b/packages/mask/src/plugins/ITO/SNSAdaptor/CompositionDialog.tsx index 3956b2050515..30186309a94f 100644 --- a/packages/mask/src/plugins/ITO/SNSAdaptor/CompositionDialog.tsx +++ b/packages/mask/src/plugins/ITO/SNSAdaptor/CompositionDialog.tsx @@ -197,10 +197,11 @@ export function CompositionDialog(props: CompositionDialogProps) { const onClose = useCallback(() => { const [, setValue] = state setStep(ITOCreateFormPageStep.NewItoPage) + if (step === ITOCreateFormPageStep.ConfirmItoPage) return setPoolSettings(undefined) setValue(DialogTabs.create) props.onClose() - }, [props, state]) + }, [props, state, step]) const tabProps: AbstractTabProps = { tabs: [ @@ -234,6 +235,7 @@ export function CompositionDialog(props: CompositionDialogProps) { diff --git a/packages/mask/src/plugins/RedPacket/SNSAdaptor/RedPacket/index.tsx b/packages/mask/src/plugins/RedPacket/SNSAdaptor/RedPacket/index.tsx index 7ce2df4920d3..a322d1715fe3 100644 --- a/packages/mask/src/plugins/RedPacket/SNSAdaptor/RedPacket/index.tsx +++ b/packages/mask/src/plugins/RedPacket/SNSAdaptor/RedPacket/index.tsx @@ -181,7 +181,7 @@ export function RedPacket(props: RedPacketProps) { {listOfStatus.includes(RedPacketStatus.empty) ? null : ( setStep(CreateRedPacketPageStep.NewRedPacketPage)} + isOnBack={!isCreateStep} disableTitleBorder> {step === CreateRedPacketPageStep.NewRedPacketPage ? ( diff --git a/packages/shared/src/contexts/components/InjectedDialog.tsx b/packages/shared/src/contexts/components/InjectedDialog.tsx index fcefeb66cf53..59fea1cde5d1 100644 --- a/packages/shared/src/contexts/components/InjectedDialog.tsx +++ b/packages/shared/src/contexts/components/InjectedDialog.tsx @@ -76,6 +76,7 @@ export interface InjectedDialogProps extends Omit + onClick={!props.isOnBack ? closeBothCompositionDialog : onClose}> Date: Wed, 15 Jun 2022 01:12:19 +0800 Subject: [PATCH 2/6] fix: tips && avatar --- .../mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx | 1 + packages/mask/src/plugins/Tips/SNSAdaptor/TipsEntranceDialog.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx b/packages/mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx index 16f7941a6fbe..74532503fdf7 100644 --- a/packages/mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx +++ b/packages/mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx @@ -80,6 +80,7 @@ export function NFTAvatarDialog(props: NFTAvatarsDialogProps) { ? t.application_edit_profile_dialog_title() : t.application_dialog_title() } + isOnBack={step === CreateNFTAvatarStep.UploadAvatar} open={props.open} onClose={onBack}> diff --git a/packages/mask/src/plugins/Tips/SNSAdaptor/TipsEntranceDialog.tsx b/packages/mask/src/plugins/Tips/SNSAdaptor/TipsEntranceDialog.tsx index 37f02d5eb945..745fadfc1eeb 100644 --- a/packages/mask/src/plugins/Tips/SNSAdaptor/TipsEntranceDialog.tsx +++ b/packages/mask/src/plugins/Tips/SNSAdaptor/TipsEntranceDialog.tsx @@ -248,6 +248,7 @@ export function TipsEntranceDialog({ open, onClose }: TipsEntranceDialogProps) { Date: Wed, 15 Jun 2022 01:08:26 +0800 Subject: [PATCH 3/6] refactor: none provider --- .../EVM/src/state/Connection/provider.ts | 5 +++-- .../src/state/Connection/providers/None.ts | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 packages/plugins/EVM/src/state/Connection/providers/None.ts diff --git a/packages/plugins/EVM/src/state/Connection/provider.ts b/packages/plugins/EVM/src/state/Connection/provider.ts index 055ed653cdc4..d3d5ff0d5fbc 100644 --- a/packages/plugins/EVM/src/state/Connection/provider.ts +++ b/packages/plugins/EVM/src/state/Connection/provider.ts @@ -1,5 +1,5 @@ import { ProviderType } from '@masknet/web3-shared-evm' -import { BaseProvider } from './providers/Base' +import type { BaseProvider } from './providers/Base' import { CustomNetworkProvider } from './providers/CustomNetwork' import { MaskWalletProvider } from './providers/MaskWallet' import { MetaMaskProvider } from './providers/MetaMask' @@ -9,12 +9,13 @@ import { Coin98Provider } from './providers/Coin98' import { MathWalletProvider } from './providers/MathWallet' import FortmaticProvider from './providers/Fortmatic' import TorusProvider from './providers/Torus' +import { NoneProvider } from './providers/None' /** * Register all supported providers */ export const Providers: Record = { - [ProviderType.None]: new BaseProvider(), + [ProviderType.None]: new NoneProvider(), [ProviderType.MaskWallet]: new MaskWalletProvider(), [ProviderType.MetaMask]: new MetaMaskProvider(), [ProviderType.WalletConnect]: new WalletConnectProvider(), diff --git a/packages/plugins/EVM/src/state/Connection/providers/None.ts b/packages/plugins/EVM/src/state/Connection/providers/None.ts new file mode 100644 index 000000000000..11b70c3fe961 --- /dev/null +++ b/packages/plugins/EVM/src/state/Connection/providers/None.ts @@ -0,0 +1,19 @@ +import type { RequestArguments } from 'web3-core' +import type { ProviderOptions } from '@masknet/web3-shared-base' +import { ChainId, createPayload } from '@masknet/web3-shared-evm' +import { BaseProvider } from './Base' +import type { EVM_Provider } from '../types' +import { SharedContextSettings } from '../../../settings' + +export class NoneProvider extends BaseProvider implements EVM_Provider { + override async request( + requestArguments: RequestArguments, + options?: ProviderOptions, + ): Promise { + const response = await SharedContextSettings.value.send( + createPayload(0, requestArguments.method, requestArguments.params), + options, + ) + return response?.result as T + } +} From 583bb3a38604c24fc090c62a1dd6166f4edc1eb9 Mon Sep 17 00:00:00 2001 From: zhouhanseng Date: Wed, 15 Jun 2022 01:27:46 +0800 Subject: [PATCH 4/6] fix: avatar --- .../mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx b/packages/mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx index 74532503fdf7..392bcf93a8e0 100644 --- a/packages/mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx +++ b/packages/mask/src/plugins/Avatar/Application/NFTAvatarsDialog.tsx @@ -80,7 +80,7 @@ export function NFTAvatarDialog(props: NFTAvatarsDialogProps) { ? t.application_edit_profile_dialog_title() : t.application_dialog_title() } - isOnBack={step === CreateNFTAvatarStep.UploadAvatar} + isOnBack={step !== CreateNFTAvatarStep.Persona} open={props.open} onClose={onBack}> From 1382a66d9e2aed508d6e86b626b34d7a02d05859 Mon Sep 17 00:00:00 2001 From: guanbinrui Date: Wed, 15 Jun 2022 01:36:28 +0800 Subject: [PATCH 5/6] fix: provider middleware --- .../src/state/Connection/interceptors/MaskWallet.ts | 6 ++---- .../EVM/src/state/Connection/interceptors/None.ts | 11 +++++++++++ .../src/state/Connection/middleware/Interceptor.ts | 2 ++ 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 packages/plugins/EVM/src/state/Connection/interceptors/None.ts diff --git a/packages/plugins/EVM/src/state/Connection/interceptors/MaskWallet.ts b/packages/plugins/EVM/src/state/Connection/interceptors/MaskWallet.ts index a02f43c56d75..a89665c4d2cd 100644 --- a/packages/plugins/EVM/src/state/Connection/interceptors/MaskWallet.ts +++ b/packages/plugins/EVM/src/state/Connection/interceptors/MaskWallet.ts @@ -1,13 +1,11 @@ import { toHex } from 'web3-utils' import { EthereumMethodType } from '@masknet/web3-shared-evm' import type { Context, Middleware } from '../types' -import { SharedContextSettings, Web3StateSettings } from '../../../settings' +import { SharedContextSettings } from '../../../settings' export class MaskWallet implements Middleware { async fn(context: Context, next: () => Promise) { - const { Connection } = Web3StateSettings.value - const { hasNativeAPI, send, account, chainId, signTransaction, signPersonalMessage, signTypedData } = - SharedContextSettings.value + const { hasNativeAPI, send, account, chainId } = SharedContextSettings.value // redirect to native app if (hasNativeAPI) { diff --git a/packages/plugins/EVM/src/state/Connection/interceptors/None.ts b/packages/plugins/EVM/src/state/Connection/interceptors/None.ts new file mode 100644 index 000000000000..2b814920b119 --- /dev/null +++ b/packages/plugins/EVM/src/state/Connection/interceptors/None.ts @@ -0,0 +1,11 @@ +import { isRiskMethod } from '@masknet/web3-shared-evm' +import type { Context, Middleware } from '../types' + +export class NoneWallet implements Middleware { + async fn(context: Context, next: () => Promise) { + if (isRiskMethod(context.method)) { + context.abort(new Error('No allowed.')) + } + await next() + } +} diff --git a/packages/plugins/EVM/src/state/Connection/middleware/Interceptor.ts b/packages/plugins/EVM/src/state/Connection/middleware/Interceptor.ts index 52ac8a888f1e..d3be9c5b1365 100644 --- a/packages/plugins/EVM/src/state/Connection/middleware/Interceptor.ts +++ b/packages/plugins/EVM/src/state/Connection/middleware/Interceptor.ts @@ -1,11 +1,13 @@ import { ProviderType } from '@masknet/web3-shared-evm' import type { Context, Middleware } from '../types' +import { NoneWallet } from '../interceptors/None' import { MaskWallet } from '../interceptors/MaskWallet' import { WalletConnect } from '../interceptors/WalletConnect' import { MetaMask } from '../interceptors/MetaMask' export class Interceptor implements Middleware { private interceptors: Partial>> = { + [ProviderType.None]: new NoneWallet(), [ProviderType.MaskWallet]: new MaskWallet(), [ProviderType.MetaMask]: new MetaMask(), [ProviderType.WalletConnect]: new WalletConnect(), From 9f0c1ca2011016fbf7eb19ff3b052048c65fab9c Mon Sep 17 00:00:00 2001 From: guanbinrui <52657989+guanbinrui@users.noreply.github.com> Date: Wed, 15 Jun 2022 01:48:12 +0800 Subject: [PATCH 6/6] fix: provider middleware (#6562) * refactor: none provider * fix: provider middleware