@injectivelabs/wallet-evm 1.16.7 → 1.16.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,7 +13,7 @@ _Package to use Wallets EVM on Injective via the wallet strategy._
13
13
  ## 📚 Installation
14
14
 
15
15
  ```bash
16
- yarn add @injectivelabs/wallet-evm
16
+ pnpm add @injectivelabs/wallet-evm
17
17
  ```
18
18
 
19
19
  ---
@@ -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, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
4
- import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
3
+ import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions, BrowserEip1993Provider, ConcreteWalletStrategy, ConcreteWalletStrategyArgs, ConcreteEvmWalletStrategyArgs } from '@injectivelabs/wallet-base';
4
+ import { AccountAddress, EvmChainId } 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 | ConcreteEthereumWalletStrategyArgs) & {
8
+ constructor(args: (ConcreteWalletStrategyArgs | ConcreteEvmWalletStrategyArgs) & {
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
- ethereumChainId: EthereumChainId;
19
+ evmChainId: EvmChainId;
20
20
  }): Promise<string>;
21
21
  sendTransaction(transaction: TxRaw, options: SendTransactionOptions): Promise<TxResponse>;
22
22
  signEip712TypedData(eip712json: string, address: AccountAddress): Promise<string>;
@@ -23,6 +23,9 @@ 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
+ }
26
29
  if (walletName === wallet_base_2.Wallet.Rainbow.toLowerCase()) {
27
30
  this.evmProviders[wallet_base_2.Wallet.Rainbow] = event.detail.provider;
28
31
  }
@@ -250,17 +253,19 @@ class EvmWallet extends wallet_base_2.BaseConcreteStrategy {
250
253
  }
251
254
  const backUpProvider = this.wallet === wallet_base_2.Wallet.Metamask
