Skip to content

Commit 9fb6169

Browse files
authored
Merge pull request #430 from blocknative/fix/opera-touch
Fix: Ensure wallet enabled before making rpc requests
2 parents a0fa47e + 8c3f4f3 commit 9fb6169

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

src/modules/select/wallets/opera-touch.ts

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,38 @@ function operaTouch(options: CommonWalletOptions): WalletModule {
1313
iconSrcSet: iconSrc || operaTouchIcon2x,
1414
svg,
1515
wallet: async (helpers: Helpers) => {
16-
const { getProviderName, createModernProviderInterface } = helpers
16+
const { getProviderName, getAddress, getBalance, getNetwork } = helpers
1717

1818
const provider =
1919
(window as any).ethereum ||
2020
((window as any).web3 && (window as any).web3.currentProvider)
2121

22+
let enabled = false
23+
2224
return {
2325
provider,
2426
interface:
2527
provider && getProviderName(provider) === undefined
26-
? createModernProviderInterface(provider)
28+
? {
29+
name: 'Opera Touch',
30+
connect: () =>
31+
provider.enable().then((res: any) => {
32+
enabled = true
33+
return res
34+
}),
35+
address: {
36+
get: () =>
37+
enabled ? getAddress(provider) : Promise.resolve(null)
38+
},
39+
network: {
40+
get: () =>
41+
enabled ? getNetwork(provider) : Promise.resolve(null)
42+
},
43+
balance: {
44+
get: () =>
45+
enabled ? getBalance(provider) : Promise.resolve(null)
46+
}
47+
}
2748
: null
2849
}
2950
},

0 commit comments

Comments
 (0)