@subwallet/extension-base 1.1.51-2 → 1.1.53-0

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.
Files changed (71) hide show
  1. package/cjs/koni/api/tokens/evm/balance.js +1 -2
  2. package/cjs/koni/api/tokens/evm/transfer.js +3 -5
  3. package/cjs/koni/api/tokens/evm/web3.js +3 -3
  4. package/cjs/koni/background/handlers/Extension.js +5 -4
  5. package/cjs/koni/background/handlers/State.js +8 -71
  6. package/cjs/koni/background/subscription.js +3 -63
  7. package/cjs/packageInfo.js +1 -1
  8. package/cjs/services/balance-service/BalanceMapImpl.js +2 -2
  9. package/cjs/services/balance-service/helpers/index.js +27 -0
  10. package/cjs/services/balance-service/helpers/subscribe/evm.js +33 -15
  11. package/cjs/services/balance-service/helpers/subscribe/{balance.js → index.js} +46 -29
  12. package/cjs/services/balance-service/helpers/subscribe/substrate/equilibrium.js +34 -15
  13. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +157 -72
  14. package/cjs/services/balance-service/index.js +277 -75
  15. package/cjs/services/chain-service/constants.js +2 -1
  16. package/cjs/services/chain-service/health-check/utils/asset-info.js +1 -3
  17. package/cjs/services/chain-service/index.js +1 -9
  18. package/cjs/services/chain-service/utils/patch.js +1 -1
  19. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
  20. package/cjs/services/request-service/handler/ConnectWCRequestHandler.js +0 -1
  21. package/cjs/services/storage-service/DatabaseService.js +10 -1
  22. package/cjs/services/wallet-connect-service/helpers.js +1 -1
  23. package/cjs/services/wallet-connect-service/index.js +19 -0
  24. package/cjs/utils/asset.js +19 -0
  25. package/cjs/utils/eth/parseTransaction/index.js +1 -1
  26. package/cjs/utils/index.js +12 -0
  27. package/koni/api/tokens/evm/balance.d.ts +1 -1
  28. package/koni/api/tokens/evm/balance.js +1 -2
  29. package/koni/api/tokens/evm/transfer.d.ts +2 -2
  30. package/koni/api/tokens/evm/transfer.js +3 -5
  31. package/koni/api/tokens/evm/web3.d.ts +1 -1
  32. package/koni/api/tokens/evm/web3.js +2 -2
  33. package/koni/background/handlers/Extension.js +5 -4
  34. package/koni/background/handlers/State.d.ts +1 -12
  35. package/koni/background/handlers/State.js +9 -72
  36. package/koni/background/subscription.d.ts +1 -5
  37. package/koni/background/subscription.js +1 -60
  38. package/package.json +23 -13
  39. package/packageInfo.js +1 -1
  40. package/services/balance-service/BalanceMapImpl.js +1 -1
  41. package/services/balance-service/helpers/index.d.ts +2 -0
  42. package/services/balance-service/helpers/index.js +5 -0
  43. package/services/balance-service/helpers/subscribe/evm.d.ts +3 -5
  44. package/services/balance-service/helpers/subscribe/evm.js +31 -14
  45. package/services/balance-service/helpers/subscribe/{balance.d.ts → index.d.ts} +2 -2
  46. package/services/balance-service/helpers/subscribe/{balance.js → index.js} +41 -28
  47. package/services/balance-service/helpers/subscribe/substrate/equilibrium.d.ts +3 -4
  48. package/services/balance-service/helpers/subscribe/substrate/equilibrium.js +29 -13
  49. package/services/balance-service/helpers/subscribe/substrate/index.d.ts +2 -2
  50. package/services/balance-service/helpers/subscribe/substrate/index.js +144 -67
  51. package/services/balance-service/index.d.ts +64 -6
  52. package/services/balance-service/index.js +279 -77
  53. package/services/chain-service/constants.js +2 -1
  54. package/services/chain-service/health-check/utils/asset-info.js +1 -3
  55. package/services/chain-service/index.js +2 -10
  56. package/services/chain-service/utils/patch.js +1 -1
  57. package/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
  58. package/services/request-service/handler/ConnectWCRequestHandler.js +0 -1
  59. package/services/storage-service/DatabaseService.js +7 -1
  60. package/services/wallet-connect-service/helpers.js +1 -1
  61. package/services/wallet-connect-service/index.d.ts +1 -0
  62. package/services/wallet-connect-service/index.js +19 -1
  63. package/types/{balance.d.ts → balance/index.d.ts} +16 -0
  64. package/types/index.js +1 -1
  65. package/utils/asset.d.ts +2 -0
  66. package/utils/asset.js +12 -0
  67. package/utils/eth/parseTransaction/index.js +1 -1
  68. package/utils/index.d.ts +1 -0
  69. package/utils/index.js +1 -0
  70. /package/cjs/types/{balance.js → balance/index.js} +0 -0
  71. /package/types/{balance.js → balance/index.js} +0 -0
