diff --git a/packages/injected/src/constants.ts b/packages/injected/src/constants.ts index 793b72dd9..dfb852edb 100644 --- a/packages/injected/src/constants.ts +++ b/packages/injected/src/constants.ts @@ -12,5 +12,6 @@ export const WALLET_NAMES: { [key: string]: string } = { detected: 'Detected Wallet', meetone: 'MeetOne', frame: 'Frame', + core: 'Core' bitkeep: 'BitKeep', } diff --git a/packages/injected/src/icons/core.ts b/packages/injected/src/icons/core.ts new file mode 100644 index 000000000..5b8b28927 --- /dev/null +++ b/packages/injected/src/icons/core.ts @@ -0,0 +1,4 @@ +export default ` + + +` \ No newline at end of file diff --git a/packages/injected/src/types.ts b/packages/injected/src/types.ts index 705dbee9e..38243823a 100644 --- a/packages/injected/src/types.ts +++ b/packages/injected/src/types.ts @@ -44,6 +44,7 @@ export enum ProviderIdentityFlag { Rabby = 'isRabby', MathWallet = 'isMathWallet', GameStop = 'isGamestop', + Core = 'isAvalanche' BitKeep = 'isBitKeep' } @@ -80,6 +81,7 @@ export enum ProviderLabel { Rabby = 'Rabby', MathWallet = 'MathWallet', GameStop = 'GameStop Wallet', + Core = 'Core' BitKeep = 'BitKeep' } @@ -113,6 +115,8 @@ export interface CustomWindow extends Window { xfi: { ethereum: InjectedProvider } + gamestop: InjectedProvider + avalanche: InjectedProvider gamestop: InjectedProvider, bitkeep: { ethereum: InjectedProvider diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index e404a7678..ed5d2cfd1 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -508,6 +508,18 @@ const gamestop: InjectedWalletModule = { platforms: ['desktop'] } +const core: InjectedWalletModule = { + label: ProviderLabel.Core, + injectedNamespace: InjectedNameSpace.Ethereum, + checkProviderIdentity: ({ provider }) => + !!provider && !!provider[ProviderIdentityFlag.Core], + getIcon: async () => (await import('./icons/core.js')).default, + getInterface: async () => ({ + provider: createEIP1193Provider(window.avalanche) + }), + // Core wallet is only tested in chrome or chromium browser + platforms: ['desktop', 'Chrome', 'Chromium', 'Microsoft Edge'] + const bitkeep: InjectedWalletModule = { label: ProviderLabel.BitKeep, injectedNamespace: InjectedNameSpace.BitKeep, @@ -551,6 +563,7 @@ const wallets = [ rabby, mathwallet, gamestop, + core bitkeep ]