From e0b20ede542dc0bc0aef03dd15996c61e458f21a Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Thu, 23 May 2024 14:10:20 -0600 Subject: [PATCH 1/7] Coinbase module bump to sdk v4 and support smart wallet creation --- .../[...4]wallets/[...6]coinbase/+page.md | 10 ++-- packages/coinbase/README.md | 11 +++-- packages/coinbase/package.json | 4 +- packages/coinbase/src/index.ts | 46 +++++++++++++------ packages/demo/package.json | 2 +- yarn.lock | 11 ++--- 6 files changed, 51 insertions(+), 33 deletions(-) diff --git a/docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md b/docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md index 2f6c36723..4c00ab9e5 100644 --- a/docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md +++ b/docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md @@ -29,12 +29,14 @@ npm install @web3-onboard/coinbase ```typescript type CoinbaseWalletOptions = { - /** @optional Use dark theme */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase Use dark theme */ darkMode?: boolean - /** @optional whether to connect mobile web app via WalletLink, defaults to false */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase whether to connect mobile web app via WalletLink, defaults to false */ enableMobileWalletLink?: boolean - /** @optional whether or not to reload dapp automatically after disconnect, defaults to true */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase whether or not to reload dapp automatically after disconnect, defaults to true */ reloadOnDisconnect?: boolean + /** Type of Coinbase wallets to support - options : 'all' | 'smartWalletOnly' | 'eoaOnly' - Default to `all` */ + supportedWalletType?: 'all' | 'smartWalletOnly' | 'eoaOnly' } ``` @@ -45,7 +47,7 @@ import Onboard from '@web3-onboard/core' import coinbaseWalletModule from '@web3-onboard/coinbase' // initialize the module with options -const coinbaseWalletSdk = coinbaseWalletModule({ darkMode: true }) +const coinbaseWalletSdk = coinbaseWalletModule() // can also initialize with no options... // const coinbaseWalletSdk = coinbaseWalletSdk() diff --git a/packages/coinbase/README.md b/packages/coinbase/README.md index 02110bccd..ea8d777a8 100644 --- a/packages/coinbase/README.md +++ b/packages/coinbase/README.md @@ -1,6 +1,7 @@ # @web3-onboard/coinbase ## Wallet module for connecting Coinbase Wallet SDK to web3-onboard + See [Coinbase Wallet Developer Docs](https://docs.cloud.coinbase.com/wallet-sdk/docs) ### Install @@ -11,12 +12,14 @@ See [Coinbase Wallet Developer Docs](https://docs.cloud.coinbase.com/wallet-sdk/ ```typescript type CoinbaseWalletOptions = { - /** @optional Use dark theme */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase Use dark theme */ darkMode?: boolean - /** @optional whether to connect mobile web app via WalletLink, defaults to false */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase whether to connect mobile web app via WalletLink, defaults to false */ enableMobileWalletLink?: boolean - /** @optional whether or not to reload dapp automatically after disconnect, defaults to true */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase whether or not to reload dapp automatically after disconnect, defaults to true */ reloadOnDisconnect?: boolean + /** Type of Coinbase wallets to support - options : 'all' | 'smartWalletOnly' | 'eoaOnly' - Default to `all` */ + supportedWalletType?: 'all' | 'smartWalletOnly' | 'eoaOnly' } ``` @@ -27,7 +30,7 @@ import Onboard from '@web3-onboard/core' import coinbaseWalletModule from '@web3-onboard/coinbase' // initialize the module with options -const coinbaseWalletSdk = coinbaseWalletModule({ darkMode: true }) +const coinbaseWalletSdk = coinbaseWalletModule() // can also initialize with no options... // const coinbaseWalletSdk = coinbaseWalletModule() diff --git a/packages/coinbase/package.json b/packages/coinbase/package.json index 6e9854042..cdc436d41 100644 --- a/packages/coinbase/package.json +++ b/packages/coinbase/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/coinbase", - "version": "2.2.7", + "version": "2.3.0-alpha.1", "description": "Coinbase SDK wallet module for connecting 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", @@ -58,7 +58,7 @@ "typescript": "^4.5.5" }, "dependencies": { - "@coinbase/wallet-sdk": "^3.9.3", + "@coinbase/wallet-sdk": "^4.0.0", "@web3-onboard/common": "^2.3.3" } } diff --git a/packages/coinbase/src/index.ts b/packages/coinbase/src/index.ts index c03028370..6fe173a9b 100644 --- a/packages/coinbase/src/index.ts +++ b/packages/coinbase/src/index.ts @@ -1,23 +1,37 @@ -import { WalletInit } from '@web3-onboard/common' +import type { + EIP1193Provider, + WalletInit, + WalletInterface +} from '@web3-onboard/common' function coinbaseWallet({ + supportedWalletType = 'all', darkMode = false, enableMobileWalletLink = false, reloadOnDisconnect = true }: { - /** @optional Use dark theme */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase Use dark theme */ darkMode?: boolean - /** @optional whether to connect mobile web app via WalletLink, defaults to false */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase whether to connect mobile web app via WalletLink, defaults to false */ enableMobileWalletLink?: boolean - /** @optional whether or not to reload dapp automatically after disconnect, defaults to true */ + /** @deprecated Deprecated after version 2.2.7 of @web3-onboard/coinbase whether or not to reload dapp automatically after disconnect, defaults to true */ reloadOnDisconnect?: boolean + /** Type of Coinbase wallets to support - options : 'all' | 'smartWalletOnly' | 'eoaOnly' - Default to `all` */ + supportedWalletType?: 'all' | 'smartWalletOnly' | 'eoaOnly' } = {}): WalletInit { return () => { return { label: 'Coinbase Wallet', getIcon: async () => (await import('./icon.js')).default, - getInterface: async ({ chains, appMetadata }) => { - const [chain] = chains + getInterface: async ({ + chains, + appMetadata + }): Promise => { + if (enableMobileWalletLink || reloadOnDisconnect) { + console.warn( + 'enableMobileWalletLink and reloadOnDisconnect are deprecated after version 2.2.7 of @web3-onboard/coinbase' + ) + } const { name, icon } = appMetadata || {} // according to https://github.com/wagmi-dev/wagmi/issues/383 @@ -35,25 +49,27 @@ function coinbaseWallet({ const base64 = window.btoa(icon || '') const appLogoUrl = `data:image/svg+xml;base64,${base64}` + const appChainIds = chains.map(({ id }) => parseInt(id, 16)) + const instance = new CoinbaseWalletSDKConstructor({ appName: name || '', appLogoUrl, - darkMode, - enableMobileWalletLink, - reloadOnDisconnect + appChainIds }) - const coinbaseWalletProvider = instance.makeWeb3Provider( - chain.rpcUrl, - parseInt(chain.id) - ) + const coinbaseWalletProvider = instance.makeWeb3Provider({ + options: supportedWalletType + }) // patch the chainChanged event const on = coinbaseWalletProvider.on.bind(coinbaseWalletProvider) coinbaseWalletProvider.on = (event, listener) => { + // @ts-ignore on(event, val => { if (event === 'chainChanged') { - listener(`0x${(val as number).toString(16)}`) + const numberVal = `0x${(val).toString(16)}` + // @ts-ignore + listener(numberVal) return } @@ -64,7 +80,7 @@ function coinbaseWallet({ } return { - provider: coinbaseWalletProvider, + provider: coinbaseWalletProvider as EIP1193Provider, instance } } diff --git a/packages/demo/package.json b/packages/demo/package.json index 178ee0e5e..2e905adcb 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -33,7 +33,7 @@ "@web3-onboard/capsule": "^2.0.3", "@web3-onboard/cede-store": "^2.2.0", "@web3-onboard/core": "^2.21.6", - "@web3-onboard/coinbase": "^2.2.7", + "@web3-onboard/coinbase": "^2.3.0-alpha.1", "@web3-onboard/dcent": "^2.2.7", "@web3-onboard/enkrypt": "^2.0.3", "@web3-onboard/fortmatic": "^2.0.18", diff --git a/yarn.lock b/yarn.lock index 6deb9103b..de1835272 100644 --- a/yarn.lock +++ b/yarn.lock @@ -773,16 +773,13 @@ preact "^10.16.0" sha.js "^2.4.11" -"@coinbase/wallet-sdk@^3.9.3": - version "3.9.3" - resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.9.3.tgz#daf10cb0c85d0363315b7270cb3f02bedc408aab" - integrity sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw== +"@coinbase/wallet-sdk@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.0.0.tgz#1c492aab4d11dc7b08eed156f21c804ad47e8801" + integrity sha512-7q8k39a2Iuz30dAEeh86AaSAbLgVPW3gfLa1UYh2IqP7gS+X9witoMEMM8o016K6vxP5N++PrM+Lgu/O1KByBA== dependencies: - bn.js "^5.2.1" buffer "^6.0.3" clsx "^1.2.1" - eth-block-tracker "^7.1.0" - eth-json-rpc-filters "^6.0.0" eventemitter3 "^5.0.1" keccak "^3.0.3" preact "^10.16.0" From c26445eee1dbe49f5e4c1f2efe4fc8dbb2099448 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Fri, 24 May 2024 09:46:41 -0600 Subject: [PATCH 2/7] working through CD switch chain issues --- packages/coinbase/package.json | 5 +++-- packages/coinbase/src/index.ts | 21 +++++++++++++++++---- packages/core/src/provider.ts | 3 ++- packages/demo/src/App.svelte | 2 +- yarn.lock | 8 ++++---- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/packages/coinbase/package.json b/packages/coinbase/package.json index cdc436d41..fce72d1b5 100644 --- a/packages/coinbase/package.json +++ b/packages/coinbase/package.json @@ -58,7 +58,8 @@ "typescript": "^4.5.5" }, "dependencies": { - "@coinbase/wallet-sdk": "^4.0.0", - "@web3-onboard/common": "^2.3.3" + "@coinbase/wallet-sdk": "^4.0.2", + "@web3-onboard/common": "^2.3.3", + "rxjs": "^7.5.2" } } diff --git a/packages/coinbase/src/index.ts b/packages/coinbase/src/index.ts index 6fe173a9b..68910aded 100644 --- a/packages/coinbase/src/index.ts +++ b/packages/coinbase/src/index.ts @@ -61,15 +61,28 @@ function coinbaseWallet({ options: supportedWalletType }) - // patch the chainChanged event - const on = coinbaseWalletProvider.on.bind(coinbaseWalletProvider) +// patch the chainChanged event +const on = coinbaseWalletProvider.on.bind(coinbaseWalletProvider) +console.log('coinbaseWalletProvider', coinbaseWalletProvider) +on('chainChanged', (chainId: string) => { + console.log('chainChanged in cb provider', chainId) +}) +on('connect', (chainId: any) => { + console.log('connect in cb provider', chainId) +}) +on('accountsChanged', (chainId: any) => { + console.log('accountsChanged in cb provider', chainId) +}) coinbaseWalletProvider.on = (event, listener) => { + console.log(event, listener) // @ts-ignore on(event, val => { + console.log('val', val) if (event === 'chainChanged') { - const numberVal = `0x${(val).toString(16)}` + const hexVal = `0x${val.toString(16)}` + console.log(val) // @ts-ignore - listener(numberVal) + listener(hexVal) return } diff --git a/packages/core/src/provider.ts b/packages/core/src/provider.ts index 3d45f9985..3f7b4a48c 100644 --- a/packages/core/src/provider.ts +++ b/packages/core/src/provider.ts @@ -448,9 +448,10 @@ export function switchChain( provider: EIP1193Provider, chainId: ChainId ): Promise { + console.log('switchChain', parseInt(chainId, 16)) return provider.request({ method: 'wallet_switchEthereumChain', - params: [{ chainId }] + params: [{ chainId: parseInt(chainId, 16) }] }) } diff --git a/packages/demo/src/App.svelte b/packages/demo/src/App.svelte index aba37c12d..e5d544dad 100644 --- a/packages/demo/src/App.svelte +++ b/packages/demo/src/App.svelte @@ -787,7 +787,7 @@ - diff --git a/yarn.lock b/yarn.lock index de1835272..2d213ce56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -773,10 +773,10 @@ preact "^10.16.0" sha.js "^2.4.11" -"@coinbase/wallet-sdk@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.0.0.tgz#1c492aab4d11dc7b08eed156f21c804ad47e8801" - integrity sha512-7q8k39a2Iuz30dAEeh86AaSAbLgVPW3gfLa1UYh2IqP7gS+X9witoMEMM8o016K6vxP5N++PrM+Lgu/O1KByBA== +"@coinbase/wallet-sdk@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.0.2.tgz#403b2194ecc9bcf8b8fd217ec5cd6529013b58f4" + integrity sha512-WMUeFbtS0rn8zavjAmNhFWq1r3TV7E5KuSij1Sar0/XuOC+nhj96uqSlIApAHdhuScoKZBq39VYsAQCHzOC6/w== dependencies: buffer "^6.0.3" clsx "^1.2.1" From b38c87121674c838cfaeaf5bfa7465cb7a9d62fc Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Fri, 24 May 2024 11:32:48 -0600 Subject: [PATCH 3/7] CB wallet working as expected --- packages/coinbase/src/index.ts | 48 +++++++++++++++++++++------------- packages/core/src/provider.ts | 3 +-- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/packages/coinbase/src/index.ts b/packages/coinbase/src/index.ts index 68910aded..5308b8285 100644 --- a/packages/coinbase/src/index.ts +++ b/packages/coinbase/src/index.ts @@ -49,8 +49,11 @@ function coinbaseWallet({ const base64 = window.btoa(icon || '') const appLogoUrl = `data:image/svg+xml;base64,${base64}` - const appChainIds = chains.map(({ id }) => parseInt(id, 16)) - + const appChainIds = chains.map( + // @ts-ignore - treating hex strings as numbers as they are expected to be hex numbers + ({ id }) => id as number + ) + const instance = new CoinbaseWalletSDKConstructor({ appName: name || '', appLogoUrl, @@ -61,26 +64,35 @@ function coinbaseWallet({ options: supportedWalletType }) -// patch the chainChanged event -const on = coinbaseWalletProvider.on.bind(coinbaseWalletProvider) -console.log('coinbaseWalletProvider', coinbaseWalletProvider) -on('chainChanged', (chainId: string) => { - console.log('chainChanged in cb provider', chainId) -}) -on('connect', (chainId: any) => { - console.log('connect in cb provider', chainId) -}) -on('accountsChanged', (chainId: any) => { - console.log('accountsChanged in cb provider', chainId) -}) + // patch the chainChanged event + const on = coinbaseWalletProvider.on.bind(coinbaseWalletProvider) + console.log('coinbaseWalletProvider', coinbaseWalletProvider) + on('chainChanged', (chainId: string) => { + console.log('chainChanged in cb provider', chainId) + }) + on('connect', (chainId: any) => { + console.log('connect in cb provider', chainId) + }) + on('accountsChanged', (chainId: any) => { + console.log('accountsChanged in cb provider', chainId) + }) coinbaseWalletProvider.on = (event, listener) => { - console.log(event, listener) // @ts-ignore on(event, val => { - console.log('val', val) if (event === 'chainChanged') { - const hexVal = `0x${val.toString(16)}` - console.log(val) + let hexVal: string + // TODO: Refine using viem functions + if (typeof val === 'number') { + hexVal = `0x${val.toString(16)}` + } else if ( + typeof val === 'string' && + /^0x[0-9a-fA-F]+$/.test(val) + ) { + hexVal = val + } else { + throw new Error('Invalid chainId') + } + // @ts-ignore listener(hexVal) return diff --git a/packages/core/src/provider.ts b/packages/core/src/provider.ts index 3f7b4a48c..3d45f9985 100644 --- a/packages/core/src/provider.ts +++ b/packages/core/src/provider.ts @@ -448,10 +448,9 @@ export function switchChain( provider: EIP1193Provider, chainId: ChainId ): Promise { - console.log('switchChain', parseInt(chainId, 16)) return provider.request({ method: 'wallet_switchEthereumChain', - params: [{ chainId: parseInt(chainId, 16) }] + params: [{ chainId }] }) } From 5690fcc2cd2749526c42cde91980d1fa9b040a7f Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Tue, 28 May 2024 12:08:34 -0600 Subject: [PATCH 4/7] Clarify smart wallet within docs --- docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md | 4 ++++ packages/coinbase/README.md | 4 ++++ packages/coinbase/package.json | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md b/docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md index 4c00ab9e5..f02fffba8 100644 --- a/docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md +++ b/docs/src/routes/docs/[...4]wallets/[...6]coinbase/+page.md @@ -40,6 +40,10 @@ type CoinbaseWalletOptions = { } ``` +## Smart Wallet + +Starting at `@web3-onboard/coinbase` version 2.3.0 smart wallet support has been added. A smart wallet lives in your browser, no extensions or app installs needed. Use passkeys for signing, with enterprise-grade security without complex seed phrases. One wallet, one address, works universally across major L2s and onchain apps. [More info on Coinbase smart wallets](https://www.coinbase.com/wallet/smart-wallet). + ## Usage ```typescript diff --git a/packages/coinbase/README.md b/packages/coinbase/README.md index ea8d777a8..2cfb75d85 100644 --- a/packages/coinbase/README.md +++ b/packages/coinbase/README.md @@ -23,6 +23,10 @@ type CoinbaseWalletOptions = { } ``` +## Smart Wallet + +Starting at `@web3-onboard/coinbase` version 2.3.0 smart wallet support has been added. A smart wallet lives in your browser, no extensions or app installs needed. Use passkeys for signing, with enterprise-grade security without complex seed phrases. One wallet, one address, works universally across major L2s and onchain apps. [More info on Coinbase smart wallets](https://www.coinbase.com/wallet/smart-wallet). + ## Usage ```typescript diff --git a/packages/coinbase/package.json b/packages/coinbase/package.json index 95af35155..529cc9124 100644 --- a/packages/coinbase/package.json +++ b/packages/coinbase/package.json @@ -31,7 +31,8 @@ "confirmed", "Injected Wallet", "Crypto", - "Crypto Wallet" + "Crypto Wallet", + "Smart Wallet" ], "repository": { "type": "git", From efabd3b8dd8dbc744ff9c4faf678f5a99cb3d100 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Thu, 30 May 2024 15:42:17 -0600 Subject: [PATCH 5/7] Update handler of chainId within eth_chainId --- packages/coinbase/package.json | 2 +- packages/coinbase/src/index.ts | 31 +++++++++++++++++++++---------- packages/demo/package.json | 2 +- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/packages/coinbase/package.json b/packages/coinbase/package.json index 529cc9124..bf959dcbf 100644 --- a/packages/coinbase/package.json +++ b/packages/coinbase/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/coinbase", - "version": "2.3.0-alpha.3", + "version": "2.3.0-alpha.4", "description": "Coinbase SDK wallet module for connecting 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/coinbase/src/index.ts b/packages/coinbase/src/index.ts index 8cfaae86b..22858ab66 100644 --- a/packages/coinbase/src/index.ts +++ b/packages/coinbase/src/index.ts @@ -1,7 +1,8 @@ -import type { - EIP1193Provider, - WalletInit, - WalletInterface +import { + createEIP1193Provider, + fromHex, + type WalletInit, + type WalletInterface } from '@web3-onboard/common' function coinbaseWallet({ @@ -27,9 +28,9 @@ function coinbaseWallet({ chains, appMetadata }): Promise => { - if (enableMobileWalletLink || reloadOnDisconnect) { + if (enableMobileWalletLink || reloadOnDisconnect || darkMode) { console.warn( - 'enableMobileWalletLink and reloadOnDisconnect are deprecated after version 2.2.7 of @web3-onboard/coinbase' + 'darkMode, enableMobileWalletLink and reloadOnDisconnect init props are deprecated after version 2.2.7 of @web3-onboard/coinbase' ) } const { name, icon } = appMetadata || {} @@ -50,9 +51,8 @@ function coinbaseWallet({ const base64 = window.btoa(icon || '') const appLogoUrl = `data:image/svg+xml;base64,${base64}` - const appChainIds = chains.map( - // @ts-ignore - treating hex strings as numbers as they are expected to be hex numbers - ({ id }) => id as number + const appChainIds = chains.map(({ id }) => + fromHex(id as `0x${string}`, 'number') ) const instance = new CoinbaseWalletSDKConstructor({ @@ -89,9 +89,20 @@ function coinbaseWallet({ return coinbaseWalletProvider } + const provider = createEIP1193Provider(coinbaseWalletProvider, { + eth_chainId: ({ baseRequest }) => + baseRequest({ method: 'eth_chainId' }).then(id => { + if (isHex(id)) { + return id + } else { + return toHex(id) + } + }) + }) + provider.removeListener = (event, func) => {} return { - provider: coinbaseWalletProvider as EIP1193Provider, + provider, instance } } diff --git a/packages/demo/package.json b/packages/demo/package.json index 2e18ecb66..65e0fdd83 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -33,7 +33,7 @@ "@web3-onboard/capsule": "2.1.0-alpha.2", "@web3-onboard/cede-store": "^2.3.0-alpha.2", "@web3-onboard/core": "^2.22.0-alpha.5", - "@web3-onboard/coinbase": "^2.3.0-alpha.3", + "@web3-onboard/coinbase": "^2.3.0-alpha.4", "@web3-onboard/dcent": "^2.2.7", "@web3-onboard/enkrypt": "^2.1.0-alpha.2", "@web3-onboard/fortmatic": "^2.1.0-alpha.2", From bfc5f5cfadfa2ef9f6dcffc7047584b221c7ae61 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Fri, 31 May 2024 11:09:18 -0600 Subject: [PATCH 6/7] remove chainId patch in CB provider --- packages/coinbase/package.json | 4 ++-- packages/coinbase/src/index.ts | 11 +---------- packages/demo/package.json | 2 +- yarn.lock | 8 ++++---- 4 files changed, 8 insertions(+), 17 deletions(-) diff --git a/packages/coinbase/package.json b/packages/coinbase/package.json index cdebfa5a7..18a37f709 100644 --- a/packages/coinbase/package.json +++ b/packages/coinbase/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/coinbase", - "version": "2.4.0-alpha.1", + "version": "2.4.0-alpha.2", "description": "Coinbase SDK wallet module for connecting 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", @@ -59,7 +59,7 @@ "typescript": "^5.4.5" }, "dependencies": { - "@coinbase/wallet-sdk": "^4.0.2", + "@coinbase/wallet-sdk": "4.0.3", "@web3-onboard/common": "^2.4.0-alpha.3" } } diff --git a/packages/coinbase/src/index.ts b/packages/coinbase/src/index.ts index 22858ab66..5ec24f1a7 100644 --- a/packages/coinbase/src/index.ts +++ b/packages/coinbase/src/index.ts @@ -89,16 +89,7 @@ function coinbaseWallet({ return coinbaseWalletProvider } - const provider = createEIP1193Provider(coinbaseWalletProvider, { - eth_chainId: ({ baseRequest }) => - baseRequest({ method: 'eth_chainId' }).then(id => { - if (isHex(id)) { - return id - } else { - return toHex(id) - } - }) - }) + const provider = createEIP1193Provider(coinbaseWalletProvider) provider.removeListener = (event, func) => {} return { diff --git a/packages/demo/package.json b/packages/demo/package.json index d12a47d02..a324ec5c9 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -33,7 +33,7 @@ "@web3-onboard/capsule": "2.1.0-alpha.2", "@web3-onboard/cede-store": "^2.3.0-alpha.2", "@web3-onboard/core": "2.22.0-alpha.7", - "@web3-onboard/coinbase": "^2.4.0-alpha.1", + "@web3-onboard/coinbase": "^2.4.0-alpha.2", "@web3-onboard/dcent": "^2.2.7", "@web3-onboard/enkrypt": "^2.1.0-alpha.2", "@web3-onboard/fortmatic": "^2.1.0-alpha.2", diff --git a/yarn.lock b/yarn.lock index f079b9c1d..1e03b867d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -783,10 +783,10 @@ preact "^10.16.0" sha.js "^2.4.11" -"@coinbase/wallet-sdk@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.0.2.tgz#403b2194ecc9bcf8b8fd217ec5cd6529013b58f4" - integrity sha512-WMUeFbtS0rn8zavjAmNhFWq1r3TV7E5KuSij1Sar0/XuOC+nhj96uqSlIApAHdhuScoKZBq39VYsAQCHzOC6/w== +"@coinbase/wallet-sdk@4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.0.3.tgz#fd52dd4c168c35979c7b3294018a6f78d163a593" + integrity sha512-y/OGEjlvosikjfB+wk+4CVb9OxD1ob9cidEBLI5h8Hxaf/Qoob2XoVT1uvhtAzBx34KpGYSd+alKvh/GCRre4Q== dependencies: buffer "^6.0.3" clsx "^1.2.1" From ed00198486b47c94ec1a7a12efd62197a29ed509 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Fri, 31 May 2024 11:10:08 -0600 Subject: [PATCH 7/7] Revert version bump --- packages/coinbase/package.json | 2 +- packages/demo/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/coinbase/package.json b/packages/coinbase/package.json index 18a37f709..8c2c13c67 100644 --- a/packages/coinbase/package.json +++ b/packages/coinbase/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/coinbase", - "version": "2.4.0-alpha.2", + "version": "2.4.0-alpha.1", "description": "Coinbase SDK wallet module for connecting 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/demo/package.json b/packages/demo/package.json index a324ec5c9..d12a47d02 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -33,7 +33,7 @@ "@web3-onboard/capsule": "2.1.0-alpha.2", "@web3-onboard/cede-store": "^2.3.0-alpha.2", "@web3-onboard/core": "2.22.0-alpha.7", - "@web3-onboard/coinbase": "^2.4.0-alpha.2", + "@web3-onboard/coinbase": "^2.4.0-alpha.1", "@web3-onboard/dcent": "^2.2.7", "@web3-onboard/enkrypt": "^2.1.0-alpha.2", "@web3-onboard/fortmatic": "^2.1.0-alpha.2",