From 02a5171554f2fc72e664f73cfe2ca36380403cdd Mon Sep 17 00:00:00 2001 From: ty Date: Thu, 13 Apr 2023 16:08:03 +0800 Subject: [PATCH] feat: add safeheron --- .../src/routes/docs/[...4]wallets/injected.md | 1 + packages/injected/package.json | 2 +- packages/injected/src/constants.ts | 3 ++- packages/injected/src/icons/safeheron.ts | 20 +++++++++++++++++++ packages/injected/src/types.ts | 10 +++++++--- packages/injected/src/wallets.ts | 14 ++++++++++++- 6 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 packages/injected/src/icons/safeheron.ts diff --git a/docs/src/routes/docs/[...4]wallets/injected.md b/docs/src/routes/docs/[...4]wallets/injected.md index 06a6bc498..7368a0319 100644 --- a/docs/src/routes/docs/[...4]wallets/injected.md +++ b/docs/src/routes/docs/[...4]wallets/injected.md @@ -313,6 +313,7 @@ const injected = injectedModule({ - DeFiWallet - _Desktop & Mobile_ - ApexWallet - _Desktop_ - BifrostWallet - _Desktop & Mobile_ +- Safeheron - _Desktop_ ## Build Environments diff --git a/packages/injected/package.json b/packages/injected/package.json index fe6d6b125..174d7b4db 100644 --- a/packages/injected/package.json +++ b/packages/injected/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/injected-wallets", - "version": "2.8.4", + "version": "2.8.5-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/constants.ts b/packages/injected/src/constants.ts index 19dc7a81e..28ed180cb 100644 --- a/packages/injected/src/constants.ts +++ b/packages/injected/src/constants.ts @@ -24,5 +24,6 @@ export const WALLET_NAMES: { [key: string]: string } = { frontier: 'Frontier', zerion: 'Zerion', rainbow: 'Rainbow', - defiwallet: 'DeFi Wallet' + defiwallet: 'DeFi Wallet', + safeheron: 'Safeheron' } diff --git a/packages/injected/src/icons/safeheron.ts b/packages/injected/src/icons/safeheron.ts new file mode 100644 index 000000000..13c6e2fdd --- /dev/null +++ b/packages/injected/src/icons/safeheron.ts @@ -0,0 +1,20 @@ +export default ` + + + + + + + + + + + + + + + + + + +` \ No newline at end of file diff --git a/packages/injected/src/types.ts b/packages/injected/src/types.ts index 97cb30cef..55523ef43 100644 --- a/packages/injected/src/types.ts +++ b/packages/injected/src/types.ts @@ -60,7 +60,8 @@ export enum ProviderIdentityFlag { Zerion = 'isZerion', Rainbow = 'isRainbow', SafePal = 'isSafePal', - DeFiWallet = 'isDeficonnectProvider' + DeFiWallet = 'isDeficonnectProvider', + Safeheron = 'isSafeheron' } export enum ProviderLabel { @@ -111,7 +112,8 @@ export enum ProviderLabel { Zerion = 'Zerion', Rainbow = 'Rainbow', SafePal = 'SafePal', - DeFiWallet = 'DeFi Wallet' + DeFiWallet = 'DeFi Wallet', + Safeheron = 'Safeheron' } export interface MeetOneProvider extends ExternalProvider { @@ -141,7 +143,8 @@ export enum InjectedNameSpace { OKXWallet = 'okxwallet', Trust = 'trustwallet', Frontier = 'frontier', - DeFiConnectProvider = 'deficonnectProvider' + DeFiConnectProvider = 'deficonnectProvider', + Safeheron = 'safeheron' } export interface CustomWindow extends Window { @@ -176,6 +179,7 @@ export interface CustomWindow extends Window { okxwallet: InjectedProvider trustwallet: InjectedProvider deficonnectProvider: InjectedProvider + safeheron: InjectedProvider } export type InjectedProvider = ExternalProvider & diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index 2d5fbe3a2..c70775151 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -747,6 +747,17 @@ const defiwallet: InjectedWalletModule = { platforms: ['all'] } +const safeheron: InjectedWalletModule = { + label: ProviderLabel.Safeheron, + injectedNamespace: InjectedNameSpace.Safeheron, + checkProviderIdentity: ({ provider }) => !!provider && !!provider[ProviderIdentityFlag.Safeheron], + getIcon: async () => (await import('./icons/safeheron.js')).default, + getInterface: async () => ({ + provider: createEIP1193Provider(window.safeheron) + }), + platforms: ['desktop', 'Chrome', 'Chromium', 'Microsoft Edge'] +} + const wallets = [ zeal, exodus, @@ -793,7 +804,8 @@ const wallets = [ rainbow, safepal, defiwallet, - infinitywallet + infinitywallet, + safeheron, ] export default wallets