@keplr-wallet/background 0.13.35 → 0.13.37
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/keyring/service.js +31 -42
- package/build/keyring/service.js.map +1 -1
- package/build/keyring/service.spec.d.ts +1 -0
- package/build/keyring/service.spec.js +106 -0
- package/build/keyring/service.spec.js.map +1 -0
- package/build/recent-send-history/service.js +7 -3
- package/build/recent-send-history/service.js.map +1 -1
- package/build/tx-executor/index.d.ts +1 -0
- package/build/tx-executor/index.js +1 -0
- package/build/tx-executor/index.js.map +1 -1
- package/build/tx-executor/service.d.ts +8 -5
- package/build/tx-executor/service.js +56 -11
- package/build/tx-executor/service.js.map +1 -1
- package/build/tx-executor/types.d.ts +20 -1
- package/build/tx-executor/utils/diagnostics.d.ts +14 -0
- package/build/tx-executor/utils/diagnostics.js +215 -0
- package/build/tx-executor/utils/diagnostics.js.map +1 -0
- package/build/tx-executor/utils/diagnostics.spec.d.ts +1 -0
- package/build/tx-executor/utils/diagnostics.spec.js +48 -0
- package/build/tx-executor/utils/diagnostics.spec.js.map +1 -0
- package/build/tx-executor/utils/evm.js +7 -3
- package/build/tx-executor/utils/evm.js.map +1 -1
- package/build/tx-executor/utils/evm.spec.d.ts +1 -0
- package/build/tx-executor/utils/evm.spec.js +59 -0
- package/build/tx-executor/utils/evm.spec.js.map +1 -0
- package/package.json +13 -13
- package/src/keyring/service.spec.ts +141 -0
- package/src/keyring/service.ts +47 -59
- package/src/recent-send-history/service.ts +7 -4
- package/src/tx-executor/index.ts +1 -0
- package/src/tx-executor/service.ts +72 -17
- package/src/tx-executor/types.ts +42 -1
- package/src/tx-executor/utils/diagnostics.spec.ts +89 -0
- package/src/tx-executor/utils/diagnostics.ts +298 -0
- package/src/tx-executor/utils/evm.spec.ts +62 -0
- package/src/tx-executor/utils/evm.ts +18 -1
|
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
23
23
|
exports.fillUnsignedEVMTx = void 0;
|
|
24
24
|
const unit_1 = require("@keplr-wallet/unit");
|
|
25
25
|
const fetch_1 = require("./fetch");
|
|
26
|
+
const diagnostics_1 = require("./diagnostics");
|
|
26
27
|
const ETH_FEE_HISTORY_REWARD_PERCENTILES = [20, 40, 60];
|
|
27
28
|
const ETH_FEE_SETTINGS_BY_FEE_TYPE = {
|
|
28
29
|
low: {
|
|
@@ -60,7 +61,7 @@ const toBigIntFromTxField = (value) => {
|
|
|
60
61
|
throw new Error("Unsupported numeric value in unsigned transaction");
|
|
61
62
|
};
|
|
62
63
|
function fillUnsignedEVMTx(origin, evmInfo, signer, tx, feeType = "average", customPriorityFee, customGasPrice) {
|
|
63
|
-
var _a;
|
|
64
|
+
var _a, _b, _c;
|
|
64
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
66
|
const hasProvidedPriorityFee = tx.maxPriorityFeePerGas != null;
|
|
66
67
|
const hasProvidedGasLimit = tx.gasLimit != null;
|
|
@@ -164,6 +165,9 @@ function fillUnsignedEVMTx(origin, evmInfo, signer, tx, feeType = "average", cus
|
|
|
164
165
|
const finalNonce = tx.nonce != null
|
|
165
166
|
? Math.max(Number(tx.nonce), parseInt(nonceHex, 16))
|
|
166
167
|
: parseInt(nonceHex, 16);
|
|
168
|
+
const estimateGasResponse = hasProvidedGasLimit
|
|
169
|
+
? undefined
|
|
170
|
+
: rpcResponses.find((r) => r.id === ESTIMATE_GAS_ID);
|
|
167
171
|
const gasLimitHex = hasProvidedGasLimit
|
|
168
172
|
? undefined
|
|
169
173
|
: getResult(ESTIMATE_GAS_ID, true);
|
|
@@ -178,7 +182,7 @@ function fillUnsignedEVMTx(origin, evmInfo, signer, tx, feeType = "average", cus
|
|
|
178
182
|
finalGasLimit = `0x${adjustedGas.toString(16)}`;
|
|
179
183
|
}
|
|
180
184
|
else {
|
|
181
|
-
throw new
|
|
185
|
+
throw new diagnostics_1.TxExecutionDiagnosticsError("Failed to estimate gas to fill unsigned transaction", (0, diagnostics_1.createGasEstimateDiagnostics)(new Error((_b = (_a = estimateGasResponse === null || estimateGasResponse === void 0 ? void 0 : estimateGasResponse.error) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : "Missing eth_estimateGas result"), "background_fill_unsigned_tx", tx));
|
|
182
186
|
}
|
|
183
187
|
// Legacy chain detection: baseFeePerGas missing or zero
|
|
184
188
|
const isLegacy = !latestBlock.baseFeePerGas || parseInt(latestBlock.baseFeePerGas, 16) === 0;
|
|
@@ -222,7 +226,7 @@ function fillUnsignedEVMTx(origin, evmInfo, signer, tx, feeType = "average", cus
|
|
|
222
226
|
maxPriorityFeePerGasDec = new unit_1.Dec(customPriorityFee);
|
|
223
227
|
}
|
|
224
228
|
else if ((feeHistory === null || feeHistory === void 0 ? void 0 : feeHistory.reward) && feeHistory.reward.length > 0) {
|
|
225
|
-
const percentile = (
|
|
229
|
+
const percentile = (_c = ETH_FEE_SETTINGS_BY_FEE_TYPE[innerFeeType].percentile) !== null && _c !== void 0 ? _c : ETH_FEE_HISTORY_REWARD_PERCENTILES[1];
|
|
226
230
|
const percentileIndex = ETH_FEE_HISTORY_REWARD_PERCENTILES.indexOf(percentile);
|
|
227
231
|
if (percentileIndex >= 0) {
|
|
228
232
|
const rewards = feeHistory.reward
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../src/tx-executor/utils/evm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA,6CAAyC;AAGzC,mCAAyC;
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../src/tx-executor/utils/evm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const diagnostics_1 = require("./diagnostics");
|
|
13
|
+
const evm_1 = require("./evm");
|
|
14
|
+
const fetch_1 = require("./fetch");
|
|
15
|
+
jest.mock("./fetch", () => ({
|
|
16
|
+
fetchWithRetry: jest.fn(),
|
|
17
|
+
}));
|
|
18
|
+
const mockFetchWithRetry = fetch_1.fetchWithRetry;
|
|
19
|
+
describe("fillUnsignedEVMTx", () => {
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
mockFetchWithRetry.mockReset();
|
|
22
|
+
});
|
|
23
|
+
it("keeps eth_estimateGas optional and adds diagnostics only at final gas failure", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
+
mockFetchWithRetry.mockResolvedValue({
|
|
25
|
+
data: [
|
|
26
|
+
{ id: 1, result: "0x1" },
|
|
27
|
+
{ id: 2, result: { baseFeePerGas: "0x1" } },
|
|
28
|
+
{ id: 3, result: {} },
|
|
29
|
+
{
|
|
30
|
+
id: 4,
|
|
31
|
+
error: {
|
|
32
|
+
code: -32000,
|
|
33
|
+
message: "execution reverted: ERC20: transfer amount exceeds allowance",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
{ id: 5, result: "0x1" },
|
|
37
|
+
{ id: 6, result: "0x1" },
|
|
38
|
+
],
|
|
39
|
+
});
|
|
40
|
+
try {
|
|
41
|
+
yield (0, evm_1.fillUnsignedEVMTx)("extension", { rpc: "https://example.invalid" }, "0xsender", {
|
|
42
|
+
to: "0xrouter",
|
|
43
|
+
value: "0x0",
|
|
44
|
+
data: "0x",
|
|
45
|
+
});
|
|
46
|
+
throw new Error("Expected fillUnsignedEVMTx to fail");
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
expect(e.message).toBe("Failed to estimate gas to fill unsigned transaction");
|
|
50
|
+
expect((0, diagnostics_1.getTxExecutionDiagnostics)(e)).toEqual({
|
|
51
|
+
gas_estimate_context: "background_fill_unsigned_tx",
|
|
52
|
+
gas_estimate_error_category: "allowance_insufficient",
|
|
53
|
+
failed_tx_has_required_erc20_approval: false,
|
|
54
|
+
failed_tx_has_native_value: false,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}));
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=evm.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.spec.js","sourceRoot":"","sources":["../../../src/tx-executor/utils/evm.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,+CAA0D;AAC1D,+BAA0C;AAC1C,mCAAyC;AAEzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;CAC1B,CAAC,CAAC,CAAC;AAEJ,MAAM,kBAAkB,GAAG,sBAE1B,CAAC;AAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,UAAU,CAAC,GAAG,EAAE;QACd,kBAAkB,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,GAAS,EAAE;QAC7F,kBAAkB,CAAC,iBAAiB,CAAC;YACnC,IAAI,EAAE;gBACJ,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;gBACxB,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE;gBAC3C,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBACrB;oBACE,EAAE,EAAE,CAAC;oBACL,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EACL,8DAA8D;qBACjE;iBACF;gBACD,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;gBACxB,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;aACzB;SACK,CAAC,CAAC;QAEV,IAAI;YACF,MAAM,IAAA,uBAAiB,EACrB,WAAW,EACX,EAAE,GAAG,EAAE,yBAAyB,EAAa,EAC7C,UAAU,EACV;gBACE,EAAE,EAAE,UAAU;gBACd,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,IAAI;aACX,CACF,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAC/B,qDAAqD,CACtD,CAAC;YACF,MAAM,CAAC,IAAA,uCAAyB,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3C,oBAAoB,EAAE,6BAA6B;gBACnD,2BAA2B,EAAE,wBAAwB;gBACrD,qCAAqC,EAAE,KAAK;gBAC5C,0BAA0B,EAAE,KAAK;aAClC,CAAC,CAAC;SACJ;IACH,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keplr-wallet/background",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.37",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"author": "chainapsis",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -33,17 +33,17 @@
|
|
|
33
33
|
"@ethersproject/hash": "^5.7.0",
|
|
34
34
|
"@ethersproject/transactions": "^5.7.0",
|
|
35
35
|
"@ethersproject/wallet": "^5.7.0",
|
|
36
|
-
"@keplr-wallet/chain-validator": "0.13.
|
|
37
|
-
"@keplr-wallet/common": "0.13.
|
|
38
|
-
"@keplr-wallet/cosmos": "0.13.
|
|
39
|
-
"@keplr-wallet/crypto": "0.13.
|
|
40
|
-
"@keplr-wallet/ledger-cosmos": "0.13.
|
|
41
|
-
"@keplr-wallet/popup": "0.13.
|
|
42
|
-
"@keplr-wallet/proto-types": "0.13.
|
|
43
|
-
"@keplr-wallet/router": "0.13.
|
|
44
|
-
"@keplr-wallet/simple-fetch": "0.13.
|
|
45
|
-
"@keplr-wallet/types": "0.13.
|
|
46
|
-
"@keplr-wallet/unit": "0.13.
|
|
36
|
+
"@keplr-wallet/chain-validator": "0.13.37",
|
|
37
|
+
"@keplr-wallet/common": "0.13.37",
|
|
38
|
+
"@keplr-wallet/cosmos": "0.13.37",
|
|
39
|
+
"@keplr-wallet/crypto": "0.13.37",
|
|
40
|
+
"@keplr-wallet/ledger-cosmos": "0.13.37",
|
|
41
|
+
"@keplr-wallet/popup": "0.13.37",
|
|
42
|
+
"@keplr-wallet/proto-types": "0.13.37",
|
|
43
|
+
"@keplr-wallet/router": "0.13.37",
|
|
44
|
+
"@keplr-wallet/simple-fetch": "0.13.37",
|
|
45
|
+
"@keplr-wallet/types": "0.13.37",
|
|
46
|
+
"@keplr-wallet/unit": "0.13.37",
|
|
47
47
|
"@ledgerhq/hw-app-eth": "6.42.8",
|
|
48
48
|
"@ledgerhq/hw-app-starknet": "^3.0.1",
|
|
49
49
|
"@ledgerhq/hw-transport": "^6.35.0",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"mobx-utils": "^6",
|
|
71
71
|
"starknet": "^7"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "128f19e42aa0fea5cff29c860d7fa7534a2aa955"
|
|
74
74
|
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
jest.mock("../keyring-bitcoin", () => ({}));
|
|
2
|
+
|
|
3
|
+
import { KeyRingService } from "./service";
|
|
4
|
+
import { KeyInfo } from "./types";
|
|
5
|
+
|
|
6
|
+
const getAddressHexStringFromKeyInfo = (KeyRingService as any)
|
|
7
|
+
.getAddressHexStringFromKeyInfo;
|
|
8
|
+
|
|
9
|
+
describe("KeyRingService", () => {
|
|
10
|
+
afterEach(() => {
|
|
11
|
+
(KeyRingService as any).getAddressHexStringFromKeyInfo =
|
|
12
|
+
getAddressHexStringFromKeyInfo;
|
|
13
|
+
jest.restoreAllMocks();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
describe("searchKeyRings", () => {
|
|
17
|
+
it("does not run bech32 address search for name-like queries", () => {
|
|
18
|
+
const keyInfos: KeyInfo[] = [
|
|
19
|
+
createKeyInfo("1", "devx"),
|
|
20
|
+
createKeyInfo("2", "deva"),
|
|
21
|
+
createKeyInfo("3", "dev2"),
|
|
22
|
+
createKeyInfo("4", "main"),
|
|
23
|
+
];
|
|
24
|
+
const service = createSearchService(keyInfos, {
|
|
25
|
+
getModularChainInfos: jest.fn(() => {
|
|
26
|
+
throw new Error("bech32 address search should not run");
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const searched = KeyRingService.prototype.searchKeyRings.call(
|
|
31
|
+
service,
|
|
32
|
+
"dev"
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
expect(searched.map((keyInfo) => keyInfo.name)).toEqual([
|
|
36
|
+
"devx",
|
|
37
|
+
"deva",
|
|
38
|
+
"dev2",
|
|
39
|
+
]);
|
|
40
|
+
expect(service.chainsService.getModularChainInfos).not.toHaveBeenCalled();
|
|
41
|
+
expect(
|
|
42
|
+
service.chainsUIService.enabledModularChainInfosForVault
|
|
43
|
+
).not.toHaveBeenCalled();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("does not fall back to enabled chain address scans for invalid bech32 prefixes", () => {
|
|
47
|
+
const keyInfos: KeyInfo[] = [createKeyInfo("1", "main")];
|
|
48
|
+
const service = createSearchService(keyInfos);
|
|
49
|
+
|
|
50
|
+
const searched = KeyRingService.prototype.searchKeyRings.call(
|
|
51
|
+
service,
|
|
52
|
+
"dev1x"
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
expect(searched).toEqual([]);
|
|
56
|
+
expect(service.chainsService.getModularChainInfos).toHaveBeenCalledTimes(
|
|
57
|
+
1
|
|
58
|
+
);
|
|
59
|
+
expect(
|
|
60
|
+
service.chainsUIService.enabledModularChainInfosForVault
|
|
61
|
+
).not.toHaveBeenCalled();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it("still runs bech32 address search for recognized address prefixes", () => {
|
|
65
|
+
const keyInfos: KeyInfo[] = [createKeyInfo("1", "main")];
|
|
66
|
+
const service = createSearchService(keyInfos);
|
|
67
|
+
const getAddressHexString = jest.fn().mockReturnValue("00".repeat(20));
|
|
68
|
+
(KeyRingService as any).getAddressHexStringFromKeyInfo =
|
|
69
|
+
getAddressHexString;
|
|
70
|
+
|
|
71
|
+
const searched = KeyRingService.prototype.searchKeyRings.call(
|
|
72
|
+
service,
|
|
73
|
+
"cosmos1"
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
expect(searched.map((keyInfo) => keyInfo.name)).toEqual(["main"]);
|
|
77
|
+
expect(getAddressHexString).toHaveBeenCalled();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
function createKeyInfo(id: string, name: string): KeyInfo {
|
|
83
|
+
return {
|
|
84
|
+
id,
|
|
85
|
+
name,
|
|
86
|
+
type: "mnemonic",
|
|
87
|
+
isSelected: false,
|
|
88
|
+
insensitive: {
|
|
89
|
+
publicKey: "unused",
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function createSearchService(
|
|
95
|
+
keyInfos: KeyInfo[],
|
|
96
|
+
overrides?: {
|
|
97
|
+
getModularChainInfos?: jest.Mock;
|
|
98
|
+
}
|
|
99
|
+
) {
|
|
100
|
+
const cosmosModularChainInfo = {
|
|
101
|
+
type: "cosmos",
|
|
102
|
+
chainId: "cosmoshub-4",
|
|
103
|
+
chainName: "Cosmos Hub",
|
|
104
|
+
cosmos: {
|
|
105
|
+
chainId: "cosmoshub-4",
|
|
106
|
+
chainName: "Cosmos Hub",
|
|
107
|
+
rpc: "",
|
|
108
|
+
rest: "",
|
|
109
|
+
bip44: {
|
|
110
|
+
coinType: 118,
|
|
111
|
+
},
|
|
112
|
+
bech32Config: {
|
|
113
|
+
bech32PrefixAccAddr: "cosmos",
|
|
114
|
+
},
|
|
115
|
+
currencies: [],
|
|
116
|
+
feeCurrencies: [],
|
|
117
|
+
stakeCurrency: {
|
|
118
|
+
coinDenom: "ATOM",
|
|
119
|
+
coinMinimalDenom: "uatom",
|
|
120
|
+
coinDecimals: 6,
|
|
121
|
+
},
|
|
122
|
+
features: [],
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
const service = Object.create(KeyRingService.prototype) as any;
|
|
126
|
+
|
|
127
|
+
service.getKeyInfos = jest.fn(() => keyInfos);
|
|
128
|
+
service.chainsService = {
|
|
129
|
+
getModularChainInfos:
|
|
130
|
+
overrides?.getModularChainInfos ??
|
|
131
|
+
jest.fn(() => [cosmosModularChainInfo]),
|
|
132
|
+
getModularChainInfoOrThrow: jest.fn(() => cosmosModularChainInfo),
|
|
133
|
+
};
|
|
134
|
+
service.chainsUIService = {
|
|
135
|
+
enabledModularChainInfosForVault: jest.fn(() => [cosmosModularChainInfo]),
|
|
136
|
+
isEnabled: jest.fn(() => true),
|
|
137
|
+
};
|
|
138
|
+
service.cacheKeySearchHexToBech32 = new Map();
|
|
139
|
+
|
|
140
|
+
return service;
|
|
141
|
+
}
|
package/src/keyring/service.ts
CHANGED
|
@@ -1965,7 +1965,7 @@ export class KeyRingService {
|
|
|
1965
1965
|
if (!isHex) {
|
|
1966
1966
|
const targetModularChainInfos: ModularChainInfo[] = (() => {
|
|
1967
1967
|
const i = searchText.indexOf("1");
|
|
1968
|
-
if (i
|
|
1968
|
+
if (i <= 0) {
|
|
1969
1969
|
return [];
|
|
1970
1970
|
}
|
|
1971
1971
|
const prefix = searchText.slice(0, i);
|
|
@@ -1983,78 +1983,66 @@ export class KeyRingService {
|
|
|
1983
1983
|
return result;
|
|
1984
1984
|
})();
|
|
1985
1985
|
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1986
|
+
if (targetModularChainInfos.length > 0) {
|
|
1987
|
+
bech32AddressSearchKeyInfos = keyInfos.filter((keyInfo) => {
|
|
1988
|
+
let filteredModularChainInfos = targetModularChainInfos;
|
|
1989
|
+
if (!ignoreChainEnabled) {
|
|
1990
|
+
filteredModularChainInfos = filteredModularChainInfos.filter(
|
|
1991
|
+
(m) => {
|
|
1992
|
+
return this.chainsUIService.isEnabled(keyInfo.id, m.chainId);
|
|
1993
|
+
}
|
|
1994
|
+
);
|
|
1995
|
+
}
|
|
1995
1996
|
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
.getModularChainInfos()
|
|
2000
|
-
.filter((c) => c.type === "cosmos" || c.type === "ethermint")
|
|
2001
|
-
.flatMap((c) => {
|
|
1997
|
+
const chainInfos = (() => {
|
|
1998
|
+
if (ignoreChainEnabled) {
|
|
1999
|
+
return targetModularChainInfos.flatMap((c) => {
|
|
2002
2000
|
const ci = convertModularChainInfoToChainInfo(c);
|
|
2003
2001
|
return ci ? [ci] : [];
|
|
2004
2002
|
});
|
|
2005
|
-
|
|
2006
|
-
if (filteredModularChainInfos.length > 0) {
|
|
2003
|
+
}
|
|
2007
2004
|
return filteredModularChainInfos.flatMap((c) => {
|
|
2008
2005
|
const ci = convertModularChainInfoToChainInfo(c);
|
|
2009
2006
|
return ci ? [ci] : [];
|
|
2010
2007
|
});
|
|
2011
|
-
}
|
|
2012
|
-
const modularChainInfos =
|
|
2013
|
-
this.chainsUIService.enabledModularChainInfosForVault(keyInfo.id);
|
|
2014
|
-
// TODO: 다른 체인도 지원하기
|
|
2015
|
-
return modularChainInfos
|
|
2016
|
-
.filter((c) => c.type === "cosmos" || c.type === "ethermint")
|
|
2017
|
-
.flatMap((c) => {
|
|
2018
|
-
const ci = convertModularChainInfoToChainInfo(c);
|
|
2019
|
-
return ci ? [ci] : [];
|
|
2020
|
-
});
|
|
2021
|
-
})();
|
|
2022
|
-
|
|
2023
|
-
for (const chainInfo of chainInfos) {
|
|
2024
|
-
for (const [key, value] of Object.entries(keyInfo.insensitive)) {
|
|
2025
|
-
try {
|
|
2026
|
-
const isEVM = isEthSignChain(
|
|
2027
|
-
this.chainsService.getModularChainInfoOrThrow(
|
|
2028
|
-
chainInfo.chainId
|
|
2029
|
-
)
|
|
2030
|
-
);
|
|
2008
|
+
})();
|
|
2031
2009
|
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2010
|
+
for (const chainInfo of chainInfos) {
|
|
2011
|
+
for (const [key, value] of Object.entries(keyInfo.insensitive)) {
|
|
2012
|
+
try {
|
|
2013
|
+
const isEVM = isEthSignChain(
|
|
2014
|
+
this.chainsService.getModularChainInfoOrThrow(
|
|
2015
|
+
chainInfo.chainId
|
|
2016
|
+
)
|
|
2039
2017
|
);
|
|
2040
2018
|
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2019
|
+
const hexAddress =
|
|
2020
|
+
KeyRingService.getAddressHexStringFromKeyInfo(
|
|
2021
|
+
chainInfo,
|
|
2022
|
+
keyInfo,
|
|
2023
|
+
key,
|
|
2024
|
+
value,
|
|
2025
|
+
isEVM
|
|
2026
|
+
);
|
|
2027
|
+
|
|
2028
|
+
if (chainInfo.bech32Config == null) {
|
|
2029
|
+
return false;
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
const bech32Address = this.getKeySearchBech32FromHex(
|
|
2033
|
+
chainInfo.bech32Config.bech32PrefixAccAddr,
|
|
2034
|
+
hexAddress
|
|
2035
|
+
);
|
|
2036
|
+
if (bech32Address.includes(searchText.toLowerCase())) {
|
|
2037
|
+
return true;
|
|
2038
|
+
}
|
|
2039
|
+
} catch {
|
|
2040
|
+
// noop
|
|
2051
2041
|
}
|
|
2052
|
-
} catch {
|
|
2053
|
-
// noop
|
|
2054
2042
|
}
|
|
2055
2043
|
}
|
|
2056
|
-
}
|
|
2057
|
-
}
|
|
2044
|
+
});
|
|
2045
|
+
}
|
|
2058
2046
|
}
|
|
2059
2047
|
}
|
|
2060
2048
|
|
|
@@ -966,7 +966,8 @@ export class RecentSendHistoryService {
|
|
|
966
966
|
chainId: string,
|
|
967
967
|
txHash: string
|
|
968
968
|
): Promise<"success" | "failed" | "pending" | "error"> {
|
|
969
|
-
|
|
969
|
+
const isEvmOnlyChain = this.chainsService.isEvmOnlyChain(chainId);
|
|
970
|
+
if (isEvmOnlyChain) {
|
|
970
971
|
if (
|
|
971
972
|
modularChainInfo.type !== "evm" &&
|
|
972
973
|
modularChainInfo.type !== "ethermint"
|
|
@@ -1024,6 +1025,10 @@ export class RecentSendHistoryService {
|
|
|
1024
1025
|
if (!txResult) {
|
|
1025
1026
|
return "pending";
|
|
1026
1027
|
}
|
|
1028
|
+
// Tendermint/CometBFT can omit `code` for successful txs.
|
|
1029
|
+
if (txResult.code == null) {
|
|
1030
|
+
return "success";
|
|
1031
|
+
}
|
|
1027
1032
|
if (typeof txResult.code !== "number") {
|
|
1028
1033
|
return "error";
|
|
1029
1034
|
}
|
|
@@ -1066,7 +1071,7 @@ export class RecentSendHistoryService {
|
|
|
1066
1071
|
return;
|
|
1067
1072
|
}
|
|
1068
1073
|
|
|
1069
|
-
if (this.chainsService.
|
|
1074
|
+
if (this.chainsService.isEvmOnlyChain(chainId)) {
|
|
1070
1075
|
this.traceEVMTransactionResult({
|
|
1071
1076
|
chainId,
|
|
1072
1077
|
txHash,
|
|
@@ -2391,8 +2396,6 @@ export class RecentSendHistoryService {
|
|
|
2391
2396
|
|
|
2392
2397
|
// resAmount 또는 assetLocationInfo가 없으면 추가적으로 자산 추적을 해야 한다.
|
|
2393
2398
|
if (targetTxHash && !skipAssetTracking && isAtDestinationChain) {
|
|
2394
|
-
console.log("trackSwapV2ReleasedAssetAmount", id, targetTxHash);
|
|
2395
|
-
|
|
2396
2399
|
this.trackSwapV2ReleasedAssetAmount(
|
|
2397
2400
|
id,
|
|
2398
2401
|
targetTxHash,
|
package/src/tx-executor/index.ts
CHANGED