@injectivelabs/wallet-evm 1.15.21-alpha.0 → 1.15.21
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/dist/cjs/strategy/strategy.d.ts +2 -3
- package/dist/cjs/strategy/strategy.js +4 -39
- package/dist/cjs/strategy/utils/index.d.ts +0 -1
- package/dist/cjs/strategy/utils/index.js +1 -3
- package/dist/esm/strategy/strategy.d.ts +2 -3
- package/dist/esm/strategy/strategy.js +7 -42
- package/dist/esm/strategy/utils/index.d.ts +0 -1
- package/dist/esm/strategy/utils/index.js +0 -1
- package/package.json +8 -8
- package/dist/cjs/strategy/utils/rainbow.d.ts +0 -4
- package/dist/cjs/strategy/utils/rainbow.js +0 -49
- package/dist/esm/strategy/utils/rainbow.d.ts +0 -4
- package/dist/esm/strategy/utils/rainbow.js +0 -46
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { TxRaw, TxResponse,
|
|
1
|
+
import { TxRaw, TxResponse, DirectSignResponse, AminoSignResponse } from '@injectivelabs/sdk-ts';
|
|
2
2
|
import { ErrorContext, ThrownException } from '@injectivelabs/exceptions';
|
|
3
|
-
import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions,
|
|
3
|
+
import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions, ConcreteWalletStrategy, ConcreteWalletStrategyArgs, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
|
|
4
4
|
import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
|
|
5
5
|
export declare class EvmWallet extends BaseConcreteStrategy implements ConcreteWalletStrategy {
|
|
6
6
|
wallet?: Wallet;
|
|
7
|
-
evmProviders: Partial<Record<Wallet, BrowserEip1993Provider>>;
|
|
8
7
|
constructor(args: (ConcreteWalletStrategyArgs | ConcreteEthereumWalletStrategyArgs) & {
|
|
9
8
|
wallet: Wallet;
|
|
10
9
|
});
|
|
@@ -10,37 +10,11 @@ const utils_1 = require("@injectivelabs/utils");
|
|
|
10
10
|
const index_js_1 = require("./utils/index.js");
|
|
11
11
|
class EvmWallet extends wallet_base_2.BaseConcreteStrategy {
|
|
12
12
|
wallet;
|
|
13
|
-
evmProviders = {};
|
|
14
13
|
constructor(args) {
|
|
15
14
|
super(args);
|
|
16
15
|
if (!(0, wallet_base_1.isEvmBrowserWallet)(args.wallet)) {
|
|
17
16
|
throw new exceptions_1.WalletException(new Error(`Evm Wallet for ${(0, utils_1.capitalize)(args.wallet)} is not supported.`));
|
|
18
17
|
}
|
|
19
|
-
if (!(0, sdk_ts_1.isServerSide)()) {
|
|
20
|
-
window.addEventListener('eip6963:announceProvider', (announcement) => {
|
|
21
|
-
const event = announcement;
|
|
22
|
-
const walletName = event.detail.info.name.toLowerCase();
|
|
23
|
-
if (walletName === wallet_base_2.Wallet.Metamask.toLowerCase()) {
|
|
24
|
-
this.evmProviders[wallet_base_2.Wallet.Metamask] = event.detail.provider;
|
|
25
|
-
}
|
|
26
|
-
if (walletName === wallet_base_2.Wallet.Rainbow.toLowerCase()) {
|
|
27
|
-
this.evmProviders[wallet_base_2.Wallet.Rainbow] = event.detail.provider;
|
|
28
|
-
}
|
|
29
|
-
if (walletName === wallet_base_2.Wallet.Phantom.toLowerCase()) {
|
|
30
|
-
this.evmProviders[wallet_base_2.Wallet.Phantom] = event.detail.provider;
|
|
31
|
-
}
|
|
32
|
-
if (walletName === wallet_base_2.Wallet.OkxWallet.toLowerCase()) {
|
|
33
|
-
this.evmProviders[wallet_base_2.Wallet.OkxWallet] = event.detail.provider;
|
|
34
|
-
}
|
|
35
|
-
if (walletName === wallet_base_2.Wallet.BitGet.toLowerCase()) {
|
|
36
|
-
this.evmProviders[wallet_base_2.Wallet.BitGet] = event.detail.provider;
|
|
37
|
-
}
|
|
38
|
-
if (walletName === wallet_base_2.Wallet.TrustWallet.toLowerCase()) {
|
|
39
|
-
this.evmProviders[wallet_base_2.Wallet.TrustWallet] = event.detail.provider;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
window.dispatchEvent(new Event('eip6963:requestProvider'));
|
|
43
|
-
}
|
|
44
18
|
this.wallet = args.wallet;
|
|
45
19
|
}
|
|
46
20
|
EvmWalletException(error, context) {
|
|
@@ -59,9 +33,6 @@ class EvmWallet extends wallet_base_2.BaseConcreteStrategy {
|
|
|
59
33
|
if (this.wallet === wallet_base_2.Wallet.TrustWallet) {
|
|
60
34
|
return new exceptions_1.TrustWalletException(error, context);
|
|
61
35
|
}
|
|
62
|
-
if (this.wallet === wallet_base_2.Wallet.Rainbow) {
|
|
63
|
-
return new exceptions_1.RainbowWalletException(error, context);
|
|
64
|
-
}
|
|
65
36
|
return new exceptions_1.WalletException(error, context);
|
|
66
37
|
}
|
|
67
38
|
async getWalletDeviceType() {
|
|
@@ -244,11 +215,7 @@ class EvmWallet extends wallet_base_2.BaseConcreteStrategy {
|
|
|
244
215
|
ethereum.on('accountsChanged', callback);
|
|
245
216
|
}
|
|
246
217
|
async getEthereum() {
|
|
247
|
-
const
|
|
248
|
-
if (evmProvider) {
|
|
249
|
-
return evmProvider;
|
|
250
|
-
}
|
|
251
|
-
const backUpProvider = this.wallet === wallet_base_2.Wallet.Metamask
|
|
218
|
+
const provider = this.wallet === wallet_base_2.Wallet.Metamask
|
|
252
219
|
? await (0, index_js_1.getMetamaskProvider)()
|
|
253
220
|
: this.wallet === wallet_base_2.Wallet.Phantom
|
|
254
221
|
? await (0, index_js_1.getPhantomProvider)()
|
|
@@ -258,17 +225,15 @@ class EvmWallet extends wallet_base_2.BaseConcreteStrategy {
|
|
|
258
225
|
? await (0, index_js_1.getOkxWalletProvider)()
|
|
259
226
|
: this.wallet === wallet_base_2.Wallet.TrustWallet
|
|
260
227
|
? await (0, index_js_1.getTrustWalletProvider)()
|
|
261
|
-
:
|
|
262
|
-
|
|
263
|
-
: undefined;
|
|
264
|
-
if (!backUpProvider) {
|
|
228
|
+
: undefined;
|
|
229
|
+
if (!provider) {
|
|
265
230
|
throw this.EvmWalletException(new Error(`Please install the ${this.wallet} wallet extension.`), {
|
|
266
231
|
code: exceptions_1.UnspecifiedErrorCode,
|
|
267
232
|
type: exceptions_1.ErrorType.WalletNotInstalledError,
|
|
268
233
|
contextModule: wallet_base_2.WalletAction.GetAccounts,
|
|
269
234
|
});
|
|
270
235
|
}
|
|
271
|
-
return
|
|
236
|
+
return provider;
|
|
272
237
|
}
|
|
273
238
|
}
|
|
274
239
|
exports.EvmWallet = EvmWallet;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { getOkxWalletProvider } from './Okx.js';
|
|
2
2
|
export { getBitGetProvider } from './bitget.js';
|
|
3
3
|
export { getPhantomProvider } from './phantom.js';
|
|
4
|
-
export { getRainbowProvider } from './rainbow.js';
|
|
5
4
|
export { getMetamaskProvider } from './metamask.js';
|
|
6
5
|
export { getTrustWalletProvider } from './trustWallet.js';
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTrustWalletProvider = exports.getMetamaskProvider = exports.
|
|
3
|
+
exports.getTrustWalletProvider = exports.getMetamaskProvider = exports.getPhantomProvider = exports.getBitGetProvider = exports.getOkxWalletProvider = void 0;
|
|
4
4
|
var Okx_js_1 = require("./Okx.js");
|
|
5
5
|
Object.defineProperty(exports, "getOkxWalletProvider", { enumerable: true, get: function () { return Okx_js_1.getOkxWalletProvider; } });
|
|
6
6
|
var bitget_js_1 = require("./bitget.js");
|
|
7
7
|
Object.defineProperty(exports, "getBitGetProvider", { enumerable: true, get: function () { return bitget_js_1.getBitGetProvider; } });
|
|
8
8
|
var phantom_js_1 = require("./phantom.js");
|
|
9
9
|
Object.defineProperty(exports, "getPhantomProvider", { enumerable: true, get: function () { return phantom_js_1.getPhantomProvider; } });
|
|
10
|
-
var rainbow_js_1 = require("./rainbow.js");
|
|
11
|
-
Object.defineProperty(exports, "getRainbowProvider", { enumerable: true, get: function () { return rainbow_js_1.getRainbowProvider; } });
|
|
12
10
|
var metamask_js_1 = require("./metamask.js");
|
|
13
11
|
Object.defineProperty(exports, "getMetamaskProvider", { enumerable: true, get: function () { return metamask_js_1.getMetamaskProvider; } });
|
|
14
12
|
var trustWallet_js_1 = require("./trustWallet.js");
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { TxRaw, TxResponse,
|
|
1
|
+
import { TxRaw, TxResponse, DirectSignResponse, AminoSignResponse } from '@injectivelabs/sdk-ts';
|
|
2
2
|
import { ErrorContext, ThrownException } from '@injectivelabs/exceptions';
|
|
3
|
-
import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions,
|
|
3
|
+
import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions, ConcreteWalletStrategy, ConcreteWalletStrategyArgs, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
|
|
4
4
|
import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
|
|
5
5
|
export declare class EvmWallet extends BaseConcreteStrategy implements ConcreteWalletStrategy {
|
|
6
6
|
wallet?: Wallet;
|
|
7
|
-
evmProviders: Partial<Record<Wallet, BrowserEip1993Provider>>;
|
|
8
7
|
constructor(args: (ConcreteWalletStrategyArgs | ConcreteEthereumWalletStrategyArgs) & {
|
|
9
8
|
wallet: Wallet;
|
|
10
9
|
});
|
|
@@ -1,43 +1,17 @@
|
|
|
1
1
|
/* eslint-disable class-methods-use-this */
|
|
2
2
|
import { isEvmBrowserWallet } from '@injectivelabs/wallet-base';
|
|
3
|
-
import { toUtf8, TxGrpcApi,
|
|
4
|
-
import { ErrorType, WalletException, BitGetException, MetamaskException, OkxWalletException, UnspecifiedErrorCode, TransactionException, TrustWalletException,
|
|
3
|
+
import { toUtf8, TxGrpcApi, } from '@injectivelabs/sdk-ts';
|
|
4
|
+
import { ErrorType, WalletException, BitGetException, MetamaskException, OkxWalletException, UnspecifiedErrorCode, TransactionException, TrustWalletException, } from '@injectivelabs/exceptions';
|
|
5
5
|
import { Wallet, WalletAction, WalletDeviceType, WalletEventListener, BaseConcreteStrategy, } from '@injectivelabs/wallet-base';
|
|
6
6
|
import { sleep, capitalize } from '@injectivelabs/utils';
|
|
7
|
-
import { getBitGetProvider, getPhantomProvider,
|
|
7
|
+
import { getBitGetProvider, getPhantomProvider, getMetamaskProvider, getOkxWalletProvider, getTrustWalletProvider, } from './utils/index.js';
|
|
8
8
|
export class EvmWallet extends BaseConcreteStrategy {
|
|
9
9
|
wallet;
|
|
10
|
-
evmProviders = {};
|
|
11
10
|
constructor(args) {
|
|
12
11
|
super(args);
|
|
13
12
|
if (!isEvmBrowserWallet(args.wallet)) {
|
|
14
13
|
throw new WalletException(new Error(`Evm Wallet for ${capitalize(args.wallet)} is not supported.`));
|
|
15
14
|
}
|
|
16
|
-
if (!isServerSide()) {
|
|
17
|
-
window.addEventListener('eip6963:announceProvider', (announcement) => {
|
|
18
|
-
const event = announcement;
|
|
19
|
-
const walletName = event.detail.info.name.toLowerCase();
|
|
20
|
-
if (walletName === Wallet.Metamask.toLowerCase()) {
|
|
21
|
-
this.evmProviders[Wallet.Metamask] = event.detail.provider;
|
|
22
|
-
}
|
|
23
|
-
if (walletName === Wallet.Rainbow.toLowerCase()) {
|
|
24
|
-
this.evmProviders[Wallet.Rainbow] = event.detail.provider;
|
|
25
|
-
}
|
|
26
|
-
if (walletName === Wallet.Phantom.toLowerCase()) {
|
|
27
|
-
this.evmProviders[Wallet.Phantom] = event.detail.provider;
|
|
28
|
-
}
|
|
29
|
-
if (walletName === Wallet.OkxWallet.toLowerCase()) {
|
|
30
|
-
this.evmProviders[Wallet.OkxWallet] = event.detail.provider;
|
|
31
|
-
}
|
|
32
|
-
if (walletName === Wallet.BitGet.toLowerCase()) {
|
|
33
|
-
this.evmProviders[Wallet.BitGet] = event.detail.provider;
|
|
34
|
-
}
|
|
35
|
-
if (walletName === Wallet.TrustWallet.toLowerCase()) {
|
|
36
|
-
this.evmProviders[Wallet.TrustWallet] = event.detail.provider;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
window.dispatchEvent(new Event('eip6963:requestProvider'));
|
|
40
|
-
}
|
|
41
15
|
this.wallet = args.wallet;
|
|
42
16
|
}
|
|
43
17
|
EvmWalletException(error, context) {
|
|
@@ -56,9 +30,6 @@ export class EvmWallet extends BaseConcreteStrategy {
|
|
|
56
30
|
if (this.wallet === Wallet.TrustWallet) {
|
|
57
31
|
return new TrustWalletException(error, context);
|
|
58
32
|
}
|
|
59
|
-
if (this.wallet === Wallet.Rainbow) {
|
|
60
|
-
return new RainbowWalletException(error, context);
|
|
61
|
-
}
|
|
62
33
|
return new WalletException(error, context);
|
|
63
34
|
}
|
|
64
35
|
async getWalletDeviceType() {
|
|
@@ -241,11 +212,7 @@ export class EvmWallet extends BaseConcreteStrategy {
|
|
|
241
212
|
ethereum.on('accountsChanged', callback);
|
|
242
213
|
}
|
|
243
214
|
async getEthereum() {
|
|
244
|
-
const
|
|
245
|
-
if (evmProvider) {
|
|
246
|
-
return evmProvider;
|
|
247
|
-
}
|
|
248
|
-
const backUpProvider = this.wallet === Wallet.Metamask
|
|
215
|
+
const provider = this.wallet === Wallet.Metamask
|
|
249
216
|
? await getMetamaskProvider()
|
|
250
217
|
: this.wallet === Wallet.Phantom
|
|
251
218
|
? await getPhantomProvider()
|
|
@@ -255,16 +222,14 @@ export class EvmWallet extends BaseConcreteStrategy {
|
|
|
255
222
|
? await getOkxWalletProvider()
|
|
256
223
|
: this.wallet === Wallet.TrustWallet
|
|
257
224
|
? await getTrustWalletProvider()
|
|
258
|
-
:
|
|
259
|
-
|
|
260
|
-
: undefined;
|
|
261
|
-
if (!backUpProvider) {
|
|
225
|
+
: undefined;
|
|
226
|
+
if (!provider) {
|
|
262
227
|
throw this.EvmWalletException(new Error(`Please install the ${this.wallet} wallet extension.`), {
|
|
263
228
|
code: UnspecifiedErrorCode,
|
|
264
229
|
type: ErrorType.WalletNotInstalledError,
|
|
265
230
|
contextModule: WalletAction.GetAccounts,
|
|
266
231
|
});
|
|
267
232
|
}
|
|
268
|
-
return
|
|
233
|
+
return provider;
|
|
269
234
|
}
|
|
270
235
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { getOkxWalletProvider } from './Okx.js';
|
|
2
2
|
export { getBitGetProvider } from './bitget.js';
|
|
3
3
|
export { getPhantomProvider } from './phantom.js';
|
|
4
|
-
export { getRainbowProvider } from './rainbow.js';
|
|
5
4
|
export { getMetamaskProvider } from './metamask.js';
|
|
6
5
|
export { getTrustWalletProvider } from './trustWallet.js';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { getOkxWalletProvider } from './Okx.js';
|
|
2
2
|
export { getBitGetProvider } from './bitget.js';
|
|
3
3
|
export { getPhantomProvider } from './phantom.js';
|
|
4
|
-
export { getRainbowProvider } from './rainbow.js';
|
|
5
4
|
export { getMetamaskProvider } from './metamask.js';
|
|
6
5
|
export { getTrustWalletProvider } from './trustWallet.js';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@injectivelabs/wallet-evm",
|
|
3
3
|
"description": "EVM wallet strategies for use with @injectivelabs/wallet-core.",
|
|
4
|
-
"version": "1.15.21
|
|
4
|
+
"version": "1.15.21",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": {
|
|
@@ -56,17 +56,17 @@
|
|
|
56
56
|
"start": "node dist/index.js"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@injectivelabs/exceptions": "^1.15.18
|
|
60
|
-
"@injectivelabs/networks": "^1.15.19
|
|
61
|
-
"@injectivelabs/sdk-ts": "^1.15.21
|
|
62
|
-
"@injectivelabs/ts-types": "^1.15.19
|
|
63
|
-
"@injectivelabs/utils": "^1.15.19
|
|
64
|
-
"@injectivelabs/wallet-base": "^1.15.21
|
|
59
|
+
"@injectivelabs/exceptions": "^1.15.18",
|
|
60
|
+
"@injectivelabs/networks": "^1.15.19",
|
|
61
|
+
"@injectivelabs/sdk-ts": "^1.15.21",
|
|
62
|
+
"@injectivelabs/ts-types": "^1.15.19",
|
|
63
|
+
"@injectivelabs/utils": "^1.15.19",
|
|
64
|
+
"@injectivelabs/wallet-base": "^1.15.21"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"shx": "^0.3.3"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "2c15bac69ae75a5e7036cc64469a720452b414ac",
|
|
70
70
|
"typedoc": {
|
|
71
71
|
"entryPoint": "./src/index.ts",
|
|
72
72
|
"readmeFile": "./README.md",
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRainbowProvider = getRainbowProvider;
|
|
4
|
-
const sdk_ts_1 = require("@injectivelabs/sdk-ts");
|
|
5
|
-
const $window = ((0, sdk_ts_1.isServerSide)()
|
|
6
|
-
? {}
|
|
7
|
-
: window);
|
|
8
|
-
async function getRainbowProvider({ timeout } = { timeout: 3000 }) {
|
|
9
|
-
const provider = getRainbowWalletFromWindow();
|
|
10
|
-
if (provider) {
|
|
11
|
-
return provider;
|
|
12
|
-
}
|
|
13
|
-
return listenForRainbowWalletInitialized({
|
|
14
|
-
timeout,
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
async function listenForRainbowWalletInitialized({ timeout } = { timeout: 3000 }) {
|
|
18
|
-
return new Promise((resolve) => {
|
|
19
|
-
const handleInitialization = () => {
|
|
20
|
-
resolve(getRainbowWalletFromWindow());
|
|
21
|
-
};
|
|
22
|
-
$window.addEventListener('rainbow#initialized', handleInitialization, {
|
|
23
|
-
once: true,
|
|
24
|
-
});
|
|
25
|
-
setTimeout(() => {
|
|
26
|
-
$window.removeEventListener('rainbow#initialized', handleInitialization);
|
|
27
|
-
resolve(null);
|
|
28
|
-
}, timeout);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
function getRainbowWalletFromWindow() {
|
|
32
|
-
const injectedProviderExist = typeof window !== 'undefined' &&
|
|
33
|
-
(typeof $window.ethereum !== 'undefined' ||
|
|
34
|
-
typeof $window.rainbow !== 'undefined');
|
|
35
|
-
// No injected providers exist.
|
|
36
|
-
if (!injectedProviderExist) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if ($window.rainbow) {
|
|
40
|
-
return $window.rainbow;
|
|
41
|
-
}
|
|
42
|
-
if ($window.ethereum.isRainbow) {
|
|
43
|
-
return $window.ethereum;
|
|
44
|
-
}
|
|
45
|
-
if ($window.providers) {
|
|
46
|
-
return $window.providers.find((p) => p.isRainbow);
|
|
47
|
-
}
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { isServerSide } from '@injectivelabs/sdk-ts';
|
|
2
|
-
const $window = (isServerSide()
|
|
3
|
-
? {}
|
|
4
|
-
: window);
|
|
5
|
-
export async function getRainbowProvider({ timeout } = { timeout: 3000 }) {
|
|
6
|
-
const provider = getRainbowWalletFromWindow();
|
|
7
|
-
if (provider) {
|
|
8
|
-
return provider;
|
|
9
|
-
}
|
|
10
|
-
return listenForRainbowWalletInitialized({
|
|
11
|
-
timeout,
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
async function listenForRainbowWalletInitialized({ timeout } = { timeout: 3000 }) {
|
|
15
|
-
return new Promise((resolve) => {
|
|
16
|
-
const handleInitialization = () => {
|
|
17
|
-
resolve(getRainbowWalletFromWindow());
|
|
18
|
-
};
|
|
19
|
-
$window.addEventListener('rainbow#initialized', handleInitialization, {
|
|
20
|
-
once: true,
|
|
21
|
-
});
|
|
22
|
-
setTimeout(() => {
|
|
23
|
-
$window.removeEventListener('rainbow#initialized', handleInitialization);
|
|
24
|
-
resolve(null);
|
|
25
|
-
}, timeout);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function getRainbowWalletFromWindow() {
|
|
29
|
-
const injectedProviderExist = typeof window !== 'undefined' &&
|
|
30
|
-
(typeof $window.ethereum !== 'undefined' ||
|
|
31
|
-
typeof $window.rainbow !== 'undefined');
|
|
32
|
-
// No injected providers exist.
|
|
33
|
-
if (!injectedProviderExist) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if ($window.rainbow) {
|
|
37
|
-
return $window.rainbow;
|
|
38
|
-
}
|
|
39
|
-
if ($window.ethereum.isRainbow) {
|
|
40
|
-
return $window.ethereum;
|
|
41
|
-
}
|
|
42
|
-
if ($window.providers) {
|
|
43
|
-
return $window.providers.find((p) => p.isRainbow);
|
|
44
|
-
}
|
|
45
|
-
return;
|
|
46
|
-
}
|