From f3cdb4a14fe93e20e625a29ea317e391261c004d Mon Sep 17 00:00:00 2001 From: Nate Reiners Date: Thu, 30 May 2024 13:45:29 -0700 Subject: [PATCH 1/2] fix appChainIds --- packages/coinbase/package.json | 2 +- packages/coinbase/src/index.ts | 6 ++---- packages/common/src/index.ts | 3 ++- packages/common/src/utils.ts | 8 ++++++++ packages/demo/package.json | 2 +- 5 files changed, 14 insertions(+), 7 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..1d4517764 100644 --- a/packages/coinbase/src/index.ts +++ b/packages/coinbase/src/index.ts @@ -3,6 +3,7 @@ import type { WalletInit, WalletInterface } from '@web3-onboard/common' +import { convertChainIdToNumber } from '@web3-onboard/common' function coinbaseWallet({ supportedWalletType = 'all', @@ -50,10 +51,7 @@ 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 }) => convertChainIdToNumber(id)) const instance = new CoinbaseWalletSDKConstructor({ appName: name || '', diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index 500fe4f9a..3dc24b42b 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -8,7 +8,8 @@ export { bigIntToHex, ethToWeiBigInt, createDownloadMessage, - chainIdToViemImport + chainIdToViemImport, + convertChainIdToNumber } from './utils.js' export * from './types.js' diff --git a/packages/common/src/utils.ts b/packages/common/src/utils.ts index 778f5d630..60db5a5e4 100644 --- a/packages/common/src/utils.ts +++ b/packages/common/src/utils.ts @@ -50,6 +50,14 @@ export const createDownloadMessage = ( } } +export const convertChainIdToNumber = (chainId: string | number): number => { + if (typeof chainId === 'number') { + return chainId + } + const hexRegex = /^[0-9a-fA-F]+$/ + return hexRegex.test(chainId) ? parseInt(chainId, 16) : Number(chainId) +} + export const chainIdToViemImport = async ( w3oChain: Chain ): Promise => { 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 bc7ba3c04bce2949261d2d0b95c080fbb63bb054 Mon Sep 17 00:00:00 2001 From: Nate Reiners Date: Thu, 30 May 2024 13:47:04 -0700 Subject: [PATCH 2/2] undo 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 bf959dcbf..529cc9124 100644 --- a/packages/coinbase/package.json +++ b/packages/coinbase/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/coinbase", - "version": "2.3.0-alpha.4", + "version": "2.3.0-alpha.3", "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 65e0fdd83..2e18ecb66 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.4", + "@web3-onboard/coinbase": "^2.3.0-alpha.3", "@web3-onboard/dcent": "^2.2.7", "@web3-onboard/enkrypt": "^2.1.0-alpha.2", "@web3-onboard/fortmatic": "^2.1.0-alpha.2",