From c6ef99763491e573b6bfccd603bef8c081e02091 Mon Sep 17 00:00:00 2001 From: Kheops <26880866+0xKheops@users.noreply.github.com> Date: Tue, 16 May 2023 23:16:45 +0700 Subject: [PATCH] feat: add Talisman injected wallet (#1717) --- .../docs/[...4]wallets/[...9]injected/+page.md | 1 + packages/demo/package.json | 2 +- packages/injected/README.md | 2 ++ packages/injected/package.json | 2 +- packages/injected/src/constants.ts | 3 ++- packages/injected/src/icons/talisman.ts | 13 +++++++++++++ packages/injected/src/types.ts | 10 +++++++--- packages/injected/src/wallets.ts | 15 ++++++++++++++- 8 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 packages/injected/src/icons/talisman.ts diff --git a/docs/src/routes/docs/[...4]wallets/[...9]injected/+page.md b/docs/src/routes/docs/[...4]wallets/[...9]injected/+page.md index f7588a3ad..e7bc88f4d 100644 --- a/docs/src/routes/docs/[...4]wallets/[...9]injected/+page.md +++ b/docs/src/routes/docs/[...4]wallets/[...9]injected/+page.md @@ -318,6 +318,7 @@ const injected = injectedModule({ - ApexWallet - _Desktop_ - BifrostWallet - _Desktop & Mobile_ - Safeheron - _Desktop_ +- Talisman - _Desktop_ ## Build Environments diff --git a/packages/demo/package.json b/packages/demo/package.json index 175bcde21..1445004ff 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -37,7 +37,7 @@ "@web3-onboard/keystone": "^2.3.7-alpha.1", "@web3-onboard/ledger": "^2.4.5", "@web3-onboard/infinity-wallet": "^2.0.3", - "@web3-onboard/injected-wallets": "^2.8.5", + "@web3-onboard/injected-wallets": "^2.9.0-alpha.1", "@web3-onboard/magic": "^2.1.6", "@web3-onboard/phantom": "^2.0.1", "@web3-onboard/portis": "^2.1.6", diff --git a/packages/injected/README.md b/packages/injected/README.md index 269957b36..cbc593533 100644 --- a/packages/injected/README.md +++ b/packages/injected/README.md @@ -33,6 +33,7 @@ const connectedWallets = await onboard.connectWallet() console.log(connectedWallets) ``` + ### Injected Wallets Supported Natively - Metamask - _Desktop & Mobile_ @@ -82,6 +83,7 @@ console.log(connectedWallets) - ApexWallet - _Desktop_ - BifrostWallet - _Desktop & Mobile_ - Safeheron - _Desktop_ +- Talisman - _Desktop_ ## Filtering Wallets diff --git a/packages/injected/package.json b/packages/injected/package.json index 551b15471..9a1d863e5 100644 --- a/packages/injected/package.json +++ b/packages/injected/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/injected-wallets", - "version": "2.8.7-alpha.1", + "version": "2.9.0-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 28ed180cb..404ca8083 100644 --- a/packages/injected/src/constants.ts +++ b/packages/injected/src/constants.ts @@ -25,5 +25,6 @@ export const WALLET_NAMES: { [key: string]: string } = { zerion: 'Zerion', rainbow: 'Rainbow', defiwallet: 'DeFi Wallet', - safeheron: 'Safeheron' + safeheron: 'Safeheron', + talismanEth: 'Talisman' } diff --git a/packages/injected/src/icons/talisman.ts b/packages/injected/src/icons/talisman.ts new file mode 100644 index 000000000..58bc47124 --- /dev/null +++ b/packages/injected/src/icons/talisman.ts @@ -0,0 +1,13 @@ +export default ` + + + + + + + + + + + +` diff --git a/packages/injected/src/types.ts b/packages/injected/src/types.ts index 34ff129f6..af5fdfa25 100644 --- a/packages/injected/src/types.ts +++ b/packages/injected/src/types.ts @@ -61,7 +61,8 @@ export enum ProviderIdentityFlag { Rainbow = 'isRainbow', SafePal = 'isSafePal', DeFiWallet = 'isDeficonnectProvider', - Safeheron = 'isSafeheron' + Safeheron = 'isSafeheron', + Talisman = 'isTalisman' } export enum ProviderLabel { @@ -113,7 +114,8 @@ export enum ProviderLabel { Rainbow = 'Rainbow', SafePal = 'SafePal', DeFiWallet = 'DeFi Wallet', - Safeheron = 'Safeheron' + Safeheron = 'Safeheron', + Talisman = 'Talisman' } export interface MeetOneProvider extends ExternalProvider { @@ -144,7 +146,8 @@ export enum InjectedNameSpace { Trust = 'trustwallet', Frontier = 'frontier', DeFiConnectProvider = 'deficonnectProvider', - Safeheron = 'safeheron' + Safeheron = 'safeheron', + Talisman = 'talismanEth' } export interface CustomWindow extends Window { @@ -180,6 +183,7 @@ export interface CustomWindow extends Window { trustwallet: InjectedProvider deficonnectProvider: InjectedProvider safeheron: InjectedProvider + talismanEth: InjectedProvider } export type InjectedProvider = ExternalProvider & diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index ce5dab6b7..008b8de1c 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -765,6 +765,18 @@ const safeheron: InjectedWalletModule = { platforms: ['desktop', 'Chrome', 'Chromium', 'Microsoft Edge'] } +const talisman: InjectedWalletModule = { + label: ProviderLabel.Talisman, + injectedNamespace: InjectedNameSpace.Talisman, + checkProviderIdentity: ({ provider }) => + !!provider && !!provider[ProviderIdentityFlag.Talisman], + getIcon: async () => (await import('./icons/talisman.js')).default, + getInterface: async () => ({ + provider: createEIP1193Provider(window.talismanEth) + }), + platforms: ['desktop'] +} + const wallets = [ zeal, exodus, @@ -812,7 +824,8 @@ const wallets = [ safepal, defiwallet, infinitywallet, - safeheron + safeheron, + talisman ] export default wallets