Skip to content

Commit f8ee8fe

Browse files
authored
Merge pull request #59 from blocknative/feature/opera-wallet
Add opera wallet Closes #58
2 parents bca69eb + 6647641 commit f8ee8fe

File tree

7 files changed

+73
-3
lines changed

7 files changed

+73
-3
lines changed

src/modules/select/index.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import portis from "./wallets/portis"
77
import fortmatic from "./wallets/fortmatic"
88
import authereum from "./wallets/authereum"
99
import squarelink from "./wallets/squarelink"
10+
import opera from "./wallets/opera"
11+
import operaTouch from "./wallets/opera-touch"
1012

1113
import { validateSelectDefaultsOptions } from "../../validation"
1214
import { SelectDefaultsOptions, WalletSelectModule } from "../../interfaces"
@@ -24,8 +26,8 @@ function defaults(options: SelectDefaultsOptions): WalletSelectModule {
2426
walletConnectInit
2527
} = options
2628

27-
const desktopModules = [metamask(), dapper()]
28-
const mobileModules = [coinbase(), trust()]
29+
const desktopModules = [metamask(), dapper(), opera()]
30+
const mobileModules = [coinbase(), trust(), operaTouch()]
2931

3032
if (portisInit) {
3133
desktopModules.push(portis({ ...portisInit, networkId }))
@@ -76,5 +78,7 @@ export default {
7678
portis,
7779
fortmatic,
7880
authereum,
79-
squarelink
81+
squarelink,
82+
opera,
83+
operaTouch
8084
}
Loading
Loading
1.24 KB
Loading
Loading
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { extensionInstallMessage } from "../content"
2+
3+
import operaTouchIcon from "../wallet-icons/icon-opera-touch.png"
4+
import operaTouchIcon2x from "../wallet-icons/icon-opera-touch@2x.png"
5+
6+
import { WalletModule, Helpers } from "../../../interfaces"
7+
8+
function operaTouch(): WalletModule {
9+
return {
10+
name: "Opera Touch",
11+
iconSrc: operaTouchIcon,
12+
iconSrcSet: operaTouchIcon2x,
13+
wallet: (helpers: Helpers) => {
14+
const { getProviderName, createModernProviderInterface } = helpers
15+
16+
const provider =
17+
(window as any).ethereum ||
18+
((window as any).web3 && (window as any).web3.currentProvider)
19+
20+
return {
21+
provider,
22+
interface:
23+
provider && getProviderName(provider) === undefined
24+
? createModernProviderInterface(provider)
25+
: null
26+
}
27+
},
28+
link: "https://www.opera.com/mobile/touch",
29+
installMessage: extensionInstallMessage
30+
}
31+
}
32+
33+
export default operaTouch

src/modules/select/wallets/opera.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { extensionInstallMessage } from "../content"
2+
3+
import operaIcon from "../wallet-icons/icon-opera.png"
4+
import operaIcon2x from "../wallet-icons/icon-opera@2x.png"
5+
6+
import { WalletModule, Helpers } from "../../../interfaces"
7+
8+
function opera(): WalletModule {
9+
return {
10+
name: "Opera",
11+
iconSrc: operaIcon,
12+
iconSrcSet: operaIcon2x,
13+
wallet: (helpers: Helpers) => {
14+
const { getProviderName, createModernProviderInterface } = helpers
15+
16+
const provider =
17+
(window as any).ethereum ||
18+
((window as any).web3 && (window as any).web3.currentProvider)
19+
20+
return {
21+
provider,
22+
interface:
23+
provider && getProviderName(provider) === undefined
24+
? createModernProviderInterface(provider)
25+
: null
26+
}
27+
},
28+
link: "https://www.opera.com/",
29+
installMessage: extensionInstallMessage
30+
}
31+
}
32+
33+
export default opera

0 commit comments

Comments
 (0)