252
255
  ? await (0, index_js_1.getMetamaskProvider)()
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;
256
+ : this.wallet === wallet_base_2.Wallet.Rabby
257
+ ? await (0, index_js_1.getRabbyProvider)()
258
+ : this.wallet === wallet_base_2.Wallet.Phantom
259
+ ? await (0, index_js_1.getPhantomProvider)()
260
+ : this.wallet === wallet_base_2.Wallet.BitGet
261
+ ? await (0, index_js_1.getBitGetProvider)()
262
+ : this.wallet === wallet_base_2.Wallet.OkxWallet
263
+ ? await (0, index_js_1.getOkxWalletProvider)()
264
+ : this.wallet === wallet_base_2.Wallet.TrustWallet
265
+ ? await (0, index_js_1.getTrustWalletProvider)()
266
+ : this.wallet === wallet_base_2.Wallet.Rainbow
267
+ ? await (0, index_js_1.getRainbowProvider)()
268
+ : undefined;
264
269
  if (!backUpProvider) {
265
270
  throw this.EvmWalletException(new Error(`Please install the ${this.wallet} wallet extension.`), {
266
271
  code: exceptions_1.UnspecifiedErrorCode,
@@ -1,5 +1,6 @@
1
- export { getOkxWalletProvider } from './Okx.js';
1
+ export { getRabbyProvider } from './rabby.js';
2
2
  export { getBitGetProvider } from './bitget.js';
3
+ export { getOkxWalletProvider } from './Okx.js';
3
4
  export { getPhantomProvider } from './phantom.js';
4
5
  export { getRainbowProvider } from './rainbow.js';
5
6
  export { getMetamaskProvider } from './metamask.js';
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTrustWalletProvider = exports.getMetamaskProvider = exports.getRainbowProvider = exports.getPhantomProvider = exports.getBitGetProvider = exports.getOkxWalletProvider = void 0;
4
- var Okx_js_1 = require("./Okx.js");
5
- Object.defineProperty(exports, "getOkxWalletProvider", { enumerable: true, get: function () { return Okx_js_1.getOkxWalletProvider; } });
3
+ exports.getTrustWalletProvider = exports.getMetamaskProvider = exports.getRainbowProvider = exports.getPhantomProvider = exports.getOkxWalletProvider = exports.getBitGetProvider = exports.getRabbyProvider = void 0;
4
+ var rabby_js_1 = require("./rabby.js");
5
+ Object.defineProperty(exports, "getRabbyProvider", { enumerable: true, get: function () { return rabby_js_1.getRabbyProvider; } });
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
+ var Okx_js_1 = require("./Okx.js");
9
+ Object.defineProperty(exports, "getOkxWalletProvider", { enumerable: true, get: function () { return Okx_js_1.getOkxWalletProvider; } });
8
10
  var phantom_js_1 = require("./phantom.js");
9
11
  Object.defineProperty(exports, "getPhantomProvider", { enumerable: true, get: function () { return phantom_js_1.getPhantomProvider; } });
10
12
  var rainbow_js_1 = require("./rainbow.js");
@@ -0,0 +1,4 @@
1
+ import { BrowserEip1993Provider } from '@injectivelabs/wallet-base';
2
+ export declare function getRabbyProvider({ timeout }?: {
3
+ timeout: number;
4
+ }): Promise<BrowserEip1993Provider>;
@@ -0,0 +1,44 @@
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,4 +1,4 @@
1
1
  import { Wallet, BrowserEip1993Provider } from '@injectivelabs/wallet-base';
2
- import { EthereumChainId } from '@injectivelabs/ts-types';
2
+ import { EvmChainId } from '@injectivelabs/ts-types';
3
3
  export declare const getEvmProvider: (wallet: Wallet) => Promise<BrowserEip1993Provider>;
4
- export declare const updateEvmNetwork: (wallet: Wallet, chainId: EthereumChainId) => Promise<unknown>;
4
+ export declare const updateEvmNetwork: (wallet: Wallet, chainId: EvmChainId) => Promise<unknown>;
@@ -4,6 +4,7 @@ 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");
7
8
  const Okx_js_1 = require("../strategy/utils/Okx.js");
8
9
  const bitget_js_1 = require("../strategy/utils/bitget.js");
9
10
  const phantom_js_1 = require("../strategy/utils/phantom.js");
@@ -18,6 +19,9 @@ const getEvmProvider = async (wallet) => {
18
19
  if (wallet === wallet_base_1.Wallet.Metamask) {
19
20
  provider = (await (0, metamask_js_1.getMetamaskProvider)());
20
21
  }
22
+ if (wallet === wallet_base_1.Wallet.Rabby) {
23
+ provider = (await (0, rabby_js_1.getRabbyProvider)());
24
+ }
21
25
  if (wallet === wallet_base_1.Wallet.BitGet) {
22
26
  provider = (await (0, bitget_js_1.getBitGetProvider)());
23
27
  }
@@ -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, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
4
- import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
3
+ import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, SendTransactionOptions, BrowserEip1993Provider, ConcreteWalletStrategy, ConcreteWalletStrategyArgs, ConcreteEvmWalletStrategyArgs } from '@injectivelabs/wallet-base';
4
+ import { AccountAddress, EvmChainId } 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 | ConcreteEthereumWalletStrategyArgs) & {
8
+ constructor(args: (ConcreteWalletStrategyArgs | ConcreteEvmWalletStrategyArgs) & {
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
- ethereumChainId: EthereumChainId;
19
+ evmChainId: EvmChainId;
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 { getBitGetProvider, getPhantomProvider, getRainbowProvider, getMetamaskProvider, getOkxWalletProvider, getTrustWalletProvider, } from './utils/index.js';
7
+ import { getRabbyProvider, getBitGetProvider, getPhantomProvider, getRainbowProvider, getMetamaskProvider, getOkxWalletProvider, getTrustWalletProvider, } from './utils/index.js';
8
8
  export class EvmWallet extends BaseConcreteStrategy {
9
9
  wallet;
10
10
  evmProviders = {};
@@ -20,6 +20,9 @@ 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
+ }
23
26
  if (walletName === Wallet.Rainbow.toLowerCase()) {
24
27
  this.evmProviders[Wallet.Rainbow] = event.detail.provider;
25
28
  }
@@ -247,17 +250,19 @@ export class EvmWallet extends BaseConcreteStrategy {
247
250
  }
248
251
  const backUpProvider = this.wallet === Wallet.Metamask
249
252
  ? await getMetamaskProvider()
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;
253
+ : this.wallet === Wallet.Rabby
254
+ ? await getRabbyProvider()
255
+ : this.wallet === Wallet.Phantom
256
+ ? await getPhantomProvider()
257
+ : this.wallet === Wallet.BitGet
258
+ ? await getBitGetProvider()
259
+ : this.wallet === Wallet.OkxWallet
260
+ ? await getOkxWalletProvider()
261
+ : this.wallet === Wallet.TrustWallet
262
+ ? await getTrustWalletProvider()
263
+ : this.wallet === Wallet.Rainbow
264
+ ? await getRainbowProvider()
265
+ : undefined;
261
266
  if (!backUpProvider) {
262
267
  throw this.EvmWalletException(new Error(`Please install the ${this.wallet} wallet extension.`), {
263
268
  code: UnspecifiedErrorCode,
@@ -1,5 +1,6 @@
1
- export { getOkxWalletProvider } from './Okx.js';
1
+ export { getRabbyProvider } from './rabby.js';
2
2
  export { getBitGetProvider } from './bitget.js';
3
+ export { getOkxWalletProvider } from './Okx.js';
3
4
  export { getPhantomProvider } from './phantom.js';
4
5
  export { getRainbowProvider } from './rainbow.js';
5
6
  export { getMetamaskProvider } from './metamask.js';
@@ -1,5 +1,6 @@
1
- export { getOkxWalletProvider } from './Okx.js';
1
+ export { getRabbyProvider } from './rabby.js';
2
2
  export { getBitGetProvider } from './bitget.js';
3
+ export { getOkxWalletProvider } from './Okx.js';
3
4
  export { getPhantomProvider } from './phantom.js';
4
5
  export { getRainbowProvider } from './rainbow.js';
5
6
  export { getMetamaskProvider } from './metamask.js';
@@ -0,0 +1,4 @@
1
+ import { BrowserEip1993Provider } from '@injectivelabs/wallet-base';
2
+ export declare function getRabbyProvider({ timeout }?: {
3
+ timeout: number;
4
+ }): Promise<BrowserEip1993Provider>;
@@ -0,0 +1,41 @@
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
+ }
@@ -1,4 +1,4 @@
1
1
  import { Wallet, BrowserEip1993Provider } from '@injectivelabs/wallet-base';
2
- import { EthereumChainId } from '@injectivelabs/ts-types';
2
+ import { EvmChainId } from '@injectivelabs/ts-types';
3
3
  export declare const getEvmProvider: (wallet: Wallet) => Promise<BrowserEip1993Provider>;
4
- export declare const updateEvmNetwork: (wallet: Wallet, chainId: EthereumChainId) => Promise<unknown>;
4
+ export declare const updateEvmNetwork: (wallet: Wallet, chainId: EvmChainId) => Promise<unknown>;
@@ -1,6 +1,7 @@
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';
4
5
  import { getOkxWalletProvider } from '../strategy/utils/Okx.js';
5
6
  import { getBitGetProvider } from '../strategy/utils/bitget.js';
6
7
  import { getPhantomProvider } from '../strategy/utils/phantom.js';
@@ -15,6 +16,9 @@ export const getEvmProvider = async (wallet) => {
15
16
  if (wallet === Wallet.Metamask) {
16
17
  provider = (await getMetamaskProvider());
17
18
  }
19
+ if (wallet === Wallet.Rabby) {
20
+ provider = (await getRabbyProvider());
21
+ }
18
22
  if (wallet === Wallet.BitGet) {
19
23
  provider = (await getBitGetProvider());
20
24
  }
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.7",
4
+ "version": "1.16.8",
5
5
  "sideEffects": false,
6
6
  "type": "module",
7
7
  "author": {
@@ -41,10 +41,10 @@
41
41
  }
42
42
  },
43
43
  "scripts": {
44
- "build": "yarn build:cjs && yarn build:esm && yarn build:post",
44
+ "build": "pnpm build:cjs && pnpm build:esm && pnpm 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 && yarn build:post",
47
+ "build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && pnpm 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.7",
60
- "@injectivelabs/networks": "^1.16.7",
61
- "@injectivelabs/sdk-ts": "^1.16.7",
62
- "@injectivelabs/ts-types": "^1.16.7",
63
- "@injectivelabs/utils": "^1.16.7",
64
- "@injectivelabs/wallet-base": "^1.16.7"
59
+ "@injectivelabs/exceptions": "1.16.6",
60
+ "@injectivelabs/networks": "1.16.8",
61
+ "@injectivelabs/sdk-ts": "1.16.8",
62
+ "@injectivelabs/ts-types": "1.16.8",
63
+ "@injectivelabs/utils": "1.16.8",
64
+ "@injectivelabs/wallet-base": "1.16.8"
65
65
  },
66
66
  "devDependencies": {
67
67
  "shx": "^0.3.3"
68
68
  },
69
- "gitHead": "78f656ef404ef511dfe6e4cc9defcae0a7cbec76",
69
+ "gitHead": "8bdbbfff8a07053ec2cd91a7103bfe99975672b4",
70
70
  "typedoc": {
71
71
  "entryPoint": "./src/index.ts",
72
72
  "readmeFile": "./README.md",