@dynamic-labs/multi-wallet 0.17.0-RC.6 → 0.17.0-RC.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/package.json +8 -6
- package/src/index.cjs +0 -18
- package/src/index.d.ts +0 -4
- package/src/index.js +1 -4
- package/src/multi-wallet.cjs +53 -96
- package/src/multi-wallet.js +53 -96
- package/src/types.d.ts +9 -47
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +1 -1
- package/src/utils/getApiProviders.cjs +15 -0
- package/src/utils/getApiProviders.d.ts +10 -0
- package/src/utils/getApiProviders.js +11 -0
- package/src/utils/message.cjs +2 -2
- package/src/utils/message.d.ts +2 -2
- package/src/utils/message.js +1 -1
- package/src/utils/walletConnect.cjs +11 -8
- package/src/utils/walletConnect.d.ts +4 -4
- package/src/utils/walletConnect.js +11 -8
- package/src/wallets/algorand/MyAlgoWalletConnector.cjs +3 -3
- package/src/wallets/algorand/MyAlgoWalletConnector.js +1 -1
- package/src/wallets/clients/coinbase/coinbase.cjs +4 -4
- package/src/wallets/clients/coinbase/coinbase.js +1 -1
- package/src/wallets/clients/coinbase/types.d.ts +2 -2
- package/src/wallets/clients/walletConnect/walletConnect.cjs +20 -46
- package/src/wallets/clients/walletConnect/walletConnect.d.ts +1 -3
- package/src/wallets/clients/walletConnect/walletConnect.js +18 -43
- package/src/wallets/cosmos/KeplrWalletConnect.cjs +18 -16
- package/src/wallets/cosmos/KeplrWalletConnect.d.ts +7 -6
- package/src/wallets/cosmos/KeplrWalletConnect.js +14 -12
- package/src/wallets/cosmos/KeplrWalletConnector.cjs +21 -6
- package/src/wallets/cosmos/KeplrWalletConnector.d.ts +10 -5
- package/src/wallets/cosmos/KeplrWalletConnector.js +21 -6
- package/src/wallets/cosmos/wcClient.lib.cjs +100 -0
- package/src/wallets/cosmos/wcClient.lib.d.ts +20 -0
- package/src/wallets/cosmos/wcClient.lib.js +87 -0
- package/src/wallets/ethereum/BloctoEvm.cjs +10 -12
- package/src/wallets/ethereum/BloctoEvm.d.ts +2 -7
- package/src/wallets/ethereum/BloctoEvm.js +8 -10
- package/src/wallets/ethereum/EthWalletConnector.cjs +34 -19
- package/src/wallets/ethereum/EthWalletConnector.d.ts +8 -4
- package/src/wallets/ethereum/EthWalletConnector.js +28 -13
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -2
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -2
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +2 -2
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +1 -1
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +14 -38
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +5 -7
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +14 -38
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +10 -4
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +9 -3
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +15 -11
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +9 -8
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +13 -9
- package/src/wallets/ethereum/coinbase.cjs +9 -11
- package/src/wallets/ethereum/coinbase.d.ts +7 -11
- package/src/wallets/ethereum/coinbase.js +10 -12
- package/src/wallets/ethereum/ethProviderHelper.cjs +103 -101
- package/src/wallets/ethereum/ethProviderHelper.d.ts +24 -31
- package/src/wallets/ethereum/ethProviderHelper.js +100 -98
- package/src/wallets/ethereum/evm-network.cjs +2 -2
- package/src/wallets/ethereum/evm-network.d.ts +1 -17
- package/src/wallets/ethereum/evm-network.js +2 -2
- package/src/wallets/ethereum/injected/BloctoInjected.cjs +2 -3
- package/src/wallets/ethereum/injected/BloctoInjected.d.ts +2 -3
- package/src/wallets/ethereum/injected/BloctoInjected.js +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.js +2 -3
- package/src/wallets/ethereum/injected/Dawn.cjs +2 -3
- package/src/wallets/ethereum/injected/Dawn.d.ts +2 -3
- package/src/wallets/ethereum/injected/Dawn.js +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.js +2 -3
- package/src/wallets/ethereum/injected/Frame.cjs +2 -3
- package/src/wallets/ethereum/injected/Frame.d.ts +2 -3
- package/src/wallets/ethereum/injected/Frame.js +2 -3
- package/src/wallets/ethereum/injected/GameStop.cjs +2 -3
- package/src/wallets/ethereum/injected/GameStop.d.ts +2 -3
- package/src/wallets/ethereum/injected/GameStop.js +2 -3
- package/src/wallets/ethereum/injected/InjectedWalletBase.cjs +74 -0
- package/src/wallets/ethereum/{meta-mask.d.ts → injected/InjectedWalletBase.d.ts} +7 -9
- package/src/wallets/ethereum/injected/InjectedWalletBase.js +72 -0
- package/src/wallets/ethereum/injected/MetaMask.cjs +13 -0
- package/src/wallets/ethereum/injected/MetaMask.d.ts +6 -0
- package/src/wallets/ethereum/injected/MetaMask.js +11 -0
- package/src/wallets/ethereum/injected/Opera.cjs +2 -3
- package/src/wallets/ethereum/injected/Opera.d.ts +2 -3
- package/src/wallets/ethereum/injected/Opera.js +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.js +2 -3
- package/src/wallets/ethereum/injected/Trust.cjs +3 -3
- package/src/wallets/ethereum/injected/Trust.d.ts +3 -3
- package/src/wallets/ethereum/injected/Trust.js +3 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +2 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +2 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +2 -3
- package/src/wallets/ethereum/injected/Zerion.cjs +3 -3
- package/src/wallets/ethereum/injected/Zerion.d.ts +3 -3
- package/src/wallets/ethereum/injected/Zerion.js +3 -3
- package/src/wallets/flow/FlowWalletConnector.cjs +7 -8
- package/src/wallets/flow/FlowWalletConnector.js +2 -3
- package/src/wallets/getWalletConnectConnector.cjs +7 -10
- package/src/wallets/getWalletConnectConnector.d.ts +2 -5
- package/src/wallets/getWalletConnectConnector.js +7 -10
- package/src/wallets/solana/CoinbaseSolana.cjs +8 -11
- package/src/wallets/solana/CoinbaseSolana.d.ts +1 -3
- package/src/wallets/solana/CoinbaseSolana.js +8 -11
- package/src/wallets/solana/glow.cjs +8 -11
- package/src/wallets/solana/glow.d.ts +1 -3
- package/src/wallets/solana/glow.js +8 -11
- package/src/wallets/solana/injected/BraveSol.cjs +2 -1
- package/src/wallets/solana/injected/BraveSol.js +2 -1
- package/src/wallets/solana/phantom-ledger.cjs +5 -5
- package/src/wallets/solana/phantom-ledger.js +1 -1
- package/src/wallets/solana/phantom.cjs +8 -12
- package/src/wallets/solana/phantom.d.ts +1 -3
- package/src/wallets/solana/phantom.js +8 -12
- package/src/wallets/solana/slope.cjs +4 -4
- package/src/wallets/solana/slope.js +1 -1
- package/src/wallets/solana/solProviderHelper.cjs +47 -48
- package/src/wallets/solana/solProviderHelper.d.ts +18 -18
- package/src/wallets/solana/solProviderHelper.js +47 -48
- package/src/wallets/solana/solWalletConnector.cjs +24 -6
- package/src/wallets/solana/solWalletConnector.d.ts +8 -5
- package/src/wallets/solana/solWalletConnector.js +23 -5
- package/src/wallets/solana/solflare.cjs +6 -7
- package/src/wallets/solana/solflare.d.ts +0 -2
- package/src/wallets/solana/solflare.js +6 -7
- package/src/wallets/starknet/starknetWalletConnector.cjs +5 -6
- package/src/wallets/starknet/starknetWalletConnector.js +2 -3
- package/src/wallets/walletConnect/index.d.ts +1 -1
- package/src/wallets/walletConnect/walletConnect.cjs +8 -7
- package/src/wallets/walletConnect/walletConnect.d.ts +7 -7
- package/src/wallets/walletConnect/walletConnect.js +6 -5
- package/src/wallets/walletConnect/walletConnectV2.cjs +14 -14
- package/src/wallets/walletConnect/walletConnectV2.d.ts +7 -7
- package/src/wallets/walletConnect/walletConnectV2.js +3 -3
- package/src/wallets/walletConnect/zerion.d.ts +2 -4
- package/src/errors.cjs +0 -66
- package/src/errors.d.ts +0 -34
- package/src/errors.js +0 -54
- package/src/rpcProviders.cjs +0 -76
- package/src/rpcProviders.d.ts +0 -5
- package/src/rpcProviders.js +0 -69
- package/src/utils/CancellablePromise/CancellablePromise.cjs +0 -33
- package/src/utils/CancellablePromise/CancellablePromise.d.ts +0 -9
- package/src/utils/CancellablePromise/CancellablePromise.js +0 -29
- package/src/utils/CancellablePromise/index.d.ts +0 -1
- package/src/utils/logger.cjs +0 -9
- package/src/utils/logger.d.ts +0 -2
- package/src/utils/logger.js +0 -5
- package/src/wallets/cosmos/getKeplrConnector.cjs +0 -18
- package/src/wallets/cosmos/getKeplrConnector.d.ts +0 -6
- package/src/wallets/cosmos/getKeplrConnector.js +0 -14
- package/src/wallets/ethereum/fortmatic.cjs +0 -75
- package/src/wallets/ethereum/fortmatic.d.ts +0 -26
- package/src/wallets/ethereum/fortmatic.js +0 -69
- package/src/wallets/ethereum/meta-mask.cjs +0 -63
- package/src/wallets/ethereum/meta-mask.js +0 -61
- package/src/wallets/getMobileOrInjectedWallet.cjs +0 -26
- package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -8
- package/src/wallets/getMobileOrInjectedWallet.js +0 -22
|
@@ -6,10 +6,8 @@ var tslib = require('tslib');
|
|
|
6
6
|
var magicSdk = require('magic-sdk');
|
|
7
7
|
var ethers = require('ethers');
|
|
8
8
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
9
|
-
var
|
|
10
|
-
var logger = require('../../../../utils/logger.cjs');
|
|
9
|
+
var utils = require('@dynamic-labs/utils');
|
|
11
10
|
var assignConfirmationScreenToProvider = require('../../../../utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs');
|
|
12
|
-
var CancellablePromise = require('../../../../utils/CancellablePromise/CancellablePromise.cjs');
|
|
13
11
|
var MagicClientNetworkHandler = require('../MagicClientNetworkHandler/MagicClientNetworkHandler.cjs');
|
|
14
12
|
|
|
15
13
|
const storedAddressKey = 'dynamic_magic_address';
|
|
@@ -17,19 +15,25 @@ class MagicWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
17
15
|
get key() {
|
|
18
16
|
return 'magiclink';
|
|
19
17
|
}
|
|
20
|
-
constructor(
|
|
18
|
+
constructor(opts) {
|
|
19
|
+
var _a, _b, _c, _d;
|
|
21
20
|
super();
|
|
22
21
|
this.canConnectViaCustodialService = true;
|
|
23
22
|
this.connectedChain = 'EVM';
|
|
24
23
|
this.supportedChains = ['ETH', 'EVM'];
|
|
25
24
|
this.name = 'Magic Link';
|
|
25
|
+
const apiKey = (_b = (_a = opts.apiProviders) === null || _a === void 0 ? void 0 : _a.magicLink) === null || _b === void 0 ? void 0 : _b.providerProjectId;
|
|
26
|
+
const defaultChainId = (_d = (_c = opts.apiProviders) === null || _c === void 0 ? void 0 : _c.magicLink) === null || _d === void 0 ? void 0 : _d.defaultChainId;
|
|
27
|
+
if (!apiKey) {
|
|
28
|
+
throw new Error('Missing MagicLink configuration. Add your MagicLink API key to your project configuration via the Dynamic Labs dashboard.');
|
|
29
|
+
}
|
|
26
30
|
this._magicClient = new MagicClientNetworkHandler.MagicClientNetworkHandler({
|
|
27
|
-
config,
|
|
28
31
|
createClient: (config) => new magicSdk.Magic(apiKey, config),
|
|
29
|
-
|
|
32
|
+
defaultChainId,
|
|
33
|
+
evmNetworks: opts.evmNetworks,
|
|
30
34
|
});
|
|
31
|
-
this.evmNetworks = evmNetworks;
|
|
32
|
-
this._walletUiUtils = walletUiUtils;
|
|
35
|
+
this.evmNetworks = utils.parseEvmNetworks(opts.evmNetworks);
|
|
36
|
+
this._walletUiUtils = opts.walletUiUtils;
|
|
33
37
|
}
|
|
34
38
|
getDeepLink() {
|
|
35
39
|
return undefined;
|
|
@@ -63,11 +67,11 @@ class MagicWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
63
67
|
const client = this._magicClient.getClient();
|
|
64
68
|
try {
|
|
65
69
|
try {
|
|
66
|
-
this._currentAuthCancellablePromise =
|
|
70
|
+
this._currentAuthCancellablePromise = utils.CancellablePromise.fromPromise(this.loginWithMagic());
|
|
67
71
|
yield this._currentAuthCancellablePromise;
|
|
68
72
|
}
|
|
69
73
|
catch (err) {
|
|
70
|
-
|
|
74
|
+
walletConnectorCore.logger.error(err);
|
|
71
75
|
return;
|
|
72
76
|
}
|
|
73
77
|
const metadata = yield client.user.getMetadata();
|
|
@@ -89,7 +93,7 @@ class MagicWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
89
93
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
90
94
|
const provider = yield this.getWeb3Provider();
|
|
91
95
|
if (!provider)
|
|
92
|
-
throw new
|
|
96
|
+
throw new utils.DynamicError('No provider');
|
|
93
97
|
const signer = provider.getSigner();
|
|
94
98
|
const userAddress = yield signer.getAddress();
|
|
95
99
|
return ethers.ethers.utils.formatEther(yield provider.getBalance(userAddress));
|
|
@@ -2,14 +2,15 @@ import { LoginWithMagicLinkEvents, Magic, MagicUserMetadata, PromiEvent } from '
|
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
3
|
import { OAuthExtension, OAuthProvider } from '@magic-ext/oauth';
|
|
4
4
|
import { Chain, WalletConnectorBase, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
-
import { WalletUiUtils } from '
|
|
6
|
-
import { CancellablePromise } from '
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import { EvmNetwork, GenericNetwork, WalletUiUtils } from '@dynamic-labs/types';
|
|
6
|
+
import { CancellablePromise } from '@dynamic-labs/utils';
|
|
7
|
+
import { Provider, ProviderEnum } from '@dynamic-labs/sdk-api';
|
|
8
|
+
import { MagicClientNetworkHandler } from '../MagicClientNetworkHandler';
|
|
9
9
|
export type MagicConnectorProps = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
apiProviders: {
|
|
11
|
+
[key in ProviderEnum]?: Provider;
|
|
12
|
+
};
|
|
13
|
+
evmNetworks: GenericNetwork[];
|
|
13
14
|
walletUiUtils: WalletUiUtils;
|
|
14
15
|
};
|
|
15
16
|
export type MagicPromiEvent = PromiEvent<string | null, LoginWithMagicLinkEvents & {
|
|
@@ -28,7 +29,7 @@ export declare abstract class MagicWalletConnector extends WalletConnectorBase {
|
|
|
28
29
|
_listeners: WalletEventListeners | undefined;
|
|
29
30
|
_currentAuthCancellablePromise: CancellablePromise<MagicPromiEvent | undefined> | undefined;
|
|
30
31
|
protected _magicClient: MagicClientNetworkHandler<Magic | Magic<OAuthExtension[]>>;
|
|
31
|
-
constructor(
|
|
32
|
+
constructor(opts: MagicConnectorProps);
|
|
32
33
|
abstract loginWithMagic(provider?: OAuthProvider): Promise<MagicPromiEvent | undefined>;
|
|
33
34
|
getDeepLink(): string | undefined;
|
|
34
35
|
connect(provider?: OAuthProvider): Promise<void>;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { Magic } from 'magic-sdk';
|
|
3
3
|
import { ethers } from 'ethers';
|
|
4
|
-
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
-
import { DynamicError } from '
|
|
6
|
-
import { logger } from '../../../../utils/logger.js';
|
|
4
|
+
import { WalletConnectorBase, logger } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
+
import { parseEvmNetworks, CancellablePromise, DynamicError } from '@dynamic-labs/utils';
|
|
7
6
|
import { assignConfirmationScreenToProvider } from '../../../../utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js';
|
|
8
|
-
import { CancellablePromise } from '../../../../utils/CancellablePromise/CancellablePromise.js';
|
|
9
7
|
import { MagicClientNetworkHandler } from '../MagicClientNetworkHandler/MagicClientNetworkHandler.js';
|
|
10
8
|
|
|
11
9
|
const storedAddressKey = 'dynamic_magic_address';
|
|
@@ -13,19 +11,25 @@ class MagicWalletConnector extends WalletConnectorBase {
|
|
|
13
11
|
get key() {
|
|
14
12
|
return 'magiclink';
|
|
15
13
|
}
|
|
16
|
-
constructor(
|
|
14
|
+
constructor(opts) {
|
|
15
|
+
var _a, _b, _c, _d;
|
|
17
16
|
super();
|
|
18
17
|
this.canConnectViaCustodialService = true;
|
|
19
18
|
this.connectedChain = 'EVM';
|
|
20
19
|
this.supportedChains = ['ETH', 'EVM'];
|
|
21
20
|
this.name = 'Magic Link';
|
|
21
|
+
const apiKey = (_b = (_a = opts.apiProviders) === null || _a === void 0 ? void 0 : _a.magicLink) === null || _b === void 0 ? void 0 : _b.providerProjectId;
|
|
22
|
+
const defaultChainId = (_d = (_c = opts.apiProviders) === null || _c === void 0 ? void 0 : _c.magicLink) === null || _d === void 0 ? void 0 : _d.defaultChainId;
|
|
23
|
+
if (!apiKey) {
|
|
24
|
+
throw new Error('Missing MagicLink configuration. Add your MagicLink API key to your project configuration via the Dynamic Labs dashboard.');
|
|
25
|
+
}
|
|
22
26
|
this._magicClient = new MagicClientNetworkHandler({
|
|
23
|
-
config,
|
|
24
27
|
createClient: (config) => new Magic(apiKey, config),
|
|
25
|
-
|
|
28
|
+
defaultChainId,
|
|
29
|
+
evmNetworks: opts.evmNetworks,
|
|
26
30
|
});
|
|
27
|
-
this.evmNetworks = evmNetworks;
|
|
28
|
-
this._walletUiUtils = walletUiUtils;
|
|
31
|
+
this.evmNetworks = parseEvmNetworks(opts.evmNetworks);
|
|
32
|
+
this._walletUiUtils = opts.walletUiUtils;
|
|
29
33
|
}
|
|
30
34
|
getDeepLink() {
|
|
31
35
|
return undefined;
|
|
@@ -7,13 +7,13 @@ var ethProviderHelper = require('./ethProviderHelper.cjs');
|
|
|
7
7
|
var EthWalletConnector = require('./EthWalletConnector.cjs');
|
|
8
8
|
|
|
9
9
|
class Coinbase extends EthWalletConnector.EthWalletConnector {
|
|
10
|
-
constructor(
|
|
11
|
-
|
|
10
|
+
constructor(_a) {
|
|
11
|
+
var { appName, appLogoUrl, evmNetworks } = _a, props = tslib.__rest(_a, ["appName", "appLogoUrl", "evmNetworks"]);
|
|
12
|
+
super(Object.assign({ evmNetworks }, props));
|
|
12
13
|
this.name = 'Coinbase';
|
|
13
14
|
this.supportedChains = ['EVM', 'ETH'];
|
|
14
15
|
this.connectedChain = 'EVM';
|
|
15
16
|
this.canConnectViaQrCode = true;
|
|
16
|
-
this.ethProviderHelper = new ethProviderHelper.EthProviderHelper();
|
|
17
17
|
this.coinbaseProviderOpts = {
|
|
18
18
|
appLogoUrl: appLogoUrl,
|
|
19
19
|
appName: appName,
|
|
@@ -21,26 +21,24 @@ class Coinbase extends EthWalletConnector.EthWalletConnector {
|
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
setupEventListeners(listeners) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
teardownEventListeners() {
|
|
27
|
-
return this.ethProviderHelper._teardownEventListeners(this.name);
|
|
24
|
+
const { tearDownEventListeners } = ethProviderHelper.EthProviderHelper._setupEventListeners(this.name, listeners, this.getWeb3Provider());
|
|
25
|
+
this.teardownEventListeners = tearDownEventListeners;
|
|
28
26
|
}
|
|
29
27
|
getWeb3Provider() {
|
|
30
28
|
if (this.isInstalledOnBrowser()) {
|
|
31
|
-
return
|
|
29
|
+
return ethProviderHelper.EthProviderHelper.findProvider(this.name);
|
|
32
30
|
}
|
|
33
31
|
return new ethers.ethers.providers.Web3Provider(coinbase.getCoinbaseProvider({
|
|
34
32
|
opts: this.coinbaseProviderOpts,
|
|
35
33
|
}), 'any');
|
|
36
34
|
}
|
|
37
35
|
isInstalledOnBrowser() {
|
|
38
|
-
return
|
|
36
|
+
return ethProviderHelper.EthProviderHelper.isInstalledHelper(this.name);
|
|
39
37
|
}
|
|
40
38
|
fetchPublicAddress(opts) {
|
|
41
39
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
42
40
|
if (this.isInstalledOnBrowser()) {
|
|
43
|
-
return
|
|
41
|
+
return ethProviderHelper.EthProviderHelper.fetchPublicAddressWithName(this.name);
|
|
44
42
|
}
|
|
45
43
|
return coinbase.fetchPublicAddress(this.coinbaseProviderOpts, opts);
|
|
46
44
|
});
|
|
@@ -48,7 +46,7 @@ class Coinbase extends EthWalletConnector.EthWalletConnector {
|
|
|
48
46
|
signMessage(messageToSign) {
|
|
49
47
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
50
48
|
if (this.isInstalledOnBrowser()) {
|
|
51
|
-
return
|
|
49
|
+
return ethProviderHelper.EthProviderHelper.signMessageWithName(messageToSign, this.name);
|
|
52
50
|
}
|
|
53
51
|
return coinbase.signMessage(this.coinbaseProviderOpts, messageToSign);
|
|
54
52
|
});
|
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import { Chain, FetchPublicAddressOpts, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { EthWalletConnector, EthWalletConnectorOpts } from './EthWalletConnector';
|
|
4
|
+
type CoinbaseOpts = EthWalletConnectorOpts & {
|
|
5
|
+
appLogoUrl?: string;
|
|
6
|
+
appName?: string;
|
|
7
|
+
};
|
|
6
8
|
declare class Coinbase extends EthWalletConnector {
|
|
7
9
|
name: string;
|
|
8
10
|
supportedChains: Chain[];
|
|
9
11
|
connectedChain: Chain;
|
|
10
12
|
canConnectViaQrCode: boolean;
|
|
11
|
-
ethProviderHelper: EthProviderHelper;
|
|
12
13
|
private coinbaseProviderOpts;
|
|
13
|
-
constructor({ appName, appLogoUrl, evmNetworks, }:
|
|
14
|
-
|
|
15
|
-
appName?: string;
|
|
16
|
-
evmNetworks: EvmNetwork[];
|
|
17
|
-
});
|
|
18
|
-
setupEventListeners(listeners: WalletEventListeners): () => void;
|
|
19
|
-
teardownEventListeners(): void;
|
|
14
|
+
constructor({ appName, appLogoUrl, evmNetworks, ...props }: CoinbaseOpts);
|
|
15
|
+
setupEventListeners(listeners: WalletEventListeners): void;
|
|
20
16
|
getWeb3Provider(): ethers.providers.Web3Provider | undefined;
|
|
21
17
|
isInstalledOnBrowser(): boolean;
|
|
22
18
|
fetchPublicAddress(opts?: FetchPublicAddressOpts): Promise<string | undefined>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
1
|
+
import { __rest, __awaiter } from 'tslib';
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
3
|
import { getCoinbaseProvider, fetchPublicAddress, signMessage, killCoinbaseSession } from '../clients/coinbase/coinbase.js';
|
|
4
4
|
import { EthProviderHelper } from './ethProviderHelper.js';
|
|
5
5
|
import { EthWalletConnector } from './EthWalletConnector.js';
|
|
6
6
|
|
|
7
7
|
class Coinbase extends EthWalletConnector {
|
|
8
|
-
constructor(
|
|
9
|
-
|
|
8
|
+
constructor(_a) {
|
|
9
|
+
var { appName, appLogoUrl, evmNetworks } = _a, props = __rest(_a, ["appName", "appLogoUrl", "evmNetworks"]);
|
|
10
|
+
super(Object.assign({ evmNetworks }, props));
|
|
10
11
|
this.name = 'Coinbase';
|
|
11
12
|
this.supportedChains = ['EVM', 'ETH'];
|
|
12
13
|
this.connectedChain = 'EVM';
|
|
13
14
|
this.canConnectViaQrCode = true;
|
|
14
|
-
this.ethProviderHelper = new EthProviderHelper();
|
|
15
15
|
this.coinbaseProviderOpts = {
|
|
16
16
|
appLogoUrl: appLogoUrl,
|
|
17
17
|
appName: appName,
|
|
@@ -19,26 +19,24 @@ class Coinbase extends EthWalletConnector {
|
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
setupEventListeners(listeners) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
teardownEventListeners() {
|
|
25
|
-
return this.ethProviderHelper._teardownEventListeners(this.name);
|
|
22
|
+
const { tearDownEventListeners } = EthProviderHelper._setupEventListeners(this.name, listeners, this.getWeb3Provider());
|
|
23
|
+
this.teardownEventListeners = tearDownEventListeners;
|
|
26
24
|
}
|
|
27
25
|
getWeb3Provider() {
|
|
28
26
|
if (this.isInstalledOnBrowser()) {
|
|
29
|
-
return
|
|
27
|
+
return EthProviderHelper.findProvider(this.name);
|
|
30
28
|
}
|
|
31
29
|
return new ethers.providers.Web3Provider(getCoinbaseProvider({
|
|
32
30
|
opts: this.coinbaseProviderOpts,
|
|
33
31
|
}), 'any');
|
|
34
32
|
}
|
|
35
33
|
isInstalledOnBrowser() {
|
|
36
|
-
return
|
|
34
|
+
return EthProviderHelper.isInstalledHelper(this.name);
|
|
37
35
|
}
|
|
38
36
|
fetchPublicAddress(opts) {
|
|
39
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
38
|
if (this.isInstalledOnBrowser()) {
|
|
41
|
-
return
|
|
39
|
+
return EthProviderHelper.fetchPublicAddressWithName(this.name);
|
|
42
40
|
}
|
|
43
41
|
return fetchPublicAddress(this.coinbaseProviderOpts, opts);
|
|
44
42
|
});
|
|
@@ -46,7 +44,7 @@ class Coinbase extends EthWalletConnector {
|
|
|
46
44
|
signMessage(messageToSign) {
|
|
47
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
46
|
if (this.isInstalledOnBrowser()) {
|
|
49
|
-
return
|
|
47
|
+
return EthProviderHelper.signMessageWithName(messageToSign, this.name);
|
|
50
48
|
}
|
|
51
49
|
return signMessage(this.coinbaseProviderOpts, messageToSign);
|
|
52
50
|
});
|
|
@@ -4,70 +4,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var ethers = require('ethers');
|
|
7
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
7
8
|
var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
|
|
8
9
|
var ProviderLookup = require('../ProviderLookup.cjs');
|
|
9
10
|
var isUnsupportedProviderError = require('../../utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs');
|
|
10
|
-
var logger = require('../../utils/logger.cjs');
|
|
11
11
|
|
|
12
|
+
var _a;
|
|
12
13
|
class EthProviderHelper {
|
|
13
|
-
|
|
14
|
-
this.MetamaskProvider = () =>
|
|
15
|
-
// Stop these wallets from showing up as MetaMask
|
|
16
|
-
this.installedProviderLookup([
|
|
17
|
-
{ flag: 'isDawn', value: false },
|
|
18
|
-
{ flag: 'isBraveWallet', value: false },
|
|
19
|
-
{ flag: 'isTrustWallet', value: false },
|
|
20
|
-
{ flag: 'isExodus', value: false },
|
|
21
|
-
{ flag: 'isPhantom', value: false },
|
|
22
|
-
{ flag: 'isZerion', value: false },
|
|
23
|
-
{ flag: 'isMetaMask', value: true },
|
|
24
|
-
]);
|
|
25
|
-
this.BraveProvider = () => this.installedProviderLookup([{ flag: 'isBraveWallet', value: true }]);
|
|
26
|
-
this.DawnProvider = () => this.installedProviderLookup([{ flag: 'isDawn', value: true }]);
|
|
27
|
-
this.FrameProvider = () => this.installedProviderLookup([{ flag: 'isFrame', value: true }]);
|
|
28
|
-
this.CoinbaseProvider = () => this.installedProviderLookup([{ flag: 'isCoinbaseWallet', value: true }]);
|
|
29
|
-
this.OperaProvider = () => this.installedProviderLookup([{ flag: 'isOpera', value: true }]);
|
|
30
|
-
this.GameStopProvider = () => this.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
|
|
31
|
-
this.ExodusProvider = () => this.installedProviderLookup([{ flag: 'isExodus', value: true }]);
|
|
32
|
-
this.BloctoProvider = () => this.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
|
|
33
|
-
this.TrustWalletProvider = () => this.installedProviderLookup([{ flag: 'isTrustWallet', value: true }]);
|
|
34
|
-
this.PhantomProvider = () => this.installedProviderLookup([{ flag: 'isPhantom', value: true }]);
|
|
35
|
-
this.ZerionProvider = () => this.installedProviderLookup([{ flag: 'isZerion', value: true }]);
|
|
36
|
-
this.UnknownInjectedProvider = () => this.installedProviderLookup([
|
|
37
|
-
{ flag: 'isMetaMask', value: false },
|
|
38
|
-
{ flag: 'isExodus', value: false },
|
|
39
|
-
{ flag: 'isCoinbaseWallet', value: false },
|
|
40
|
-
{ flag: 'isBraveWallet', value: false },
|
|
41
|
-
{ flag: 'isGamestop', value: false },
|
|
42
|
-
{ flag: 'isFrame', value: false },
|
|
43
|
-
{ flag: 'isOpera', value: false },
|
|
44
|
-
{ flag: 'isBlocto', value: false },
|
|
45
|
-
{ flag: 'isTrustWallet', value: false },
|
|
46
|
-
{ flag: 'isPhantom', value: false },
|
|
47
|
-
{ flag: 'isZerion', value: false },
|
|
48
|
-
]);
|
|
49
|
-
this.providers = {
|
|
50
|
-
bloctoinjected: this.BloctoProvider,
|
|
51
|
-
braveevm: this.BraveProvider,
|
|
52
|
-
coinbase: this.CoinbaseProvider,
|
|
53
|
-
dawn: this.DawnProvider,
|
|
54
|
-
exodusevm: this.ExodusProvider,
|
|
55
|
-
frame: this.FrameProvider,
|
|
56
|
-
gamestop: this.GameStopProvider,
|
|
57
|
-
injectedwallet: this.UnknownInjectedProvider,
|
|
58
|
-
metamask: this.MetamaskProvider,
|
|
59
|
-
opera: this.OperaProvider,
|
|
60
|
-
phantomevm: this.PhantomProvider,
|
|
61
|
-
trust: this.TrustWalletProvider,
|
|
62
|
-
zerion: this.ZerionProvider,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
installedProviderLookup(providerFlags) {
|
|
14
|
+
static installedProviderLookup(providerFlags) {
|
|
66
15
|
const allInstalledProviders = this.allInstalledProviders();
|
|
67
16
|
return ProviderLookup.ProviderLookup(allInstalledProviders, providerFlags);
|
|
68
17
|
}
|
|
69
|
-
allInstalledProviders() {
|
|
70
|
-
var
|
|
18
|
+
static allInstalledProviders() {
|
|
19
|
+
var _b;
|
|
71
20
|
const ethereumProviders = [];
|
|
72
21
|
if (window.ethereum) {
|
|
73
22
|
if (!window.ethereum.providers) {
|
|
@@ -79,7 +28,7 @@ class EthProviderHelper {
|
|
|
79
28
|
});
|
|
80
29
|
}
|
|
81
30
|
}
|
|
82
|
-
if ((
|
|
31
|
+
if ((_b = window.phantom) === null || _b === void 0 ? void 0 : _b.ethereum) {
|
|
83
32
|
ethereumProviders.push(window.phantom.ethereum);
|
|
84
33
|
}
|
|
85
34
|
if (window.zerionWallet) {
|
|
@@ -87,27 +36,27 @@ class EthProviderHelper {
|
|
|
87
36
|
}
|
|
88
37
|
return ethereumProviders;
|
|
89
38
|
}
|
|
90
|
-
isInstalledHelper(walletName) {
|
|
39
|
+
static isInstalledHelper(walletName) {
|
|
91
40
|
return this.findProvider(walletName) !== undefined;
|
|
92
41
|
}
|
|
93
|
-
findProvider(walletName) {
|
|
94
|
-
var
|
|
42
|
+
static findProvider(walletName) {
|
|
43
|
+
var _b, _c;
|
|
95
44
|
try {
|
|
96
|
-
const provider = (
|
|
45
|
+
const provider = (_c = (_b = this.providers)[normalizeWalletName.normalizeWalletName(walletName)]) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
97
46
|
return provider === undefined
|
|
98
47
|
? undefined
|
|
99
48
|
: new ethers.ethers.providers.Web3Provider(provider, 'any'); // https://github.com/ethers-io/ethers.js/discussions/1480
|
|
100
49
|
}
|
|
101
50
|
catch (err) {
|
|
102
51
|
if (isUnsupportedProviderError.isUnsupportedProviderError(err)) {
|
|
103
|
-
|
|
52
|
+
walletConnectorCore.logger.error(`ETH Provider is not supported ${err.value}`, err);
|
|
104
53
|
return;
|
|
105
54
|
}
|
|
106
|
-
|
|
55
|
+
walletConnectorCore.logger.error(`Could not find provider for ${walletName}`, err);
|
|
107
56
|
return undefined;
|
|
108
57
|
}
|
|
109
58
|
}
|
|
110
|
-
fetchPublicAddressWithName(name) {
|
|
59
|
+
static fetchPublicAddressWithName(name) {
|
|
111
60
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
112
61
|
const provider = this.findProvider(name);
|
|
113
62
|
if (!provider) {
|
|
@@ -116,7 +65,7 @@ class EthProviderHelper {
|
|
|
116
65
|
return this.fetchPublicAddressWithProvider(provider);
|
|
117
66
|
});
|
|
118
67
|
}
|
|
119
|
-
fetchPublicAddressWithProvider(provider) {
|
|
68
|
+
static fetchPublicAddressWithProvider(provider) {
|
|
120
69
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
121
70
|
try {
|
|
122
71
|
const [lowercaseAddress] = yield provider.send('eth_requestAccounts', []);
|
|
@@ -124,12 +73,12 @@ class EthProviderHelper {
|
|
|
124
73
|
return publicAddress;
|
|
125
74
|
}
|
|
126
75
|
catch (err) {
|
|
127
|
-
|
|
76
|
+
walletConnectorCore.logger.error(err);
|
|
128
77
|
return Promise.reject(err);
|
|
129
78
|
}
|
|
130
79
|
});
|
|
131
80
|
}
|
|
132
|
-
signMessageWithName(messageToSign, name) {
|
|
81
|
+
static signMessageWithName(messageToSign, name) {
|
|
133
82
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
134
83
|
const walletAddress = yield this.fetchPublicAddressWithName(name);
|
|
135
84
|
if (!walletAddress) {
|
|
@@ -144,54 +93,107 @@ class EthProviderHelper {
|
|
|
144
93
|
return signedMessage;
|
|
145
94
|
});
|
|
146
95
|
}
|
|
147
|
-
_setupEventListeners(listeners, web3Provider) {
|
|
96
|
+
static _setupEventListeners(name, listeners, web3Provider) {
|
|
148
97
|
if (!web3Provider) {
|
|
149
|
-
return
|
|
150
|
-
|
|
98
|
+
return {
|
|
99
|
+
tearDownEventListeners: () => { },
|
|
151
100
|
};
|
|
152
101
|
}
|
|
153
102
|
const externalProvider = web3Provider.provider;
|
|
154
|
-
|
|
155
|
-
var
|
|
103
|
+
const handleAccountChange = (accounts) => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
var _b, _c;
|
|
156
105
|
if (accounts.length === 0) {
|
|
157
|
-
yield ((
|
|
106
|
+
yield ((_b = listeners.onDisconnect) === null || _b === void 0 ? void 0 : _b.call(listeners));
|
|
158
107
|
return;
|
|
159
108
|
}
|
|
160
|
-
yield ((
|
|
109
|
+
yield ((_c = listeners.onAccountChange) === null || _c === void 0 ? void 0 : _c.call(listeners, accounts));
|
|
161
110
|
});
|
|
162
|
-
|
|
163
|
-
var
|
|
111
|
+
const handleChainChange = () => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
var _d;
|
|
164
113
|
const network = yield web3Provider.getNetwork();
|
|
165
|
-
yield ((
|
|
114
|
+
yield ((_d = listeners.onChainChange) === null || _d === void 0 ? void 0 : _d.call(listeners, network.chainId.toString()));
|
|
166
115
|
});
|
|
167
|
-
|
|
168
|
-
var
|
|
116
|
+
const handleDisconnect = (error) => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
var _e;
|
|
169
118
|
if ((error === null || error === void 0 ? void 0 : error.code) === 1013) {
|
|
170
119
|
return;
|
|
171
120
|
}
|
|
172
|
-
yield ((
|
|
121
|
+
yield ((_e = listeners.onDisconnect) === null || _e === void 0 ? void 0 : _e.call(listeners));
|
|
173
122
|
});
|
|
174
|
-
externalProvider.on('accountsChanged',
|
|
175
|
-
externalProvider.on('chainChanged',
|
|
176
|
-
externalProvider.on('disconnect',
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
123
|
+
externalProvider.on('accountsChanged', handleAccountChange);
|
|
124
|
+
externalProvider.on('chainChanged', handleChainChange);
|
|
125
|
+
externalProvider.on('disconnect', handleDisconnect);
|
|
126
|
+
const tearDownEventListeners = () => {
|
|
127
|
+
const web3Provider = this.findProvider(name);
|
|
128
|
+
if (!web3Provider || !(web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.provider)) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const externalProvider = web3Provider.provider;
|
|
132
|
+
if (handleAccountChange) {
|
|
133
|
+
externalProvider.removeListener('accountsChanged', handleAccountChange);
|
|
134
|
+
}
|
|
135
|
+
if (handleChainChange) {
|
|
136
|
+
externalProvider.removeListener('chainChanged', handleChainChange);
|
|
137
|
+
}
|
|
138
|
+
if (handleDisconnect) {
|
|
139
|
+
externalProvider.removeListener('disconnect', handleDisconnect);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
return {
|
|
143
|
+
tearDownEventListeners,
|
|
144
|
+
};
|
|
194
145
|
}
|
|
195
|
-
}
|
|
146
|
+
}
|
|
147
|
+
_a = EthProviderHelper;
|
|
148
|
+
EthProviderHelper.MetamaskProvider = () =>
|
|
149
|
+
// Stop these wallets from showing up as MetaMask
|
|
150
|
+
_a.installedProviderLookup([
|
|
151
|
+
{ flag: 'isDawn', value: false },
|
|
152
|
+
{ flag: 'isBraveWallet', value: false },
|
|
153
|
+
{ flag: 'isTrustWallet', value: false },
|
|
154
|
+
{ flag: 'isExodus', value: false },
|
|
155
|
+
{ flag: 'isPhantom', value: false },
|
|
156
|
+
{ flag: 'isZerion', value: false },
|
|
157
|
+
{ flag: 'isMetaMask', value: true },
|
|
158
|
+
]);
|
|
159
|
+
EthProviderHelper.BraveProvider = () => _a.installedProviderLookup([{ flag: 'isBraveWallet', value: true }]);
|
|
160
|
+
EthProviderHelper.DawnProvider = () => _a.installedProviderLookup([{ flag: 'isDawn', value: true }]);
|
|
161
|
+
EthProviderHelper.FrameProvider = () => _a.installedProviderLookup([{ flag: 'isFrame', value: true }]);
|
|
162
|
+
EthProviderHelper.CoinbaseProvider = () => _a.installedProviderLookup([{ flag: 'isCoinbaseWallet', value: true }]);
|
|
163
|
+
EthProviderHelper.OperaProvider = () => _a.installedProviderLookup([{ flag: 'isOpera', value: true }]);
|
|
164
|
+
EthProviderHelper.GameStopProvider = () => _a.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
|
|
165
|
+
EthProviderHelper.ExodusProvider = () => _a.installedProviderLookup([{ flag: 'isExodus', value: true }]);
|
|
166
|
+
EthProviderHelper.BloctoProvider = () => _a.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
|
|
167
|
+
EthProviderHelper.TrustWalletProvider = () => _a.installedProviderLookup([{ flag: 'isTrustWallet', value: true }]);
|
|
168
|
+
EthProviderHelper.PhantomProvider = () => _a.installedProviderLookup([{ flag: 'isPhantom', value: true }]);
|
|
169
|
+
EthProviderHelper.ZerionProvider = () => _a.installedProviderLookup([{ flag: 'isZerion', value: true }]);
|
|
170
|
+
EthProviderHelper.UnknownInjectedProvider = () => _a.installedProviderLookup([
|
|
171
|
+
{ flag: 'isMetaMask', value: false },
|
|
172
|
+
{ flag: 'isExodus', value: false },
|
|
173
|
+
{ flag: 'isCoinbaseWallet', value: false },
|
|
174
|
+
{ flag: 'isBraveWallet', value: false },
|
|
175
|
+
{ flag: 'isGamestop', value: false },
|
|
176
|
+
{ flag: 'isFrame', value: false },
|
|
177
|
+
{ flag: 'isOpera', value: false },
|
|
178
|
+
{ flag: 'isBlocto', value: false },
|
|
179
|
+
{ flag: 'isTrustWallet', value: false },
|
|
180
|
+
{ flag: 'isPhantom', value: false },
|
|
181
|
+
{ flag: 'isZerion', value: false },
|
|
182
|
+
]);
|
|
183
|
+
EthProviderHelper.providers = {
|
|
184
|
+
bloctoinjected: _a.BloctoProvider,
|
|
185
|
+
braveevm: _a.BraveProvider,
|
|
186
|
+
coinbase: _a.CoinbaseProvider,
|
|
187
|
+
dawn: _a.DawnProvider,
|
|
188
|
+
exodusevm: _a.ExodusProvider,
|
|
189
|
+
frame: _a.FrameProvider,
|
|
190
|
+
gamestop: _a.GameStopProvider,
|
|
191
|
+
injectedwallet: _a.UnknownInjectedProvider,
|
|
192
|
+
metamask: _a.MetamaskProvider,
|
|
193
|
+
opera: _a.OperaProvider,
|
|
194
|
+
phantomevm: _a.PhantomProvider,
|
|
195
|
+
trust: _a.TrustWalletProvider,
|
|
196
|
+
zerion: _a.ZerionProvider,
|
|
197
|
+
};
|
|
196
198
|
|
|
197
199
|
exports.EthProviderHelper = EthProviderHelper;
|
|
@@ -2,39 +2,32 @@ import { ethers } from 'ethers';
|
|
|
2
2
|
import { WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
3
3
|
import { ProviderCondition, IEthereum } from '../window';
|
|
4
4
|
type Provider = () => ethers.providers.ExternalProvider | undefined;
|
|
5
|
-
type AccountChangeEventHandler = (accounts: string[]) => Promise<void>;
|
|
6
|
-
type ChainChangeEventHandler = (chainId: string | number) => Promise<void>;
|
|
7
|
-
type DisconnectEventHandler = (error?: {
|
|
8
|
-
code: number;
|
|
9
|
-
}) => Promise<void>;
|
|
10
5
|
export declare class EthProviderHelper {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
ZerionProvider: Provider;
|
|
26
|
-
UnknownInjectedProvider: Provider;
|
|
27
|
-
providers: {
|
|
6
|
+
static MetamaskProvider: Provider;
|
|
7
|
+
static BraveProvider: Provider;
|
|
8
|
+
static DawnProvider: Provider;
|
|
9
|
+
static FrameProvider: Provider;
|
|
10
|
+
static CoinbaseProvider: Provider;
|
|
11
|
+
static OperaProvider: Provider;
|
|
12
|
+
static GameStopProvider: Provider;
|
|
13
|
+
static ExodusProvider: Provider;
|
|
14
|
+
static BloctoProvider: Provider;
|
|
15
|
+
static TrustWalletProvider: Provider;
|
|
16
|
+
static PhantomProvider: Provider;
|
|
17
|
+
static ZerionProvider: Provider;
|
|
18
|
+
static UnknownInjectedProvider: Provider;
|
|
19
|
+
static providers: {
|
|
28
20
|
[wallet: string]: Provider;
|
|
29
21
|
};
|
|
30
|
-
installedProviderLookup(providerFlags: Array<ProviderCondition>): IEthereum | undefined;
|
|
31
|
-
allInstalledProviders(): IEthereum[];
|
|
32
|
-
isInstalledHelper(walletName: string): boolean;
|
|
33
|
-
findProvider(walletName: string): ethers.providers.Web3Provider | undefined;
|
|
34
|
-
fetchPublicAddressWithName(name: string): Promise<string | undefined>;
|
|
35
|
-
fetchPublicAddressWithProvider(provider: ethers.providers.Web3Provider): Promise<string | undefined>;
|
|
36
|
-
signMessageWithName(messageToSign: string, name: string): Promise<string | undefined>;
|
|
37
|
-
_setupEventListeners(listeners: WalletEventListeners, web3Provider?: ethers.providers.Web3Provider):
|
|
38
|
-
|
|
22
|
+
static installedProviderLookup(providerFlags: Array<ProviderCondition>): IEthereum | undefined;
|
|
23
|
+
static allInstalledProviders(): IEthereum[];
|
|
24
|
+
static isInstalledHelper(walletName: string): boolean;
|
|
25
|
+
static findProvider(walletName: string): ethers.providers.Web3Provider | undefined;
|
|
26
|
+
static fetchPublicAddressWithName(name: string): Promise<string | undefined>;
|
|
27
|
+
static fetchPublicAddressWithProvider(provider: ethers.providers.Web3Provider): Promise<string | undefined>;
|
|
28
|
+
static signMessageWithName(messageToSign: string, name: string): Promise<string | undefined>;
|
|
29
|
+
static _setupEventListeners(name: string, listeners: WalletEventListeners, web3Provider?: ethers.providers.Web3Provider): {
|
|
30
|
+
tearDownEventListeners: () => void;
|
|
31
|
+
};
|
|
39
32
|
}
|
|
40
33
|
export {};
|