@keplr-wallet/hooks 0.9.8 → 0.9.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/build/ibc/gas.js CHANGED
@@ -12,7 +12,7 @@ const mobx_1 = require("mobx");
12
12
  const react_1 = require("react");
13
13
  class IBCTransferGasConfig extends tx_1.GasConfig {
14
14
  constructor(chainGetter, initialChainId, msgOpts) {
15
- super(chainGetter, initialChainId, msgOpts.gas);
15
+ super(chainGetter, initialChainId);
16
16
  this.msgOpts = msgOpts;
17
17
  mobx_1.makeObservable(this);
18
18
  }
@@ -21,10 +21,10 @@ class IBCTransferGasConfig extends tx_1.GasConfig {
21
21
  }
22
22
  get gas() {
23
23
  // If gas not set manually, assume that the tx is for MsgTransfer.
24
- if (this._gas <= 0) {
24
+ if (this._gasRaw == null) {
25
25
  return this.msgOpts.gas;
26
26
  }
27
- return this._gas;
27
+ return super.gas;
28
28
  }
29
29
  }
30
30
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/ibc/gas.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8BAAkC;AAElC,+BAA0D;AAC1D,iCAAiC;AAEjC,MAAa,oBAAqB,SAAQ,cAAS;IAIjD,YACE,WAAwB,EACxB,cAAsB,EACtB,OAAqC;QAErC,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,qBAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAGD,UAAU,CAAC,IAAkC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAI,GAAG;QACL,kEAAkE;QAClE,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;SACzB;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AA3BC;IADC,iBAAU,CAAC,GAAG;qDACiC;AAehD;IADC,aAAM;sDAGN;AAnBH,oDA6BC;AAEM,MAAM,uBAAuB,GAAG,CACrC,WAAwB,EACxB,OAAe,EACf,OAAqC,EACrC,EAAE;IACF,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAQ,CAC1B,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9D,CAAC;IACF,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAZW,QAAA,uBAAuB,2BAYlC"}
1
+ {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/ibc/gas.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8BAAkC;AAElC,+BAA0D;AAC1D,iCAAiC;AAEjC,MAAa,oBAAqB,SAAQ,cAAS;IAIjD,YACE,WAAwB,EACxB,cAAsB,EACtB,OAAqC;QAErC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,qBAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAGD,UAAU,CAAC,IAAkC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAI,GAAG;QACL,kEAAkE;QAClE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;SACzB;QAED,OAAO,KAAK,CAAC,GAAG,CAAC;IACnB,CAAC;CACF;AA3BC;IADC,iBAAU,CAAC,GAAG;qDACiC;AAehD;IADC,aAAM;sDAGN;AAnBH,oDA6BC;AAEM,MAAM,uBAAuB,GAAG,CACrC,WAAwB,EACxB,OAAe,EACf,OAAqC,EACrC,EAAE;IACF,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAQ,CAC1B,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9D,CAAC;IACF,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAZW,QAAA,uBAAuB,2BAYlC"}
@@ -1,5 +1,4 @@
1
- import { IAmountConfig } from "../tx";
2
- import { TxChainSetter } from "../tx/chain";
1
+ import { IAmountConfig, TxChainSetter } from "../tx";
3
2
  import { ChainGetter, CoinPrimitive, CosmosMsgOpts } from "@keplr-wallet/stores";
4
3
  import { AppCurrency } from "@keplr-wallet/types";
5
4
  import { SignDocHelper } from "./index";
@@ -7,12 +6,15 @@ import { Msg } from "@cosmjs/launchpad";
7
6
  export declare class SignDocAmountConfig extends TxChainSetter implements IAmountConfig {
8
7
  protected msgOpts: CosmosMsgOpts;
9
8
  protected signDocHelper?: SignDocHelper;
10
- constructor(chainGetter: ChainGetter, initialChainId: string, msgOpts: CosmosMsgOpts);
9
+ protected _sender: string;
10
+ protected _disableBalanceCheck: boolean;
11
+ constructor(chainGetter: ChainGetter, initialChainId: string, msgOpts: CosmosMsgOpts, sender: string);
11
12
  setMsgOpts(opts: CosmosMsgOpts): void;
12
13
  setSignDocHelper(signDocHelper: SignDocHelper): void;
13
14
  get amount(): string;
14
15
  get sendCurrency(): AppCurrency;
15
16
  get sendableCurrencies(): AppCurrency[];
17
+ setSender(sender: string): void;
16
18
  get sender(): string;
17
19
  getAmountPrimitive: () => CoinPrimitive;
18
20
  protected computeAmountInAminoMsgs(msgs: readonly Msg[]): {
@@ -29,6 +31,7 @@ export declare class SignDocAmountConfig extends TxChainSetter implements IAmoun
29
31
  get isMax(): boolean;
30
32
  setAmount(): void;
31
33
  setSendCurrency(): void;
32
- setSender(): void;
34
+ setDisableBalanceCheck(bool: boolean): void;
35
+ get disableBalanceCheck(): boolean;
33
36
  }
34
- export declare const useSignDocAmountConfig: (chainGetter: ChainGetter, chainId: string, msgOpts: CosmosMsgOpts) => SignDocAmountConfig;
37
+ export declare const useSignDocAmountConfig: (chainGetter: ChainGetter, chainId: string, msgOpts: CosmosMsgOpts, sender: string) => SignDocAmountConfig;
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.useSignDocAmountConfig = exports.SignDocAmountConfig = void 0;
10
- const chain_1 = require("../tx/chain");
10
+ const tx_1 = require("../tx");
11
11
  const mobx_1 = require("mobx");
12
12
  const unit_1 = require("@keplr-wallet/unit");
13
13
  const react_1 = require("react");
@@ -16,13 +16,15 @@ const cosmos_1 = require("@keplr-wallet/cosmos");
16
16
  // This config helps the fee config to calculate that the fee is enough to send with considering
17
17
  // the amount in the sign doc.
18
18
  // This sets the amount as the sum of the messages in the sign doc if the message is known and can be parsed.
19
- class SignDocAmountConfig extends chain_1.TxChainSetter {
20
- constructor(chainGetter, initialChainId, msgOpts) {
19
+ class SignDocAmountConfig extends tx_1.TxChainSetter {
20
+ constructor(chainGetter, initialChainId, msgOpts, sender) {
21
21
  super(chainGetter, initialChainId);
22
22
  this.signDocHelper = undefined;
23
+ this._disableBalanceCheck = false;
23
24
  this.getAmountPrimitive = mobx_utils_1.computedFn(() => {
24
25
  var _a;
25
- if (!((_a = this.signDocHelper) === null || _a === void 0 ? void 0 : _a.signDocWrapper) ||
26
+ if (this.disableBalanceCheck ||
27
+ !((_a = this.signDocHelper) === null || _a === void 0 ? void 0 : _a.signDocWrapper) ||
26
28
  this.chainInfo.feeCurrencies.length === 0) {
27
29
  return {
28
30
  amount: "0",
@@ -37,6 +39,7 @@ class SignDocAmountConfig extends chain_1.TxChainSetter {
37
39
  }
38
40
  });
39
41
  this.msgOpts = msgOpts;
42
+ this._sender = sender;
40
43
  mobx_1.makeObservable(this);
41
44
  }
42
45
  setMsgOpts(opts) {
@@ -59,8 +62,11 @@ class SignDocAmountConfig extends chain_1.TxChainSetter {
59
62
  get sendableCurrencies() {
60
63
  return [this.sendCurrency];
61
64
  }
65
+ setSender(sender) {
66
+ this._sender = sender;
67
+ }
62
68
  get sender() {
63
- return "";
69
+ return this._sender;
64
70
  }
65
71
  computeAmountInAminoMsgs(msgs) {
66
72
  const amount = new unit_1.Coin(this.sendCurrency.coinMinimalDenom, new unit_1.Int(0));
@@ -68,6 +74,13 @@ class SignDocAmountConfig extends chain_1.TxChainSetter {
68
74
  try {
69
75
  switch (msg.type) {
70
76
  case this.msgOpts.send.native.type:
77
+ if (msg.value.from_address &&
78
+ msg.value.from_address !== this.sender) {
79
+ return {
80
+ amount: "0",
81
+ denom: this.sendCurrency.coinMinimalDenom,
82
+ };
83
+ }
71
84
  if (msg.value.amount && Array.isArray(msg.value.amount)) {
72
85
  for (const amountInMsg of msg.value.amount) {
73
86
  if (amountInMsg.denom === amount.denom) {
@@ -77,6 +90,13 @@ class SignDocAmountConfig extends chain_1.TxChainSetter {
77
90
  }
78
91
  break;
79
92
  case this.msgOpts.delegate.type:
93
+ if (msg.value.delegator_address &&
94
+ msg.value.delegator_address !== this.sender) {
95
+ return {
96
+ amount: "0",
97
+ denom: this.sendCurrency.coinMinimalDenom,
98
+ };
99
+ }
80
100
  if (msg.value.amount && msg.value.amount.denom === amount.denom) {
81
101
  amount.amount = amount.amount.add(new unit_1.Int(msg.value.amount.amount));
82
102
  }
@@ -100,6 +120,12 @@ class SignDocAmountConfig extends chain_1.TxChainSetter {
100
120
  switch (msg.constructor) {
101
121
  case cosmos_1.cosmos.bank.v1beta1.MsgSend:
102
122
  const sendMsg = msg;
123
+ if (sendMsg.fromAddress && sendMsg.fromAddress !== this.sender) {
124
+ return {
125
+ amount: "0",
126
+ denom: this.sendCurrency.coinMinimalDenom,
127
+ };
128
+ }
103
129
  for (const amountInMsg of sendMsg.amount) {
104
130
  if (amountInMsg.denom === amount.denom && amountInMsg.amount) {
105
131
  amount.amount = amount.amount.add(new unit_1.Int(amountInMsg.amount));
@@ -108,6 +134,13 @@ class SignDocAmountConfig extends chain_1.TxChainSetter {
108
134
  break;
109
135
  case cosmos_1.cosmos.staking.v1beta1.MsgDelegate:
110
136
  const delegateMsg = msg;
137
+ if (delegateMsg.delegatorAddress &&
138
+ delegateMsg.delegatorAddress !== this.sender) {
139
+ return {
140
+ amount: "0",
141
+ denom: this.sendCurrency.coinMinimalDenom,
142
+ };
143
+ }
111
144
  if (((_a = delegateMsg.amount) === null || _a === void 0 ? void 0 : _a.denom) === amount.denom &&
112
145
  delegateMsg.amount.amount) {
113
146
  amount.amount = amount.amount.add(new unit_1.Int(delegateMsg.amount.amount));
@@ -143,8 +176,11 @@ class SignDocAmountConfig extends chain_1.TxChainSetter {
143
176
  setSendCurrency() {
144
177
  // noop
145
178
  }
146
- setSender() {
147
- // noop
179
+ setDisableBalanceCheck(bool) {
180
+ this._disableBalanceCheck = bool;
181
+ }
182
+ get disableBalanceCheck() {
183
+ return this._disableBalanceCheck;
148
184
  }
149
185
  }
150
186
  __decorate([
@@ -153,6 +189,12 @@ __decorate([
153
189
  __decorate([
154
190
  mobx_1.observable.ref
155
191
  ], SignDocAmountConfig.prototype, "signDocHelper", void 0);
192
+ __decorate([
193
+ mobx_1.observable
194
+ ], SignDocAmountConfig.prototype, "_sender", void 0);
195
+ __decorate([
196
+ mobx_1.observable
197
+ ], SignDocAmountConfig.prototype, "_disableBalanceCheck", void 0);
156
198
  __decorate([
157
199
  mobx_1.action
158
200
  ], SignDocAmountConfig.prototype, "setMsgOpts", null);
@@ -162,11 +204,18 @@ __decorate([
162
204
  __decorate([
163
205
  mobx_1.computed
164
206
  ], SignDocAmountConfig.prototype, "amount", null);
207
+ __decorate([
208
+ mobx_1.action
209
+ ], SignDocAmountConfig.prototype, "setSender", null);
210
+ __decorate([
211
+ mobx_1.action
212
+ ], SignDocAmountConfig.prototype, "setDisableBalanceCheck", null);
165
213
  exports.SignDocAmountConfig = SignDocAmountConfig;
166
- const useSignDocAmountConfig = (chainGetter, chainId, msgOpts) => {
167
- const [config] = react_1.useState(() => new SignDocAmountConfig(chainGetter, chainId, msgOpts));
214
+ const useSignDocAmountConfig = (chainGetter, chainId, msgOpts, sender) => {
215
+ const [config] = react_1.useState(() => new SignDocAmountConfig(chainGetter, chainId, msgOpts, sender));
168
216
  config.setChain(chainId);
169
217
  config.setMsgOpts(msgOpts);
218
+ config.setSender(sender);
170
219
  return config;
171
220
  };
172
221
  exports.useSignDocAmountConfig = useSignDocAmountConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/sign-doc/amount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/sign-doc/amount.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,12 @@ class SignDocHelper {
37
37
  if (!this._signDocWrapper) {
38
38
  return undefined;
39
39
  }
40
+ // If the sign doc is for ADR-36,
41
+ // The fee and memo should be empty.
42
+ // Ignore the fee and memo config, and just return itself.
43
+ if (this._signDocWrapper.isADR36SignDoc) {
44
+ return this._signDocWrapper;
45
+ }
40
46
  const stdFee = this.feeConfig.toStdFee();
41
47
  if (this._signDocWrapper.mode === "amino") {
42
48
  const signDoc = Object.assign(Object.assign({}, this._signDocWrapper.aminoSignDoc), { fee: stdFee, memo: this.memoConfig.memo });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sign-doc/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sign-doc/index.ts"],"names":[],"mappings":"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"}
@@ -137,7 +137,7 @@ class AmountConfig extends chain_1.TxChainSetter {
137
137
  return new errors_1.InvalidNumberAmountError("Invalid form of number");
138
138
  }
139
139
  if (new unit_1.Dec(this.amount).lt(new unit_1.Dec(0))) {
140
- return new errors_1.NagativeAmountError("Amount is nagative");
140
+ return new errors_1.NegativeAmountError("Amount is negative");
141
141
  }
142
142
  const balance = this.queryBalances
143
143
  .getQueryBech32Address(this.sender)
@@ -22,7 +22,7 @@ export declare class InvalidNumberAmountError extends Error {
22
22
  export declare class ZeroAmountError extends Error {
23
23
  constructor(m: string);
24
24
  }
25
- export declare class NagativeAmountError extends Error {
25
+ export declare class NegativeAmountError extends Error {
26
26
  constructor(m: string);
27
27
  }
28
28
  export declare class InsufficientAmountError extends Error {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InsufficientFeeError = exports.NotLoadedFeeError = exports.InsufficientAmountError = exports.NagativeAmountError = exports.ZeroAmountError = exports.InvalidNumberAmountError = exports.EmptyAmountError = exports.ENSFailedToFetchError = exports.ENSIsFetchingError = exports.ENSNotSupportedError = exports.InvalidBech32Error = exports.EmptyAddressError = void 0;
3
+ 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);
@@ -65,14 +65,14 @@ class ZeroAmountError extends Error {
65
65
  }
66
66
  }
67
67
  exports.ZeroAmountError = ZeroAmountError;
68
- class NagativeAmountError extends Error {
68
+ class NegativeAmountError extends Error {
69
69
  constructor(m) {
70
70
  super(m);
71
71
  // Set the prototype explicitly.
72
- Object.setPrototypeOf(this, NagativeAmountError.prototype);
72
+ Object.setPrototypeOf(this, NegativeAmountError.prototype);
73
73
  }
74
74
  }
75
- exports.NagativeAmountError = NagativeAmountError;
75
+ exports.NegativeAmountError = NegativeAmountError;
76
76
  class InsufficientAmountError extends Error {
77
77
  constructor(m) {
78
78
  super(m);
package/build/tx/fee.d.ts CHANGED
@@ -20,6 +20,7 @@ export declare class FeeConfig extends TxChainSetter implements IFeeConfig {
20
20
  * @protected
21
21
  */
22
22
  protected additionAmountToNeedFee: boolean;
23
+ protected _disableBalanceCheck: boolean;
23
24
  constructor(chainGetter: ChainGetter, initialChainId: string, sender: string, queryBalances: ObservableQueryBalances, amountConfig: IAmountConfig, gasConfig: IGasConfig, additionAmountToNeedFee?: boolean);
24
25
  setAdditionAmountToNeedFee(additionAmountToNeedFee: boolean): void;
25
26
  setQueryBalances(queryBalances: ObservableQueryBalances): void;
@@ -36,5 +37,7 @@ export declare class FeeConfig extends TxChainSetter implements IFeeConfig {
36
37
  protected getFeeTypePrimitive(feeType: FeeType): CoinPrimitive;
37
38
  readonly getFeeTypePretty: (feeType: FeeType) => CoinPretty;
38
39
  getError(): Error | undefined;
40
+ setDisableBalanceCheck(bool: boolean): void;
41
+ get disableBalanceCheck(): boolean;
39
42
  }
40
43
  export declare const useFeeConfig: (chainGetter: ChainGetter, chainId: string, sender: string, queryBalances: ObservableQueryBalances, amountConfig: IAmountConfig, gasConfig: IGasConfig, additionAmountToNeedFee?: boolean) => FeeConfig;
package/build/tx/fee.js CHANGED
@@ -29,6 +29,7 @@ class FeeConfig extends chain_1.TxChainSetter {
29
29
  * @protected
30
30
  */
31
31
  this.additionAmountToNeedFee = true;
32
+ this._disableBalanceCheck = false;
32
33
  this.getFeeTypePretty = mobx_utils_1.computedFn((feeType) => {
33
34
  if (!this.feeCurrency) {
34
35
  throw new Error("Fee currency not set");
@@ -128,6 +129,9 @@ class FeeConfig extends chain_1.TxChainSetter {
128
129
  if (this.gasConfig.getError()) {
129
130
  return this.gasConfig.getError();
130
131
  }
132
+ if (this.disableBalanceCheck) {
133
+ return undefined;
134
+ }
131
135
  const fee = this.getFeePrimitive();
132
136
  if (!fee) {
133
137
  return undefined;
@@ -163,6 +167,12 @@ class FeeConfig extends chain_1.TxChainSetter {
163
167
  }
164
168
  }
165
169
  }
170
+ setDisableBalanceCheck(bool) {
171
+ this._disableBalanceCheck = bool;
172
+ }
173
+ get disableBalanceCheck() {
174
+ return this._disableBalanceCheck;
175
+ }
166
176
  }
167
177
  __decorate([
168
178
  mobx_1.observable.ref
@@ -179,6 +189,9 @@ __decorate([
179
189
  __decorate([
180
190
  mobx_1.observable
181
191
  ], FeeConfig.prototype, "additionAmountToNeedFee", void 0);
192
+ __decorate([
193
+ mobx_1.observable
194
+ ], FeeConfig.prototype, "_disableBalanceCheck", void 0);
182
195
  __decorate([
183
196
  mobx_1.action
184
197
  ], FeeConfig.prototype, "setAdditionAmountToNeedFee", null);
@@ -197,6 +210,9 @@ __decorate([
197
210
  __decorate([
198
211
  mobx_1.computed
199
212
  ], FeeConfig.prototype, "fee", null);
213
+ __decorate([
214
+ mobx_1.action
215
+ ], FeeConfig.prototype, "setDisableBalanceCheck", null);
200
216
  exports.FeeConfig = FeeConfig;
201
217
  const useFeeConfig = (chainGetter, chainId, sender, queryBalances, amountConfig, gasConfig, additionAmountToNeedFee = true) => {
202
218
  const [config] = react_1.useState(() => new FeeConfig(chainGetter, chainId, sender, queryBalances, amountConfig, gasConfig, additionAmountToNeedFee));
@@ -1 +1 @@
1
- {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/tx/fee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/tx/fee.ts"],"names":[],"mappings":"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"}
package/build/tx/gas.d.ts CHANGED
@@ -2,10 +2,11 @@ import { IGasConfig } from "./types";
2
2
  import { TxChainSetter } from "./chain";
3
3
  import { ChainGetter } from "@keplr-wallet/stores";
4
4
  export declare class GasConfig extends TxChainSetter implements IGasConfig {
5
- protected _gas: number;
5
+ protected _gasRaw: string | undefined;
6
6
  constructor(chainGetter: ChainGetter, initialChainId: string, initialGas?: number);
7
+ get gasRaw(): string;
7
8
  get gas(): number;
8
- setGas(gas: number): void;
9
+ setGas(gas: number | string): void;
9
10
  getError(): Error | undefined;
10
11
  }
11
- export declare const useGasConfig: (chainGetter: ChainGetter, chainId: string, initialGas?: number) => GasConfig;
12
+ export declare const useGasConfig: (chainGetter: ChainGetter, chainId: string, initialGas?: number | undefined) => GasConfig;
package/build/tx/gas.js CHANGED
@@ -11,18 +11,61 @@ 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 = 0) {
14
+ constructor(chainGetter, initialChainId, initialGas) {
15
15
  super(chainGetter, initialChainId);
16
- this._gas = initialGas;
16
+ /*
17
+ This field is used to handle the value from the input more flexibly.
18
+ We use string because there is no guarantee that only number is input in input component.
19
+ If the user has never set it, undefined is also allowed to indicate that it is a default value.
20
+ */
21
+ this._gasRaw = undefined;
22
+ this._gasRaw = initialGas === null || initialGas === void 0 ? void 0 : initialGas.toString();
17
23
  mobx_1.makeObservable(this);
18
24
  }
25
+ get gasRaw() {
26
+ if (this._gasRaw == null) {
27
+ return this.gas.toString();
28
+ }
29
+ return this._gasRaw;
30
+ }
19
31
  get gas() {
20
- return this._gas;
32
+ // If the gasRaw is undefined,
33
+ // it means that the user never input something yet.
34
+ // In this case, it should be handled as gas is 0.
35
+ // But, it can be overridden on the child class if it is needed.
36
+ if (this._gasRaw == null) {
37
+ return 0;
38
+ }
39
+ const r = parseInt(this._gasRaw);
40
+ return Number.isNaN(r) ? 0 : r;
21
41
  }
22
42
  setGas(gas) {
23
- this._gas = Math.floor(gas);
43
+ if (typeof gas === "number") {
44
+ this._gasRaw = Math.floor(gas).toString();
45
+ return;
46
+ }
47
+ if (gas === "") {
48
+ this._gasRaw = gas;
49
+ return;
50
+ }
51
+ // Gas must not be floated.
52
+ if (!gas.includes(".")) {
53
+ if (!Number.isNaN(Number.parseInt(gas))) {
54
+ this._gasRaw = gas;
55
+ return;
56
+ }
57
+ }
24
58
  }
25
59
  getError() {
60
+ if (this._gasRaw === "") {
61
+ return new Error("Gas not set");
62
+ }
63
+ if (this._gasRaw && Number.isNaN(this._gasRaw)) {
64
+ return new Error("Gas is not valid number");
65
+ }
66
+ if (!Number.isInteger(this.gas)) {
67
+ return new Error("Gas is not integer");
68
+ }
26
69
  if (this.gas <= 0) {
27
70
  return new Error("Gas should be greater than 0");
28
71
  }
@@ -31,12 +74,12 @@ class GasConfig extends chain_1.TxChainSetter {
31
74
  }
32
75
  __decorate([
33
76
  mobx_1.observable
34
- ], GasConfig.prototype, "_gas", void 0);
77
+ ], GasConfig.prototype, "_gasRaw", void 0);
35
78
  __decorate([
36
79
  mobx_1.action
37
80
  ], GasConfig.prototype, "setGas", null);
38
81
  exports.GasConfig = GasConfig;
39
- const useGasConfig = (chainGetter, chainId, initialGas = 0) => {
82
+ const useGasConfig = (chainGetter, chainId, initialGas) => {
40
83
  const [txConfig] = react_1.useState(() => new GasConfig(chainGetter, chainId, initialGas));
41
84
  txConfig.setChain(chainId);
42
85
  return txConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/tx/gas.ts"],"names":[],"mappings":";;;;;;;;;AACA,mCAAwC;AAExC,+BAA0D;AAC1D,iCAAiC;AAEjC,MAAa,SAAU,SAAQ,qBAAa;IAI1C,YACE,WAAwB,EACxB,cAAsB,EACtB,aAAqB,CAAC;QAEtB,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEnC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QAEvB,qBAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAGD,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;YACjB,OAAO,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SAClD;QACD,OAAO;IACT,CAAC;CACF;AA7BC;IADC,iBAAU;uCACY;AAmBvB;IADC,aAAM;uCAGN;AAvBH,8BA+BC;AAEM,MAAM,YAAY,GAAG,CAC1B,WAAwB,EACxB,OAAe,EACf,aAAqB,CAAC,EACtB,EAAE;IACF,MAAM,CAAC,QAAQ,CAAC,GAAG,gBAAQ,CACzB,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CACtD,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE3B,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAXW,QAAA,YAAY,gBAWvB"}
1
+ {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/tx/gas.ts"],"names":[],"mappings":";;;;;;;;;AACA,mCAAwC;AAExC,+BAA0D;AAC1D,iCAAiC;AAEjC,MAAa,SAAU,SAAQ,qBAAa;IAS1C,YACE,WAAwB,EACxB,cAAsB,EACtB,UAAmB;QAEnB,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAbrC;;;;WAIG;QAEO,YAAO,GAAuB,SAAS,CAAC;QAShD,IAAI,CAAC,OAAO,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAC;QAEtC,qBAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;QACR,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,GAAG;QACL,8BAA8B;QAC9B,oDAAoD;QACpD,kDAAkD;QAClD,gEAAgE;QAChE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,OAAO,CAAC,CAAC;SACV;QAED,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAGD,MAAM,CAAC,GAAoB;QACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO;SACR;QAED,IAAI,GAAG,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,OAAO;SACR;QAED,2BAA2B;QAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;gBACvC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,OAAO;aACR;SACF;IACH,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAE;YACvB,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;SACjC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC9C,OAAO,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC7C;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC/B,OAAO,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;YACjB,OAAO,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SAClD;QACD,OAAO;IACT,CAAC;CACF;AA1EC;IADC,iBAAU;0CACuC;AAoClD;IADC,aAAM;uCAmBN;AA7DH,8BAiFC;AAEM,MAAM,YAAY,GAAG,CAC1B,WAAwB,EACxB,OAAe,EACf,UAAmB,EACnB,EAAE;IACF,MAAM,CAAC,QAAQ,CAAC,GAAG,gBAAQ,CACzB,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CACtD,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE3B,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAXW,QAAA,YAAY,gBAWvB"}
@@ -1,8 +1,7 @@
1
1
  import { GasConfig } from "./gas";
2
- import { ChainGetter } from "@keplr-wallet/stores";
2
+ import { ChainGetter, CosmosMsgOpts, SecretMsgOpts, CosmwasmMsgOpts } from "@keplr-wallet/stores";
3
3
  import { IAmountConfig } from "./types";
4
- import { CosmosMsgOpts, SecretMsgOpts } from "@keplr-wallet/stores";
5
- declare type MsgOpts = CosmosMsgOpts & SecretMsgOpts;
4
+ declare type MsgOpts = CosmosMsgOpts & SecretMsgOpts & CosmwasmMsgOpts;
6
5
  export declare class SendGasConfig extends GasConfig {
7
6
  protected readonly amountConfig: IAmountConfig;
8
7
  protected sendMsgOpts: MsgOpts["send"];
@@ -24,16 +24,18 @@ class SendGasConfig extends gas_1.GasConfig {
24
24
  get gas() {
25
25
  // If gas not set manually, assume that the tx is for MsgSend.
26
26
  // And, set the default gas according to the currency type.
27
- if (this._gas <= 0 && this.amountConfig.sendCurrency) {
27
+ if (this._gasRaw == null && this.amountConfig.sendCurrency) {
28
28
  const denomHelper = new common_1.DenomHelper(this.amountConfig.sendCurrency.coinMinimalDenom);
29
29
  switch (denomHelper.type) {
30
30
  case "secret20":
31
31
  return this.sendMsgOpts.secret20.gas;
32
+ case "cw20":
33
+ return this.sendMsgOpts.cw20.gas;
32
34
  default:
33
35
  return this.sendMsgOpts.native.gas;
34
36
  }
35
37
  }
36
- return this._gas;
38
+ return super.gas;
37
39
  }
38
40
  }
39
41
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"send-gas.js","sourceRoot":"","sources":["../../src/tx/send-gas.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAAkC;AAClC,iDAAmD;AAGnD,iCAAiC;AAEjC,+BAA0D;AAI1D,MAAa,aAAc,SAAQ,eAAS;IAI1C,YACE,WAAwB,EACxB,cAAsB,EACH,YAA2B,EAC9C,WAA4B;QAE5B,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAHhB,iBAAY,GAAZ,YAAY,CAAe;QAK9C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,qBAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAGD,cAAc,CAAC,IAAqB;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG;QACL,8DAA8D;QAC9D,2DAA2D;QAC3D,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACpD,MAAM,WAAW,GAAG,IAAI,oBAAW,CACjC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAChD,CAAC;YAEF,QAAQ,WAAW,CAAC,IAAI,EAAE;gBACxB,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACvC;oBACE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;aACtC;SACF;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAtCC;IADC,iBAAU,CAAC,GAAG;kDACwB;AAgBvC;IADC,aAAM;mDAGN;AApBH,sCAwCC;AAEM,MAAM,gBAAgB,GAAG,CAC9B,WAAwB,EACxB,OAAe,EACf,YAA2B,EAC3B,WAA4B,EAC5B,EAAE;IACF,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAQ,CAC1B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CACzE,CAAC;IACF,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAEtC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B"}
1
+ {"version":3,"file":"send-gas.js","sourceRoot":"","sources":["../../src/tx/send-gas.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAAkC;AAClC,iDAAmD;AAQnD,iCAAiC;AACjC,+BAA0D;AAI1D,MAAa,aAAc,SAAQ,eAAS;IAI1C,YACE,WAAwB,EACxB,cAAsB,EACH,YAA2B,EAC9C,WAA4B;QAE5B,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAHhB,iBAAY,GAAZ,YAAY,CAAe;QAK9C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,qBAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAGD,cAAc,CAAC,IAAqB;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG;QACL,8DAA8D;QAC9D,2DAA2D;QAC3D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YAC1D,MAAM,WAAW,GAAG,IAAI,oBAAW,CACjC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAChD,CAAC;YAEF,QAAQ,WAAW,CAAC,IAAI,EAAE;gBACxB,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACvC,KAAK,MAAM;oBACT,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnC;oBACE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;aACtC;SACF;QAED,OAAO,KAAK,CAAC,GAAG,CAAC;IACnB,CAAC;CACF;AAxCC;IADC,iBAAU,CAAC,GAAG;kDACwB;AAgBvC;IADC,aAAM;mDAGN;AApBH,sCA0CC;AAEM,MAAM,gBAAgB,GAAG,CAC9B,WAAwB,EACxB,OAAe,EACf,YAA2B,EAC3B,WAA4B,EAC5B,EAAE;IACF,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAQ,CAC1B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CACzE,CAAC;IACF,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAEtC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B"}
@@ -1,6 +1,6 @@
1
- import { ChainGetter, CosmosMsgOpts, SecretMsgOpts } from "@keplr-wallet/stores";
1
+ import { ChainGetter, CosmosMsgOpts, CosmwasmMsgOpts, SecretMsgOpts } from "@keplr-wallet/stores";
2
2
  import { ObservableQueryBalances } from "@keplr-wallet/stores/build/query/balances";
3
- declare type MsgOpts = CosmosMsgOpts & SecretMsgOpts;
3
+ declare type MsgOpts = CosmosMsgOpts & SecretMsgOpts & CosmwasmMsgOpts;
4
4
  export declare const useSendTxConfig: (chainGetter: ChainGetter, chainId: string, sendMsgOpts: MsgOpts["send"], sender: string, queryBalances: ObservableQueryBalances, ensEndpoint?: string | undefined) => {
5
5
  amountConfig: import("./amount").AmountConfig;
6
6
  memoConfig: import("./memo").MemoConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"send-tx.js","sourceRoot":"","sources":["../../src/tx/send-tx.ts"],"names":[],"mappings":";;;AAMA,mCAA0E;AAC1E,yCAA8C;AAC9C,qCAA2C;AAIpC,MAAM,eAAe,GAAG,CAC7B,WAAwB,EACxB,OAAe,EACf,WAA4B,EAC5B,MAAc,EACd,aAAsC,EACtC,WAAoB,EACpB,EAAE;IACF,MAAM,YAAY,GAAG,wBAAe,CAClC,WAAW,EACX,OAAO,EACP,MAAM,EACN,aAAa,CACd,CAAC;IAEF,MAAM,UAAU,GAAG,qBAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,2BAAgB,CAChC,WAAW,EACX,OAAO,EACP,YAAY,EACZ,WAAW,CACZ,CAAC;IACF,MAAM,SAAS,GAAG,oBAAY,CAC5B,WAAW,EACX,OAAO,EACP,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,CACV,CAAC;IACF,gFAAgF;IAChF,6EAA6E;IAC7E,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,eAAe,GAAG,0BAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAE9E,OAAO;QACL,YAAY;QACZ,UAAU;QACV,SAAS;QACT,SAAS;QACT,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,eAAe,mBA2C1B"}
1
+ {"version":3,"file":"send-tx.js","sourceRoot":"","sources":["../../src/tx/send-tx.ts"],"names":[],"mappings":";;;AAOA,mCAA0E;AAC1E,yCAA8C;AAC9C,qCAA2C;AAIpC,MAAM,eAAe,GAAG,CAC7B,WAAwB,EACxB,OAAe,EACf,WAA4B,EAC5B,MAAc,EACd,aAAsC,EACtC,WAAoB,EACpB,EAAE;IACF,MAAM,YAAY,GAAG,wBAAe,CAClC,WAAW,EACX,OAAO,EACP,MAAM,EACN,aAAa,CACd,CAAC;IAEF,MAAM,UAAU,GAAG,qBAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,2BAAgB,CAChC,WAAW,EACX,OAAO,EACP,YAAY,EACZ,WAAW,CACZ,CAAC;IACF,MAAM,SAAS,GAAG,oBAAY,CAC5B,WAAW,EACX,OAAO,EACP,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,CACV,CAAC;IACF,gFAAgF;IAChF,6EAA6E;IAC7E,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,eAAe,GAAG,0BAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAE9E,OAAO;QACL,YAAY;QACZ,UAAU;QACV,SAAS;QACT,SAAS;QACT,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,eAAe,mBA2C1B"}
@@ -123,7 +123,7 @@ class StakedAmountConfig extends chain_1.TxChainSetter {
123
123
  return new errors_1.InvalidNumberAmountError("Invalid form of number");
124
124
  }
125
125
  if (new unit_1.Dec(this.amount).lt(new unit_1.Dec(0))) {
126
- return new errors_1.NagativeAmountError("Amount is nagative");
126
+ return new errors_1.NegativeAmountError("Amount is negative");
127
127
  }
128
128
  const balance = this.queryDelegations
129
129
  .getQueryBech32Address(this.sender)
@@ -13,7 +13,8 @@ export interface IMemoConfig extends ITxChainSetter {
13
13
  }
14
14
  export interface IGasConfig extends ITxChainSetter {
15
15
  gas: number;
16
- setGas(gas: number): void;
16
+ gasRaw: string;
17
+ setGas(gas: number | string): void;
17
18
  getError(): Error | undefined;
18
19
  }
19
20
  export interface IFeeConfig extends ITxChainSetter {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tx/types.ts"],"names":[],"mappings":";;;AA6Da,QAAA,mBAAmB,GAI5B;IACF,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,IAAI;CACX,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tx/types.ts"],"names":[],"mappings":";;;AAiEa,QAAA,mBAAmB,GAI5B;IACF,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,IAAI;CACX,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/hooks",
3
- "version": "0.9.8",
3
+ "version": "0.9.10",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -21,15 +21,15 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@cosmjs/launchpad": "^0.24.0-alpha.25",
24
- "@keplr-wallet/background": "^0.9.8",
25
- "@keplr-wallet/common": "^0.9.7",
26
- "@keplr-wallet/cosmos": "^0.9.7",
27
- "@keplr-wallet/crypto": "^0.9.7",
24
+ "@keplr-wallet/background": "^0.9.10",
25
+ "@keplr-wallet/common": "^0.9.10",
26
+ "@keplr-wallet/cosmos": "^0.9.10",
27
+ "@keplr-wallet/crypto": "^0.9.10",
28
28
  "@keplr-wallet/ens": "^0.9.0",
29
29
  "@keplr-wallet/popup": "^0.9.6",
30
- "@keplr-wallet/stores": "^0.9.8",
31
- "@keplr-wallet/types": "^0.9.6",
32
- "@keplr-wallet/unit": "^0.9.6",
30
+ "@keplr-wallet/stores": "^0.9.10",
31
+ "@keplr-wallet/types": "^0.9.10",
32
+ "@keplr-wallet/unit": "^0.9.10",
33
33
  "long": "^4.0.0",
34
34
  "mobx": "^6.1.7",
35
35
  "mobx-utils": "^6.0.3",
@@ -37,5 +37,5 @@
37
37
  "react-router": "^5.1.2",
38
38
  "utility-types": "^3.10.0"
39
39
  },
40
- "gitHead": "477c57ce10beab169ad8b0da7d929c5bb988ca7e"
40
+ "gitHead": "05efb7b77a6e0bffee7533db91e7c83b7b777da6"
41
41
  }
package/src/ibc/gas.ts CHANGED
@@ -12,7 +12,7 @@ export class IBCTransferGasConfig extends GasConfig {
12
12
  initialChainId: string,
13
13
  msgOpts: CosmosMsgOpts["ibcTransfer"]
14
14
  ) {
15
- super(chainGetter, initialChainId, msgOpts.gas);
15
+ super(chainGetter, initialChainId);
16
16
 
17
17
  this.msgOpts = msgOpts;
18
18
 
@@ -26,11 +26,11 @@ export class IBCTransferGasConfig extends GasConfig {
26
26
 
27
27
  get gas(): number {
28
28
  // If gas not set manually, assume that the tx is for MsgTransfer.
29
- if (this._gas <= 0) {
29
+ if (this._gasRaw == null) {
30
30
  return this.msgOpts.gas;
31
31
  }
32
32
 
33
- return this._gas;
33
+ return super.gas;
34
34
  }
35
35
  }
36
36
 
@@ -1,5 +1,4 @@
1
- import { IAmountConfig } from "../tx";
2
- import { TxChainSetter } from "../tx/chain";
1
+ import { IAmountConfig, TxChainSetter } from "../tx";
3
2
  import {
4
3
  ChainGetter,
5
4
  CoinPrimitive,
@@ -26,14 +25,22 @@ export class SignDocAmountConfig
26
25
  @observable.ref
27
26
  protected signDocHelper?: SignDocHelper = undefined;
28
27
 
28
+ @observable
29
+ protected _sender: string;
30
+
31
+ @observable
32
+ protected _disableBalanceCheck: boolean = false;
33
+
29
34
  constructor(
30
35
  chainGetter: ChainGetter,
31
36
  initialChainId: string,
32
- msgOpts: CosmosMsgOpts
37
+ msgOpts: CosmosMsgOpts,
38
+ sender: string
33
39
  ) {
34
40
  super(chainGetter, initialChainId);
35
41
 
36
42
  this.msgOpts = msgOpts;
43
+ this._sender = sender;
37
44
 
38
45
  makeObservable(this);
39
46
  }
@@ -71,13 +78,19 @@ export class SignDocAmountConfig
71
78
  return [this.sendCurrency];
72
79
  }
73
80
 
81
+ @action
82
+ setSender(sender: string): void {
83
+ this._sender = sender;
84
+ }
85
+
74
86
  get sender(): string {
75
- return "";
87
+ return this._sender;
76
88
  }
77
89
 
78
90
  getAmountPrimitive = computedFn(
79
91
  (): CoinPrimitive => {
80
92
  if (
93
+ this.disableBalanceCheck ||
81
94
  !this.signDocHelper?.signDocWrapper ||
82
95
  this.chainInfo.feeCurrencies.length === 0
83
96
  ) {
@@ -106,6 +119,15 @@ export class SignDocAmountConfig
106
119
  try {
107
120
  switch (msg.type) {
108
121
  case this.msgOpts.send.native.type:
122
+ if (
123
+ msg.value.from_address &&
124
+ msg.value.from_address !== this.sender
125
+ ) {
126
+ return {
127
+ amount: "0",
128
+ denom: this.sendCurrency.coinMinimalDenom,
129
+ };
130
+ }
109
131
  if (msg.value.amount && Array.isArray(msg.value.amount)) {
110
132
  for (const amountInMsg of msg.value.amount) {
111
133
  if (amountInMsg.denom === amount.denom) {
@@ -117,6 +139,15 @@ export class SignDocAmountConfig
117
139
  }
118
140
  break;
119
141
  case this.msgOpts.delegate.type:
142
+ if (
143
+ msg.value.delegator_address &&
144
+ msg.value.delegator_address !== this.sender
145
+ ) {
146
+ return {
147
+ amount: "0",
148
+ denom: this.sendCurrency.coinMinimalDenom,
149
+ };
150
+ }
120
151
  if (msg.value.amount && msg.value.amount.denom === amount.denom) {
121
152
  amount.amount = amount.amount.add(
122
153
  new Int(msg.value.amount.amount)
@@ -145,6 +176,12 @@ export class SignDocAmountConfig
145
176
  switch (msg.constructor) {
146
177
  case cosmos.bank.v1beta1.MsgSend:
147
178
  const sendMsg = msg as cosmos.bank.v1beta1.MsgSend;
179
+ if (sendMsg.fromAddress && sendMsg.fromAddress !== this.sender) {
180
+ return {
181
+ amount: "0",
182
+ denom: this.sendCurrency.coinMinimalDenom,
183
+ };
184
+ }
148
185
  for (const amountInMsg of sendMsg.amount) {
149
186
  if (amountInMsg.denom === amount.denom && amountInMsg.amount) {
150
187
  amount.amount = amount.amount.add(new Int(amountInMsg.amount));
@@ -153,6 +190,15 @@ export class SignDocAmountConfig
153
190
  break;
154
191
  case cosmos.staking.v1beta1.MsgDelegate:
155
192
  const delegateMsg = msg as cosmos.staking.v1beta1.MsgDelegate;
193
+ if (
194
+ delegateMsg.delegatorAddress &&
195
+ delegateMsg.delegatorAddress !== this.sender
196
+ ) {
197
+ return {
198
+ amount: "0",
199
+ denom: this.sendCurrency.coinMinimalDenom,
200
+ };
201
+ }
156
202
  if (
157
203
  delegateMsg.amount?.denom === amount.denom &&
158
204
  delegateMsg.amount.amount
@@ -200,21 +246,28 @@ export class SignDocAmountConfig
200
246
  // noop
201
247
  }
202
248
 
203
- setSender(): void {
204
- // noop
249
+ @action
250
+ setDisableBalanceCheck(bool: boolean) {
251
+ this._disableBalanceCheck = bool;
252
+ }
253
+
254
+ get disableBalanceCheck(): boolean {
255
+ return this._disableBalanceCheck;
205
256
  }
206
257
  }
207
258
 
208
259
  export const useSignDocAmountConfig = (
209
260
  chainGetter: ChainGetter,
210
261
  chainId: string,
211
- msgOpts: CosmosMsgOpts
262
+ msgOpts: CosmosMsgOpts,
263
+ sender: string
212
264
  ) => {
213
265
  const [config] = useState(
214
- () => new SignDocAmountConfig(chainGetter, chainId, msgOpts)
266
+ () => new SignDocAmountConfig(chainGetter, chainId, msgOpts, sender)
215
267
  );
216
268
  config.setChain(chainId);
217
269
  config.setMsgOpts(msgOpts);
270
+ config.setSender(sender);
218
271
 
219
272
  return config;
220
273
  };
@@ -23,6 +23,13 @@ export class SignDocHelper {
23
23
  return undefined;
24
24
  }
25
25
 
26
+ // If the sign doc is for ADR-36,
27
+ // The fee and memo should be empty.
28
+ // Ignore the fee and memo config, and just return itself.
29
+ if (this._signDocWrapper.isADR36SignDoc) {
30
+ return this._signDocWrapper;
31
+ }
32
+
26
33
  const stdFee = this.feeConfig.toStdFee();
27
34
 
28
35
  if (this._signDocWrapper.mode === "amino") {
package/src/tx/amount.ts CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  EmptyAmountError,
9
9
  InsufficientAmountError,
10
10
  InvalidNumberAmountError,
11
- NagativeAmountError,
11
+ NegativeAmountError,
12
12
  ZeroAmountError,
13
13
  } from "./errors";
14
14
  import { Dec, DecUtils } from "@keplr-wallet/unit";
@@ -194,7 +194,7 @@ export class AmountConfig extends TxChainSetter implements IAmountConfig {
194
194
  return new InvalidNumberAmountError("Invalid form of number");
195
195
  }
196
196
  if (new Dec(this.amount).lt(new Dec(0))) {
197
- return new NagativeAmountError("Amount is nagative");
197
+ return new NegativeAmountError("Amount is negative");
198
198
  }
199
199
 
200
200
  const balance = this.queryBalances
package/src/tx/errors.ts CHANGED
@@ -62,11 +62,11 @@ export class ZeroAmountError extends Error {
62
62
  }
63
63
  }
64
64
 
65
- export class NagativeAmountError extends Error {
65
+ export class NegativeAmountError extends Error {
66
66
  constructor(m: string) {
67
67
  super(m);
68
68
  // Set the prototype explicitly.
69
- Object.setPrototypeOf(this, NagativeAmountError.prototype);
69
+ Object.setPrototypeOf(this, NegativeAmountError.prototype);
70
70
  }
71
71
  }
72
72
 
package/src/tx/fee.ts CHANGED
@@ -39,6 +39,9 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig {
39
39
  @observable
40
40
  protected additionAmountToNeedFee: boolean = true;
41
41
 
42
+ @observable
43
+ protected _disableBalanceCheck: boolean = false;
44
+
42
45
  constructor(
43
46
  chainGetter: ChainGetter,
44
47
  initialChainId: string,
@@ -183,6 +186,10 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig {
183
186
  return this.gasConfig.getError();
184
187
  }
185
188
 
189
+ if (this.disableBalanceCheck) {
190
+ return undefined;
191
+ }
192
+
186
193
  const fee = this.getFeePrimitive();
187
194
  if (!fee) {
188
195
  return undefined;
@@ -226,6 +233,15 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig {
226
233
  }
227
234
  }
228
235
  }
236
+
237
+ @action
238
+ setDisableBalanceCheck(bool: boolean) {
239
+ this._disableBalanceCheck = bool;
240
+ }
241
+
242
+ get disableBalanceCheck(): boolean {
243
+ return this._disableBalanceCheck;
244
+ }
229
245
  }
230
246
 
231
247
  export const useFeeConfig = (
package/src/tx/gas.ts CHANGED
@@ -5,31 +5,81 @@ import { action, makeObservable, observable } from "mobx";
5
5
  import { useState } from "react";
6
6
 
7
7
  export class GasConfig extends TxChainSetter implements IGasConfig {
8
+ /*
9
+ This field is used to handle the value from the input more flexibly.
10
+ We use string because there is no guarantee that only number is input in input component.
11
+ If the user has never set it, undefined is also allowed to indicate that it is a default value.
12
+ */
8
13
  @observable
9
- protected _gas: number;
14
+ protected _gasRaw: string | undefined = undefined;
10
15
 
11
16
  constructor(
12
17
  chainGetter: ChainGetter,
13
18
  initialChainId: string,
14
- initialGas: number = 0
19
+ initialGas?: number
15
20
  ) {
16
21
  super(chainGetter, initialChainId);
17
22
 
18
- this._gas = initialGas;
23
+ this._gasRaw = initialGas?.toString();
19
24
 
20
25
  makeObservable(this);
21
26
  }
22
27
 
28
+ get gasRaw(): string {
29
+ if (this._gasRaw == null) {
30
+ return this.gas.toString();
31
+ }
32
+
33
+ return this._gasRaw;
34
+ }
35
+
23
36
  get gas(): number {
24
- return this._gas;
37
+ // If the gasRaw is undefined,
38
+ // it means that the user never input something yet.
39
+ // In this case, it should be handled as gas is 0.
40
+ // But, it can be overridden on the child class if it is needed.
41
+ if (this._gasRaw == null) {
42
+ return 0;
43
+ }
44
+
45
+ const r = parseInt(this._gasRaw);
46
+ return Number.isNaN(r) ? 0 : r;
25
47
  }
26
48
 
27
49
  @action
28
- setGas(gas: number) {
29
- this._gas = Math.floor(gas);
50
+ setGas(gas: number | string) {
51
+ if (typeof gas === "number") {
52
+ this._gasRaw = Math.floor(gas).toString();
53
+ return;
54
+ }
55
+
56
+ if (gas === "") {
57
+ this._gasRaw = gas;
58
+ return;
59
+ }
60
+
61
+ // Gas must not be floated.
62
+ if (!gas.includes(".")) {
63
+ if (!Number.isNaN(Number.parseInt(gas))) {
64
+ this._gasRaw = gas;
65
+ return;
66
+ }
67
+ }
30
68
  }
31
69
 
32
70
  getError(): Error | undefined {
71
+ if (this._gasRaw === "") {
72
+ return new Error("Gas not set");
73
+ }
74
+
75
+ if (this._gasRaw && Number.isNaN(this._gasRaw)) {
76
+ return new Error("Gas is not valid number");
77
+ }
78
+
79
+ if (!Number.isInteger(this.gas)) {
80
+ return new Error("Gas is not integer");
81
+ }
82
+
33
83
  if (this.gas <= 0) {
34
84
  return new Error("Gas should be greater than 0");
35
85
  }
@@ -40,7 +90,7 @@ export class GasConfig extends TxChainSetter implements IGasConfig {
40
90
  export const useGasConfig = (
41
91
  chainGetter: ChainGetter,
42
92
  chainId: string,
43
- initialGas: number = 0
93
+ initialGas?: number
44
94
  ) => {
45
95
  const [txConfig] = useState(
46
96
  () => new GasConfig(chainGetter, chainId, initialGas)
@@ -1,12 +1,16 @@
1
1
  import { GasConfig } from "./gas";
2
2
  import { DenomHelper } from "@keplr-wallet/common";
3
- import { ChainGetter } from "@keplr-wallet/stores";
3
+ import {
4
+ ChainGetter,
5
+ CosmosMsgOpts,
6
+ SecretMsgOpts,
7
+ CosmwasmMsgOpts,
8
+ } from "@keplr-wallet/stores";
4
9
  import { IAmountConfig } from "./types";
5
10
  import { useState } from "react";
6
- import { CosmosMsgOpts, SecretMsgOpts } from "@keplr-wallet/stores";
7
11
  import { action, makeObservable, observable } from "mobx";
8
12
 
9
- type MsgOpts = CosmosMsgOpts & SecretMsgOpts;
13
+ type MsgOpts = CosmosMsgOpts & SecretMsgOpts & CosmwasmMsgOpts;
10
14
 
11
15
  export class SendGasConfig extends GasConfig {
12
16
  @observable.ref
@@ -33,7 +37,7 @@ export class SendGasConfig extends GasConfig {
33
37
  get gas(): number {
34
38
  // If gas not set manually, assume that the tx is for MsgSend.
35
39
  // And, set the default gas according to the currency type.
36
- if (this._gas <= 0 && this.amountConfig.sendCurrency) {
40
+ if (this._gasRaw == null && this.amountConfig.sendCurrency) {
37
41
  const denomHelper = new DenomHelper(
38
42
  this.amountConfig.sendCurrency.coinMinimalDenom
39
43
  );
@@ -41,12 +45,14 @@ export class SendGasConfig extends GasConfig {
41
45
  switch (denomHelper.type) {
42
46
  case "secret20":
43
47
  return this.sendMsgOpts.secret20.gas;
48
+ case "cw20":
49
+ return this.sendMsgOpts.cw20.gas;
44
50
  default:
45
51
  return this.sendMsgOpts.native.gas;
46
52
  }
47
53
  }
48
54
 
49
- return this._gas;
55
+ return super.gas;
50
56
  }
51
57
  }
52
58
 
package/src/tx/send-tx.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  ChainGetter,
3
3
  CosmosMsgOpts,
4
+ CosmwasmMsgOpts,
4
5
  SecretMsgOpts,
5
6
  } from "@keplr-wallet/stores";
6
7
  import { ObservableQueryBalances } from "@keplr-wallet/stores/build/query/balances";
@@ -8,7 +9,7 @@ import { useFeeConfig, useMemoConfig, useRecipientConfig } from "./index";
8
9
  import { useSendGasConfig } from "./send-gas";
9
10
  import { useAmountConfig } from "./amount";
10
11
 
11
- type MsgOpts = CosmosMsgOpts & SecretMsgOpts;
12
+ type MsgOpts = CosmosMsgOpts & SecretMsgOpts & CosmwasmMsgOpts;
12
13
 
13
14
  export const useSendTxConfig = (
14
15
  chainGetter: ChainGetter,
@@ -11,7 +11,7 @@ import {
11
11
  EmptyAmountError,
12
12
  InsufficientAmountError,
13
13
  InvalidNumberAmountError,
14
- NagativeAmountError,
14
+ NegativeAmountError,
15
15
  ZeroAmountError,
16
16
  } from "./errors";
17
17
  import { Dec, DecUtils } from "@keplr-wallet/unit";
@@ -178,7 +178,7 @@ export class StakedAmountConfig extends TxChainSetter implements IAmountConfig {
178
178
  return new InvalidNumberAmountError("Invalid form of number");
179
179
  }
180
180
  if (new Dec(this.amount).lt(new Dec(0))) {
181
- return new NagativeAmountError("Amount is nagative");
181
+ return new NegativeAmountError("Amount is negative");
182
182
  }
183
183
 
184
184
  const balance = this.queryDelegations
package/src/tx/types.ts CHANGED
@@ -17,7 +17,11 @@ export interface IMemoConfig extends ITxChainSetter {
17
17
 
18
18
  export interface IGasConfig extends ITxChainSetter {
19
19
  gas: number;
20
- setGas(gas: number): void;
20
+ /*
21
+ The actual gas value from the input.
22
+ */
23
+ gasRaw: string;
24
+ setGas(gas: number | string): void;
21
25
 
22
26
  getError(): Error | undefined;
23
27
  }