Skip to content

Commit 44d2462

Browse files
authoredJun 24, 2024··
chore: bump mm sdk (#4081)
* chore: bump metamask sdk * chore: changeset
1 parent afcdc2d commit 44d2462

File tree

4 files changed

+24
-28
lines changed

4 files changed

+24
-28
lines changed
 

‎.changeset/wise-starfishes-provide.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@wagmi/connectors": patch
3+
---
4+
5+
Bumped MetaMask SDK

‎packages/connectors/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
},
4747
"dependencies": {
4848
"@coinbase/wallet-sdk": "4.0.3",
49-
"@metamask/sdk": "0.26.0",
49+
"@metamask/sdk": "0.26.2",
5050
"@safe-global/safe-apps-provider": "0.18.1",
5151
"@safe-global/safe-apps-sdk": "8.1.0",
5252
"@walletconnect/ethereum-provider": "2.13.0",

‎packages/connectors/src/metaMask.ts

+9-18
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
UserRejectedRequestError,
2121
getAddress,
2222
numberToHex,
23+
withRetry,
2324
} from 'viem'
2425

2526
export type MetaMaskParameters = Evaluate<
@@ -33,7 +34,6 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
3334
onConnect(connectInfo: ProviderConnectInfo): void
3435
onDisplayUri(uri: string): void
3536
}
36-
type StorageItem = { 'metaMaskSDK.disconnected': true }
3737
type Listener = Parameters<Provider['on']>[1]
3838

3939
let sdk: MetaMaskSDK
@@ -46,7 +46,7 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
4646
let displayUri: ((uri: string) => void) | undefined
4747
let disconnect: Connector['onDisconnect'] | undefined
4848

49-
return createConnector<Provider, Properties, StorageItem>((config) => ({
49+
return createConnector<Provider, Properties>((config) => ({
5050
id: 'metaMaskSDK',
5151
name: 'MetaMask',
5252
type: metaMask.type,
@@ -83,8 +83,6 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
8383
currentChainId = chain?.id ?? currentChainId
8484
}
8585

86-
await config.storage?.removeItem('metaMaskSDK.disconnected')
87-
8886
if (displayUri) {
8987
provider.removeListener('display_uri', displayUri)
9088
displayUri = undefined
@@ -140,10 +138,7 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
140138
provider.on('connect', connect as Listener)
141139
}
142140

143-
sdk.terminate()
144-
145-
// Add shim signalling connector is disconnected
146-
await config.storage?.setItem('metaMaskSDK.disconnected', true)
141+
await sdk.terminate()
147142
},
148143
async getAccounts() {
149144
const provider = await this.getProvider()
@@ -197,12 +192,12 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
197192
},
198193
async isAuthorized() {
199194
try {
200-
const isDisconnected =
201-
// If shim exists in storage, connector is disconnected
202-
await config.storage?.getItem('metaMaskSDK.disconnected')
203-
if (isDisconnected) return false
204-
205-
const accounts = await this.getAccounts()
195+
// MetaMask mobile provider sometimes fails to immediately resolve
196+
// JSON-RPC requests on page load
197+
const accounts = await withRetry(() => this.getAccounts(), {
198+
delay: 200,
199+
retryCount: 3,
200+
})
206201
return !!accounts.length
207202
} catch {
208203
return false
@@ -295,7 +290,6 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
295290
else if (config.emitter.listenerCount('connect')) {
296291
const chainId = (await this.getChainId()).toString()
297292
this.onConnect({ chainId })
298-
await config.storage?.removeItem('metaMaskSDK.disconnected')
299293
}
300294
// Regular change event
301295
else
@@ -347,9 +341,6 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
347341
localStorage.removeItem('MMSDK_cached_chainId')
348342
}
349343

350-
// No need to remove 'metaMaskSDK.disconnected' from storage because `onDisconnect` is typically
351-
// only called when the wallet is disconnected through the wallet's interface, meaning the wallet
352-
// actually disconnected and we don't need to simulate it.
353344
config.emitter.emit('disconnect')
354345

355346
// Manage EIP-1193 event listeners

‎pnpm-lock.yaml

+9-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
Please sign in to comment.