@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.
- package/build/tx/errors.d.ts +3 -0
- package/build/tx/errors.js +9 -1
- package/build/tx/errors.js.map +1 -1
- package/build/tx/gas.d.ts +3 -1
- package/build/tx/gas.js +30 -4
- package/build/tx/gas.js.map +1 -1
- package/build/tx/recipient.js +7 -0
- package/build/tx/recipient.js.map +1 -1
- package/package.json +13 -12
- package/src/tx/errors.ts +8 -0
- package/src/tx/gas.ts +35 -3
- package/src/tx/recipient.ts +9 -0
package/build/tx/errors.d.ts
CHANGED
package/build/tx/errors.js
CHANGED
|
@@ -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
|
package/build/tx/errors.js.map
CHANGED
|
@@ -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":";;;AAAA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAND,8CAMC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACF;AAND,gDAMC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF;AAND,oDAMC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACF;AAND,gDAMC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAND,sDAMC;AAED,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF;AAND,4CAMC;AAED,MAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;CACF;AAND,4DAMC;AAED,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAND,0CAMC;AAED,MAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF;AAND,kDAMC;AAED,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACF;AAND,0DAMC;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAND,8CAMC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF;AAND,oDAMC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF;AAND,oDAMC;AAED,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAND,0CAMC"}
|
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
|
-
|
|
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.
|
|
70
|
-
|
|
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
|
package/build/tx/gas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/tx/gas.ts"],"names":[],"mappings":";;;;;;;;;AACA,mCAAwC;AAExC,+BAAoE;AACpE,iCAAiC;AAEjC,MAAa,SAAU,SAAQ,qBAAa;
|
|
1
|
+
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/tx/gas.ts"],"names":[],"mappings":"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"}
|
package/build/tx/recipient.js
CHANGED
|
@@ -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,
|
|
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
|
+
"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
|
-
"@
|
|
25
|
-
"@keplr-wallet/
|
|
26
|
-
"@keplr-wallet/
|
|
27
|
-
"@keplr-wallet/
|
|
28
|
-
"@keplr-wallet/
|
|
29
|
-
"@keplr-wallet/
|
|
30
|
-
"@keplr-wallet/
|
|
31
|
-
"@keplr-wallet/
|
|
32
|
-
"@keplr-wallet/
|
|
33
|
-
"@keplr-wallet/
|
|
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": "
|
|
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.
|
|
86
|
-
|
|
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
|
+
};
|
package/src/tx/recipient.ts
CHANGED
|
@@ -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) {
|