@keplr-wallet/hooks 0.10.3 → 0.10.4

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.
@@ -37,3 +37,6 @@ export declare class InsufficientFeeError extends Error {
37
37
  export declare class UnknownCurrencyError extends Error {
38
38
  constructor(m: string);
39
39
  }
40
+ export declare class InvalidHexError extends Error {
41
+ constructor(m: string);
42
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnknownCurrencyError = exports.InsufficientFeeError = exports.NotLoadedFeeError = exports.InsufficientAmountError = exports.NegativeAmountError = exports.ZeroAmountError = exports.InvalidNumberAmountError = exports.EmptyAmountError = exports.ENSFailedToFetchError = exports.ENSIsFetchingError = exports.ENSNotSupportedError = exports.InvalidBech32Error = exports.EmptyAddressError = void 0;
3
+ exports.InvalidHexError = exports.UnknownCurrencyError = exports.InsufficientFeeError = exports.NotLoadedFeeError = exports.InsufficientAmountError = exports.NegativeAmountError = exports.ZeroAmountError = exports.InvalidNumberAmountError = exports.EmptyAmountError = exports.ENSFailedToFetchError = exports.ENSIsFetchingError = exports.ENSNotSupportedError = exports.InvalidBech32Error = exports.EmptyAddressError = void 0;
4
4
  class EmptyAddressError extends Error {
5
5
  constructor(m) {
6
6
  super(m);
@@ -105,4 +105,12 @@ class UnknownCurrencyError extends Error {
105
105
  }
106
106
  }
107
107
  exports.UnknownCurrencyError = UnknownCurrencyError;
108
+ class InvalidHexError extends Error {
109
+ constructor(m) {
110
+ super(m);
111
+ // Set the prototype explicitly.
112
+ Object.setPrototypeOf(this, InvalidHexError.prototype);
113
+ }
114
+ }
115
+ exports.InvalidHexError = InvalidHexError;
108
116
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tx/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tx/errors.ts"],"names":[],"mappings":"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"}
package/build/tx/gas.d.ts CHANGED
@@ -3,10 +3,12 @@ import { TxChainSetter } from "./chain";
3
3
  import { ChainGetter } from "@keplr-wallet/stores";
4
4
  export declare class GasConfig extends TxChainSetter implements IGasConfig {
5
5
  protected _gasRaw: string | undefined;
6
- constructor(chainGetter: ChainGetter, initialChainId: string, initialGas?: number);
6
+ protected _allowZeroGas?: boolean;
7
+ constructor(chainGetter: ChainGetter, initialChainId: string, initialGas?: number, allowZeroGas?: boolean);
7
8
  get gasRaw(): string;
8
9
  get gas(): number;
9
10
  setGas(gas: number | string): void;
10
11
  get error(): Error | undefined;
11
12
  }
12
13
  export declare const useGasConfig: (chainGetter: ChainGetter, chainId: string, initialGas?: number | undefined) => GasConfig;
14
+ export declare const useZeroAllowedGasConfig: (chainGetter: ChainGetter, chainId: string, initialGas?: number | undefined) => GasConfig;
package/build/tx/gas.js CHANGED
@@ -6,12 +6,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.useGasConfig = exports.GasConfig = void 0;
9
+ exports.useZeroAllowedGasConfig = exports.useGasConfig = exports.GasConfig = void 0;
10
10
  const chain_1 = require("./chain");
11
11
  const mobx_1 = require("mobx");
12
12
  const react_1 = require("react");
13
13
  class GasConfig extends chain_1.TxChainSetter {
14
- constructor(chainGetter, initialChainId, initialGas) {
14
+ constructor(chainGetter, initialChainId, initialGas, allowZeroGas) {
15
15
  super(chainGetter, initialChainId);
16
16
  /*
17
17
  This field is used to handle the value from the input more flexibly.
@@ -19,7 +19,13 @@ class GasConfig extends chain_1.TxChainSetter {
19
19
  If the user has never set it, undefined is also allowed to indicate that it is a default value.
20
20
  */
21
21
  this._gasRaw = undefined;
22
+ /*
23
+ There are services that sometimes use invalid tx to sign arbitrary data on the sign page.
24
+ In this case, there is no obligation to deal with it, but 0 gas is favorably allowed. This option is used for this case.
25
+ */
26
+ this._allowZeroGas = undefined;
22
27
  this._gasRaw = initialGas === null || initialGas === void 0 ? void 0 : initialGas.toString();
28
+ this._allowZeroGas = allowZeroGas;
23
29
  mobx_1.makeObservable(this);
24
30
  }
25
31
  get gasRaw() {
@@ -66,8 +72,15 @@ class GasConfig extends chain_1.TxChainSetter {
66
72
  if (!Number.isInteger(this.gas)) {
67
73
  return new Error("Gas is not integer");
68
74
  }
69
- if (this.gas <= 0) {
70
- return new Error("Gas should be greater than 0");
75
+ if (!this._allowZeroGas) {
76
+ if (this.gas <= 0) {
77
+ return new Error("Gas should be greater than 0");
78
+ }
79
+ }
80
+ else {
81
+ if (this.gas < 0) {
82
+ return new Error("Gas should be greater or equal than 0");
83
+ }
71
84
  }
72
85
  return;
73
86
  }
@@ -75,6 +88,9 @@ class GasConfig extends chain_1.TxChainSetter {
75
88
  __decorate([
76
89
  mobx_1.observable
77
90
  ], GasConfig.prototype, "_gasRaw", void 0);
91
+ __decorate([
92
+ mobx_1.observable
93
+ ], GasConfig.prototype, "_allowZeroGas", void 0);
78
94
  __decorate([
79
95
  mobx_1.computed
80
96
  ], GasConfig.prototype, "gas", null);
@@ -91,4 +107,14 @@ const useGasConfig = (chainGetter, chainId, initialGas) => {
91
107
  return txConfig;
92
108
  };
93
109
  exports.useGasConfig = useGasConfig;
110
+ /*
111
+ There are services that sometimes use invalid tx to sign arbitrary data on the sign page.
112
+ In this case, there is no obligation to deal with it, but 0 gas is favorably allowed. This option is used for this case.
113
+ */
114
+ const useZeroAllowedGasConfig = (chainGetter, chainId, initialGas) => {
115
+ const [txConfig] = react_1.useState(() => new GasConfig(chainGetter, chainId, initialGas, true));
116
+ txConfig.setChain(chainId);
117
+ return txConfig;
118
+ };
119
+ exports.useZeroAllowedGasConfig = useZeroAllowedGasConfig;
94
120
  //# sourceMappingURL=gas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/tx/gas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/tx/gas.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ const errors_1 = require("./errors");
13
13
  const cosmos_1 = require("@keplr-wallet/cosmos");
14
14
  const react_1 = require("react");
15
15
  const ens_1 = require("@keplr-wallet/ens");
16
+ const address_1 = require("@ethersproject/address");
16
17
  class RecipientConfig extends chain_1.TxChainSetter {
17
18
  constructor(chainGetter, initialChainId) {
18
19
  super(chainGetter, initialChainId);
@@ -77,6 +78,12 @@ class RecipientConfig extends chain_1.TxChainSetter {
77
78
  if (!this.rawRecipient) {
78
79
  return new errors_1.EmptyAddressError("Address is empty");
79
80
  }
81
+ if (this.bech32Prefix === "evmos" && this.rawRecipient.startsWith("0x")) {
82
+ if (address_1.isAddress(this.rawRecipient)) {
83
+ return;
84
+ }
85
+ return new errors_1.InvalidHexError("Invalid hex address for chain");
86
+ }
80
87
  if (ens_1.ObservableEnsFetcher.isValidENS(this.rawRecipient)) {
81
88
  const ensFetcher = this.getENSFetcher(this.rawRecipient);
82
89
  if (!ensFetcher) {
@@ -1 +1 @@
1
- {"version":3,"file":"recipient.js","sourceRoot":"","sources":["../../src/tx/recipient.ts"],"names":[],"mappings":";;;;;;;;;AACA,mCAAwC;AAExC,+BAMc;AACd,qCAMkB;AAClB,iDAAqD;AACrD,iCAAiC;AACjC,2CAAyD;AAEzD,MAAa,eAAgB,SAAQ,qBAAa;IAahD,YAAY,WAAwB,EAAE,cAAsB;QAC1D,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAZ3B,kBAAa,GAAW,EAAE,CAAC;QAG3B,iBAAY,GAAuB,SAAS,CAAC;QAG7C,kBAAa,GAAuB,SAAS,CAAC;QAG9C,kBAAa,GAAsC,IAAI,GAAG,EAAE,CAAC;QAKrE,qBAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAGD,IAAI,YAAY;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC;SACxD;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAGD,eAAe,CAAC,MAAc;QAC5B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,IAAI,0BAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzD,IAAI,UAAU,EAAE;gBACd,IAAI,UAAU,CAAC,UAAU,EAAE;oBACzB,OAAO,EAAE,CAAC;iBACX;gBAED,IACE,CAAC,UAAU,CAAC,OAAO;oBACnB,UAAU,CAAC,KAAK,IAAI,IAAI;oBACxB,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,EAAE,EAChC;oBACA,OAAO,EAAE,CAAC;iBACX;gBAED,OAAO,IAAI,sBAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CACnD,IAAI,CAAC,YAAY,CAClB,CAAC;aACH;iBAAM;gBACL,8BAA8B;gBAC9B,OAAO,EAAE,CAAC;aACX;SACF;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAES,aAAa,CAAC,IAAY;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzD,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC9C,kBAAW,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,GAAG;gBACpB,oEAAoE;gBACpE,IAAI,CAAC,YAAa;gBAClB,oEAAoE;gBACpE,IAAI,0BAAoB,CAAC,IAAI,CAAC,YAAa,CAAC,CAC7C,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QAED,oEAAoE;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC;QAC3D,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,cAAc,CAAC,QAA4B;QACzC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAGD,IAAI,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,IAAI,0BAAiB,CAAC,kBAAkB,CAAC,CAAC;SAClD;QAED,IAAI,0BAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO,IAAI,6BAAoB,CAAC,kCAAkC,CAAC,CAAC;aACrE;YAED,IAAI,UAAU,CAAC,UAAU,EAAE;gBACzB,OAAO,IAAI,2BAAkB,CAAC,iBAAiB,CAAC,CAAC;aAClD;YAED,IACE,CAAC,UAAU,CAAC,OAAO;gBACnB,UAAU,CAAC,KAAK,IAAI,IAAI;gBACxB,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,EAAE,EAChC;gBACA,OAAO,IAAI,8BAAqB,CAC9B,sCAAsC,CACvC,CAAC;aACH;YAED,OAAO;SACR;QAED,IAAI;YACF,sBAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC3D;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,2BAAkB,CAC3B,mBAAmB,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/C,CAAC;SACH;QACD,OAAO;IACT,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAGD,eAAe,CAAC,SAAiB;QAC/B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;CACF;AArIC;IADC,iBAAU;sDAC0B;AAGrC;IADC,iBAAU;qDAC4C;AAGvD;IADC,iBAAU;sDAC6C;AAGxD;IADC,iBAAU,CAAC,OAAO;sDACoD;AASvE;IADC,eAAQ;mDAOR;AAGD;IADC,aAAM;sDAGN;AAqDD;IADC,aAAM;qDAGN;AAGD;IADC,eAAQ;4CAqCR;AAOD;IADC,aAAM;sDAGN;AAtIH,0CAuIC;AAEM,MAAM,kBAAkB,GAAG,CAChC,WAAwB,EACxB,OAAe,EACf,WAAoB,EACpB,EAAE;IACF,MAAM,CAAC,MAAM,CAAC,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAVW,QAAA,kBAAkB,sBAU7B"}
1
+ {"version":3,"file":"recipient.js","sourceRoot":"","sources":["../../src/tx/recipient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/hooks",
3
- "version": "0.10.3",
3
+ "version": "0.10.4",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -21,16 +21,17 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@cosmjs/launchpad": "^0.24.0-alpha.25",
24
- "@keplr-wallet/background": "0.10.3",
25
- "@keplr-wallet/common": "0.10.3",
26
- "@keplr-wallet/cosmos": "0.10.3",
27
- "@keplr-wallet/crypto": "0.10.3",
28
- "@keplr-wallet/ens": "0.10.3",
29
- "@keplr-wallet/popup": "0.10.3",
30
- "@keplr-wallet/proto-types": "0.10.3",
31
- "@keplr-wallet/stores": "0.10.3",
32
- "@keplr-wallet/types": "0.10.3",
33
- "@keplr-wallet/unit": "0.10.3",
24
+ "@ethersproject/address": "^5.6.0",
25
+ "@keplr-wallet/background": "0.10.4",
26
+ "@keplr-wallet/common": "0.10.4",
27
+ "@keplr-wallet/cosmos": "0.10.4",
28
+ "@keplr-wallet/crypto": "0.10.4",
29
+ "@keplr-wallet/ens": "0.10.4",
30
+ "@keplr-wallet/popup": "0.10.4",
31
+ "@keplr-wallet/proto-types": "0.10.4",
32
+ "@keplr-wallet/stores": "0.10.4",
33
+ "@keplr-wallet/types": "0.10.4",
34
+ "@keplr-wallet/unit": "0.10.4",
34
35
  "long": "^4.0.0",
35
36
  "mobx": "^6.1.7",
36
37
  "mobx-utils": "^6.0.3",
@@ -38,5 +39,5 @@
38
39
  "react-router": "^5.1.2",
39
40
  "utility-types": "^3.10.0"
40
41
  },
41
- "gitHead": "2cb09aee74eb6372b8ebf509880bd09acb898154"
42
+ "gitHead": "e94023b4f3f993ec8da195675a6fb339225e93d2"
42
43
  }
package/src/tx/errors.ts CHANGED
@@ -101,3 +101,11 @@ export class UnknownCurrencyError extends Error {
101
101
  Object.setPrototypeOf(this, UnknownCurrencyError.prototype);
102
102
  }
103
103
  }
104
+
105
+ export class InvalidHexError extends Error {
106
+ constructor(m: string) {
107
+ super(m);
108
+ // Set the prototype explicitly.
109
+ Object.setPrototypeOf(this, InvalidHexError.prototype);
110
+ }
111
+ }
package/src/tx/gas.ts CHANGED
@@ -13,14 +13,23 @@ export class GasConfig extends TxChainSetter implements IGasConfig {
13
13
  @observable
14
14
  protected _gasRaw: string | undefined = undefined;
15
15
 
16
+ /*
17
+ There are services that sometimes use invalid tx to sign arbitrary data on the sign page.
18
+ In this case, there is no obligation to deal with it, but 0 gas is favorably allowed. This option is used for this case.
19
+ */
20
+ @observable
21
+ protected _allowZeroGas?: boolean = undefined;
22
+
16
23
  constructor(
17
24
  chainGetter: ChainGetter,
18
25
  initialChainId: string,
19
- initialGas?: number
26
+ initialGas?: number,
27
+ allowZeroGas?: boolean
20
28
  ) {
21
29
  super(chainGetter, initialChainId);
22
30
 
23
31
  this._gasRaw = initialGas?.toString();
32
+ this._allowZeroGas = allowZeroGas;
24
33
 
25
34
  makeObservable(this);
26
35
  }
@@ -82,8 +91,14 @@ export class GasConfig extends TxChainSetter implements IGasConfig {
82
91
  return new Error("Gas is not integer");
83
92
  }
84
93
 
85
- if (this.gas <= 0) {
86
- return new Error("Gas should be greater than 0");
94
+ if (!this._allowZeroGas) {
95
+ if (this.gas <= 0) {
96
+ return new Error("Gas should be greater than 0");
97
+ }
98
+ } else {
99
+ if (this.gas < 0) {
100
+ return new Error("Gas should be greater or equal than 0");
101
+ }
87
102
  }
88
103
  return;
89
104
  }
@@ -101,3 +116,20 @@ export const useGasConfig = (
101
116
 
102
117
  return txConfig;
103
118
  };
119
+
120
+ /*
121
+ There are services that sometimes use invalid tx to sign arbitrary data on the sign page.
122
+ In this case, there is no obligation to deal with it, but 0 gas is favorably allowed. This option is used for this case.
123
+ */
124
+ export const useZeroAllowedGasConfig = (
125
+ chainGetter: ChainGetter,
126
+ chainId: string,
127
+ initialGas?: number
128
+ ) => {
129
+ const [txConfig] = useState(
130
+ () => new GasConfig(chainGetter, chainId, initialGas, true)
131
+ );
132
+ txConfig.setChain(chainId);
133
+
134
+ return txConfig;
135
+ };
@@ -14,10 +14,12 @@ import {
14
14
  ENSIsFetchingError,
15
15
  ENSNotSupportedError,
16
16
  InvalidBech32Error,
17
+ InvalidHexError,
17
18
  } from "./errors";
18
19
  import { Bech32Address } from "@keplr-wallet/cosmos";
19
20
  import { useState } from "react";
20
21
  import { ObservableEnsFetcher } from "@keplr-wallet/ens";
22
+ import { isAddress } from "@ethersproject/address";
21
23
 
22
24
  export class RecipientConfig extends TxChainSetter implements IRecipientConfig {
23
25
  @observable
@@ -113,6 +115,13 @@ export class RecipientConfig extends TxChainSetter implements IRecipientConfig {
113
115
  return new EmptyAddressError("Address is empty");
114
116
  }
115
117
 
118
+ if (this.bech32Prefix === "evmos" && this.rawRecipient.startsWith("0x")) {
119
+ if (isAddress(this.rawRecipient)) {
120
+ return;
121
+ }
122
+ return new InvalidHexError("Invalid hex address for chain");
123
+ }
124
+
116
125
  if (ObservableEnsFetcher.isValidENS(this.rawRecipient)) {
117
126
  const ensFetcher = this.getENSFetcher(this.rawRecipient);
118
127
  if (!ensFetcher) {