UNPKG

@totle/web3connect

Version:

A single Web3 / Ethereum provider solution for all Wallets

204 lines (191 loc) 4.27 kB
import { IProviderInfo, IProviderMappingEntry } from "../helpers/types"; import connectors from "./connectors"; import { INJECTED_PROVIDER_ID } from "../helpers/constants"; import { FALLBACK_INJECTED, injected } from "./injected"; // @ts-ignore import WalletConnectLogo from "./logos/walletconnect-circle.svg"; // @ts-ignore import CoinbaseLogo from "./logos/coinbase.svg"; // @ts-ignore import PortisLogo from "./logos/portis.svg"; // @ts-ignore import SquarelinkLogo from "./logos/squarelink.svg"; // @ts-ignore import FortmaticLogo from "./logos/fortmatic.svg"; // @ts-ignore import ArkaneLogo from "./logos/arkane.svg"; // @ts-ignore import TorusLogo from "./logos/torus.png"; // @ts-ignore import AuthereumLogo from "./logos/authereum.svg"; export const FALLBACK = FALLBACK_INJECTED; export const WALLETCONNECT_PROVIDER: IProviderInfo = { id: "walletconnect", name: "WalletConnect", logo: WalletConnectLogo, type: "qrcode", check: "isWalletConnect", styled: { noShadow: false }, package: { required: ["infuraId"] } }; export const WALLETLINK_PROVIDER: IProviderInfo = { id: "walletlink", name: "Coinbase Wallet", logo: CoinbaseLogo, type: "qrcode", check: "isWalletLink", styled: { noShadow: false }, package: { required: ["infuraId", "appName", "appLogoUrl"] } }; export const PORTIS_PROVIDER: IProviderInfo = { id: "portis", name: "Portis", logo: PortisLogo, type: "web", check: "isPortis", styled: { noShadow: true }, package: { required: ["id"] } }; export const FORTMATIC_PROVIDER: IProviderInfo = { id: "fortmatic", name: "Fortmatic", logo: FortmaticLogo, type: "web", check: "isFortmatic", styled: { noShadow: true }, package: { required: ["key"] } }; export const SQUARELINK_PROVIDER: IProviderInfo = { id: "squarelink", name: "Squarelink", logo: SquarelinkLogo, type: "web", check: "isSquarelink", styled: { noShadow: true }, package: { required: ["id"] } }; export const TORUS_PROVIDER: IProviderInfo = { id: "torus", name: "Google", logo: TorusLogo, type: "web", check: "isTorus", styled: { noShadow: false }, package: { required: [] } }; export const ARKANE_PROVIDER: IProviderInfo = { id: "arkane", name: "Arkane", logo: ArkaneLogo, type: "web", check: "isArkane", styled: { noShadow: true }, package: { required: ["clientId"] } }; export const AUTHEREUM_PROVIDER: IProviderInfo = { id: "authereum", name: "Authereum", logo: AuthereumLogo, type: "web", check: "isAuthereum", styled: { noShadow: true }, package: { required: [] } }; export const providers: IProviderInfo[] = [ ...injected, WALLETCONNECT_PROVIDER, SQUARELINK_PROVIDER, PORTIS_PROVIDER, FORTMATIC_PROVIDER, ARKANE_PROVIDER, TORUS_PROVIDER, AUTHEREUM_PROVIDER ]; export const providerMapping: IProviderMappingEntry[] = [ { id: INJECTED_PROVIDER_ID, name: "", connector: connectors.injected, package: FALLBACK_INJECTED.package }, { id: WALLETCONNECT_PROVIDER.id, name: WALLETCONNECT_PROVIDER.name, connector: connectors.walletconnect, package: WALLETCONNECT_PROVIDER.package }, { id: WALLETLINK_PROVIDER.id, name: WALLETLINK_PROVIDER.name, connector: connectors.walletlink, package: WALLETLINK_PROVIDER.package }, { id: PORTIS_PROVIDER.id, name: PORTIS_PROVIDER.name, connector: connectors.portis, package: PORTIS_PROVIDER.package }, { id: FORTMATIC_PROVIDER.id, name: FORTMATIC_PROVIDER.name, connector: connectors.fortmatic, package: FORTMATIC_PROVIDER.package }, { id: SQUARELINK_PROVIDER.id, name: SQUARELINK_PROVIDER.name, connector: connectors.squarelink, package: SQUARELINK_PROVIDER.package }, { id: TORUS_PROVIDER.id, name: TORUS_PROVIDER.name, connector: connectors.torus, package: TORUS_PROVIDER.package }, { id: ARKANE_PROVIDER.id, name: ARKANE_PROVIDER.name, connector: connectors.arkane, package: ARKANE_PROVIDER.package }, { id: AUTHEREUM_PROVIDER.id, name: AUTHEREUM_PROVIDER.name, connector: connectors.authereum, package: AUTHEREUM_PROVIDER.package } ];