From 8ec17f58d63f23a59da13f14c168bb541892fa39 Mon Sep 17 00:00:00 2001 From: okexwallet Date: Thu, 12 Jan 2023 16:05:06 +0800 Subject: [PATCH 1/9] feature: add okx wallet to injected --- packages/injected/package.json | 2 +- packages/injected/src/types.ts | 10 +++++++--- packages/injected/src/wallets.ts | 14 +++++++++++++- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/injected/package.json b/packages/injected/package.json index 1cc39483d..322363106 100644 --- a/packages/injected/package.json +++ b/packages/injected/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/injected-wallets", - "version": "2.5.0", + "version": "2.5.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/types.ts b/packages/injected/src/types.ts index 81dde19ec..24140309b 100644 --- a/packages/injected/src/types.ts +++ b/packages/injected/src/types.ts @@ -51,7 +51,8 @@ export enum ProviderIdentityFlag { Bitski = 'isBitski', Enkrypt = 'isEnkrypt', Zeal = 'isZeal', - Phantom = 'isPhantom' + Phantom = 'isPhantom', + OkxWallet = 'isOkxWallet', } export enum ProviderLabel { @@ -93,7 +94,8 @@ export enum ProviderLabel { Core = 'Core', Enkrypt = 'Enkrypt', Zeal = 'Zeal', - Phantom = 'Phantom' + Phantom = 'Phantom', + OkxWallet = 'Okx Wallet', } export interface MeetOneProvider extends ExternalProvider { @@ -119,7 +121,8 @@ export enum InjectedNameSpace { Bitski = 'Bitski', Enkrypt = 'enkrypt', Zeal = 'zeal', - Phantom = 'phantom' + Phantom = 'phantom', + OkxWallet = 'okxwallet' } export interface CustomWindow extends Window { @@ -148,6 +151,7 @@ export interface CustomWindow extends Window { phantom: { ethereum: InjectedProvider } + okxwallet: InjectedProvider } export type InjectedProvider = ExternalProvider & diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index 8c7a0f147..8befd54ad 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -653,6 +653,17 @@ const phantom: InjectedWalletModule = { platforms: ['all'] } +const okxwallet: InjectedWalletModule = { + label: ProviderLabel.OkxWallet, + injectedNamespace: InjectedNameSpace.OkxWallet, + checkProviderIdentity: ({ provider }) => + !!provider && + !!provider[ProviderIdentityFlag.OkxWallet], + getIcon: async () => (await import('./icons/okxwallet.js')).default, + getInterface: getInjectedInterface(ProviderIdentityFlag.OkxWallet, true), + platforms: ['all'] +} + const wallets = [ zeal, exodus, @@ -690,7 +701,8 @@ const wallets = [ core, bitski, enkrypt, - phantom + phantom, + okxwallet ] export default wallets From 577f4f94b66fb23943259733733854547f19ad3d Mon Sep 17 00:00:00 2001 From: okexwallet Date: Thu, 12 Jan 2023 16:05:10 +0800 Subject: [PATCH 2/9] feature: add okx wallet to injected --- packages/injected/src/icons/okxwallet.ts | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/injected/src/icons/okxwallet.ts diff --git a/packages/injected/src/icons/okxwallet.ts b/packages/injected/src/icons/okxwallet.ts new file mode 100644 index 000000000..a65f59640 --- /dev/null +++ b/packages/injected/src/icons/okxwallet.ts @@ -0,0 +1,5 @@ +export default ` + + + +` From fec90ff31bc3fef4722189f14744dcb6b3b54cd2 Mon Sep 17 00:00:00 2001 From: okexwallet Date: Thu, 12 Jan 2023 16:08:16 +0800 Subject: [PATCH 3/9] feature: add okx wallet to injected --- packages/injected/src/wallets.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index 8befd54ad..7d39c570c 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -661,7 +661,7 @@ const okxwallet: InjectedWalletModule = { !!provider[ProviderIdentityFlag.OkxWallet], getIcon: async () => (await import('./icons/okxwallet.js')).default, getInterface: getInjectedInterface(ProviderIdentityFlag.OkxWallet, true), - platforms: ['all'] + platforms: ['desktop'] } const wallets = [ From 18cf3701abfc8ded2a2be483586d4e6e2babfe9d Mon Sep 17 00:00:00 2001 From: okexwallet Date: Thu, 12 Jan 2023 16:16:08 +0800 Subject: [PATCH 4/9] feature: add okx wallet to injected --- packages/injected/src/types.ts | 6 +++--- packages/injected/src/wallets.ts | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/injected/src/types.ts b/packages/injected/src/types.ts index 24140309b..184792c63 100644 --- a/packages/injected/src/types.ts +++ b/packages/injected/src/types.ts @@ -52,7 +52,7 @@ export enum ProviderIdentityFlag { Enkrypt = 'isEnkrypt', Zeal = 'isZeal', Phantom = 'isPhantom', - OkxWallet = 'isOkxWallet', + OKXWallet = 'isOkxWallet', } export enum ProviderLabel { @@ -95,7 +95,7 @@ export enum ProviderLabel { Enkrypt = 'Enkrypt', Zeal = 'Zeal', Phantom = 'Phantom', - OkxWallet = 'Okx Wallet', + OKXWallet = 'OKXWallet', } export interface MeetOneProvider extends ExternalProvider { @@ -122,7 +122,7 @@ export enum InjectedNameSpace { Enkrypt = 'enkrypt', Zeal = 'zeal', Phantom = 'phantom', - OkxWallet = 'okxwallet' + OKXWallet = 'okxwallet' } export interface CustomWindow extends Window { diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index 7d39c570c..80ed981f0 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -654,13 +654,13 @@ const phantom: InjectedWalletModule = { } const okxwallet: InjectedWalletModule = { - label: ProviderLabel.OkxWallet, - injectedNamespace: InjectedNameSpace.OkxWallet, + label: ProviderLabel.OKXWallet, + injectedNamespace: InjectedNameSpace.OKXWallet, checkProviderIdentity: ({ provider }) => !!provider && - !!provider[ProviderIdentityFlag.OkxWallet], + !!provider[ProviderIdentityFlag.OKXWallet], getIcon: async () => (await import('./icons/okxwallet.js')).default, - getInterface: getInjectedInterface(ProviderIdentityFlag.OkxWallet, true), + getInterface: getInjectedInterface(ProviderIdentityFlag.OKXWallet, true), platforms: ['desktop'] } From c6e0a680d1561e74bafa086906039128a569a756 Mon Sep 17 00:00:00 2001 From: okexwallet Date: Thu, 12 Jan 2023 16:18:51 +0800 Subject: [PATCH 5/9] feature: add okx wallet to injected --- packages/injected/src/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/injected/src/types.ts b/packages/injected/src/types.ts index 184792c63..1b072271a 100644 --- a/packages/injected/src/types.ts +++ b/packages/injected/src/types.ts @@ -95,7 +95,7 @@ export enum ProviderLabel { Enkrypt = 'Enkrypt', Zeal = 'Zeal', Phantom = 'Phantom', - OKXWallet = 'OKXWallet', + OKXWallet = 'OKX Wallet', } export interface MeetOneProvider extends ExternalProvider { From 328e780617f07155109ae9f977d5fbb6f0d87d29 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Wed, 18 Jan 2023 13:12:37 -0700 Subject: [PATCH 6/9] Update okx wallet usage --- packages/demo/package.json | 2 +- packages/injected/src/wallets.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/demo/package.json b/packages/demo/package.json index 265c77d1b..885080967 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -31,7 +31,7 @@ "@web3-onboard/fortmatic": "^2.0.14", "@web3-onboard/gas": "^2.1.3", "@web3-onboard/gnosis": "^2.1.5", - "@web3-onboard/injected-wallets": "^2.6.0-alpha.3", + "@web3-onboard/injected-wallets": "^2.6.0-alpha.4", "@web3-onboard/keepkey": "^2.3.2", "@web3-onboard/keystone": "^2.3.2", "@web3-onboard/ledger": "^2.4.1-alpha.1", diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts index 792875ded..2dad45740 100644 --- a/packages/injected/src/wallets.ts +++ b/packages/injected/src/wallets.ts @@ -686,7 +686,9 @@ const okxwallet: InjectedWalletModule = { !!provider && !!provider[ProviderIdentityFlag.OKXWallet], getIcon: async () => (await import('./icons/okxwallet.js')).default, - getInterface: getInjectedInterface(ProviderIdentityFlag.OKXWallet, true), + getInterface: async () => ({ + provider: createEIP1193Provider(window.okxwallet) + }), platforms: ['desktop'] } From b25f401e360ca65cf1f67e8e21087025f35b9a38 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Wed, 18 Jan 2023 13:37:36 -0700 Subject: [PATCH 7/9] Add debugging code for okx team --- packages/core/package.json | 2 +- packages/core/src/chain.ts | 4 ++++ packages/demo/package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index b10e705b1..d57817714 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/core", - "version": "2.13.1-alpha.2", + "version": "2.13.1-alpha.3", "description": "Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized 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/core/src/chain.ts b/packages/core/src/chain.ts index ce4bf05ab..aa91e84d9 100644 --- a/packages/core/src/chain.ts +++ b/packages/core/src/chain.ts @@ -62,6 +62,7 @@ async function setChain(options: { return true } catch (error) { const { code } = error as { code: number } + console.log('code from trying to switch to new chain: ', code) const switchChainModalClosed$ = switchChainModal$.pipe( filter(x => x === null), map(() => false) @@ -96,11 +97,14 @@ const chainNotInWallet = async ( chainIdHex: string ): Promise => { try { + console.log('try adding chain with wallet_addEthereumChain') await addNewChain(wallet.provider, chain) + console.log('chain should be added - try switching to chain') await switchChain(wallet.provider, chainIdHex) return true } catch (error) { const { code } = error as { code: number } + console.log('code from trying to switch to new chain after adding chain: ', code) if (code === ProviderRpcErrorCode.ACCOUNT_ACCESS_REJECTED) { // add new chain rejected by user return false diff --git a/packages/demo/package.json b/packages/demo/package.json index 885080967..0c7be1607 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -23,7 +23,7 @@ "webpack-dev-server": "4.7.4" }, "dependencies": { - "@web3-onboard/core": "^2.13.1-alpha.1", + "@web3-onboard/core": "^2.13.1-alpha.3", "@web3-onboard/coinbase": "^2.1.4", "@web3-onboard/transaction-preview": "^2.0.0", "@web3-onboard/dcent": "^2.2.2", From 9a80d8c75fefff34364da8fa7568613cc57e2fd3 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Mon, 23 Jan 2023 11:34:37 -0700 Subject: [PATCH 8/9] Update svg for wallet --- packages/injected/src/icons/okxwallet.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/injected/src/icons/okxwallet.ts b/packages/injected/src/icons/okxwallet.ts index a65f59640..2ab6d017e 100644 --- a/packages/injected/src/icons/okxwallet.ts +++ b/packages/injected/src/icons/okxwallet.ts @@ -1,4 +1,4 @@ -export default ` +export default ` From 2a004ade2898943a42c18d592bdf263ced868d1a Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Fri, 27 Jan 2023 14:06:07 -0700 Subject: [PATCH 9/9] Clean up logs --- packages/core/src/chain.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/core/src/chain.ts b/packages/core/src/chain.ts index aa91e84d9..ce4bf05ab 100644 --- a/packages/core/src/chain.ts +++ b/packages/core/src/chain.ts @@ -62,7 +62,6 @@ async function setChain(options: { return true } catch (error) { const { code } = error as { code: number } - console.log('code from trying to switch to new chain: ', code) const switchChainModalClosed$ = switchChainModal$.pipe( filter(x => x === null), map(() => false) @@ -97,14 +96,11 @@ const chainNotInWallet = async ( chainIdHex: string ): Promise => { try { - console.log('try adding chain with wallet_addEthereumChain') await addNewChain(wallet.provider, chain) - console.log('chain should be added - try switching to chain') await switchChain(wallet.provider, chainIdHex) return true } catch (error) { const { code } = error as { code: number } - console.log('code from trying to switch to new chain after adding chain: ', code) if (code === ProviderRpcErrorCode.ACCOUNT_ACCESS_REJECTED) { // add new chain rejected by user return false