@@ -10,10 +10,12 @@ import SignClient from '@walletconnect/sign-client';
10
10
  import { getInternalError, getSdkError } from '@walletconnect/utils';
11
11
  import { BehaviorSubject } from 'rxjs';
12
12
  import PolkadotRequestHandler from "./handler/PolkadotRequestHandler.js";
13
- import { ALL_WALLET_CONNECT_EVENT, DEFAULT_WALLET_CONNECT_OPTIONS, WALLET_CONNECT_SUPPORTED_METHODS } from "./constants.js";
13
+ import { ALL_WALLET_CONNECT_EVENT, DEFAULT_WALLET_CONNECT_OPTIONS, WALLET_CONNECT_EIP155_NAMESPACE, WALLET_CONNECT_SUPPORTED_METHODS } from "./constants.js";
14
14
  import { convertConnectRequest, convertNotSupportRequest, isSupportWalletConnectChain } from "./helpers.js";
15
15
  import { EIP155_SIGNING_METHODS, POLKADOT_SIGNING_METHODS } from "./types.js";
16
16
  const storage = SWStorage.instance;
17
+ const methodDOTRequire = [POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_MESSAGE, POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_TRANSACTION];
18
+ const methodEVMRequire = [EIP155_SIGNING_METHODS.PERSONAL_SIGN, EIP155_SIGNING_METHODS.ETH_SIGN, EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION];
17
19
  var _requestService = /*#__PURE__*/_classPrivateFieldLooseKey("requestService");
18
20
  var _polkadotRequestHandler = /*#__PURE__*/_classPrivateFieldLooseKey("polkadotRequestHandler");
19
21
  var _eip155RequestHandler = /*#__PURE__*/_classPrivateFieldLooseKey("eip155RequestHandler");
@@ -117,6 +119,12 @@ export default class WalletConnectService {
117
119
  async approveSession(result) {
118
120
  var _classPrivateFieldLoo4;
119
121
  _classPrivateFieldLooseBase(this, _checkClient)[_checkClient]();
122
+ Object.entries(result.namespaces).forEach(([namespace, {
123
+ methods
124
+ }]) => {
125
+ methods = [...methods, ...this.findMethodsMissing(WALLET_CONNECT_EIP155_NAMESPACE === namespace ? methodEVMRequire : methodDOTRequire, methods)];
126
+ result.namespaces[namespace].methods = methods;
127
+ });
120
128
  await ((_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo4 === void 0 ? void 0 : _classPrivateFieldLoo4.approve(result));
121
129
  _classPrivateFieldLooseBase(this, _updateSessions)[_updateSessions]();
122
130
  }
@@ -185,6 +193,16 @@ export default class WalletConnectService {
185
193
  }));
186
194
  _classPrivateFieldLooseBase(this, _updateSessions)[_updateSessions]();
