@onboard-dx/injected-wallets
Version:
Injected wallet module for connecting browser extension and mobile wallets to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported
27 lines (26 loc) • 1.09 kB
JavaScript
export class ProviderRpcError extends Error {
constructor(error) {
super(error.message);
this.message = error.message;
this.code = error.code;
this.data = error.data;
}
}
export const defaultWalletUnavailableMsg = ({ label, externalUrl }) => externalUrl
? `Please <a href="${externalUrl}" target="_blank">install</a> or enable ${label} to continue`
: `Please install or enable ${label} to continue`;
export const isWalletAvailable = (provider, checkProviderIdentity, device) => {
var _a;
// No injected providers exist.
if (!provider) {
return false;
}
// Many injected providers add their own object into window.
if (checkProviderIdentity({ provider, device })) {
return true;
}
// For multiple injected providers, check providers array
// example coinbase inj wallet pushes over-ridden wallets
// into a providers array at window.ethereum
return !!((_a = provider.providers) === null || _a === void 0 ? void 0 : _a.some(provider => checkProviderIdentity({ provider, device })));
};