@dynamic-labs/ethereum 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 +793 -0
- package/LICENSE +21 -0
- package/README.md +0 -0
- package/_virtual/_tslib.cjs +43 -0
- package/_virtual/_tslib.js +38 -0
- package/package.json +40 -0
- package/src/EthWalletConnector.cjs +206 -0
- package/src/EthWalletConnector.d.ts +39 -0
- package/src/EthWalletConnector.js +202 -0
- package/src/constants.cjs +7 -0
- package/src/constants.d.ts +1 -0
- package/src/constants.js +3 -0
- package/src/ethProviderHelper.cjs +197 -0
- package/src/ethProviderHelper.d.ts +33 -0
- package/src/ethProviderHelper.js +193 -0
- package/src/index.cjs +52 -0
- package/src/index.d.ts +6 -0
- package/src/index.js +33 -0
- package/src/injected/BloctoInjected.cjs +14 -0
- package/src/injected/BloctoInjected.d.ts +4 -0
- package/src/injected/BloctoInjected.js +10 -0
- package/src/injected/BraveEvm.cjs +14 -0
- package/src/injected/BraveEvm.d.ts +4 -0
- package/src/injected/BraveEvm.js +10 -0
- package/src/injected/Dawn.cjs +14 -0
- package/src/injected/Dawn.d.ts +4 -0
- package/src/injected/Dawn.js +10 -0
- package/src/injected/ExodusEvm.cjs +14 -0
- package/src/injected/ExodusEvm.d.ts +4 -0
- package/src/injected/ExodusEvm.js +10 -0
- package/src/injected/Frame.cjs +14 -0
- package/src/injected/Frame.d.ts +4 -0
- package/src/injected/Frame.js +10 -0
- package/src/injected/GameStop.cjs +14 -0
- package/src/injected/GameStop.d.ts +4 -0
- package/src/injected/GameStop.js +10 -0
- package/src/injected/InjectedWalletBase.cjs +75 -0
- package/src/injected/InjectedWalletBase.d.ts +24 -0
- package/src/injected/InjectedWalletBase.js +73 -0
- package/src/injected/MetaMask.cjs +15 -0
- package/src/injected/MetaMask.d.ts +5 -0
- package/src/injected/MetaMask.js +11 -0
- package/src/injected/Opera.cjs +14 -0
- package/src/injected/Opera.d.ts +4 -0
- package/src/injected/Opera.js +10 -0
- package/src/injected/PhantomEvm.cjs +38 -0
- package/src/injected/PhantomEvm.d.ts +5 -0
- package/src/injected/PhantomEvm.js +34 -0
- package/src/injected/Trust.cjs +15 -0
- package/src/injected/Trust.d.ts +5 -0
- package/src/injected/Trust.js +11 -0
- package/src/injected/UnknownInjectedWallet.cjs +14 -0
- package/src/injected/UnknownInjectedWallet.d.ts +4 -0
- package/src/injected/UnknownInjectedWallet.js +10 -0
- package/src/injected/Zerion.cjs +15 -0
- package/src/injected/Zerion.d.ts +5 -0
- package/src/injected/Zerion.js +11 -0
- package/src/injected/index.cjs +45 -0
- package/src/injected/index.d.ts +14 -0
- package/src/injected/index.js +41 -0
- package/src/types.d.ts +21 -0
- package/src/utils/findEvmNetwork.cjs +20 -0
- package/src/utils/findEvmNetwork.d.ts +6 -0
- package/src/utils/findEvmNetwork.js +16 -0
- package/src/utils/isUnsupportedProviderError/index.d.ts +1 -0
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +13 -0
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +6 -0
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +9 -0
- package/src/walletConnect/client/client.cjs +228 -0
- package/src/walletConnect/client/client.d.ts +21 -0
- package/src/walletConnect/client/client.js +212 -0
- package/src/walletConnect/client/index.d.ts +1 -0
- package/src/walletConnect/client/types.d.ts +4 -0
- package/src/walletConnect/fetchWalletConnectWallets.cjs +58 -0
- package/src/walletConnect/fetchWalletConnectWallets.d.ts +8 -0
- package/src/walletConnect/fetchWalletConnectWallets.js +52 -0
- package/src/walletConnect/index.d.ts +3 -0
- package/src/walletConnect/walletConnect.cjs +134 -0
- package/src/walletConnect/walletConnect.d.ts +33 -0
- package/src/walletConnect/walletConnect.js +126 -0
- package/src/walletConnect/walletConnectV2.cjs +268 -0
- package/src/walletConnect/walletConnectV2.d.ts +37 -0
- package/src/walletConnect/walletConnectV2.js +260 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _tslib = require('../_virtual/_tslib.cjs');
|
|
6
|
+
var ethers = require('ethers');
|
|
7
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
+
var isUnsupportedProviderError = require('./utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs');
|
|
9
|
+
|
|
10
|
+
var _a;
|
|
11
|
+
class EthProviderHelper {
|
|
12
|
+
static installedProviderLookup(providerFlags) {
|
|
13
|
+
const allInstalledProviders = this.allInstalledProviders();
|
|
14
|
+
return walletConnectorCore.ProviderLookup(allInstalledProviders, providerFlags);
|
|
15
|
+
}
|
|
16
|
+
static allInstalledProviders() {
|
|
17
|
+
var _b;
|
|
18
|
+
const ethereumProviders = [];
|
|
19
|
+
if (window.ethereum) {
|
|
20
|
+
if (!window.ethereum.providers) {
|
|
21
|
+
ethereumProviders.push(window.ethereum);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
window.ethereum.providers.forEach((provider) => {
|
|
25
|
+
ethereumProviders.push(provider);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if ((_b = window.phantom) === null || _b === void 0 ? void 0 : _b.ethereum) {
|
|
30
|
+
ethereumProviders.push(window.phantom.ethereum);
|
|
31
|
+
}
|
|
32
|
+
if (window.zerionWallet) {
|
|
33
|
+
ethereumProviders.push(window.zerionWallet);
|
|
34
|
+
}
|
|
35
|
+
return ethereumProviders;
|
|
36
|
+
}
|
|
37
|
+
static isInstalledHelper(walletName) {
|
|
38
|
+
return this.findProvider(walletName) !== undefined;
|
|
39
|
+
}
|
|
40
|
+
static findProvider(walletName) {
|
|
41
|
+
var _b, _c;
|
|
42
|
+
try {
|
|
43
|
+
const provider = (_c = (_b = this.providers)[walletConnectorCore.normalizeWalletName(walletName)]) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
44
|
+
return provider === undefined
|
|
45
|
+
? undefined
|
|
46
|
+
: new ethers.ethers.providers.Web3Provider(provider, 'any'); // https://github.com/ethers-io/ethers.js/discussions/1480
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
if (isUnsupportedProviderError.isUnsupportedProviderError(err)) {
|
|
50
|
+
walletConnectorCore.logger.error(`ETH Provider is not supported ${err.value}`, err);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
walletConnectorCore.logger.error(`Could not find provider for ${walletName}`, err);
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
static fetchPublicAddressWithName(name) {
|
|
58
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
const provider = this.findProvider(name);
|
|
60
|
+
if (!provider) {
|
|
61
|
+
return Promise.resolve(undefined);
|
|
62
|
+
}
|
|
63
|
+
return this.fetchPublicAddressWithProvider(provider);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
static fetchPublicAddressWithProvider(provider) {
|
|
67
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
try {
|
|
69
|
+
const [lowercaseAddress] = yield provider.send('eth_requestAccounts', []);
|
|
70
|
+
const publicAddress = ethers.utils.getAddress(lowercaseAddress);
|
|
71
|
+
return publicAddress;
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
walletConnectorCore.logger.error(err);
|
|
75
|
+
return Promise.reject(err);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
static signMessageWithName(messageToSign, name) {
|
|
80
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
const walletAddress = yield this.fetchPublicAddressWithName(name);
|
|
82
|
+
if (!walletAddress) {
|
|
83
|
+
return Promise.resolve(undefined);
|
|
84
|
+
}
|
|
85
|
+
const provider = this.findProvider(name);
|
|
86
|
+
if (!provider) {
|
|
87
|
+
return Promise.resolve(undefined);
|
|
88
|
+
}
|
|
89
|
+
const signer = provider.getSigner();
|
|
90
|
+
const signedMessage = yield signer.signMessage(messageToSign);
|
|
91
|
+
return signedMessage;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
static _setupEventListeners(name, listeners, web3Provider) {
|
|
95
|
+
if (!web3Provider) {
|
|
96
|
+
return {
|
|
97
|
+
tearDownEventListeners: () => { },
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const externalProvider = web3Provider.provider;
|
|
101
|
+
const handleAccountChange = (accounts) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
var _b, _c;
|
|
103
|
+
if (accounts.length === 0) {
|
|
104
|
+
yield ((_b = listeners.onDisconnect) === null || _b === void 0 ? void 0 : _b.call(listeners));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
yield ((_c = listeners.onAccountChange) === null || _c === void 0 ? void 0 : _c.call(listeners, accounts));
|
|
108
|
+
});
|
|
109
|
+
const handleChainChange = () => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
var _d;
|
|
111
|
+
const network = yield web3Provider.getNetwork();
|
|
112
|
+
yield ((_d = listeners.onChainChange) === null || _d === void 0 ? void 0 : _d.call(listeners, network.chainId.toString()));
|
|
113
|
+
});
|
|
114
|
+
const handleDisconnect = (error) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
var _e;
|
|
116
|
+
if ((error === null || error === void 0 ? void 0 : error.code) === 1013) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
yield ((_e = listeners.onDisconnect) === null || _e === void 0 ? void 0 : _e.call(listeners));
|
|
120
|
+
});
|
|
121
|
+
externalProvider.on('accountsChanged', handleAccountChange);
|
|
122
|
+
externalProvider.on('chainChanged', handleChainChange);
|
|
123
|
+
externalProvider.on('disconnect', handleDisconnect);
|
|
124
|
+
const tearDownEventListeners = () => {
|
|
125
|
+
const web3Provider = this.findProvider(name);
|
|
126
|
+
if (!web3Provider || !(web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.provider)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const externalProvider = web3Provider.provider;
|
|
130
|
+
if (handleAccountChange) {
|
|
131
|
+
externalProvider.removeListener('accountsChanged', handleAccountChange);
|
|
132
|
+
}
|
|
133
|
+
if (handleChainChange) {
|
|
134
|
+
externalProvider.removeListener('chainChanged', handleChainChange);
|
|
135
|
+
}
|
|
136
|
+
if (handleDisconnect) {
|
|
137
|
+
externalProvider.removeListener('disconnect', handleDisconnect);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
return {
|
|
141
|
+
tearDownEventListeners,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
_a = EthProviderHelper;
|
|
146
|
+
EthProviderHelper.MetamaskProvider = () =>
|
|
147
|
+
// Stop these wallets from showing up as MetaMask
|
|
148
|
+
_a.installedProviderLookup([
|
|
149
|
+
{ flag: 'isDawn', value: false },
|
|
150
|
+
{ flag: 'isBraveWallet', value: false },
|
|
151
|
+
{ flag: 'isTrustWallet', value: false },
|
|
152
|
+
{ flag: 'isExodus', value: false },
|
|
153
|
+
{ flag: 'isPhantom', value: false },
|
|
154
|
+
{ flag: 'isZerion', value: false },
|
|
155
|
+
{ flag: 'isMetaMask', value: true },
|
|
156
|
+
]);
|
|
157
|
+
EthProviderHelper.BraveProvider = () => _a.installedProviderLookup([{ flag: 'isBraveWallet', value: true }]);
|
|
158
|
+
EthProviderHelper.DawnProvider = () => _a.installedProviderLookup([{ flag: 'isDawn', value: true }]);
|
|
159
|
+
EthProviderHelper.FrameProvider = () => _a.installedProviderLookup([{ flag: 'isFrame', value: true }]);
|
|
160
|
+
EthProviderHelper.CoinbaseProvider = () => _a.installedProviderLookup([{ flag: 'isCoinbaseWallet', value: true }]);
|
|
161
|
+
EthProviderHelper.OperaProvider = () => _a.installedProviderLookup([{ flag: 'isOpera', value: true }]);
|
|
162
|
+
EthProviderHelper.GameStopProvider = () => _a.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
|
|
163
|
+
EthProviderHelper.ExodusProvider = () => _a.installedProviderLookup([{ flag: 'isExodus', value: true }]);
|
|
164
|
+
EthProviderHelper.BloctoProvider = () => _a.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
|
|
165
|
+
EthProviderHelper.TrustWalletProvider = () => _a.installedProviderLookup([{ flag: 'isTrustWallet', value: true }]);
|
|
166
|
+
EthProviderHelper.PhantomProvider = () => _a.installedProviderLookup([{ flag: 'isPhantom', value: true }]);
|
|
167
|
+
EthProviderHelper.ZerionProvider = () => _a.installedProviderLookup([{ flag: 'isZerion', value: true }]);
|
|
168
|
+
EthProviderHelper.UnknownInjectedProvider = () => _a.installedProviderLookup([
|
|
169
|
+
{ flag: 'isMetaMask', value: false },
|
|
170
|
+
{ flag: 'isExodus', value: false },
|
|
171
|
+
{ flag: 'isCoinbaseWallet', value: false },
|
|
172
|
+
{ flag: 'isBraveWallet', value: false },
|
|
173
|
+
{ flag: 'isGamestop', value: false },
|
|
174
|
+
{ flag: 'isFrame', value: false },
|
|
175
|
+
{ flag: 'isOpera', value: false },
|
|
176
|
+
{ flag: 'isBlocto', value: false },
|
|
177
|
+
{ flag: 'isTrustWallet', value: false },
|
|
178
|
+
{ flag: 'isPhantom', value: false },
|
|
179
|
+
{ flag: 'isZerion', value: false },
|
|
180
|
+
]);
|
|
181
|
+
EthProviderHelper.providers = {
|
|
182
|
+
bloctoinjected: _a.BloctoProvider,
|
|
183
|
+
braveevm: _a.BraveProvider,
|
|
184
|
+
coinbase: _a.CoinbaseProvider,
|
|
185
|
+
dawn: _a.DawnProvider,
|
|
186
|
+
exodusevm: _a.ExodusProvider,
|
|
187
|
+
frame: _a.FrameProvider,
|
|
188
|
+
gamestop: _a.GameStopProvider,
|
|
189
|
+
injectedwallet: _a.UnknownInjectedProvider,
|
|
190
|
+
metamask: _a.MetamaskProvider,
|
|
191
|
+
opera: _a.OperaProvider,
|
|
192
|
+
phantomevm: _a.PhantomProvider,
|
|
193
|
+
trust: _a.TrustWalletProvider,
|
|
194
|
+
zerion: _a.ZerionProvider,
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
exports.EthProviderHelper = EthProviderHelper;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { ProviderCondition, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
+
import { IEthereum, ProviderFlag } from './types';
|
|
4
|
+
type Provider = () => ethers.providers.ExternalProvider | undefined;
|
|
5
|
+
export declare class EthProviderHelper {
|
|
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: {
|
|
20
|
+
[wallet: string]: Provider;
|
|
21
|
+
};
|
|
22
|
+
static installedProviderLookup(providerFlags: Array<ProviderCondition<ProviderFlag>>): 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
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { __awaiter } from '../_virtual/_tslib.js';
|
|
2
|
+
import { ethers, utils } from 'ethers';
|
|
3
|
+
import { ProviderLookup, normalizeWalletName, logger } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { isUnsupportedProviderError } from './utils/isUnsupportedProviderError/isUnsupportedProviderError.js';
|
|
5
|
+
|
|
6
|
+
var _a;
|
|
7
|
+
class EthProviderHelper {
|
|
8
|
+
static installedProviderLookup(providerFlags) {
|
|
9
|
+
const allInstalledProviders = this.allInstalledProviders();
|
|
10
|
+
return ProviderLookup(allInstalledProviders, providerFlags);
|
|
11
|
+
}
|
|
12
|
+
static allInstalledProviders() {
|
|
13
|
+
var _b;
|
|
14
|
+
const ethereumProviders = [];
|
|
15
|
+
if (window.ethereum) {
|
|
16
|
+
if (!window.ethereum.providers) {
|
|
17
|
+
ethereumProviders.push(window.ethereum);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
window.ethereum.providers.forEach((provider) => {
|
|
21
|
+
ethereumProviders.push(provider);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if ((_b = window.phantom) === null || _b === void 0 ? void 0 : _b.ethereum) {
|
|
26
|
+
ethereumProviders.push(window.phantom.ethereum);
|
|
27
|
+
}
|
|
28
|
+
if (window.zerionWallet) {
|
|
29
|
+
ethereumProviders.push(window.zerionWallet);
|
|
30
|
+
}
|
|
31
|
+
return ethereumProviders;
|
|
32
|
+
}
|
|
33
|
+
static isInstalledHelper(walletName) {
|
|
34
|
+
return this.findProvider(walletName) !== undefined;
|
|
35
|
+
}
|
|
36
|
+
static findProvider(walletName) {
|
|
37
|
+
var _b, _c;
|
|
38
|
+
try {
|
|
39
|
+
const provider = (_c = (_b = this.providers)[normalizeWalletName(walletName)]) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
40
|
+
return provider === undefined
|
|
41
|
+
? undefined
|
|
42
|
+
: new ethers.providers.Web3Provider(provider, 'any'); // https://github.com/ethers-io/ethers.js/discussions/1480
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
if (isUnsupportedProviderError(err)) {
|
|
46
|
+
logger.error(`ETH Provider is not supported ${err.value}`, err);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
logger.error(`Could not find provider for ${walletName}`, err);
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
static fetchPublicAddressWithName(name) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const provider = this.findProvider(name);
|
|
56
|
+
if (!provider) {
|
|
57
|
+
return Promise.resolve(undefined);
|
|
58
|
+
}
|
|
59
|
+
return this.fetchPublicAddressWithProvider(provider);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
static fetchPublicAddressWithProvider(provider) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
try {
|
|
65
|
+
const [lowercaseAddress] = yield provider.send('eth_requestAccounts', []);
|
|
66
|
+
const publicAddress = utils.getAddress(lowercaseAddress);
|
|
67
|
+
return publicAddress;
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
logger.error(err);
|
|
71
|
+
return Promise.reject(err);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
static signMessageWithName(messageToSign, name) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const walletAddress = yield this.fetchPublicAddressWithName(name);
|
|
78
|
+
if (!walletAddress) {
|
|
79
|
+
return Promise.resolve(undefined);
|
|
80
|
+
}
|
|
81
|
+
const provider = this.findProvider(name);
|
|
82
|
+
if (!provider) {
|
|
83
|
+
return Promise.resolve(undefined);
|
|
84
|
+
}
|
|
85
|
+
const signer = provider.getSigner();
|
|
86
|
+
const signedMessage = yield signer.signMessage(messageToSign);
|
|
87
|
+
return signedMessage;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
static _setupEventListeners(name, listeners, web3Provider) {
|
|
91
|
+
if (!web3Provider) {
|
|
92
|
+
return {
|
|
93
|
+
tearDownEventListeners: () => { },
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
const externalProvider = web3Provider.provider;
|
|
97
|
+
const handleAccountChange = (accounts) => __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
var _b, _c;
|
|
99
|
+
if (accounts.length === 0) {
|
|
100
|
+
yield ((_b = listeners.onDisconnect) === null || _b === void 0 ? void 0 : _b.call(listeners));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
yield ((_c = listeners.onAccountChange) === null || _c === void 0 ? void 0 : _c.call(listeners, accounts));
|
|
104
|
+
});
|
|
105
|
+
const handleChainChange = () => __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
var _d;
|
|
107
|
+
const network = yield web3Provider.getNetwork();
|
|
108
|
+
yield ((_d = listeners.onChainChange) === null || _d === void 0 ? void 0 : _d.call(listeners, network.chainId.toString()));
|
|
109
|
+
});
|
|
110
|
+
const handleDisconnect = (error) => __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
var _e;
|
|
112
|
+
if ((error === null || error === void 0 ? void 0 : error.code) === 1013) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
yield ((_e = listeners.onDisconnect) === null || _e === void 0 ? void 0 : _e.call(listeners));
|
|
116
|
+
});
|
|
117
|
+
externalProvider.on('accountsChanged', handleAccountChange);
|
|
118
|
+
externalProvider.on('chainChanged', handleChainChange);
|
|
119
|
+
externalProvider.on('disconnect', handleDisconnect);
|
|
120
|
+
const tearDownEventListeners = () => {
|
|
121
|
+
const web3Provider = this.findProvider(name);
|
|
122
|
+
if (!web3Provider || !(web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.provider)) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const externalProvider = web3Provider.provider;
|
|
126
|
+
if (handleAccountChange) {
|
|
127
|
+
externalProvider.removeListener('accountsChanged', handleAccountChange);
|
|
128
|
+
}
|
|
129
|
+
if (handleChainChange) {
|
|
130
|
+
externalProvider.removeListener('chainChanged', handleChainChange);
|
|
131
|
+
}
|
|
132
|
+
if (handleDisconnect) {
|
|
133
|
+
externalProvider.removeListener('disconnect', handleDisconnect);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
return {
|
|
137
|
+
tearDownEventListeners,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
_a = EthProviderHelper;
|
|
142
|
+
EthProviderHelper.MetamaskProvider = () =>
|
|
143
|
+
// Stop these wallets from showing up as MetaMask
|
|
144
|
+
_a.installedProviderLookup([
|
|
145
|
+
{ flag: 'isDawn', value: false },
|
|
146
|
+
{ flag: 'isBraveWallet', value: false },
|
|
147
|
+
{ flag: 'isTrustWallet', value: false },
|
|
148
|
+
{ flag: 'isExodus', value: false },
|
|
149
|
+
{ flag: 'isPhantom', value: false },
|
|
150
|
+
{ flag: 'isZerion', value: false },
|
|
151
|
+
{ flag: 'isMetaMask', value: true },
|
|
152
|
+
]);
|
|
153
|
+
EthProviderHelper.BraveProvider = () => _a.installedProviderLookup([{ flag: 'isBraveWallet', value: true }]);
|
|
154
|
+
EthProviderHelper.DawnProvider = () => _a.installedProviderLookup([{ flag: 'isDawn', value: true }]);
|
|
155
|
+
EthProviderHelper.FrameProvider = () => _a.installedProviderLookup([{ flag: 'isFrame', value: true }]);
|
|
156
|
+
EthProviderHelper.CoinbaseProvider = () => _a.installedProviderLookup([{ flag: 'isCoinbaseWallet', value: true }]);
|
|
157
|
+
EthProviderHelper.OperaProvider = () => _a.installedProviderLookup([{ flag: 'isOpera', value: true }]);
|
|
158
|
+
EthProviderHelper.GameStopProvider = () => _a.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
|
|
159
|
+
EthProviderHelper.ExodusProvider = () => _a.installedProviderLookup([{ flag: 'isExodus', value: true }]);
|
|
160
|
+
EthProviderHelper.BloctoProvider = () => _a.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
|
|
161
|
+
EthProviderHelper.TrustWalletProvider = () => _a.installedProviderLookup([{ flag: 'isTrustWallet', value: true }]);
|
|
162
|
+
EthProviderHelper.PhantomProvider = () => _a.installedProviderLookup([{ flag: 'isPhantom', value: true }]);
|
|
163
|
+
EthProviderHelper.ZerionProvider = () => _a.installedProviderLookup([{ flag: 'isZerion', value: true }]);
|
|
164
|
+
EthProviderHelper.UnknownInjectedProvider = () => _a.installedProviderLookup([
|
|
165
|
+
{ flag: 'isMetaMask', value: false },
|
|
166
|
+
{ flag: 'isExodus', value: false },
|
|
167
|
+
{ flag: 'isCoinbaseWallet', value: false },
|
|
168
|
+
{ flag: 'isBraveWallet', value: false },
|
|
169
|
+
{ flag: 'isGamestop', value: false },
|
|
170
|
+
{ flag: 'isFrame', value: false },
|
|
171
|
+
{ flag: 'isOpera', value: false },
|
|
172
|
+
{ flag: 'isBlocto', value: false },
|
|
173
|
+
{ flag: 'isTrustWallet', value: false },
|
|
174
|
+
{ flag: 'isPhantom', value: false },
|
|
175
|
+
{ flag: 'isZerion', value: false },
|
|
176
|
+
]);
|
|
177
|
+
EthProviderHelper.providers = {
|
|
178
|
+
bloctoinjected: _a.BloctoProvider,
|
|
179
|
+
braveevm: _a.BraveProvider,
|
|
180
|
+
coinbase: _a.CoinbaseProvider,
|
|
181
|
+
dawn: _a.DawnProvider,
|
|
182
|
+
exodusevm: _a.ExodusProvider,
|
|
183
|
+
frame: _a.FrameProvider,
|
|
184
|
+
gamestop: _a.GameStopProvider,
|
|
185
|
+
injectedwallet: _a.UnknownInjectedProvider,
|
|
186
|
+
metamask: _a.MetamaskProvider,
|
|
187
|
+
opera: _a.OperaProvider,
|
|
188
|
+
phantomevm: _a.PhantomProvider,
|
|
189
|
+
trust: _a.TrustWalletProvider,
|
|
190
|
+
zerion: _a.ZerionProvider,
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
export { EthProviderHelper };
|
package/src/index.cjs
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var index = require('./injected/index.cjs');
|
|
6
|
+
require('@walletconnect/universal-provider');
|
|
7
|
+
require('ethers');
|
|
8
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
9
|
+
require('@dynamic-labs/wallet-book');
|
|
10
|
+
require('@dynamic-labs/utils');
|
|
11
|
+
var EthWalletConnector = require('./EthWalletConnector.cjs');
|
|
12
|
+
require('@walletconnect/client');
|
|
13
|
+
require('@walletconnect/ethereum-provider');
|
|
14
|
+
var constants = require('./constants.cjs');
|
|
15
|
+
var fetchWalletConnectWallets = require('./walletConnect/fetchWalletConnectWallets.cjs');
|
|
16
|
+
var ethProviderHelper = require('./ethProviderHelper.cjs');
|
|
17
|
+
var BloctoInjected = require('./injected/BloctoInjected.cjs');
|
|
18
|
+
var BraveEvm = require('./injected/BraveEvm.cjs');
|
|
19
|
+
var Dawn = require('./injected/Dawn.cjs');
|
|
20
|
+
var ExodusEvm = require('./injected/ExodusEvm.cjs');
|
|
21
|
+
var Frame = require('./injected/Frame.cjs');
|
|
22
|
+
var GameStop = require('./injected/GameStop.cjs');
|
|
23
|
+
var MetaMask = require('./injected/MetaMask.cjs');
|
|
24
|
+
var Opera = require('./injected/Opera.cjs');
|
|
25
|
+
var PhantomEvm = require('./injected/PhantomEvm.cjs');
|
|
26
|
+
var Trust = require('./injected/Trust.cjs');
|
|
27
|
+
var UnknownInjectedWallet = require('./injected/UnknownInjectedWallet.cjs');
|
|
28
|
+
var Zerion = require('./injected/Zerion.cjs');
|
|
29
|
+
|
|
30
|
+
const EthereumWalletConnectors = (props) => [
|
|
31
|
+
...index.injectedWallets,
|
|
32
|
+
...fetchWalletConnectWallets.fetchWalletConnectWallets(props),
|
|
33
|
+
fetchWalletConnectWallets.getWalletConnectConnector(props),
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
exports.injectedWallets = index.injectedWallets;
|
|
37
|
+
exports.EthWalletConnector = EthWalletConnector.EthWalletConnector;
|
|
38
|
+
exports.INFURA_ID = constants.INFURA_ID;
|
|
39
|
+
exports.EthProviderHelper = ethProviderHelper.EthProviderHelper;
|
|
40
|
+
exports.BloctoInjected = BloctoInjected.BloctoInjected;
|
|
41
|
+
exports.BraveEvm = BraveEvm.BraveEvm;
|
|
42
|
+
exports.Dawn = Dawn.Dawn;
|
|
43
|
+
exports.ExodusEvm = ExodusEvm.ExodusEvm;
|
|
44
|
+
exports.Frame = Frame.Frame;
|
|
45
|
+
exports.GameStop = GameStop.GameStop;
|
|
46
|
+
exports.MetaMask = MetaMask.MetaMask;
|
|
47
|
+
exports.Opera = Opera.Opera;
|
|
48
|
+
exports.PhantomEvm = PhantomEvm.PhantomEvm;
|
|
49
|
+
exports.Trust = Trust.Trust;
|
|
50
|
+
exports.UnknownInjectedWallet = UnknownInjectedWallet.UnknownInjectedWallet;
|
|
51
|
+
exports.Zerion = Zerion.Zerion;
|
|
52
|
+
exports.EthereumWalletConnectors = EthereumWalletConnectors;
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { WalletConnectorConstructor } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
export * from './injected';
|
|
3
|
+
export * from './EthWalletConnector';
|
|
4
|
+
export * from './ethProviderHelper';
|
|
5
|
+
export * from './constants';
|
|
6
|
+
export declare const EthereumWalletConnectors: (props: any) => WalletConnectorConstructor[];
|
package/src/index.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { injectedWallets } from './injected/index.js';
|
|
2
|
+
export { injectedWallets } from './injected/index.js';
|
|
3
|
+
import '@walletconnect/universal-provider';
|
|
4
|
+
import 'ethers';
|
|
5
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
6
|
+
import '@dynamic-labs/wallet-book';
|
|
7
|
+
import '@dynamic-labs/utils';
|
|
8
|
+
export { EthWalletConnector } from './EthWalletConnector.js';
|
|
9
|
+
import '@walletconnect/client';
|
|
10
|
+
import '@walletconnect/ethereum-provider';
|
|
11
|
+
export { INFURA_ID } from './constants.js';
|
|
12
|
+
import { fetchWalletConnectWallets, getWalletConnectConnector } from './walletConnect/fetchWalletConnectWallets.js';
|
|
13
|
+
export { EthProviderHelper } from './ethProviderHelper.js';
|
|
14
|
+
export { BloctoInjected } from './injected/BloctoInjected.js';
|
|
15
|
+
export { BraveEvm } from './injected/BraveEvm.js';
|
|
16
|
+
export { Dawn } from './injected/Dawn.js';
|
|
17
|
+
export { ExodusEvm } from './injected/ExodusEvm.js';
|
|
18
|
+
export { Frame } from './injected/Frame.js';
|
|
19
|
+
export { GameStop } from './injected/GameStop.js';
|
|
20
|
+
export { MetaMask } from './injected/MetaMask.js';
|
|
21
|
+
export { Opera } from './injected/Opera.js';
|
|
22
|
+
export { PhantomEvm } from './injected/PhantomEvm.js';
|
|
23
|
+
export { Trust } from './injected/Trust.js';
|
|
24
|
+
export { UnknownInjectedWallet } from './injected/UnknownInjectedWallet.js';
|
|
25
|
+
export { Zerion } from './injected/Zerion.js';
|
|
26
|
+
|
|
27
|
+
const EthereumWalletConnectors = (props) => [
|
|
28
|
+
...injectedWallets,
|
|
29
|
+
...fetchWalletConnectWallets(props),
|
|
30
|
+
getWalletConnectConnector(props),
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
export { EthereumWalletConnectors };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
6
|
+
|
|
7
|
+
class BloctoInjected extends InjectedWalletBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'bloctoInjected';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.BloctoInjected = BloctoInjected;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
6
|
+
|
|
7
|
+
class BraveEvm extends InjectedWalletBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'BraveEvm';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.BraveEvm = BraveEvm;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
6
|
+
|
|
7
|
+
class Dawn extends InjectedWalletBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'Dawn';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.Dawn = Dawn;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
6
|
+
|
|
7
|
+
class ExodusEvm extends InjectedWalletBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'ExodusEvm';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.ExodusEvm = ExodusEvm;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
6
|
+
|
|
7
|
+
class Frame extends InjectedWalletBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'Frame';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.Frame = Frame;
|