From bb1d7fbe61e54a8e8b0db5e1b09d131ad30a7869 Mon Sep 17 00:00:00 2001 From: QiAbc Date: Mon, 9 Jan 2023 01:43:16 +0800 Subject: [PATCH 1/2] feat: intergration of SafePal wallet --- packages/injected/src/icons/safepal.ts | 102 +++++++++++++++++++++++++ packages/injected/src/types.ts | 6 +- packages/injected/src/wallets.ts | 15 +++- 3 files changed, 120 insertions(+), 3 deletions(-) create mode 100644 packages/injected/src/icons/safepal.ts diff --git a/packages/injected/src/icons/safepal.ts b/packages/injected/src/icons/safepal.ts new file mode 100644 index 000000000..076e5888e --- /dev/null +++ b/packages/injected/src/icons/safepal.ts @@ -0,0 +1,102 @@ +export default ` +` diff --git a/packages/injected/src/types.ts b/packages/injected/src/types.ts index ba96849fc..e332484a9 100644 --- a/packages/injected/src/types.ts +++ b/packages/injected/src/types.ts @@ -50,7 +50,8 @@ export enum ProviderIdentityFlag { Opera = 'isOpera', Bitski = 'isBitski', Enkrypt = 'isEnkrypt', - Phantom = 'isPhantom' + Phantom = 'isPhantom', + SafePal = 'isSafePal' } export enum ProviderLabel { @@ -91,7 +92,8 @@ export enum ProviderLabel { Sequence = 'Sequence', Core = 'Core', Enkrypt = 'Enkrypt', - Phantom = 'Phantom' + Phantom = 'Phantom', + SafePal = 'SafePal' } export interface MeetOneProvider extends ExternalProvider { diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index b53c14929..171643978 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -640,6 +640,18 @@ const phantom: InjectedWalletModule = { }), platforms: ['all'] } + +const safepal: InjectedWalletModule = { + label: ProviderLabel.SafePal, + injectedNamespace: InjectedNameSpace.Ethereum, + checkProviderIdentity: ({ provider }) => + !!provider && !!provider[ProviderIdentityFlag.SafePal], + getIcon: async () => (await import('./icons/safepal.js')).default, + getInterface: async () => ({ + provider: createEIP1193Provider(window.ethereum) + }), + platforms: ['desktop'] +} const wallets = [ exodus, @@ -677,7 +689,8 @@ const wallets = [ core, bitski, enkrypt, - phantom + phantom, + safepal ] export default wallets From b1b9966275a6efa960ce5288cfbc143a547df934 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Thu, 26 Jan 2023 12:10:27 -0700 Subject: [PATCH 2/2] cleanup --- packages/demo/package.json | 2 +- packages/injected/package.json | 2 +- packages/injected/src/wallets.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/demo/package.json b/packages/demo/package.json index 187853687..00f07869f 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -34,7 +34,7 @@ "@web3-onboard/keepkey": "^2.3.3", "@web3-onboard/keystone": "^2.3.3", "@web3-onboard/ledger": "^2.4.2", - "@web3-onboard/injected-wallets": "^2.6.1", + "@web3-onboard/injected-wallets": "^2.6.2-alpha.1", "@web3-onboard/magic": "^2.1.3", "@web3-onboard/phantom": "^2.0.0-alpha.1", "@web3-onboard/portis": "^2.1.3", diff --git a/packages/injected/package.json b/packages/injected/package.json index f1b583574..f22eeb132 100644 --- a/packages/injected/package.json +++ b/packages/injected/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/injected-wallets", - "version": "2.6.1", + "version": "2.6.2-alpha.1", "description": "Injected wallet module for connecting browser extension and mobile wallets to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index 639e7cce3..8bcb70135 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -669,7 +669,7 @@ const safepal: InjectedWalletModule = { getInterface: async () => ({ provider: createEIP1193Provider(window.ethereum) }), - platforms: ['desktop'] + platforms: ['all'] } const rainbow: InjectedWalletModule = {