MyCrypto/common/utils/web3.ts

44 lines
956 B
TypeScript

import MetamaskIcon from 'assets/images/wallets/metamask.svg';
import MistIcon from 'assets/images/wallets/mist.svg';
import CipherIcon from 'assets/images/wallets/cipher.svg';
interface Web3ProviderInfo {
lid: string;
icon: string;
}
const WEB3_CONFIGS: {
[classname: string]: Web3ProviderInfo;
} = {
CipherProvider: {
lid: 'X_CIPHER',
icon: CipherIcon
},
MetamaskInpageProvider: {
lid: 'X_METAMASK',
icon: MetamaskIcon
},
EthereumProvider: {
lid: 'X_MIST',
icon: MistIcon
}
};
const DEFAULT_WEB3_CONFIG: Web3ProviderInfo = {
lid: 'X_WEB3',
icon: ''
};
export function getWeb3ProviderInfo(): Web3ProviderInfo {
if (typeof window === 'undefined') {
return DEFAULT_WEB3_CONFIG;
}
const className = (window as any).web3 && (window as any).web3.currentProvider.constructor.name;
if (className && WEB3_CONFIGS[className]) {
return WEB3_CONFIGS[className];
}
return DEFAULT_WEB3_CONFIG;
}