@dynamic-labs/multi-wallet 0.17.0-RC.1 → 0.17.0-RC.10
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 +114 -0
- package/package.json +11 -14
- package/src/index.cjs +0 -64
- package/src/index.d.ts +0 -15
- package/src/index.js +1 -20
- package/src/multi-wallet.cjs +45 -155
- package/src/multi-wallet.d.ts +0 -3
- package/src/multi-wallet.js +43 -152
- package/src/types.d.ts +9 -49
- package/src/utils/convertors.cjs +0 -7
- package/src/utils/convertors.d.ts +0 -1
- package/src/utils/convertors.js +1 -7
- 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 +3 -4
- package/src/utils/message.d.ts +2 -2
- package/src/utils/message.js +1 -2
- package/src/wallets/constants.cjs +0 -2
- package/src/wallets/constants.js +1 -2
- package/src/wallets/cosmos/KeplrWalletConnect.cjs +21 -21
- package/src/wallets/cosmos/KeplrWalletConnect.d.ts +11 -7
- package/src/wallets/cosmos/KeplrWalletConnect.js +13 -13
- package/src/wallets/cosmos/KeplrWalletConnector.cjs +21 -6
- package/src/wallets/cosmos/KeplrWalletConnector.d.ts +10 -6
- package/src/wallets/cosmos/KeplrWalletConnector.js +21 -6
- package/src/wallets/{clients/walletConnect/walletConnect.cjs → cosmos/wcClient.lib.cjs} +38 -101
- package/src/wallets/{clients/walletConnect/walletConnect.d.ts → cosmos/wcClient.lib.d.ts} +8 -10
- package/src/wallets/{clients/walletConnect/walletConnect.js → cosmos/wcClient.lib.js} +36 -97
- package/src/wallets/flow/FlowWalletConnector.cjs +7 -8
- package/src/wallets/flow/FlowWalletConnector.js +2 -3
- package/src/wallets/flow/lilico.cjs +2 -2
- package/src/wallets/flow/lilico.js +1 -1
- package/src/wallets/starknet/braavos.cjs +2 -2
- package/src/wallets/starknet/braavos.js +1 -1
- package/src/wallets/starknet/starknetWalletConnector.cjs +5 -6
- package/src/wallets/starknet/starknetWalletConnector.js +2 -3
- package/src/wallets/window.d.ts +0 -77
- package/src/errors.cjs +0 -65
- package/src/errors.d.ts +0 -30
- package/src/errors.js +0 -53
- 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/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs +0 -54
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +0 -3
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js +0 -50
- package/src/utils/assignConfirmationScreenToProvider/index.d.ts +0 -1
- package/src/utils/encoding.cjs +0 -18
- package/src/utils/encoding.d.ts +0 -4
- package/src/utils/encoding.js +0 -12
- package/src/utils/extractNonce.cjs +0 -13
- package/src/utils/extractNonce.d.ts +0 -1
- package/src/utils/extractNonce.js +0 -9
- package/src/utils/getChainInfo/getChainInfo.cjs +0 -59
- package/src/utils/getChainInfo/getChainInfo.d.ts +0 -2
- package/src/utils/getChainInfo/getChainInfo.js +0 -55
- package/src/utils/getChainInfo/index.d.ts +0 -1
- package/src/utils/getWalletConnectorByName.cjs +0 -19
- package/src/utils/getWalletConnectorByName.d.ts +0 -2
- package/src/utils/getWalletConnectorByName.js +0 -15
- package/src/utils/isEmailOTPWalletConnector/index.d.ts +0 -1
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.cjs +0 -7
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.d.ts +0 -2
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.js +0 -3
- package/src/utils/isEmailWalletConnector/index.d.ts +0 -1
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.cjs +0 -7
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.d.ts +0 -2
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.js +0 -3
- package/src/utils/isFunction/index.d.ts +0 -1
- package/src/utils/isFunction/isFunction.cjs +0 -8
- package/src/utils/isFunction/isFunction.d.ts +0 -1
- package/src/utils/isFunction/isFunction.js +0 -4
- package/src/utils/isMobile.cjs +0 -54
- package/src/utils/isMobile.d.ts +0 -13
- package/src/utils/isMobile.js +0 -46
- package/src/utils/isSameAddress/index.d.ts +0 -1
- package/src/utils/isSameAddress/isSameAddress.cjs +0 -9
- package/src/utils/isSameAddress/isSameAddress.d.ts +0 -1
- package/src/utils/isSameAddress/isSameAddress.js +0 -5
- package/src/utils/isSameAddress/utils/index.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/index.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.cjs +0 -17
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.js +0 -13
- package/src/utils/isSocialWalletConnector/index.d.ts +0 -1
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.cjs +0 -7
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.d.ts +0 -2
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.js +0 -3
- package/src/utils/isUnsupportedProviderError/index.d.ts +0 -1
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +0 -13
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +0 -6
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +0 -9
- package/src/utils/localStorageAsync.cjs +0 -28
- package/src/utils/localStorageAsync.d.ts +0 -3
- package/src/utils/localStorageAsync.js +0 -22
- package/src/utils/logger.cjs +0 -9
- package/src/utils/logger.d.ts +0 -2
- package/src/utils/logger.js +0 -5
- package/src/utils/normalizeWalletName/index.d.ts +0 -1
- package/src/utils/normalizeWalletName/normalizeWalletName.cjs +0 -7
- package/src/utils/normalizeWalletName/normalizeWalletName.d.ts +0 -1
- package/src/utils/normalizeWalletName/normalizeWalletName.js +0 -3
- package/src/utils/shouldLowercaseAddress.cjs +0 -11
- package/src/utils/shouldLowercaseAddress.d.ts +0 -1
- package/src/utils/shouldLowercaseAddress.js +0 -7
- package/src/utils/walletConnect.cjs +0 -30
- package/src/utils/walletConnect.d.ts +0 -4
- package/src/utils/walletConnect.js +0 -26
- package/src/wallets/ProviderLookup.cjs +0 -18
- package/src/wallets/ProviderLookup.d.ts +0 -4
- package/src/wallets/ProviderLookup.js +0 -14
- package/src/wallets/algorand/MyAlgoWalletConnector.cjs +0 -149
- package/src/wallets/algorand/MyAlgoWalletConnector.d.ts +0 -21
- package/src/wallets/algorand/MyAlgoWalletConnector.js +0 -143
- package/src/wallets/algorand/myalgoSigner.cjs +0 -24
- package/src/wallets/algorand/myalgoSigner.d.ts +0 -21
- package/src/wallets/algorand/myalgoSigner.js +0 -20
- package/src/wallets/clients/coinbase/coinbase.cjs +0 -73
- package/src/wallets/clients/coinbase/coinbase.d.ts +0 -6
- package/src/wallets/clients/coinbase/coinbase.js +0 -66
- package/src/wallets/clients/coinbase/index.d.ts +0 -2
- package/src/wallets/clients/coinbase/types.d.ts +0 -14
- package/src/wallets/clients/walletConnect/index.d.ts +0 -1
- package/src/wallets/clients/walletConnect/types.d.ts +0 -4
- 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/BloctoEvm.cjs +0 -111
- package/src/wallets/ethereum/BloctoEvm.d.ts +0 -25
- package/src/wallets/ethereum/BloctoEvm.js +0 -105
- package/src/wallets/ethereum/EthWalletConnector.cjs +0 -191
- package/src/wallets/ethereum/EthWalletConnector.d.ts +0 -35
- package/src/wallets/ethereum/EthWalletConnector.js +0 -187
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -63
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts +0 -12
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -59
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +0 -62
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.d.ts +0 -11
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +0 -58
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +0 -102
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +0 -33
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +0 -98
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/index.d.ts +0 -2
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +0 -55
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.d.ts +0 -12
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +0 -51
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +0 -175
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +0 -53
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +0 -171
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/index.d.ts +0 -2
- package/src/wallets/ethereum/MagicConnector/index.d.ts +0 -5
- package/src/wallets/ethereum/coinbase.cjs +0 -65
- package/src/wallets/ethereum/coinbase.d.ts +0 -26
- package/src/wallets/ethereum/coinbase.js +0 -63
- package/src/wallets/ethereum/ethProviderHelper.cjs +0 -197
- package/src/wallets/ethereum/ethProviderHelper.d.ts +0 -40
- package/src/wallets/ethereum/ethProviderHelper.js +0 -193
- package/src/wallets/ethereum/evm-network.cjs +0 -20
- package/src/wallets/ethereum/evm-network.d.ts +0 -22
- package/src/wallets/ethereum/evm-network.js +0 -16
- 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/injected/BloctoInjected.cjs +0 -13
- package/src/wallets/ethereum/injected/BloctoInjected.d.ts +0 -6
- package/src/wallets/ethereum/injected/BloctoInjected.js +0 -11
- package/src/wallets/ethereum/injected/BraveEvm.cjs +0 -13
- package/src/wallets/ethereum/injected/BraveEvm.d.ts +0 -6
- package/src/wallets/ethereum/injected/BraveEvm.js +0 -11
- package/src/wallets/ethereum/injected/Dawn.cjs +0 -13
- package/src/wallets/ethereum/injected/Dawn.d.ts +0 -6
- package/src/wallets/ethereum/injected/Dawn.js +0 -11
- package/src/wallets/ethereum/injected/ExodusEvm.cjs +0 -13
- package/src/wallets/ethereum/injected/ExodusEvm.d.ts +0 -6
- package/src/wallets/ethereum/injected/ExodusEvm.js +0 -11
- package/src/wallets/ethereum/injected/Frame.cjs +0 -13
- package/src/wallets/ethereum/injected/Frame.d.ts +0 -6
- package/src/wallets/ethereum/injected/Frame.js +0 -11
- package/src/wallets/ethereum/injected/GameStop.cjs +0 -13
- package/src/wallets/ethereum/injected/GameStop.d.ts +0 -6
- package/src/wallets/ethereum/injected/GameStop.js +0 -11
- package/src/wallets/ethereum/injected/Opera.cjs +0 -13
- package/src/wallets/ethereum/injected/Opera.d.ts +0 -6
- package/src/wallets/ethereum/injected/Opera.js +0 -11
- package/src/wallets/ethereum/injected/PhantomEvm.cjs +0 -37
- package/src/wallets/ethereum/injected/PhantomEvm.d.ts +0 -7
- package/src/wallets/ethereum/injected/PhantomEvm.js +0 -35
- package/src/wallets/ethereum/injected/Trust.cjs +0 -13
- package/src/wallets/ethereum/injected/Trust.d.ts +0 -6
- package/src/wallets/ethereum/injected/Trust.js +0 -11
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +0 -13
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +0 -6
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +0 -11
- package/src/wallets/ethereum/injected/Zerion.cjs +0 -13
- package/src/wallets/ethereum/injected/Zerion.d.ts +0 -6
- package/src/wallets/ethereum/injected/Zerion.js +0 -11
- package/src/wallets/ethereum/meta-mask.cjs +0 -63
- package/src/wallets/ethereum/meta-mask.d.ts +0 -26
- 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
- package/src/wallets/getWalletConnectConnector.cjs +0 -19
- package/src/wallets/getWalletConnectConnector.d.ts +0 -8
- package/src/wallets/getWalletConnectConnector.js +0 -15
- package/src/wallets/solana/CoinbaseSolana.cjs +0 -54
- package/src/wallets/solana/CoinbaseSolana.d.ts +0 -17
- package/src/wallets/solana/CoinbaseSolana.js +0 -52
- package/src/wallets/solana/glow.cjs +0 -51
- package/src/wallets/solana/glow.d.ts +0 -16
- package/src/wallets/solana/glow.js +0 -49
- package/src/wallets/solana/injected/BraveSol.cjs +0 -18
- package/src/wallets/solana/injected/BraveSol.d.ts +0 -6
- package/src/wallets/solana/injected/BraveSol.js +0 -16
- package/src/wallets/solana/injected/ExodusSol.cjs +0 -12
- package/src/wallets/solana/injected/ExodusSol.d.ts +0 -5
- package/src/wallets/solana/injected/ExodusSol.js +0 -10
- package/src/wallets/solana/phantom-ledger.cjs +0 -71
- package/src/wallets/solana/phantom-ledger.d.ts +0 -16
- package/src/wallets/solana/phantom-ledger.js +0 -65
- package/src/wallets/solana/phantom.cjs +0 -74
- package/src/wallets/solana/phantom.d.ts +0 -17
- package/src/wallets/solana/phantom.js +0 -72
- package/src/wallets/solana/slope.cjs +0 -96
- package/src/wallets/solana/slope.d.ts +0 -27
- package/src/wallets/solana/slope.js +0 -94
- package/src/wallets/solana/solProviderHelper.cjs +0 -164
- package/src/wallets/solana/solProviderHelper.d.ts +0 -29
- package/src/wallets/solana/solProviderHelper.js +0 -160
- package/src/wallets/solana/solWalletConnector.cjs +0 -57
- package/src/wallets/solana/solWalletConnector.d.ts +0 -18
- package/src/wallets/solana/solWalletConnector.js +0 -53
- package/src/wallets/solana/solflare.cjs +0 -65
- package/src/wallets/solana/solflare.d.ts +0 -14
- package/src/wallets/solana/solflare.js +0 -63
- package/src/wallets/walletConnect/index.d.ts +0 -2
- package/src/wallets/walletConnect/walletConnect.cjs +0 -130
- package/src/wallets/walletConnect/walletConnect.d.ts +0 -34
- package/src/wallets/walletConnect/walletConnect.js +0 -124
- package/src/wallets/walletConnect/walletConnectV2.cjs +0 -268
- package/src/wallets/walletConnect/walletConnectV2.d.ts +0 -38
- package/src/wallets/walletConnect/walletConnectV2.js +0 -262
- package/src/wallets/walletConnect/zerion.d.ts +0 -8
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var tslib = require('tslib');
|
|
6
|
-
var walletSdk = require('@coinbase/wallet-sdk');
|
|
7
|
-
var utils = require('ethers/lib/utils');
|
|
8
|
-
var errors = require('../../../errors.cjs');
|
|
9
|
-
var constants = require('../../constants.cjs');
|
|
10
|
-
|
|
11
|
-
const jsonRpcUrl = `https://mainnet.infura.io/v3/${constants.infuraId}`;
|
|
12
|
-
const chainId = 1;
|
|
13
|
-
const getCoinbaseProvider = ({ opts: { appLogoUrl, appName = '', evmNetworks = [] } = {}, handlers, }) => {
|
|
14
|
-
var _a, _b;
|
|
15
|
-
const coinbaseWalletSDK = new walletSdk.CoinbaseWalletSDK({
|
|
16
|
-
appLogoUrl,
|
|
17
|
-
appName,
|
|
18
|
-
eventListener: {
|
|
19
|
-
onEvent: (eventType) => {
|
|
20
|
-
if (eventType === 'walletlink_sdk.disconnected') {
|
|
21
|
-
handlers === null || handlers === void 0 ? void 0 : handlers.onDisconnect();
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
headlessMode: true,
|
|
26
|
-
reloadOnDisconnect: false,
|
|
27
|
-
});
|
|
28
|
-
const network = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((network) => network.chainId === chainId);
|
|
29
|
-
const rpcUrl = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0]) || jsonRpcUrl;
|
|
30
|
-
return coinbaseWalletSDK.makeWeb3Provider(rpcUrl, chainId);
|
|
31
|
-
};
|
|
32
|
-
const killCoinbaseSession = () => {
|
|
33
|
-
const provider = getCoinbaseProvider({
|
|
34
|
-
opts: { appLogoUrl: '', appName: '' },
|
|
35
|
-
});
|
|
36
|
-
if (provider.connected) {
|
|
37
|
-
provider.close();
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
const fetchPublicAddress = (coinbaseProviderOpts, opts) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
-
var _a;
|
|
42
|
-
const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
|
|
43
|
-
const { qrUrl } = provider;
|
|
44
|
-
if (!qrUrl) {
|
|
45
|
-
throw new errors.DynamicError('no qr url available');
|
|
46
|
-
}
|
|
47
|
-
(_a = opts === null || opts === void 0 ? void 0 : opts.onDisplayUri) === null || _a === void 0 ? void 0 : _a.call(opts, qrUrl);
|
|
48
|
-
const [address] = yield provider.request({
|
|
49
|
-
method: 'eth_requestAccounts',
|
|
50
|
-
});
|
|
51
|
-
return address;
|
|
52
|
-
});
|
|
53
|
-
const signMessage = (coinbaseProviderOpts, messageToSign) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
-
const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
|
|
55
|
-
const [address] = yield provider.request({
|
|
56
|
-
method: 'eth_requestAccounts',
|
|
57
|
-
});
|
|
58
|
-
try {
|
|
59
|
-
return yield provider.request({
|
|
60
|
-
method: 'personal_sign',
|
|
61
|
-
params: [utils.hexlify(utils.toUtf8Bytes(messageToSign)), address.toLowerCase()],
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
catch (err) {
|
|
65
|
-
yield provider.close();
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
exports.fetchPublicAddress = fetchPublicAddress;
|
|
71
|
-
exports.getCoinbaseProvider = getCoinbaseProvider;
|
|
72
|
-
exports.killCoinbaseSession = killCoinbaseSession;
|
|
73
|
-
exports.signMessage = signMessage;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { FetchPublicAddressOpts } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
-
import { GetCoinbaseProvider, GetCoinbaseProviderOpts } from './types';
|
|
3
|
-
export declare const getCoinbaseProvider: GetCoinbaseProvider;
|
|
4
|
-
export declare const killCoinbaseSession: () => void;
|
|
5
|
-
export declare const fetchPublicAddress: (coinbaseProviderOpts: GetCoinbaseProviderOpts, opts?: FetchPublicAddressOpts) => Promise<string | undefined>;
|
|
6
|
-
export declare const signMessage: (coinbaseProviderOpts: GetCoinbaseProviderOpts, messageToSign: string) => Promise<string | undefined>;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
2
|
-
import { CoinbaseWalletSDK } from '@coinbase/wallet-sdk';
|
|
3
|
-
import { hexlify, toUtf8Bytes } from 'ethers/lib/utils.js';
|
|
4
|
-
import { DynamicError } from '../../../errors.js';
|
|
5
|
-
import { infuraId } from '../../constants.js';
|
|
6
|
-
|
|
7
|
-
const jsonRpcUrl = `https://mainnet.infura.io/v3/${infuraId}`;
|
|
8
|
-
const chainId = 1;
|
|
9
|
-
const getCoinbaseProvider = ({ opts: { appLogoUrl, appName = '', evmNetworks = [] } = {}, handlers, }) => {
|
|
10
|
-
var _a, _b;
|
|
11
|
-
const coinbaseWalletSDK = new CoinbaseWalletSDK({
|
|
12
|
-
appLogoUrl,
|
|
13
|
-
appName,
|
|
14
|
-
eventListener: {
|
|
15
|
-
onEvent: (eventType) => {
|
|
16
|
-
if (eventType === 'walletlink_sdk.disconnected') {
|
|
17
|
-
handlers === null || handlers === void 0 ? void 0 : handlers.onDisconnect();
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
headlessMode: true,
|
|
22
|
-
reloadOnDisconnect: false,
|
|
23
|
-
});
|
|
24
|
-
const network = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((network) => network.chainId === chainId);
|
|
25
|
-
const rpcUrl = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0]) || jsonRpcUrl;
|
|
26
|
-
return coinbaseWalletSDK.makeWeb3Provider(rpcUrl, chainId);
|
|
27
|
-
};
|
|
28
|
-
const killCoinbaseSession = () => {
|
|
29
|
-
const provider = getCoinbaseProvider({
|
|
30
|
-
opts: { appLogoUrl: '', appName: '' },
|
|
31
|
-
});
|
|
32
|
-
if (provider.connected) {
|
|
33
|
-
provider.close();
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const fetchPublicAddress = (coinbaseProviderOpts, opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
-
var _a;
|
|
38
|
-
const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
|
|
39
|
-
const { qrUrl } = provider;
|
|
40
|
-
if (!qrUrl) {
|
|
41
|
-
throw new DynamicError('no qr url available');
|
|
42
|
-
}
|
|
43
|
-
(_a = opts === null || opts === void 0 ? void 0 : opts.onDisplayUri) === null || _a === void 0 ? void 0 : _a.call(opts, qrUrl);
|
|
44
|
-
const [address] = yield provider.request({
|
|
45
|
-
method: 'eth_requestAccounts',
|
|
46
|
-
});
|
|
47
|
-
return address;
|
|
48
|
-
});
|
|
49
|
-
const signMessage = (coinbaseProviderOpts, messageToSign) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
-
const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
|
|
51
|
-
const [address] = yield provider.request({
|
|
52
|
-
method: 'eth_requestAccounts',
|
|
53
|
-
});
|
|
54
|
-
try {
|
|
55
|
-
return yield provider.request({
|
|
56
|
-
method: 'personal_sign',
|
|
57
|
-
params: [hexlify(toUtf8Bytes(messageToSign)), address.toLowerCase()],
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
yield provider.close();
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
export { fetchPublicAddress, getCoinbaseProvider, killCoinbaseSession, signMessage };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
|
|
2
|
-
import { EvmNetwork } from '../../ethereum/evm-network';
|
|
3
|
-
export type GetCoinbaseProviderOpts = {
|
|
4
|
-
appLogoUrl?: string;
|
|
5
|
-
appName?: string;
|
|
6
|
-
evmNetworks?: EvmNetwork[];
|
|
7
|
-
};
|
|
8
|
-
export type CoinbaseProviderHandlerOpts = {
|
|
9
|
-
onDisconnect(): Promise<void>;
|
|
10
|
-
};
|
|
11
|
-
export type GetCoinbaseProvider = (args: {
|
|
12
|
-
handlers?: CoinbaseProviderHandlerOpts;
|
|
13
|
-
opts?: GetCoinbaseProviderOpts;
|
|
14
|
-
}) => CoinbaseWalletProvider;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './walletConnect';
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var KeplrWalletConnector = require('./KeplrWalletConnector.cjs');
|
|
6
|
-
var KeplrWalletConnect = require('./KeplrWalletConnect.cjs');
|
|
7
|
-
|
|
8
|
-
const getKeplerConnector = ({ evmNetworks, }) => {
|
|
9
|
-
const keplr = new KeplrWalletConnector.KeplrWalletConnector({ evmNetworks });
|
|
10
|
-
if (keplr.isInstalledOnBrowser()) {
|
|
11
|
-
return keplr;
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return new KeplrWalletConnect({ evmNetworks });
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
exports.getKeplerConnector = getKeplerConnector;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { EvmNetwork } from '../ethereum/evm-network';
|
|
2
|
-
import { KeplrWalletConnector } from './KeplrWalletConnector';
|
|
3
|
-
import KeplrWalletConnect from './KeplrWalletConnect';
|
|
4
|
-
export declare const getKeplerConnector: ({ evmNetworks, }: {
|
|
5
|
-
evmNetworks: EvmNetwork[];
|
|
6
|
-
}) => KeplrWalletConnector | KeplrWalletConnect;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { KeplrWalletConnector } from './KeplrWalletConnector.js';
|
|
2
|
-
import KeplrWalletConnect from './KeplrWalletConnect.js';
|
|
3
|
-
|
|
4
|
-
const getKeplerConnector = ({ evmNetworks, }) => {
|
|
5
|
-
const keplr = new KeplrWalletConnector({ evmNetworks });
|
|
6
|
-
if (keplr.isInstalledOnBrowser()) {
|
|
7
|
-
return keplr;
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
return new KeplrWalletConnect({ evmNetworks });
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export { getKeplerConnector };
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib = require('tslib');
|
|
4
|
-
var BloctoSDK = require('@blocto/sdk');
|
|
5
|
-
var ethers = require('ethers');
|
|
6
|
-
var logger = require('../../utils/logger.cjs');
|
|
7
|
-
var EthWalletConnector = require('./EthWalletConnector.cjs');
|
|
8
|
-
var ethProviderHelper = require('./ethProviderHelper.cjs');
|
|
9
|
-
|
|
10
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
-
|
|
12
|
-
var BloctoSDK__default = /*#__PURE__*/_interopDefaultLegacy(BloctoSDK);
|
|
13
|
-
|
|
14
|
-
class BloctoEvm extends EthWalletConnector.EthWalletConnector {
|
|
15
|
-
constructor({ evmNetworks }) {
|
|
16
|
-
var _a, _b;
|
|
17
|
-
// Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
|
|
18
|
-
const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
|
|
19
|
-
const bloctoSupportedNetworks = evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
|
|
20
|
-
super({ evmNetworks: bloctoSupportedNetworks });
|
|
21
|
-
this.LOCAL_STORAGE_KEY = 'dynamic_blocto_evm_chain_id';
|
|
22
|
-
this.name = 'bloctoevm';
|
|
23
|
-
this.canConnectViaCustodialService = true;
|
|
24
|
-
this.connectedChain = 'EVM';
|
|
25
|
-
this.supportedChains = ['EVM', 'ETH'];
|
|
26
|
-
this.ethProviderHelper = new ethProviderHelper.EthProviderHelper();
|
|
27
|
-
this.supportsNetworkSwitching = () => false;
|
|
28
|
-
this.chainId =
|
|
29
|
-
Number(localStorage.getItem(this.LOCAL_STORAGE_KEY)) ||
|
|
30
|
-
((_a = bloctoSupportedNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
|
|
31
|
-
((_b = bloctoSupportedNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
|
|
32
|
-
}
|
|
33
|
-
getClient() {
|
|
34
|
-
if (!this.client) {
|
|
35
|
-
const network = this.evmNetworks.find((n) => n.chainId === this.chainId);
|
|
36
|
-
if (network) {
|
|
37
|
-
this.client = new BloctoSDK__default["default"]({
|
|
38
|
-
ethereum: {
|
|
39
|
-
chainId: `0x${this.chainId.toString(16)}`,
|
|
40
|
-
rpc: network.rpcUrls[0],
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
logger.logger.error("Couldn't find a configured network for Blocto EVM");
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return this.client;
|
|
49
|
-
}
|
|
50
|
-
getWeb3Provider() {
|
|
51
|
-
const client = this.getClient();
|
|
52
|
-
// If there are no accounts yet, we shouldn't wrap the provider in ethers
|
|
53
|
-
if (client && client.ethereum && client.ethereum.accounts.length > 0) {
|
|
54
|
-
return new ethers.ethers.providers.Web3Provider(client.ethereum);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
// We are calling the client directly and not via Web3Provider because if we will wrap it in Ethers,
|
|
61
|
-
// Ethers will be making retries on failure. This becomes an issue on the connect step.
|
|
62
|
-
// When Blocto's modal closes prior to receiving a response with the address on the connect step,
|
|
63
|
-
// then ethers would retry and the modal will open again.
|
|
64
|
-
fetchPublicAddress() {
|
|
65
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
66
|
-
try {
|
|
67
|
-
const client = this.getClient();
|
|
68
|
-
if (client && client.ethereum) {
|
|
69
|
-
const addresses = yield client.ethereum.request({
|
|
70
|
-
method: 'eth_requestAccounts',
|
|
71
|
-
});
|
|
72
|
-
if (addresses.length > 0) {
|
|
73
|
-
return addresses[0];
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return undefined;
|
|
77
|
-
}
|
|
78
|
-
catch (e) {
|
|
79
|
-
logger.logger.error(e);
|
|
80
|
-
return Promise.reject(e);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
signMessage(messageToSign) {
|
|
85
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
try {
|
|
87
|
-
const signer = yield this.getSigner();
|
|
88
|
-
return yield (signer === null || signer === void 0 ? void 0 : signer.signMessage(messageToSign));
|
|
89
|
-
}
|
|
90
|
-
catch (e) {
|
|
91
|
-
if (e.message === 'User declined the signing request') {
|
|
92
|
-
return Promise.reject({ code: '4001' });
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
return Promise.reject(e);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
endSession() {
|
|
101
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
const client = this.getClient();
|
|
103
|
-
localStorage.removeItem('sdk.session');
|
|
104
|
-
if (client && client.ethereum && client.ethereum.accounts.length > 0) {
|
|
105
|
-
yield client.ethereum.request({ method: 'wallet_disconnect' });
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
module.exports = BloctoEvm;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
2
|
-
import { Chain } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { EvmNetwork } from './evm-network';
|
|
4
|
-
import { EthWalletConnector } from './EthWalletConnector';
|
|
5
|
-
import { EthProviderHelper } from './ethProviderHelper';
|
|
6
|
-
declare class BloctoEvm extends EthWalletConnector {
|
|
7
|
-
LOCAL_STORAGE_KEY: string;
|
|
8
|
-
private client?;
|
|
9
|
-
name: string;
|
|
10
|
-
canConnectViaCustodialService: boolean;
|
|
11
|
-
connectedChain: Chain;
|
|
12
|
-
supportedChains: Chain[];
|
|
13
|
-
chainId: number;
|
|
14
|
-
ethProviderHelper: EthProviderHelper;
|
|
15
|
-
supportsNetworkSwitching: () => boolean;
|
|
16
|
-
constructor({ evmNetworks }: {
|
|
17
|
-
evmNetworks: EvmNetwork[];
|
|
18
|
-
});
|
|
19
|
-
private getClient;
|
|
20
|
-
getWeb3Provider(): ethers.providers.Web3Provider | undefined;
|
|
21
|
-
fetchPublicAddress(): Promise<string | undefined>;
|
|
22
|
-
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
23
|
-
endSession(): Promise<void>;
|
|
24
|
-
}
|
|
25
|
-
export default BloctoEvm;
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
2
|
-
import BloctoSDK from '@blocto/sdk';
|
|
3
|
-
import { ethers } from 'ethers';
|
|
4
|
-
import { logger } from '../../utils/logger.js';
|
|
5
|
-
import { EthWalletConnector } from './EthWalletConnector.js';
|
|
6
|
-
import { EthProviderHelper } from './ethProviderHelper.js';
|
|
7
|
-
|
|
8
|
-
class BloctoEvm extends EthWalletConnector {
|
|
9
|
-
constructor({ evmNetworks }) {
|
|
10
|
-
var _a, _b;
|
|
11
|
-
// Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
|
|
12
|
-
const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
|
|
13
|
-
const bloctoSupportedNetworks = evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
|
|
14
|
-
super({ evmNetworks: bloctoSupportedNetworks });
|
|
15
|
-
this.LOCAL_STORAGE_KEY = 'dynamic_blocto_evm_chain_id';
|
|
16
|
-
this.name = 'bloctoevm';
|
|
17
|
-
this.canConnectViaCustodialService = true;
|
|
18
|
-
this.connectedChain = 'EVM';
|
|
19
|
-
this.supportedChains = ['EVM', 'ETH'];
|
|
20
|
-
this.ethProviderHelper = new EthProviderHelper();
|
|
21
|
-
this.supportsNetworkSwitching = () => false;
|
|
22
|
-
this.chainId =
|
|
23
|
-
Number(localStorage.getItem(this.LOCAL_STORAGE_KEY)) ||
|
|
24
|
-
((_a = bloctoSupportedNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
|
|
25
|
-
((_b = bloctoSupportedNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
|
|
26
|
-
}
|
|
27
|
-
getClient() {
|
|
28
|
-
if (!this.client) {
|
|
29
|
-
const network = this.evmNetworks.find((n) => n.chainId === this.chainId);
|
|
30
|
-
if (network) {
|
|
31
|
-
this.client = new BloctoSDK({
|
|
32
|
-
ethereum: {
|
|
33
|
-
chainId: `0x${this.chainId.toString(16)}`,
|
|
34
|
-
rpc: network.rpcUrls[0],
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
logger.error("Couldn't find a configured network for Blocto EVM");
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return this.client;
|
|
43
|
-
}
|
|
44
|
-
getWeb3Provider() {
|
|
45
|
-
const client = this.getClient();
|
|
46
|
-
// If there are no accounts yet, we shouldn't wrap the provider in ethers
|
|
47
|
-
if (client && client.ethereum && client.ethereum.accounts.length > 0) {
|
|
48
|
-
return new ethers.providers.Web3Provider(client.ethereum);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// We are calling the client directly and not via Web3Provider because if we will wrap it in Ethers,
|
|
55
|
-
// Ethers will be making retries on failure. This becomes an issue on the connect step.
|
|
56
|
-
// When Blocto's modal closes prior to receiving a response with the address on the connect step,
|
|
57
|
-
// then ethers would retry and the modal will open again.
|
|
58
|
-
fetchPublicAddress() {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
try {
|
|
61
|
-
const client = this.getClient();
|
|
62
|
-
if (client && client.ethereum) {
|
|
63
|
-
const addresses = yield client.ethereum.request({
|
|
64
|
-
method: 'eth_requestAccounts',
|
|
65
|
-
});
|
|
66
|
-
if (addresses.length > 0) {
|
|
67
|
-
return addresses[0];
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
catch (e) {
|
|
73
|
-
logger.error(e);
|
|
74
|
-
return Promise.reject(e);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
signMessage(messageToSign) {
|
|
79
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
try {
|
|
81
|
-
const signer = yield this.getSigner();
|
|
82
|
-
return yield (signer === null || signer === void 0 ? void 0 : signer.signMessage(messageToSign));
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
if (e.message === 'User declined the signing request') {
|
|
86
|
-
return Promise.reject({ code: '4001' });
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
return Promise.reject(e);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
endSession() {
|
|
95
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
const client = this.getClient();
|
|
97
|
-
localStorage.removeItem('sdk.session');
|
|
98
|
-
if (client && client.ethereum && client.ethereum.accounts.length > 0) {
|
|
99
|
-
yield client.ethereum.request({ method: 'wallet_disconnect' });
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export { BloctoEvm as default };
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var tslib = require('tslib');
|
|
6
|
-
var ethers = require('ethers');
|
|
7
|
-
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
-
var errors = require('../../errors.cjs');
|
|
9
|
-
var rpcProviders = require('../../rpcProviders.cjs');
|
|
10
|
-
var evmNetwork = require('./evm-network.cjs');
|
|
11
|
-
|
|
12
|
-
class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
13
|
-
getRpcProvider() {
|
|
14
|
-
var _a, _b;
|
|
15
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
const networkId = yield this.getNetwork();
|
|
17
|
-
if (this.evmNetworks.length === 0) {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
const configurations = {
|
|
21
|
-
cosmos: [],
|
|
22
|
-
evm: this.evmNetworks,
|
|
23
|
-
solana: [],
|
|
24
|
-
starknet: undefined,
|
|
25
|
-
};
|
|
26
|
-
if (!networkId) {
|
|
27
|
-
return (_a = rpcProviders.getEvmDefaultRpcProvider(configurations)) === null || _a === void 0 ? void 0 : _a.provider;
|
|
28
|
-
}
|
|
29
|
-
return (_b = rpcProviders.getEvmRpcProviderByChainId(configurations, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
constructor({ evmNetworks }) {
|
|
33
|
-
super();
|
|
34
|
-
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
35
|
-
var _a;
|
|
36
|
-
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
37
|
-
? network.privateCustomerRpcUrls
|
|
38
|
-
: network.rpcUrls;
|
|
39
|
-
return acc;
|
|
40
|
-
}, {});
|
|
41
|
-
this.evmNetworks = evmNetworks;
|
|
42
|
-
}
|
|
43
|
-
getNetwork() {
|
|
44
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
const provider = this.getWeb3Provider();
|
|
46
|
-
if (!this.supportsNetworkSwitching ||
|
|
47
|
-
!provider ||
|
|
48
|
-
!('getNetwork' in provider)) {
|
|
49
|
-
return Promise.resolve(undefined);
|
|
50
|
-
}
|
|
51
|
-
const network = yield provider.getNetwork();
|
|
52
|
-
return Promise.resolve(network === null || network === void 0 ? void 0 : network.chainId);
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
getNameService() {
|
|
56
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
const [[address], provider] = yield Promise.all([
|
|
58
|
-
this.getConnectedAccounts(),
|
|
59
|
-
this.getRpcProvider(),
|
|
60
|
-
]);
|
|
61
|
-
if (!address || !provider || !('lookupAddress' in provider)) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const [ensName, ensAvatar] = yield Promise.all([
|
|
65
|
-
provider.lookupAddress(address),
|
|
66
|
-
provider.getAvatar(address),
|
|
67
|
-
]);
|
|
68
|
-
const ensData = {
|
|
69
|
-
avatar: ensAvatar !== null && ensAvatar !== void 0 ? ensAvatar : undefined,
|
|
70
|
-
name: ensName !== null && ensName !== void 0 ? ensName : undefined,
|
|
71
|
-
};
|
|
72
|
-
return ensData;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
getSigner() {
|
|
76
|
-
var _a;
|
|
77
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
return (_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getSigner();
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
getBalance() {
|
|
82
|
-
var _a;
|
|
83
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
84
|
-
// This is equivalent to getSigner().getAddress() but does not crash
|
|
85
|
-
// if the signer is not available
|
|
86
|
-
const [address] = yield this.getConnectedAccounts();
|
|
87
|
-
if (!address)
|
|
88
|
-
return;
|
|
89
|
-
const result = yield ((_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getBalance(address));
|
|
90
|
-
if (!result)
|
|
91
|
-
return;
|
|
92
|
-
return ethers.ethers.utils.formatEther(result);
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
supportsNetworkSwitching() {
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
switchNetwork({ networkName, networkChainId, }) {
|
|
99
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
const network = evmNetwork.findEvmNetwork({
|
|
101
|
-
chainId: networkChainId,
|
|
102
|
-
name: networkName,
|
|
103
|
-
networks: this.evmNetworks,
|
|
104
|
-
});
|
|
105
|
-
if (!network) {
|
|
106
|
-
throw new errors.DynamicError('Could not find network');
|
|
107
|
-
}
|
|
108
|
-
if (!this.supportsNetworkSwitching()) {
|
|
109
|
-
throw new errors.DynamicError('Network switching is not supported');
|
|
110
|
-
}
|
|
111
|
-
const provider = this.getWeb3Provider();
|
|
112
|
-
if (!provider) {
|
|
113
|
-
throw new errors.DynamicError('Provider not found');
|
|
114
|
-
}
|
|
115
|
-
return this.providerSwitchNetwork({ network, provider });
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
getConnectedAccounts() {
|
|
119
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
120
|
-
const provider = this.getWeb3Provider();
|
|
121
|
-
if (!provider)
|
|
122
|
-
return [];
|
|
123
|
-
return provider.send('eth_accounts', []);
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
providerSwitchNetwork({ network, provider, }) {
|
|
127
|
-
var _a, _b, _c;
|
|
128
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
const { chainId } = network;
|
|
130
|
-
const currentNetworkId = yield this.getNetwork();
|
|
131
|
-
if (currentNetworkId && currentNetworkId === chainId) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
try {
|
|
135
|
-
if (!this.supportsNetworkSwitching()) {
|
|
136
|
-
throw new errors.DynamicError('Network switching is not supported');
|
|
137
|
-
}
|
|
138
|
-
return yield provider.send('wallet_switchEthereumChain', [
|
|
139
|
-
{
|
|
140
|
-
chainId: `0x${chainId.toString(16)}`,
|
|
141
|
-
},
|
|
142
|
-
]);
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('rejected')) ||
|
|
146
|
-
(typeof error === 'string' && error.includes('rejected'))) {
|
|
147
|
-
throw new errors.DynamicError("User rejected the wallet's request to switch network");
|
|
148
|
-
}
|
|
149
|
-
else if (error.code === 4902 ||
|
|
150
|
-
error.message.includes('Unrecognized chain') ||
|
|
151
|
-
// https://github.com/MetaMask/metamask-mobile/issues/3312#issuecomment-1065923294
|
|
152
|
-
((_c = (_b = error === null || error === void 0 ? void 0 : error.data) === null || _b === void 0 ? void 0 : _b.orginalError) === null || _c === void 0 ? void 0 : _c.code) === 4902) {
|
|
153
|
-
// error code indicates the chain has not been added yet
|
|
154
|
-
// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain
|
|
155
|
-
return this.providerAddNetwork({ network, provider });
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
throw error;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
providerAddNetwork({ network, provider, }) {
|
|
164
|
-
var _a;
|
|
165
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
166
|
-
const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, chainName } = network;
|
|
167
|
-
try {
|
|
168
|
-
return yield provider.send('wallet_addEthereumChain', [
|
|
169
|
-
{
|
|
170
|
-
blockExplorerUrls,
|
|
171
|
-
chainId: `0x${chainId.toString(16)}`,
|
|
172
|
-
chainName,
|
|
173
|
-
nativeCurrency,
|
|
174
|
-
rpcUrls,
|
|
175
|
-
},
|
|
176
|
-
]);
|
|
177
|
-
}
|
|
178
|
-
catch (error) {
|
|
179
|
-
if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('rejected')) ||
|
|
180
|
-
(typeof error === 'string' && error.includes('rejected'))) {
|
|
181
|
-
throw new errors.DynamicError("User rejected the wallet's request to add network");
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
throw error;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
exports.EthWalletConnector = EthWalletConnector;
|