Skip to content
Merged
2 changes: 1 addition & 1 deletion packages/coinbase/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@web3-onboard/coinbase",
"version": "2.0.3-alpha.1",
"version": "2.0.3-alpha.2",
"description": "Coinbase Wallet module for web3-onboard",
"module": "dist/index.js",
"browser": "dist/index.js",
Expand Down
87 changes: 43 additions & 44 deletions packages/coinbase/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,53 +5,52 @@ function coinbaseWallet({
}: {
darkMode?: boolean
} = {}): WalletInit {
return ({ device }) =>
device.type === 'mobile'
? {
label: 'Coinbase Wallet',
getIcon: async () => (await import('./icon.js')).default,
getInterface: async ({ chains, appMetadata }) => {
const [chain] = chains
const { name, icon } = appMetadata || {}

const { CoinbaseWalletSDK } = await import('@coinbase/wallet-sdk')

const base64 = window.btoa(icon || '')
const appLogoUrl = `data:image/svg+xml;base64,${base64}`

const instance = new CoinbaseWalletSDK({
appName: name || '',
appLogoUrl,
darkMode
})

const coinbaseWalletProvider = instance.makeWeb3Provider(
chain.rpcUrl,
parseInt(chain.id)
)

// patch the chainChanged event
const on = coinbaseWalletProvider.on.bind(coinbaseWalletProvider)
coinbaseWalletProvider.on = (event, listener) => {
on(event, val => {
if (event === 'chainChanged') {
listener(`0x${(val as number).toString(16)}`)
return
}

listener(val)
})

return coinbaseWalletProvider
return () => {
return {
label: 'Coinbase Wallet',
getIcon: async () => (await import('./icon.js')).default,
getInterface: async ({ chains, appMetadata }) => {
const [chain] = chains
const { name, icon } = appMetadata || {}

const { CoinbaseWalletSDK } = await import('@coinbase/wallet-sdk')

const base64 = window.btoa(icon || '')
const appLogoUrl = `data:image/svg+xml;base64,${base64}`

const instance = new CoinbaseWalletSDK({
appName: name || '',
appLogoUrl,
darkMode
})

const coinbaseWalletProvider = instance.makeWeb3Provider(
chain.rpcUrl,
parseInt(chain.id)
)

// patch the chainChanged event
const on = coinbaseWalletProvider.on.bind(coinbaseWalletProvider)
coinbaseWalletProvider.on = (event, listener) => {
on(event, val => {
if (event === 'chainChanged') {
listener(`0x${(val as number).toString(16)}`)
return
}

return {
provider: coinbaseWalletProvider,
instance
}
}
listener(val)
})

return coinbaseWalletProvider
}

return {
provider: coinbaseWalletProvider,
instance
}
: null
}
}
}
}

export default coinbaseWallet
2 changes: 1 addition & 1 deletion packages/core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Install the core module:

If you would like to support all wallets, then you can install all of the wallet modules:

`npm i @web3-onboard/injected-wallets @web3-onboard/ledger @web3-onboard/trezor @web3-onboard/keepkey @web3-onboard/walletconnect @web3-onboard/walletlink @web3-onboard/torus @web3-onboard/portis @web3-onboard/mew @web3-onboard/gnosis @web3-onboard/magic @web3-onboard/fortmatic`
`npm i @web3-onboard/injected-wallets @web3-onboard/coinbase @web3-onboard/ledger @web3-onboard/trezor @web3-onboard/keepkey @web3-onboard/walletconnect @web3-onboard/torus @web3-onboard/portis @web3-onboard/mew @web3-onboard/gnosis @web3-onboard/magic @web3-onboard/fortmatic`

Note:

Expand Down
2 changes: 1 addition & 1 deletion packages/injected/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@web3-onboard/injected-wallets",
"version": "2.0.6",
"version": "2.0.7-alpha.1",
"description": "Injected wallets module for web3-onboard",
"module": "dist/index.js",
"browser": "dist/index.js",
Expand Down
8 changes: 4 additions & 4 deletions packages/react/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ import {
useWallets
} from '@web3-onboard/react'
import injectedModule from '@web3-onboard/injected-wallets'
import coinbaseModule from '@web3-onboard/coinbase'
import trezorModule from '@web3-onboard/trezor'
import ledgerModule from '@web3-onboard/ledger'
import walletConnectModule from '@web3-onboard/walletconnect'
import walletLinkModule from '@web3-onboard/walletlink'
import portisModule from '@web3-onboard/portis'
import fortmaticModule from '@web3-onboard/fortmatic'
import torusModule from '@web3-onboard/torus'
import keepkeyModule from '@web3-onboard/keepkey'

const injected = injectedModule()
const walletLink = walletLinkModule()
const coinbase = coinbaseModule()
const walletConnect = walletConnectModule()

const portis = portisModule({
Expand All @@ -51,12 +51,12 @@ const trezor = trezorModule(trezorOptions)

const web3Onboard = init({
wallets: [
injected,
coinbase,
ledger,
trezor,
walletConnect,
keepkey,
walletLink,
injected,
fortmatic,
portis,
torus
Expand Down