Skip to content

Commit 7421f1c

Browse files
committed
fix: better typings
1 parent cf79077 commit 7421f1c

File tree

4 files changed

+47
-11
lines changed

4 files changed

+47
-11
lines changed

wallets/provider-metamask/src/legacy/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
import { evmBlockchains } from 'rango-types';
2121

2222
import signer from '../signer.js';
23-
import { metamask as metamask_instance, type Provider } from '../utils.js';
23+
import { metamask as metamask_instance } from '../utils.js';
2424

2525
const WALLET = WalletTypes.META_MASK;
2626

@@ -49,7 +49,8 @@ export const subscribe: Subscribe = subscribeToEvm;
4949
export const switchNetwork: SwitchNetwork = switchNetworkForEvm;
5050

5151
export const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;
52-
52+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
53+
type Provider = any;
5354
export const getSigners: (provider: Provider) => Promise<SignerFactory> =
5455
signer;
5556

wallets/provider-metamask/src/signer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Provider } from './utils.js';
1+
import type { Provider } from './types.js';
22
import type { SignerFactory } from 'rango-types';
33

44
import { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';

wallets/provider-metamask/src/types.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
2+
import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
13
import type { WalletWithFeatures as StandardWalletWithFeatures } from '@wallet-standard/base';
24

35
import {
@@ -15,3 +17,38 @@ export type WalletStandardSolanaInstance = StandardWalletWithFeatures<
1517
SolanaSignTransactionFeature &
1618
SolanaSignMessageFeature
1719
>;
20+
export type MetamaskEvmProviderApi = EvmProviderApi & {
21+
isMetaMask?: boolean;
22+
isBraveWallet?: boolean;
23+
_events?: boolean;
24+
_state?: boolean;
25+
isApexWallet?: boolean;
26+
isAvalanche?: boolean;
27+
isBitKeep?: boolean;
28+
isBlockWallet?: boolean;
29+
isCoin98?: boolean;
30+
isFordefi?: boolean;
31+
__XDEFI?: boolean;
32+
isMathWallet?: boolean;
33+
isOkxWallet?: boolean;
34+
isOKExWallet?: boolean;
35+
isOneInchIOSWallet?: boolean;
36+
isOneInchAndroidWallet?: boolean;
37+
isOpera?: boolean;
38+
isPortal?: boolean;
39+
isRabby?: boolean;
40+
isDefiant?: boolean;
41+
isTokenPocket?: boolean;
42+
isTokenary?: boolean;
43+
isZeal?: boolean;
44+
isZerion?: boolean;
45+
isSafePal?: boolean;
46+
};
47+
export type ProviderObject = {
48+
[LegacyNetworks.ETHEREUM]: MetamaskEvmProviderApi;
49+
[LegacyNetworks.SOLANA]: WalletStandardSolanaInstance;
50+
};
51+
export type Provider = Map<
52+
keyof ProviderObject,
53+
ProviderObject[keyof ProviderObject]
54+
>;

wallets/provider-metamask/src/utils.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import type { WalletStandardSolanaInstance } from './types.js';
1+
import type {
2+
MetamaskEvmProviderApi,
3+
Provider,
4+
WalletStandardSolanaInstance,
5+
} from './types.js';
26
import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
37

48
import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
@@ -9,9 +13,6 @@ import {
913
WALLET_STANDARD_NAME,
1014
} from './constants.js';
1115

12-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
13-
export type Provider = Record<string, any>;
14-
1516
export function metamask(): Provider | null {
1617
const { ethereum } = window;
1718
const solana = getSolanaWalletInstance();
@@ -30,7 +31,7 @@ export function metamask(): Provider | null {
3031

3132
return instances;
3233
}
33-
function isEthereumMetamaskProvider(ethereum: Provider): boolean {
34+
function isEthereumMetamaskProvider(ethereum: MetamaskEvmProviderApi): boolean {
3435
if (!ethereum?.isMetaMask) {
3536
return false;
3637
}
@@ -95,9 +96,6 @@ function isEthereumMetamaskProvider(ethereum: Provider): boolean {
9596
if (ethereum.isZerion) {
9697
return false;
9798
}
98-
if (ethereum.isPhantom) {
99-
return false;
100-
}
10199
if (ethereum.isSafePal) {
102100
return false;
103101
}

0 commit comments

Comments
 (0)