@keplr-wallet/background 0.12.99-rc.1 → 0.12.100

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.
@@ -28,6 +28,7 @@ export declare class KeyRingService {
28
28
  protected _needMigration: boolean;
29
29
  protected _isMigrating: boolean;
30
30
  protected _selectedVaultId: string | undefined;
31
+ protected cacheKeySearchHexToBech32: Map<string, string>;
31
32
  constructor(kvStore: KVStore, migrations: {
32
33
  readonly kvStore: KVStore;
33
34
  readonly commonCrypto: Legacy.CommonCrypto;
@@ -89,7 +90,7 @@ export declare class KeyRingService {
89
90
  protected getVaultKeyRing(vault: Vault): KeyRing;
90
91
  protected getKeyRing(type: string): KeyRing;
91
92
  searchKeyRings(searchText: string, ignoreChainEnabled?: boolean): KeyInfo[];
92
- protected static unsafeDecodeBech32AddressForSearchText(searchText: string): Uint8Array;
93
+ protected getKeySearchBech32FromHex(prefix: string, hex: string): string;
93
94
  protected static getAddressHexStringFromKeyInfo(keyInfo: KeyInfo, value: PlainObject | Primitive | undefined, isEVM: boolean): string;
94
95
  static parseBIP44Path(bip44Path: string): {
95
96
  coinType: number;
@@ -58,6 +58,8 @@ class KeyRingService {
58
58
  this._needMigration = false;
59
59
  this._isMigrating = false;
60
60
  this._selectedVaultId = undefined;
61
+ // key: {bech32_prefix}/{hex}
62
+ this.cacheKeySearchHexToBech32 = new Map();
61
63
  (0, mobx_1.makeObservable)(this);
62
64
  }
63
65
  init() {
@@ -903,7 +905,7 @@ class KeyRingService {
903
905
  });
904
906
  let bech32AddressSearchKeyInfos = [];
905
907
  let hexAddressSearchKeyInfos = [];
906
- if (searchText.length > 8) {
908
+ if (searchText.length >= 8) {
907
909
  const isHex = (() => {
908
910
  if (searchText.startsWith("0x")) {
909
911
  return true;
@@ -941,41 +943,60 @@ class KeyRingService {
941
943
  }
942
944
  });
943
945
  }
944
- else if (searchText.includes("1")) {
945
- const targetChainInfo = (() => {
946
+ }
947
+ if (searchText.length >= 3) {
948
+ const isHex = (() => {
949
+ if (searchText.startsWith("0x")) {
950
+ return true;
951
+ }
952
+ try {
953
+ const s = buffer_1.Buffer.from(searchText, "hex");
954
+ return s.toString().toLowerCase() === searchText.toLowerCase();
955
+ }
956
+ catch (_a) {
957
+ return false;
958
+ }
959
+ })();
960
+ if (!isHex) {
961
+ const targetChainInfos = (() => {
946
962
  var _a;
947
963
  const i = searchText.indexOf("1");
948
964
  if (i < 0) {
949
- return;
965
+ return [];
950
966
  }
951
967
  const prefix = searchText.slice(0, i);
968
+ const result = [];
952
969
  for (const chainInfo of this.chainsService.getChainInfos()) {
953
970
  if (((_a = chainInfo.bech32Config) === null || _a === void 0 ? void 0 : _a.bech32PrefixAccAddr) === prefix) {
954
- return chainInfo;
971
+ result.push(chainInfo);
955
972
  }
956
973
  }
974
+ return result;
957
975
  })();
958
- let bz = KeyRingService.unsafeDecodeBech32AddressForSearchText(searchText);
959
- // 어차피 address는 20bytes이다.
960
- // checksum은 신경쓰지 않고 자른다.
961
- bz = bz.slice(0, 20);
962
- // bz가 너무 작은 바이트이면 사실상 검색의 의미가 없다.
963
- // 대충 매직넘버로 3바이트는 넘어야지 검색한다.
964
- if (bz.length >= 3) {
965
- const bzHex = buffer_1.Buffer.from(bz).toString("hex").toLowerCase();
966
- bech32AddressSearchKeyInfos = keyInfos.filter((keyInfo) => {
967
- if (!targetChainInfo) {
968
- return false;
976
+ bech32AddressSearchKeyInfos = keyInfos.filter((keyInfo) => {
977
+ if (!ignoreChainEnabled &&
978
+ targetChainInfos.length > 0 &&
979
+ targetChainInfos.find((chainInfo) => !this.chainsUIService.isEnabled(keyInfo.id, chainInfo.chainId))) {
980
+ return false;
981
+ }
982
+ const chainInfos = (() => {
983
+ if (ignoreChainEnabled) {
984
+ return this.chainsService.getChainInfos();
969
985
  }
970
- if (!ignoreChainEnabled &&
971
- !this.chainsUIService.isEnabled(keyInfo.id, targetChainInfo.chainId)) {
972
- return false;
986
+ return targetChainInfos.length > 0
987
+ ? targetChainInfos
988
+ : this.chainsUIService.enabledChainInfosForVault(keyInfo.id);
989
+ })();
990
+ for (const chainInfo of chainInfos) {
991
+ if (!chainInfo.bech32Config) {
992
+ continue;
973
993
  }
974
- const isEVM = KeyRingService.isEthermintLike(targetChainInfo);
994
+ const isEVM = KeyRingService.isEthermintLike(chainInfo);
975
995
  for (const [_, value] of Object.entries(keyInfo.insensitive)) {
976
996
  try {
977
997
  const hexAddress = KeyRingService.getAddressHexStringFromKeyInfo(keyInfo, value, isEVM);
978
- if (hexAddress.includes(bzHex)) {
998
+ const bech32Address = this.getKeySearchBech32FromHex(chainInfo.bech32Config.bech32PrefixAccAddr, hexAddress);
999
+ if (bech32Address.includes(searchText.toLowerCase())) {
979
1000
  return true;
980
1001
  }
981
1002
  }
@@ -983,8 +1004,8 @@ class KeyRingService {
983
1004
  // noop
984
1005
  }
985
1006
  }
986
- });
987
- }
1007
+ }
1008
+ });
988
1009
  }
989
1010
  }
990
1011
  const exists = new Map();
@@ -999,34 +1020,15 @@ class KeyRingService {
999
1020
  }
1000
1021
  return keyInfos.filter((keyInfo) => exists.get(keyInfo.id));
1001
1022
  }
1002
- static unsafeDecodeBech32AddressForSearchText(searchText) {
1003
- const i = searchText.indexOf("1");
1004
- const bech32WithoutPrefix = i >= 0 ? searchText.slice(i + 1) : searchText;
1005
- const data = [];
1006
- for (let i = 0; i < bech32WithoutPrefix.length; i++) {
1007
- const d = "qpzry9x8gf2tvdw0s3jn54khce6mua7l".indexOf(bech32WithoutPrefix[i].toLowerCase());
1008
- if (d === -1) {
1009
- return new Uint8Array();
1010
- }
1011
- data.push(d);
1012
- }
1013
- let value = 0;
1014
- let bits = 0;
1015
- const maxV = (1 << 8) - 1;
1016
- const result = [];
1017
- for (let i = 0; i < data.length; ++i) {
1018
- value = (value << 5) | data[i];
1019
- bits += 5;
1020
- while (bits >= 8) {
1021
- bits -= 8;
1022
- result.push((value >> bits) & maxV);
1023
- }
1023
+ getKeySearchBech32FromHex(prefix, hex) {
1024
+ const key = `${prefix}/${hex}`;
1025
+ const cache = this.cacheKeySearchHexToBech32.get(key);
1026
+ if (cache) {
1027
+ return cache;
1024
1028
  }
1025
- // pad는 무시한다
1026
- // if (bits > 0) {
1027
- // result.push((value << (8 - bits)) & maxV);
1028
- // }
1029
- return new Uint8Array(result);
1029
+ const value = new cosmos_1.Bech32Address(buffer_1.Buffer.from(hex, "hex")).toBech32(prefix);
1030
+ this.cacheKeySearchHexToBech32.set(key, value);
1031
+ return value;
1030
1032
  }
1031
1033
  static getAddressHexStringFromKeyInfo(keyInfo, value, isEVM) {
1032
1034
  let publicKeyText = "";
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/keyring/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/keyring/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/background",
3
- "version": "0.12.99-rc.1",
3
+ "version": "0.12.100",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -29,17 +29,17 @@
29
29
  "@ethersproject/hash": "^5.7.0",
30
30
  "@ethersproject/transactions": "^5.7.0",
31
31
  "@ethersproject/wallet": "^5.7.0",
32
- "@keplr-wallet/chain-validator": "0.12.99-rc.1",
33
- "@keplr-wallet/common": "0.12.99-rc.1",
34
- "@keplr-wallet/cosmos": "0.12.99-rc.1",
35
- "@keplr-wallet/crypto": "0.12.99-rc.1",
36
- "@keplr-wallet/ledger-cosmos": "0.12.99-rc.1",
37
- "@keplr-wallet/popup": "0.12.99-rc.1",
38
- "@keplr-wallet/proto-types": "0.12.99-rc.1",
39
- "@keplr-wallet/router": "0.12.99-rc.1",
40
- "@keplr-wallet/simple-fetch": "0.12.99-rc.1",
41
- "@keplr-wallet/types": "0.12.99-rc.1",
42
- "@keplr-wallet/unit": "0.12.99-rc.1",
32
+ "@keplr-wallet/chain-validator": "0.12.100",
33
+ "@keplr-wallet/common": "0.12.100",
34
+ "@keplr-wallet/cosmos": "0.12.100",
35
+ "@keplr-wallet/crypto": "0.12.100",
36
+ "@keplr-wallet/ledger-cosmos": "0.12.100",
37
+ "@keplr-wallet/popup": "0.12.100",
38
+ "@keplr-wallet/proto-types": "0.12.100",
39
+ "@keplr-wallet/router": "0.12.100",
40
+ "@keplr-wallet/simple-fetch": "0.12.100",
41
+ "@keplr-wallet/types": "0.12.100",
42
+ "@keplr-wallet/unit": "0.12.100",
43
43
  "@ledgerhq/hw-app-eth": "^6.29.3",
44
44
  "@ledgerhq/hw-transport": "^6.20.0",
45
45
  "@ledgerhq/hw-transport-webhid": "^6.20.0",
@@ -61,5 +61,5 @@
61
61
  "mobx": "^6",
62
62
  "mobx-utils": "^6"
63
63
  },
64
- "gitHead": "4b4fd93e79c4d3429a127fbd158d584f5d48591c"
64
+ "gitHead": "e4a8f56ff6f57a365233e9ba7c8b33a327011879"
65
65
  }
@@ -11,7 +11,7 @@ import { PubKeySecp256k1 } from "@keplr-wallet/crypto";
11
11
  import { ChainsService } from "../chains";
12
12
  import { action, autorun, makeObservable, observable, runInAction } from "mobx";
13
13
  import { KVStore } from "@keplr-wallet/common";
14
- import { ChainIdHelper } from "@keplr-wallet/cosmos";
14
+ import { Bech32Address, ChainIdHelper } from "@keplr-wallet/cosmos";
15
15
  import { InteractionService } from "../interaction";
16
16
  import { ChainInfo } from "@keplr-wallet/types";
17
17
  import { Buffer } from "buffer/";
@@ -28,6 +28,9 @@ export class KeyRingService {
28
28
  @observable
29
29
  protected _selectedVaultId: string | undefined = undefined;
30
30
 
31
+ // key: {bech32_prefix}/{hex}
32
+ protected cacheKeySearchHexToBech32 = new Map<string, string>();
33
+
31
34
  constructor(
32
35
  protected readonly kvStore: KVStore,
33
36
  protected readonly migrations: {
@@ -1363,7 +1366,7 @@ export class KeyRingService {
1363
1366
 
1364
1367
  let bech32AddressSearchKeyInfos: KeyInfo[] = [];
1365
1368
  let hexAddressSearchKeyInfos: KeyInfo[] = [];
1366
- if (searchText.length > 8) {
1369
+ if (searchText.length >= 8) {
1367
1370
  const isHex = (() => {
1368
1371
  if (searchText.startsWith("0x")) {
1369
1372
  return true;
@@ -1409,45 +1412,64 @@ export class KeyRingService {
1409
1412
  }
1410
1413
  }
1411
1414
  });
1412
- } else if (searchText.includes("1")) {
1413
- const targetChainInfo: ChainInfo | undefined = (() => {
1415
+ }
1416
+ }
1417
+
1418
+ if (searchText.length >= 3) {
1419
+ const isHex = (() => {
1420
+ if (searchText.startsWith("0x")) {
1421
+ return true;
1422
+ }
1423
+ try {
1424
+ const s = Buffer.from(searchText, "hex");
1425
+ return s.toString().toLowerCase() === searchText.toLowerCase();
1426
+ } catch {
1427
+ return false;
1428
+ }
1429
+ })();
1430
+
1431
+ if (!isHex) {
1432
+ const targetChainInfos: ChainInfo[] = (() => {
1414
1433
  const i = searchText.indexOf("1");
1415
1434
  if (i < 0) {
1416
- return;
1435
+ return [];
1417
1436
  }
1418
1437
  const prefix = searchText.slice(0, i);
1438
+ const result: ChainInfo[] = [];
1419
1439
  for (const chainInfo of this.chainsService.getChainInfos()) {
1420
1440
  if (chainInfo.bech32Config?.bech32PrefixAccAddr === prefix) {
1421
- return chainInfo;
1441
+ result.push(chainInfo);
1422
1442
  }
1423
1443
  }
1444
+ return result;
1424
1445
  })();
1425
- let bz =
1426
- KeyRingService.unsafeDecodeBech32AddressForSearchText(searchText);
1427
- // 어차피 address는 20bytes이다.
1428
- // checksum은 신경쓰지 않고 자른다.
1429
- bz = bz.slice(0, 20);
1430
- // bz가 너무 작은 바이트이면 사실상 검색의 의미가 없다.
1431
- // 대충 매직넘버로 3바이트는 넘어야지 검색한다.
1432
- if (bz.length >= 3) {
1433
- const bzHex = Buffer.from(bz).toString("hex").toLowerCase();
1434
-
1435
- bech32AddressSearchKeyInfos = keyInfos.filter((keyInfo) => {
1436
- if (!targetChainInfo) {
1437
- return false;
1438
- }
1439
1446
 
1440
- if (
1441
- !ignoreChainEnabled &&
1442
- !this.chainsUIService.isEnabled(
1443
- keyInfo.id,
1444
- targetChainInfo.chainId
1445
- )
1446
- ) {
1447
- return false;
1447
+ bech32AddressSearchKeyInfos = keyInfos.filter((keyInfo) => {
1448
+ if (
1449
+ !ignoreChainEnabled &&
1450
+ targetChainInfos.length > 0 &&
1451
+ targetChainInfos.find(
1452
+ (chainInfo) =>
1453
+ !this.chainsUIService.isEnabled(keyInfo.id, chainInfo.chainId)
1454
+ )
1455
+ ) {
1456
+ return false;
1457
+ }
1458
+
1459
+ const chainInfos = (() => {
1460
+ if (ignoreChainEnabled) {
1461
+ return this.chainsService.getChainInfos();
1462
+ }
1463
+ return targetChainInfos.length > 0
1464
+ ? targetChainInfos
1465
+ : this.chainsUIService.enabledChainInfosForVault(keyInfo.id);
1466
+ })();
1467
+ for (const chainInfo of chainInfos) {
1468
+ if (!chainInfo.bech32Config) {
1469
+ continue;
1448
1470
  }
1449
1471
 
1450
- const isEVM = KeyRingService.isEthermintLike(targetChainInfo);
1472
+ const isEVM = KeyRingService.isEthermintLike(chainInfo);
1451
1473
 
1452
1474
  for (const [_, value] of Object.entries(keyInfo.insensitive)) {
1453
1475
  try {
@@ -1458,15 +1480,19 @@ export class KeyRingService {
1458
1480
  isEVM
1459
1481
  );
1460
1482
 
1461
- if (hexAddress.includes(bzHex)) {
1483
+ const bech32Address = this.getKeySearchBech32FromHex(
1484
+ chainInfo.bech32Config.bech32PrefixAccAddr,
1485
+ hexAddress
1486
+ );
1487
+ if (bech32Address.includes(searchText.toLowerCase())) {
1462
1488
  return true;
1463
1489
  }
1464
1490
  } catch {
1465
1491
  // noop
1466
1492
  }
1467
1493
  }
1468
- });
1469
- }
1494
+ }
1495
+ });
1470
1496
  }
1471
1497
  }
1472
1498
 
@@ -1484,43 +1510,15 @@ export class KeyRingService {
1484
1510
  return keyInfos.filter((keyInfo) => exists.get(keyInfo.id));
1485
1511
  }
1486
1512
 
1487
- protected static unsafeDecodeBech32AddressForSearchText(
1488
- searchText: string
1489
- ): Uint8Array {
1490
- const i = searchText.indexOf("1");
1491
- const bech32WithoutPrefix = i >= 0 ? searchText.slice(i + 1) : searchText;
1492
- const data = [];
1493
- for (let i = 0; i < bech32WithoutPrefix.length; i++) {
1494
- const d = "qpzry9x8gf2tvdw0s3jn54khce6mua7l".indexOf(
1495
- bech32WithoutPrefix[i].toLowerCase()
1496
- );
1497
- if (d === -1) {
1498
- return new Uint8Array();
1499
- }
1500
- data.push(d);
1501
- }
1502
-
1503
- let value = 0;
1504
- let bits = 0;
1505
- const maxV = (1 << 8) - 1;
1506
-
1507
- const result: number[] = [];
1508
- for (let i = 0; i < data.length; ++i) {
1509
- value = (value << 5) | data[i];
1510
- bits += 5;
1511
-
1512
- while (bits >= 8) {
1513
- bits -= 8;
1514
- result.push((value >> bits) & maxV);
1515
- }
1513
+ protected getKeySearchBech32FromHex(prefix: string, hex: string): string {
1514
+ const key = `${prefix}/${hex}`;
1515
+ const cache = this.cacheKeySearchHexToBech32.get(key);
1516
+ if (cache) {
1517
+ return cache;
1516
1518
  }
1517
-
1518
- // pad는 무시한다
1519
- // if (bits > 0) {
1520
- // result.push((value << (8 - bits)) & maxV);
1521
- // }
1522
-
1523
- return new Uint8Array(result);
1519
+ const value = new Bech32Address(Buffer.from(hex, "hex")).toBech32(prefix);
1520
+ this.cacheKeySearchHexToBech32.set(key, value);
1521
+ return value;
1524
1522
  }
1525
1523
 
1526
1524
  protected static getAddressHexStringFromKeyInfo(