Skip to content

Commit aa9bfee

Browse files
davidp94Smart
and
Smart
authored
feat: add XDEFI (#540)
* Add xdefi module * fix: update object key * update logo and label * update provider label * check XDEFI condition ahead of metamask Co-authored-by: Smart <sengineer330@gmail.com>
1 parent ab68af8 commit aa9bfee

File tree

5 files changed

+55
-0
lines changed

5 files changed

+55
-0
lines changed

src/modules/select/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ function getModule(
136136
return import('./wallets/liquality')
137137
case 'frame':
138138
return import('./wallets/frame')
139+
case 'xdefi':
140+
return import('./wallets/xdefi')
139141
case 'alphawallet':
140142
return import('./wallets/alphawallet')
141143
case 'ownbit':
5.05 KB
Loading
Loading

src/modules/select/wallets/xdefi.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { extensionInstallMessage } from '../content'
2+
import { WalletModule, Helpers, CommonWalletOptions } from '../../../interfaces'
3+
4+
import xdefiIcon from '../wallet-icons/icon-xdefi.png'
5+
import xdefiIcon2x from '../wallet-icons/icon-xdefi@2x.png'
6+
7+
function xdefi(options: CommonWalletOptions): WalletModule {
8+
const { preferred, label, iconSrc, svg } = options
9+
10+
return {
11+
name: label || 'XDEFI Wallet',
12+
iconSrc: iconSrc || xdefiIcon,
13+
iconSrcSet: iconSrc || xdefiIcon2x,
14+
svg,
15+
wallet: async (helpers: Helpers) => {
16+
const {
17+
getProviderName,
18+
createModernProviderInterface,
19+
createLegacyProviderInterface
20+
} = helpers
21+
22+
const provider =
23+
(window as any).ethereum ||
24+
((window as any).web3 && (window as any).web3.currentProvider)
25+
26+
return {
27+
provider,
28+
interface:
29+
provider && getProviderName(provider) === 'XDEFI'
30+
? typeof provider.enable === 'function'
31+
? createModernProviderInterface(provider)
32+
: createLegacyProviderInterface(provider)
33+
: null
34+
}
35+
},
36+
type: 'injected',
37+
link: 'https://www.xdefi.io/',
38+
installMessage: extensionInstallMessage,
39+
desktop: true,
40+
mobile: true,
41+
preferred
42+
}
43+
}
44+
45+
export default xdefi

src/utilities.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,14 @@ export function getProviderName(provider: any): string | undefined {
249249
return 'Status'
250250
}
251251

252+
if (provider.isXDEFI) {
253+
return 'XDEFI'
254+
}
255+
256+
if (provider.isMetaMask) {
257+
return 'MetaMask'
258+
}
259+
252260
if (provider.isMYKEY) {
253261
return 'MYKEY'
254262
}

0 commit comments

Comments
 (0)