187
195
  }
196
+ findMethodsMissing(methodRequire, methods) {
197
+ const methodMap = methods.reduce((obj, m) => ({
198
+ ...obj,
199
+ [m]: m
200
+ }), {});
201
+ return methodEVMRequire.reduce((methods, m) => {
202
+ !methodMap[m] && methods.push(m);
203
+ return methods;
204
+ }, []);
205
+ }
188
206
  }
189
207
  function _get_haveData() {
190
208
  const sessionStorage = storage.getItem('wc@2:client:0.3//session');
@@ -1,4 +1,7 @@
1
+ import { _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
1
2
  import { APIItemState } from '@subwallet/extension-base/background/KoniTypes';
3
+ import { _EvmApi } from '@subwallet/extension-base/services/chain-service/types';
4
+ import { ApiPromise } from '@polkadot/api';
2
5
  import { BN } from '@polkadot/util';
3
6
  export interface TokenBalanceRaw {
4
7
  reserved: BN;
@@ -37,3 +40,16 @@ export interface BalanceJson {
37
40
  reset?: boolean;
38
41
  details: BalanceMap;
39
42
  }
43
+ export interface SubscribeBasePalletBalance {
44
+ addresses: string[];
45
+ assetMap: Record<string, _ChainAsset>;
46
+ chainInfo: _ChainInfo;
47
+ callback: (rs: BalanceItem[]) => void;
48
+ }
49
+ export interface SubscribeSubstratePalletBalance extends SubscribeBasePalletBalance {
50
+ substrateApi: ApiPromise;
51
+ includeNativeToken?: boolean;
52
+ }
53
+ export interface SubscribeEvmPalletBalance extends SubscribeBasePalletBalance {
54
+ evmApi: _EvmApi;
55
+ }
package/types/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- export * from "./balance.js";
4
+ export * from "./balance/index.js";
5
5
  export * from "./buy.js";
6
6
  export * from "./campaigns/index.js";
7
7
  export * from "./fee/index.js";
@@ -0,0 +1,2 @@
1
+ import { _AssetType, _ChainAsset } from '@subwallet/chain-list/types';
2
+ export declare const filterAssetsByChainAndType: (chainAssetMap: Record<string, _ChainAsset>, chain: string, assetTypes: _AssetType[]) => Record<string, _ChainAsset>;
package/utils/asset.js ADDED
@@ -0,0 +1,12 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export const filterAssetsByChainAndType = (chainAssetMap, chain, assetTypes) => {
5
+ const result = {};
6
+ Object.values(chainAssetMap).forEach(assetInfo => {
7
+ if (assetTypes.includes(assetInfo.assetType) && assetInfo.originChain === chain) {
8
+ result[assetInfo.slug] = assetInfo;
9
+ }
10
+ });
11
+ return result;
12
+ };
@@ -87,8 +87,8 @@ const parseResult = (type, input, name) => {
87
87
  };
88
88
  } else {
89
89
  return {
90
- type: types,
91
90
  name: genName(name),
91
+ type: types,
92
92
  value: genInput(input)
93
93
  };
94
94
  }
package/utils/index.d.ts CHANGED
@@ -42,6 +42,7 @@ export declare const swParseIPFSUrl: (input: string) => string | undefined;
42
42
  export declare function wait(milliseconds: number): Promise<void>;
43
43
  export * from './account';
44
44
  export * from './array';
45
+ export * from './asset';
45
46
  export * from './environment';
46
47
  export * from './eth';
47
48
  export * from './number';
package/utils/index.js CHANGED
@@ -344,6 +344,7 @@ export function wait(milliseconds) {
344
344
  }
345
345
  export * from "./account.js";
346
346
  export * from "./array.js";
347
+ export * from "./asset.js";
347
348
  export * from "./environment.js";
348
349
  export * from "./eth.js";
349
350
  export * from "./number.js";
File without changes
File without changes