@injectivelabs/wallet-evm 1.16.2-alpha.1 → 1.16.2
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/README.md +1 -1
- package/dist/cjs/strategy/strategy.d.ts +4 -4
- package/dist/cjs/strategy/strategy.js +11 -16
- package/dist/cjs/strategy/utils/index.d.ts +1 -2
- package/dist/cjs/strategy/utils/index.js +3 -5
- package/dist/cjs/utils/index.d.ts +2 -2
- package/dist/cjs/utils/index.js +0 -4
- package/dist/esm/strategy/strategy.d.ts +4 -4
- package/dist/esm/strategy/strategy.js +12 -17
- package/dist/esm/strategy/utils/index.d.ts +1 -2
- package/dist/esm/strategy/utils/index.js +1 -2
- package/dist/esm/utils/index.d.ts +2 -2
- package/dist/esm/utils/index.js +0 -4
- package/package.json +10 -10
- package/dist/cjs/strategy/utils/rabby.d.ts +0 -4
- package/dist/cjs/strategy/utils/rabby.js +0 -44
- package/dist/esm/strategy/utils/rabby.d.ts +0 -4
- package/dist/esm/strategy/utils/rabby.js +0 -41
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { TxRaw, TxResponse, AminoSignResponse, DirectSignResponse } from '@injectivelabs/sdk-ts';
|
|
2
2
|
import { ErrorContext, ThrownException } from '@injectivelabs/exceptions';
|
|
3
|
-
import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions, BrowserEip1993Provider, ConcreteWalletStrategy, ConcreteWalletStrategyArgs,
|
|
4
|
-
import { AccountAddress,
|
|
3
|
+
import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions, BrowserEip1993Provider, ConcreteWalletStrategy, ConcreteWalletStrategyArgs, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
|
|
4
|
+
import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
|
|
5
5
|
export declare class EvmWallet extends BaseConcreteStrategy implements ConcreteWalletStrategy {
|
|
6
6
|
wallet?: Wallet;
|
|
7
7
|
evmProviders: Partial<Record<Wallet, BrowserEip1993Provider>>;
|
|
8
|
-
constructor(args: (ConcreteWalletStrategyArgs |
|
|
8
|
+
constructor(args: (ConcreteWalletStrategyArgs | ConcreteEthereumWalletStrategyArgs) & {
|
|
9
9
|
wallet: Wallet;
|
|
10
10
|
});
|
|
11
11
|
EvmWalletException(error: Error, context?: ErrorContext): ThrownException;
|
|
@@ -16,7 +16,7 @@ export declare class EvmWallet extends BaseConcreteStrategy implements ConcreteW
|
|
|
16
16
|
getSessionOrConfirm(address: AccountAddress): Promise<string>;
|
|
17
17
|
sendEvmTransaction(transaction: unknown, _options: {
|
|
18
18
|
address: AccountAddress;
|
|
19
|
-
|
|
19
|
+
ethereumChainId: EthereumChainId;
|
|
20
20
|
}): Promise<string>;
|
|
21
21
|
sendTransaction(transaction: TxRaw, options: SendTransactionOptions): Promise<TxResponse>;
|
|
22
22
|
signEip712TypedData(eip712json: string, address: AccountAddress): Promise<string>;
|
|
@@ -23,9 +23,6 @@ class EvmWallet extends wallet_base_2.BaseConcreteStrategy {
|
|
|
23
23
|
if (walletName === wallet_base_2.Wallet.Metamask.toLowerCase()) {
|
|
24
24
|
this.evmProviders[wallet_base_2.Wallet.Metamask] = event.detail.provider;
|
|
25
25
|
}
|
|
26
|
-
if (walletName === wallet_base_2.Wallet.Rabby.toLowerCase()) {
|
|
27
|
-
this.evmProviders[wallet_base_2.Wallet.Rabby] = event.detail.provider;
|
|
28
|
-
}
|
|
29
26
|
if (walletName === wallet_base_2.Wallet.Rainbow.toLowerCase()) {
|
|
30
27
|
this.evmProviders[wallet_base_2.Wallet.Rainbow] = event.detail.provider;
|
|
31
28
|
}
|
|
@@ -253,19 +250,17 @@ class EvmWallet extends wallet_base_2.BaseConcreteStrategy {
|
|
|
253
250
|
}
|
|
254
251
|
const backUpProvider = this.wallet === wallet_base_2.Wallet.Metamask
|
|
255
252
|
? await (0, index_js_1.getMetamaskProvider)()
|
|
256
|
-
: this.wallet === wallet_base_2.Wallet.
|
|
257
|
-
? await (0, index_js_1.
|
|
258
|
-
: this.wallet === wallet_base_2.Wallet.
|
|
259
|
-
? await (0, index_js_1.
|
|
260
|
-
: this.wallet === wallet_base_2.Wallet.
|
|
261
|
-
? await (0, index_js_1.
|
|
262
|
-
: this.wallet === wallet_base_2.Wallet.
|
|
263
|
-
? await (0, index_js_1.
|
|
264
|
-
: this.wallet === wallet_base_2.Wallet.
|
|
265
|
-
? await (0, index_js_1.
|
|
266
|
-
:
|
|
267
|
-
? await (0, index_js_1.getRainbowProvider)()
|
|
268
|
-
: undefined;
|
|
253
|
+
: this.wallet === wallet_base_2.Wallet.Phantom
|
|
254
|
+
? await (0, index_js_1.getPhantomProvider)()
|
|
255
|
+
: this.wallet === wallet_base_2.Wallet.BitGet
|
|
256
|
+
? await (0, index_js_1.getBitGetProvider)()
|
|
257
|
+
: this.wallet === wallet_base_2.Wallet.OkxWallet
|
|
258
|
+
? await (0, index_js_1.getOkxWalletProvider)()
|
|
259
|
+
: this.wallet === wallet_base_2.Wallet.TrustWallet
|
|
260
|
+
? await (0, index_js_1.getTrustWalletProvider)()
|
|
261
|
+
: this.wallet === wallet_base_2.Wallet.Rainbow
|
|
262
|
+
? await (0, index_js_1.getRainbowProvider)()
|
|
263
|
+
: undefined;
|
|
269
264
|
if (!backUpProvider) {
|
|
270
265
|
throw this.EvmWalletException(new Error(`Please install the ${this.wallet} wallet extension.`), {
|
|
271
266
|
code: exceptions_1.UnspecifiedErrorCode,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export { getRabbyProvider } from './rabby.js';
|
|
2
|
-
export { getBitGetProvider } from './bitget.js';
|
|
3
1
|
export { getOkxWalletProvider } from './Okx.js';
|
|
2
|
+
export { getBitGetProvider } from './bitget.js';
|
|
4
3
|
export { getPhantomProvider } from './phantom.js';
|
|
5
4
|
export { getRainbowProvider } from './rainbow.js';
|
|
6
5
|
export { getMetamaskProvider } from './metamask.js';
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTrustWalletProvider = exports.getMetamaskProvider = exports.getRainbowProvider = exports.getPhantomProvider = exports.
|
|
4
|
-
var rabby_js_1 = require("./rabby.js");
|
|
5
|
-
Object.defineProperty(exports, "getRabbyProvider", { enumerable: true, get: function () { return rabby_js_1.getRabbyProvider; } });
|
|
6
|
-
var bitget_js_1 = require("./bitget.js");
|
|
7
|
-
Object.defineProperty(exports, "getBitGetProvider", { enumerable: true, get: function () { return bitget_js_1.getBitGetProvider; } });
|
|
3
|
+
exports.getTrustWalletProvider = exports.getMetamaskProvider = exports.getRainbowProvider = exports.getPhantomProvider = exports.getBitGetProvider = exports.getOkxWalletProvider = void 0;
|
|
8
4
|
var Okx_js_1 = require("./Okx.js");
|
|
9
5
|
Object.defineProperty(exports, "getOkxWalletProvider", { enumerable: true, get: function () { return Okx_js_1.getOkxWalletProvider; } });
|
|
6
|
+
var bitget_js_1 = require("./bitget.js");
|
|
7
|
+
Object.defineProperty(exports, "getBitGetProvider", { enumerable: true, get: function () { return bitget_js_1.getBitGetProvider; } });
|
|
10
8
|
var phantom_js_1 = require("./phantom.js");
|
|
11
9
|
Object.defineProperty(exports, "getPhantomProvider", { enumerable: true, get: function () { return phantom_js_1.getPhantomProvider; } });
|
|
12
10
|
var rainbow_js_1 = require("./rainbow.js");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Wallet, BrowserEip1993Provider } from '@injectivelabs/wallet-base';
|
|
2
|
-
import {
|
|
2
|
+
import { EthereumChainId } from '@injectivelabs/ts-types';
|
|
3
3
|
export declare const getEvmProvider: (wallet: Wallet) => Promise<BrowserEip1993Provider>;
|
|
4
|
-
export declare const updateEvmNetwork: (wallet: Wallet, chainId:
|
|
4
|
+
export declare const updateEvmNetwork: (wallet: Wallet, chainId: EthereumChainId) => Promise<unknown>;
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -4,7 +4,6 @@ exports.updateEvmNetwork = exports.getEvmProvider = void 0;
|
|
|
4
4
|
const wallet_base_1 = require("@injectivelabs/wallet-base");
|
|
5
5
|
const utils_1 = require("@injectivelabs/utils");
|
|
6
6
|
const exceptions_1 = require("@injectivelabs/exceptions");
|
|
7
|
-
const rabby_js_1 = require("../strategy/utils/rabby.js");
|
|
8
7
|
const Okx_js_1 = require("../strategy/utils/Okx.js");
|
|
9
8
|
const bitget_js_1 = require("../strategy/utils/bitget.js");
|
|
10
9
|
const phantom_js_1 = require("../strategy/utils/phantom.js");
|
|
@@ -19,9 +18,6 @@ const getEvmProvider = async (wallet) => {
|
|
|
19
18
|
if (wallet === wallet_base_1.Wallet.Metamask) {
|
|
20
19
|
provider = (await (0, metamask_js_1.getMetamaskProvider)());
|
|
21
20
|
}
|
|
22
|
-
if (wallet === wallet_base_1.Wallet.Rabby) {
|
|
23
|
-
provider = (await (0, rabby_js_1.getRabbyProvider)());
|
|
24
|
-
}
|
|
25
21
|
if (wallet === wallet_base_1.Wallet.BitGet) {
|
|
26
22
|
provider = (await (0, bitget_js_1.getBitGetProvider)());
|
|
27
23
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { TxRaw, TxResponse, AminoSignResponse, DirectSignResponse } from '@injectivelabs/sdk-ts';
|
|
2
2
|
import { ErrorContext, ThrownException } from '@injectivelabs/exceptions';
|
|
3
|
-
import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions, BrowserEip1993Provider, ConcreteWalletStrategy, ConcreteWalletStrategyArgs,
|
|
4
|
-
import { AccountAddress,
|
|
3
|
+
import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions, BrowserEip1993Provider, ConcreteWalletStrategy, ConcreteWalletStrategyArgs, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
|
|
4
|
+
import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
|
|
5
5
|
export declare class EvmWallet extends BaseConcreteStrategy implements ConcreteWalletStrategy {
|
|
6
6
|
wallet?: Wallet;
|
|
7
7
|
evmProviders: Partial<Record<Wallet, BrowserEip1993Provider>>;
|
|
8
|
-
constructor(args: (ConcreteWalletStrategyArgs |
|
|
8
|
+
constructor(args: (ConcreteWalletStrategyArgs | ConcreteEthereumWalletStrategyArgs) & {
|
|
9
9
|
wallet: Wallet;
|
|
10
10
|
});
|
|
11
11
|
EvmWalletException(error: Error, context?: ErrorContext): ThrownException;
|
|
@@ -16,7 +16,7 @@ export declare class EvmWallet extends BaseConcreteStrategy implements ConcreteW
|
|
|
16
16
|
getSessionOrConfirm(address: AccountAddress): Promise<string>;
|
|
17
17
|
sendEvmTransaction(transaction: unknown, _options: {
|
|
18
18
|
address: AccountAddress;
|
|
19
|
-
|
|
19
|
+
ethereumChainId: EthereumChainId;
|
|
20
20
|
}): Promise<string>;
|
|
21
21
|
sendTransaction(transaction: TxRaw, options: SendTransactionOptions): Promise<TxResponse>;
|
|
22
22
|
signEip712TypedData(eip712json: string, address: AccountAddress): Promise<string>;
|
|
@@ -4,7 +4,7 @@ import { toUtf8, TxGrpcApi, isServerSide, } from '@injectivelabs/sdk-ts';
|
|
|
4
4
|
import { ErrorType, WalletException, BitGetException, MetamaskException, OkxWalletException, UnspecifiedErrorCode, TransactionException, TrustWalletException, RainbowWalletException, } 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 {
|
|
7
|
+
import { getBitGetProvider, getPhantomProvider, getRainbowProvider, getMetamaskProvider, getOkxWalletProvider, getTrustWalletProvider, } from './utils/index.js';
|
|
8
8
|
export class EvmWallet extends BaseConcreteStrategy {
|
|
9
9
|
wallet;
|
|
10
10
|
evmProviders = {};
|
|
@@ -20,9 +20,6 @@ export class EvmWallet extends BaseConcreteStrategy {
|
|
|
20
20
|
if (walletName === Wallet.Metamask.toLowerCase()) {
|
|
21
21
|
this.evmProviders[Wallet.Metamask] = event.detail.provider;
|
|
22
22
|
}
|
|
23
|
-
if (walletName === Wallet.Rabby.toLowerCase()) {
|
|
24
|
-
this.evmProviders[Wallet.Rabby] = event.detail.provider;
|
|
25
|
-
}
|
|
26
23
|
if (walletName === Wallet.Rainbow.toLowerCase()) {
|
|
27
24
|
this.evmProviders[Wallet.Rainbow] = event.detail.provider;
|
|
28
25
|
}
|
|
@@ -250,19 +247,17 @@ export class EvmWallet extends BaseConcreteStrategy {
|
|
|
250
247
|
}
|
|
251
248
|
const backUpProvider = this.wallet === Wallet.Metamask
|
|
252
249
|
? await getMetamaskProvider()
|
|
253
|
-
: this.wallet === Wallet.
|
|
254
|
-
? await
|
|
255
|
-
: this.wallet === Wallet.
|
|
256
|
-
? await
|
|
257
|
-
: this.wallet === Wallet.
|
|
258
|
-
? await
|
|
259
|
-
: this.wallet === Wallet.
|
|
260
|
-
? await
|
|
261
|
-
: this.wallet === Wallet.
|
|
262
|
-
? await
|
|
263
|
-
:
|
|
264
|
-
? await getRainbowProvider()
|
|
265
|
-
: undefined;
|
|
250
|
+
: this.wallet === Wallet.Phantom
|
|
251
|
+
? await getPhantomProvider()
|
|
252
|
+
: this.wallet === Wallet.BitGet
|
|
253
|
+
? await getBitGetProvider()
|
|
254
|
+
: this.wallet === Wallet.OkxWallet
|
|
255
|
+
? await getOkxWalletProvider()
|
|
256
|
+
: this.wallet === Wallet.TrustWallet
|
|
257
|
+
? await getTrustWalletProvider()
|
|
258
|
+
: this.wallet === Wallet.Rainbow
|
|
259
|
+
? await getRainbowProvider()
|
|
260
|
+
: undefined;
|
|
266
261
|
if (!backUpProvider) {
|
|
267
262
|
throw this.EvmWalletException(new Error(`Please install the ${this.wallet} wallet extension.`), {
|
|
268
263
|
code: UnspecifiedErrorCode,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export { getRabbyProvider } from './rabby.js';
|
|
2
|
-
export { getBitGetProvider } from './bitget.js';
|
|
3
1
|
export { getOkxWalletProvider } from './Okx.js';
|
|
2
|
+
export { getBitGetProvider } from './bitget.js';
|
|
4
3
|
export { getPhantomProvider } from './phantom.js';
|
|
5
4
|
export { getRainbowProvider } from './rainbow.js';
|
|
6
5
|
export { getMetamaskProvider } from './metamask.js';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export { getRabbyProvider } from './rabby.js';
|
|
2
|
-
export { getBitGetProvider } from './bitget.js';
|
|
3
1
|
export { getOkxWalletProvider } from './Okx.js';
|
|
2
|
+
export { getBitGetProvider } from './bitget.js';
|
|
4
3
|
export { getPhantomProvider } from './phantom.js';
|
|
5
4
|
export { getRainbowProvider } from './rainbow.js';
|
|
6
5
|
export { getMetamaskProvider } from './metamask.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Wallet, BrowserEip1993Provider } from '@injectivelabs/wallet-base';
|
|
2
|
-
import {
|
|
2
|
+
import { EthereumChainId } from '@injectivelabs/ts-types';
|
|
3
3
|
export declare const getEvmProvider: (wallet: Wallet) => Promise<BrowserEip1993Provider>;
|
|
4
|
-
export declare const updateEvmNetwork: (wallet: Wallet, chainId:
|
|
4
|
+
export declare const updateEvmNetwork: (wallet: Wallet, chainId: EthereumChainId) => Promise<unknown>;
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Wallet, isEvmBrowserWallet, } from '@injectivelabs/wallet-base';
|
|
2
2
|
import { capitalize } from '@injectivelabs/utils';
|
|
3
3
|
import { WalletException } from '@injectivelabs/exceptions';
|
|
4
|
-
import { getRabbyProvider } from '../strategy/utils/rabby.js';
|
|
5
4
|
import { getOkxWalletProvider } from '../strategy/utils/Okx.js';
|
|
6
5
|
import { getBitGetProvider } from '../strategy/utils/bitget.js';
|
|
7
6
|
import { getPhantomProvider } from '../strategy/utils/phantom.js';
|
|
@@ -16,9 +15,6 @@ export const getEvmProvider = async (wallet) => {
|
|
|
16
15
|
if (wallet === Wallet.Metamask) {
|
|
17
16
|
provider = (await getMetamaskProvider());
|
|
18
17
|
}
|
|
19
|
-
if (wallet === Wallet.Rabby) {
|
|
20
|
-
provider = (await getRabbyProvider());
|
|
21
|
-
}
|
|
22
18
|
if (wallet === Wallet.BitGet) {
|
|
23
19
|
provider = (await getBitGetProvider());
|
|
24
20
|
}
|
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.16.2
|
|
4
|
+
"version": "1.16.2",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": {
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
|
-
"build": "
|
|
44
|
+
"build": "yarn build:cjs && yarn build:esm && yarn build:post",
|
|
45
45
|
"build:cjs": "tsc --build --force tsconfig.build.json",
|
|
46
46
|
"build:esm": "tsc --build --force tsconfig.build.esm.json",
|
|
47
|
-
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json &&
|
|
47
|
+
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post",
|
|
48
48
|
"build:post": "shx cp ../../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../../etc/stub/package.esm.json.stub dist/esm/package.json",
|
|
49
49
|
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
|
|
50
50
|
"test": "jest",
|
|
@@ -56,17 +56,17 @@
|
|
|
56
56
|
"start": "node dist/index.js"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@injectivelabs/exceptions": "1.16.2
|
|
60
|
-
"@injectivelabs/networks": "1.16.2
|
|
61
|
-
"@injectivelabs/sdk-ts": "1.16.2
|
|
62
|
-
"@injectivelabs/ts-types": "1.16.2
|
|
63
|
-
"@injectivelabs/utils": "1.16.2
|
|
64
|
-
"@injectivelabs/wallet-base": "1.16.2
|
|
59
|
+
"@injectivelabs/exceptions": "^1.16.2",
|
|
60
|
+
"@injectivelabs/networks": "^1.16.2",
|
|
61
|
+
"@injectivelabs/sdk-ts": "^1.16.2",
|
|
62
|
+
"@injectivelabs/ts-types": "^1.16.2",
|
|
63
|
+
"@injectivelabs/utils": "^1.16.2",
|
|
64
|
+
"@injectivelabs/wallet-base": "^1.16.2"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"shx": "^0.3.3"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "56e3f6c8f399c2d881a65858e8e0b1b39828a917",
|
|
70
70
|
"typedoc": {
|
|
71
71
|
"entryPoint": "./src/index.ts",
|
|
72
72
|
"readmeFile": "./README.md",
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRabbyProvider = getRabbyProvider;
|
|
4
|
-
const sdk_ts_1 = require("@injectivelabs/sdk-ts");
|
|
5
|
-
const $window = ((0, sdk_ts_1.isServerSide)()
|
|
6
|
-
? {}
|
|
7
|
-
: window);
|
|
8
|
-
async function getRabbyProvider({ timeout } = { timeout: 3000 }) {
|
|
9
|
-
const provider = getRabbyFromWindow();
|
|
10
|
-
if (provider) {
|
|
11
|
-
return provider;
|
|
12
|
-
}
|
|
13
|
-
return listenForRabbyInitialized({
|
|
14
|
-
timeout,
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
async function listenForRabbyInitialized({ timeout } = { timeout: 3000 }) {
|
|
18
|
-
return new Promise((resolve) => {
|
|
19
|
-
const handleInitialization = () => {
|
|
20
|
-
resolve(getRabbyFromWindow());
|
|
21
|
-
};
|
|
22
|
-
$window.addEventListener('rabby#initialized', handleInitialization, {
|
|
23
|
-
once: true,
|
|
24
|
-
});
|
|
25
|
-
setTimeout(() => {
|
|
26
|
-
$window.removeEventListener('rabby#initialized', handleInitialization);
|
|
27
|
-
resolve(null);
|
|
28
|
-
}, timeout);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
function getRabbyFromWindow() {
|
|
32
|
-
const injectedProviderExist = typeof window !== 'undefined' && typeof $window.ethereum !== 'undefined';
|
|
33
|
-
// No injected providers exist.
|
|
34
|
-
if (!injectedProviderExist) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
if ($window.ethereum.isRabby) {
|
|
38
|
-
return $window.ethereum;
|
|
39
|
-
}
|
|
40
|
-
if ($window.providers) {
|
|
41
|
-
return $window.providers.find((p) => p.isRabby);
|
|
42
|
-
}
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { isServerSide } from '@injectivelabs/sdk-ts';
|
|
2
|
-
const $window = (isServerSide()
|
|
3
|
-
? {}
|
|
4
|
-
: window);
|
|
5
|
-
export async function getRabbyProvider({ timeout } = { timeout: 3000 }) {
|
|
6
|
-
const provider = getRabbyFromWindow();
|
|
7
|
-
if (provider) {
|
|
8
|
-
return provider;
|
|
9
|
-
}
|
|
10
|
-
return listenForRabbyInitialized({
|
|
11
|
-
timeout,
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
async function listenForRabbyInitialized({ timeout } = { timeout: 3000 }) {
|
|
15
|
-
return new Promise((resolve) => {
|
|
16
|
-
const handleInitialization = () => {
|
|
17
|
-
resolve(getRabbyFromWindow());
|
|
18
|
-
};
|
|
19
|
-
$window.addEventListener('rabby#initialized', handleInitialization, {
|
|
20
|
-
once: true,
|
|
21
|
-
});
|
|
22
|
-
setTimeout(() => {
|
|
23
|
-
$window.removeEventListener('rabby#initialized', handleInitialization);
|
|
24
|
-
resolve(null);
|
|
25
|
-
}, timeout);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function getRabbyFromWindow() {
|
|
29
|
-
const injectedProviderExist = typeof window !== 'undefined' && typeof $window.ethereum !== 'undefined';
|
|
30
|
-
// No injected providers exist.
|
|
31
|
-
if (!injectedProviderExist) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if ($window.ethereum.isRabby) {
|
|
35
|
-
return $window.ethereum;
|
|
36
|
-
}
|
|
37
|
-
if ($window.providers) {
|
|
38
|
-
return $window.providers.find((p) => p.isRabby);
|
|
39
|
-
}
|
|
40
|
-
return;
|
|
41
|
-
}
|