@subwallet/extension-base 1.3.1 → 1.3.3-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 (65) hide show
  1. package/background/KoniTypes.d.ts +5 -1
  2. package/cjs/constants/index.js +7 -1
  3. package/cjs/koni/api/nft/assethub_nft/index.js +30 -7
  4. package/cjs/koni/api/nft/config.js +11 -1
  5. package/cjs/koni/api/nft/index.js +9 -0
  6. package/cjs/koni/api/nft/ternoa_nft/index.js +174 -0
  7. package/cjs/koni/api/staking/bonding/utils.js +1 -1
  8. package/cjs/koni/background/handlers/Extension.js +67 -32
  9. package/cjs/packageInfo.js +1 -1
  10. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +9 -0
  11. package/cjs/services/chain-service/constants.js +2 -1
  12. package/cjs/services/chain-service/index.js +11 -14
  13. package/cjs/services/earning-service/constants/chains.js +2 -1
  14. package/cjs/services/earning-service/handlers/base.js +2 -1
  15. package/cjs/services/earning-service/handlers/native-staking/index.js +8 -1
  16. package/cjs/services/earning-service/handlers/native-staking/tao.js +394 -0
  17. package/cjs/services/earning-service/service.js +3 -0
  18. package/cjs/services/earning-service/utils/index.js +2 -0
  19. package/cjs/services/keyring-service/context/handlers/Modify.js +11 -3
  20. package/cjs/services/keyring-service/context/state.js +2 -3
  21. package/cjs/services/keyring-service/index.js +1 -1
  22. package/cjs/services/swap-service/handler/chainflip-handler.js +13 -5
  23. package/cjs/services/transaction-service/utils.js +6 -0
  24. package/cjs/types/swap/index.js +4 -2
  25. package/cjs/utils/account/derive/info/solo.js +2 -0
  26. package/cjs/utils/account/derive/info/unified.js +2 -0
  27. package/cjs/utils/account/transform.js +4 -4
  28. package/constants/index.d.ts +2 -0
  29. package/constants/index.js +2 -0
  30. package/koni/api/nft/assethub_nft/index.d.ts +2 -0
  31. package/koni/api/nft/assethub_nft/index.js +30 -7
  32. package/koni/api/nft/config.d.ts +4 -0
  33. package/koni/api/nft/config.js +6 -0
  34. package/koni/api/nft/index.js +9 -0
  35. package/koni/api/nft/ternoa_nft/index.d.ts +32 -0
  36. package/koni/api/nft/ternoa_nft/index.js +167 -0
  37. package/koni/api/staking/bonding/utils.js +1 -1
  38. package/koni/background/handlers/Extension.d.ts +1 -0
  39. package/koni/background/handlers/Extension.js +38 -3
  40. package/package.json +16 -6
  41. package/packageInfo.js +1 -1
  42. package/services/balance-service/helpers/subscribe/substrate/index.js +9 -0
  43. package/services/chain-service/constants.d.ts +1 -0
  44. package/services/chain-service/constants.js +2 -1
  45. package/services/chain-service/index.js +11 -14
  46. package/services/earning-service/constants/chains.d.ts +1 -0
  47. package/services/earning-service/constants/chains.js +2 -1
  48. package/services/earning-service/handlers/base.js +2 -1
  49. package/services/earning-service/handlers/native-staking/index.d.ts +1 -0
  50. package/services/earning-service/handlers/native-staking/index.js +2 -1
  51. package/services/earning-service/handlers/native-staking/tao.d.ts +49 -0
  52. package/services/earning-service/handlers/native-staking/tao.js +378 -0
  53. package/services/earning-service/service.js +4 -1
  54. package/services/earning-service/utils/index.js +2 -0
  55. package/services/keyring-service/context/handlers/Modify.js +11 -3
  56. package/services/keyring-service/context/state.js +2 -3
  57. package/services/keyring-service/index.d.ts +1 -1
  58. package/services/keyring-service/index.js +1 -1
  59. package/services/swap-service/handler/chainflip-handler.js +13 -5
  60. package/services/transaction-service/utils.js +6 -0
  61. package/types/swap/index.d.ts +1 -0
  62. package/types/swap/index.js +2 -1
  63. package/utils/account/derive/info/solo.js +2 -0
  64. package/utils/account/derive/info/unified.js +2 -0
  65. package/utils/account/transform.js +4 -4
@@ -1405,6 +1405,10 @@ export interface ResponseSubscribeHistory {
1405
1405
  id: string;
1406
1406
  items: TransactionHistoryItem[];
1407
1407
  }
1408
+ export interface ResponseNftImport {
1409
+ success: boolean;
1410
+ error: string;
1411
+ }
1408
1412
  export declare type _Address = string;
1409
1413
  export declare type _BalanceMetadata = unknown;
1410
1414
  export interface KoniRequestSignatures {
@@ -1434,7 +1438,7 @@ export interface KoniRequestSignatures {
1434
1438
  'pri(chainService.disableChain)': [string, boolean];
1435
1439
  'pri(chainService.removeChain)': [string, boolean];
1436
1440
  'pri(chainService.deleteCustomAsset)': [string, boolean];
1437
- 'pri(chainService.upsertCustomAsset)': [Record<string, any>, boolean];
1441
+ 'pri(chainService.upsertCustomAsset)': [Record<string, any>, ResponseNftImport];
1438
1442
  'pri(chainService.validateCustomAsset)': [_ValidateCustomAssetRequest, _ValidateCustomAssetResponse];
1439
1443
  'pri(chainService.resetDefaultChains)': [null, boolean];
1440
1444
  'pri(chainService.getSupportedContractTypes)': [null, string[]];
@@ -23,6 +23,8 @@ var _exportNames = {
23
23
  CRON_RECOVER_HISTORY_INTERVAL: true,
24
24
  CRON_SYNC_MANTA_PAY: true,
25
25
  MANTA_PAY_BALANCE_INTERVAL: true,
26
+ BITTENSOR_REFRESH_STAKE_INFO: true,
27
+ BITTENSOR_REFRESH_STAKE_APY: true,
26
28
  CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL: true,
27
29
  ALL_ACCOUNT_KEY: true,
28
30
  ALL_NETWORK_KEY: true,
@@ -38,7 +40,7 @@ var _exportNames = {
38
40
  ORDINAL_METHODS: true,
39
41
  PERMISSIONS_TO_REVOKE: true
40
42
  };
41
- exports.XCM_MIN_AMOUNT_RATIO = exports.XCM_FEE_RATIO = exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.PERMISSIONS_TO_REVOKE = exports.ORDINAL_METHODS = exports.ORDINAL_COLLECTION = exports.NETWORK_MULTI_GAS_FEE = exports.MANTA_PAY_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.GAS_PRICE_RATIO = exports.CRON_SYNC_MANTA_PAY = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_MKT_CAMPAIGN_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.BASE_SECOND_INTERVAL = exports.BASE_MINUTE_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ALL_ACCOUNT_AUTH_TYPES = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
43
+ exports.XCM_MIN_AMOUNT_RATIO = exports.XCM_FEE_RATIO = exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.PERMISSIONS_TO_REVOKE = exports.ORDINAL_METHODS = exports.ORDINAL_COLLECTION = exports.NETWORK_MULTI_GAS_FEE = exports.MANTA_PAY_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.GAS_PRICE_RATIO = exports.CRON_SYNC_MANTA_PAY = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_MKT_CAMPAIGN_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.BITTENSOR_REFRESH_STAKE_INFO = exports.BITTENSOR_REFRESH_STAKE_APY = exports.BASE_SECOND_INTERVAL = exports.BASE_MINUTE_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ALL_ACCOUNT_AUTH_TYPES = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
42
44
  var _blockedActionsList = require("./blocked-actions-list");
43
45
  Object.keys(_blockedActionsList).forEach(function (key) {
44
46
  if (key === "default" || key === "__esModule") return;
@@ -140,6 +142,10 @@ const CRON_SYNC_MANTA_PAY = 300000;
140
142
  exports.CRON_SYNC_MANTA_PAY = CRON_SYNC_MANTA_PAY;
141
143
  const MANTA_PAY_BALANCE_INTERVAL = 30000;
142
144
  exports.MANTA_PAY_BALANCE_INTERVAL = MANTA_PAY_BALANCE_INTERVAL;
145
+ const BITTENSOR_REFRESH_STAKE_INFO = 30000;
146
+ exports.BITTENSOR_REFRESH_STAKE_INFO = BITTENSOR_REFRESH_STAKE_INFO;
147
+ const BITTENSOR_REFRESH_STAKE_APY = 300000;
148
+ exports.BITTENSOR_REFRESH_STAKE_APY = BITTENSOR_REFRESH_STAKE_APY;
143
149
  const CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = 15 * BASE_MINUTE_INTERVAL;
144
150
  exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL;
145
151
  const ALL_ACCOUNT_KEY = 'ALL';
@@ -30,6 +30,21 @@ class AssetHubNftsPalletApi extends _nft.BaseNftApi {
30
30
  }
31
31
  }).then(res => res.json());
32
32
  }
33
+ processImageUrl(image, isKodadot, isTokenInfo) {
34
+ if (!image) {
35
+ return undefined;
36
+ }
37
+ if (isKodadot) {
38
+ return isTokenInfo ? image.replace('ipfs://ipfs/', 'https://image.w.kodadot.xyz/ipfs/') : image.replace('ipfs://', 'https://image.w.kodadot.xyz/ipfs/');
39
+ }
40
+ return this.parseUrl(image);
41
+ }
42
+ parseTokenInfo(tokenInfo, classId) {
43
+ if (classId === '244' && tokenInfo) {
44
+ return JSON.parse(tokenInfo);
45
+ }
46
+ return tokenInfo;
47
+ }
33
48
 
34
49
  /**
35
50
  * Retrieve id of NFTs
@@ -87,8 +102,6 @@ class AssetHubNftsPalletApi extends _nft.BaseNftApi {
87
102
  return this.getMetadata(collectionMetadata === null || collectionMetadata === void 0 ? void 0 : collectionMetadata.data);
88
103
  }
89
104
  async handleNft(address, params) {
90
- // const start = performance.now();
91
-
92
105
  const assetIds = await this.getNfts([address]);
93
106
  try {
94
107
  if (!assetIds || assetIds.length === 0) {
@@ -97,18 +110,28 @@ class AssetHubNftsPalletApi extends _nft.BaseNftApi {
97
110
  const collectionIds = [];
98
111
  const nftIds = [];
99
112
  await Promise.all(assetIds.map(async assetId => {
113
+ var _tokenInfo2, _tokenInfo3, _tokenInfo4;
100
114
  const parsedClassId = this.parseTokenId(assetId.classId);
101
115
  const parsedTokenId = this.parseTokenId(assetId.tokenId);
102
116
  if (!collectionIds.includes(parsedClassId)) {
103
117
  collectionIds.push(parsedClassId);
104
118
  }
105
119
  nftIds.push(parsedTokenId);
106
- const [tokenInfo, collectionMeta] = await Promise.all([this.getTokenDetails(assetId), this.getCollectionDetail(parseInt(parsedClassId))]);
120
+ let [tokenInfo, collectionMeta] = await Promise.all([this.getTokenDetails(assetId), this.getCollectionDetail(parseInt(parsedClassId))]);
121
+ const isKodadot = assetId.classId === '244';
122
+ tokenInfo = this.parseTokenInfo(tokenInfo, assetId.classId);
123
+ if (tokenInfo) {
124
+ var _tokenInfo;
125
+ tokenInfo.image = this.processImageUrl((_tokenInfo = tokenInfo) === null || _tokenInfo === void 0 ? void 0 : _tokenInfo.image, isKodadot, true);
126
+ }
127
+ if (collectionMeta) {
128
+ collectionMeta.image = this.processImageUrl(collectionMeta === null || collectionMeta === void 0 ? void 0 : collectionMeta.image, isKodadot, false);
129
+ }
107
130
  const parsedNft = {
108
131
  id: parsedTokenId,
109
- name: tokenInfo === null || tokenInfo === void 0 ? void 0 : tokenInfo.name,
110
- description: tokenInfo === null || tokenInfo === void 0 ? void 0 : tokenInfo.description,
111
- image: tokenInfo && tokenInfo.image ? this.parseUrl(tokenInfo === null || tokenInfo === void 0 ? void 0 : tokenInfo.image) : undefined,
132
+ name: (_tokenInfo2 = tokenInfo) === null || _tokenInfo2 === void 0 ? void 0 : _tokenInfo2.name,
133
+ description: (_tokenInfo3 = tokenInfo) === null || _tokenInfo3 === void 0 ? void 0 : _tokenInfo3.description,
134
+ image: (_tokenInfo4 = tokenInfo) === null || _tokenInfo4 === void 0 ? void 0 : _tokenInfo4.image,
112
135
  collectionId: this.parseTokenId(parsedClassId),
113
136
  chain: this.chain,
114
137
  owner: address,
@@ -119,7 +142,7 @@ class AssetHubNftsPalletApi extends _nft.BaseNftApi {
119
142
  collectionId: parsedClassId,
120
143
  chain: this.chain,
121
144
  collectionName: collectionMeta === null || collectionMeta === void 0 ? void 0 : collectionMeta.name,
122
- image: collectionMeta && collectionMeta.image ? this.parseUrl(collectionMeta === null || collectionMeta === void 0 ? void 0 : collectionMeta.image) : undefined
145
+ image: collectionMeta === null || collectionMeta === void 0 ? void 0 : collectionMeta.image
123
146
  };
124
147
  params.updateCollection(this.chain, parsedCollection);
125
148
  }));
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.W3S_IPFS = exports.VARA_SCAN_ENDPOINT = exports.UNSUPPORTED_TRANSFER_EVM_CHAIN_NAME = exports.UNIQUE_SCAN_ENDPOINT = exports.UNIQUE_IPFS_GATEWAY = exports.TRANSFER_CHAIN_ID = exports.SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN = exports.SUPPORTED_NFT_NETWORKS = exports.SUBWALLET_IPFS = exports.SINGULAR_V2_ENDPOINT = exports.SINGULAR_V2_COLLECTION_ENDPOINT = exports.SINGULAR_V1_ENDPOINT = exports.SINGULAR_V1_COLLECTION_ENDPOINT = exports.RMRK_PINATA_SERVER = exports.QUARTZ_SCAN_ENDPOINT = exports.PINATA_IPFS_GATEWAY = exports.OPAL_SCAN_ENDPOINT = exports.NFT_STORAGE_GATEWAY = exports.KANARIA_EXTERNAL_SERVER = exports.KANARIA_ENDPOINT = exports.IPFS_W3S_LINK = exports.IPFS_IO = exports.IPFS_GATEWAY_4EVERLAND = exports.IPFS_FLEEK = exports.IPFS_ETH_ARAGON = exports.IPFS2_RMRK = exports.GATEWAY_IPFS_IO = exports.DWEB_LINK = exports.CLOUDFLARE_PINATA_SERVER = exports.CF_IPFS_GATEWAY = exports.BIT_COUNTRY_THUMBNAIL_RESOLVER = exports.BIT_COUNTRY_LAND_ESTATE_METADATA_API = exports.BIT_COUNTRY_IPFS_SERVER = exports.BIT_AVATAR_API = exports.AVAIL_LIGHT_CLIENT_NFT = void 0;
6
+ exports.W3S_IPFS = exports.VARA_SCAN_ENDPOINT = exports.UNSUPPORTED_TRANSFER_EVM_CHAIN_NAME = exports.UNIQUE_SCAN_ENDPOINT = exports.UNIQUE_IPFS_GATEWAY = exports.TRANSFER_CHAIN_ID = exports.TERNOA_MAINNET_GATEWAY = exports.TERNOA_MAINNET_CLIENT_NFT = exports.TERNOA_ALPHANET_GATEWAY = exports.TERNOA_ALPHANET_CLIENT_NFT = exports.SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN = exports.SUPPORTED_NFT_NETWORKS = exports.SUBWALLET_IPFS = exports.SINGULAR_V2_ENDPOINT = exports.SINGULAR_V2_COLLECTION_ENDPOINT = exports.SINGULAR_V1_ENDPOINT = exports.SINGULAR_V1_COLLECTION_ENDPOINT = exports.RMRK_PINATA_SERVER = exports.QUARTZ_SCAN_ENDPOINT = exports.PINATA_IPFS_GATEWAY = exports.OPAL_SCAN_ENDPOINT = exports.NFT_STORAGE_GATEWAY = exports.KANARIA_EXTERNAL_SERVER = exports.KANARIA_ENDPOINT = exports.IPFS_W3S_LINK = exports.IPFS_IO = exports.IPFS_GATEWAY_4EVERLAND = exports.IPFS_FLEEK = exports.IPFS_ETH_ARAGON = exports.IPFS2_RMRK = exports.GATEWAY_IPFS_IO = exports.DWEB_LINK = exports.CLOUDFLARE_PINATA_SERVER = exports.CF_IPFS_GATEWAY = exports.BIT_COUNTRY_THUMBNAIL_RESOLVER = exports.BIT_COUNTRY_LAND_ESTATE_METADATA_API = exports.BIT_COUNTRY_IPFS_SERVER = exports.BIT_AVATAR_API = exports.AVAIL_LIGHT_CLIENT_NFT = void 0;
7
7
  exports.getRandomIpfsGateway = getRandomIpfsGateway;
8
8
  var _environment = require("@subwallet/extension-base/utils/environment");
9
9
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
@@ -77,7 +77,17 @@ const IPFS_IO = 'https://ipfs.io/ipfs/';
77
77
  // XOrigin
78
78
  exports.IPFS_IO = IPFS_IO;
79
79
  const DWEB_LINK = 'https://dweb.link/ipfs/';
80
+
81
+ // XOrigin
80
82
  exports.DWEB_LINK = DWEB_LINK;
83
+ const TERNOA_MAINNET_CLIENT_NFT = 'https://indexer-mainnet.ternoa.dev';
84
+ exports.TERNOA_MAINNET_CLIENT_NFT = TERNOA_MAINNET_CLIENT_NFT;
85
+ const TERNOA_ALPHANET_CLIENT_NFT = 'https://indexer-alphanet.ternoa.dev';
86
+ exports.TERNOA_ALPHANET_CLIENT_NFT = TERNOA_ALPHANET_CLIENT_NFT;
87
+ const TERNOA_MAINNET_GATEWAY = 'https://ipfs-mainnet.trnnfr.com/ipfs/';
88
+ exports.TERNOA_MAINNET_GATEWAY = TERNOA_MAINNET_GATEWAY;
89
+ const TERNOA_ALPHANET_GATEWAY = 'https://ipfs-dev.trnnfr.com/ipfs/';
90
+ exports.TERNOA_ALPHANET_GATEWAY = TERNOA_ALPHANET_GATEWAY;
81
91
  const IPFS_GATEWAY_4EVERLAND = 'https://4everland.io/ipfs/';
82
92
  exports.IPFS_GATEWAY_4EVERLAND = IPFS_GATEWAY_4EVERLAND;
83
93
  const IPFS_FLEEK = 'https://ipfs.fleek.co/ipfs/';
@@ -20,6 +20,7 @@ var _constants = require("@subwallet/extension-base/services/chain-service/const
20
20
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
21
21
  var _utils2 = require("@subwallet/extension-base/utils");
22
22
  var _assethub_nft = _interopRequireDefault(require("./assethub_nft"));
23
+ var _ternoa_nft = require("./ternoa_nft");
23
24
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
24
25
  // SPDX-License-Identifier: Apache-2.0
25
26
 
@@ -50,6 +51,8 @@ function createSubstrateNftApi(chain, substrateApi, addresses) {
50
51
  return [new _vara_nft.VaraNftApi(chain, substrateAddresses)];
51
52
  } else if (_constants._NFT_CHAIN_GROUP.avail.includes(chain)) {
52
53
  return [new _blobinscription.BlobInscriptionApi(chain, substrateAddresses)];
54
+ } else if (_constants._NFT_CHAIN_GROUP.ternoa.includes(chain)) {
55
+ return [new _ternoa_nft.TernoaNftApi(substrateApi, substrateAddresses, chain)];
53
56
  }
54
57
  return null;
55
58
  }
@@ -148,6 +151,12 @@ class NftHandler {
148
151
  this.handlers.push(...handlers);
149
152
  }
150
153
  }
154
+ if (chain === 'ternoa') {
155
+ const handlers = createSubstrateNftApi(chain, this.substrateApiMap[chain], substrateAddresses);
156
+ if (handlers && !!handlers.length) {
157
+ this.handlers.push(...handlers);
158
+ }
159
+ }
151
160
  if ((0, _utils._isChainSupportWasmNft)(chainInfo)) {
152
161
  if (this.substrateApiMap[chain]) {
153
162
  const handler = createWasmNftApi(chain, this.substrateApiMap[chain], substrateAddresses);
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TernoaNftApi = void 0;
7
+ var _utils = require("@subwallet/extension-base/utils");
8
+ var _utilCrypto = require("@polkadot/util-crypto");
9
+ var _config = require("../config");
10
+ var _nft = require("../nft");
11
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
12
+ // SPDX-License-Identifier: Apache-2.0
13
+
14
+ class TernoaNftApi extends _nft.BaseNftApi {
15
+ constructor(api, addresses, chain) {
16
+ super(chain, api, addresses);
17
+ }
18
+ endpoint = _config.TERNOA_MAINNET_CLIENT_NFT;
19
+ parseUrl(input) {
20
+ return (0, _utils.baseParseIPFSUrl)(input, _config.TERNOA_MAINNET_GATEWAY);
21
+ }
22
+ static parseNftRequest(address) {
23
+ return {
24
+ query: `
25
+ query {
26
+ nftEntities(
27
+ filter: {
28
+ owner: { equalTo: "${address}" }
29
+ }
30
+ ) {
31
+ totalCount
32
+ nodes {
33
+ nftId
34
+ owner
35
+ creator
36
+ collectionId
37
+ offchainData
38
+ }
39
+ }
40
+ }`
41
+ };
42
+ }
43
+
44
+ /* GET NFTs */
45
+
46
+ async fetchNftsWithDetail(address) {
47
+ const query = TernoaNftApi.parseNftRequest(address);
48
+ try {
49
+ const response = await fetch(this.endpoint, {
50
+ method: 'POST',
51
+ headers: {
52
+ 'Content-Type': 'application/json'
53
+ },
54
+ body: JSON.stringify(query)
55
+ });
56
+ const result = await response.json();
57
+ const nftEntities = result.data.nftEntities.nodes;
58
+ if (!nftEntities) {
59
+ return null;
60
+ }
61
+ const nftDetails = await Promise.all(nftEntities.map(async nft => {
62
+ const ipfsUrl = `${_config.TERNOA_MAINNET_GATEWAY}${nft.offchainData}`;
63
+ try {
64
+ const ipfsResponse = await fetch(ipfsUrl);
65
+ const nftDetail = await ipfsResponse.json();
66
+ nftDetail.image = `${_config.TERNOA_MAINNET_GATEWAY}${nftDetail.image}`;
67
+ return {
68
+ metadata: nft,
69
+ detail: nftDetail
70
+ };
71
+ } catch (err) {
72
+ console.error('Error:', err);
73
+ return null;
74
+ }
75
+ }));
76
+ return nftDetails.filter(nft => nft !== null);
77
+ } catch (err) {
78
+ console.error('Error:', err);
79
+ return null;
80
+ }
81
+ }
82
+
83
+ /* GET NFTs */
84
+
85
+ /* GET Collection */
86
+
87
+ async getCollectionDetail(collectionId) {
88
+ if (!this.substrateApi) {
89
+ return null;
90
+ }
91
+ const substrateApi = await this.substrateApi.isReady;
92
+ try {
93
+ const collectionMetadata = (await substrateApi.api.query.nft.collections(parseInt(collectionId))).toHuman();
94
+ if (!(collectionMetadata !== null && collectionMetadata !== void 0 && collectionMetadata.offchainData)) {
95
+ return null;
96
+ }
97
+ const ipfsUrl = `${_config.TERNOA_MAINNET_GATEWAY}${collectionMetadata.offchainData}`;
98
+ const ipfsResponse = await fetch(ipfsUrl);
99
+ if (!ipfsResponse.ok) {
100
+ return {
101
+ name: collectionMetadata.offchainData,
102
+ banner_image: ''
103
+ };
104
+ }
105
+ const collectionDetail = await ipfsResponse.json();
106
+ collectionDetail.banner_image = `${_config.TERNOA_MAINNET_GATEWAY}${collectionDetail.banner_image}`;
107
+ return collectionDetail;
108
+ } catch (err) {
109
+ console.error('Error:', err);
110
+ return null;
111
+ }
112
+ }
113
+
114
+ /* Get Collection */
115
+
116
+ async handleNfts(params) {
117
+ const collectionMap = new Map();
118
+ await Promise.all(this.addresses.map(async address => {
119
+ address = (0, _utilCrypto.encodeAddress)((0, _utilCrypto.decodeAddress)(address), 42);
120
+ const nftDetails = await this.fetchNftsWithDetail(address);
121
+ if (!nftDetails || nftDetails.length === 0) {
122
+ return;
123
+ }
124
+
125
+ // eslint-disable-next-line @typescript-eslint/require-await
126
+ await Promise.all(nftDetails.map(async nft => {
127
+ const {
128
+ detail,
129
+ metadata
130
+ } = nft;
131
+ let collectionId = metadata.collectionId;
132
+ if (!collectionId) {
133
+ collectionId = 'Ternoa_Collection';
134
+ }
135
+ const parsedNft = {
136
+ id: metadata.nftId,
137
+ name: detail.title,
138
+ description: detail.description,
139
+ image: detail.image ? this.parseUrl(detail.image) : undefined,
140
+ collectionId,
141
+ chain: this.chain,
142
+ owner: address
143
+ };
144
+ params.updateItem(this.chain, parsedNft, address);
145
+ if (!collectionMap.has(collectionId)) {
146
+ collectionMap.set(collectionId, true);
147
+ }
148
+ }));
149
+ }));
150
+ for (const collectionId of collectionMap.keys()) {
151
+ const collectionDetail = collectionId !== 'Ternoa_Collection' ? await this.getCollectionDetail(collectionId) : {
152
+ name: 'Ternoa NFTs',
153
+ description: 'Collection for NFTs without a specific collection',
154
+ banner_image: ''
155
+ };
156
+ const parsedCollection = {
157
+ collectionId,
158
+ chain: this.chain,
159
+ collectionName: collectionDetail === null || collectionDetail === void 0 ? void 0 : collectionDetail.name,
160
+ image: collectionDetail !== null && collectionDetail !== void 0 && collectionDetail.banner_image ? this.parseUrl(collectionDetail === null || collectionDetail === void 0 ? void 0 : collectionDetail.banner_image) : undefined
161
+ };
162
+ params.updateCollection(this.chain, parsedCollection);
163
+ }
164
+ }
165
+ async fetchNfts(params) {
166
+ try {
167
+ await this.handleNfts(params);
168
+ } catch (e) {
169
+ return 0;
170
+ }
171
+ return 1;
172
+ }
173
+ }
174
+ exports.TernoaNftApi = TernoaNftApi;
@@ -369,7 +369,7 @@ function getEarningStatusByNominations(bnTotalActiveStake, nominationList) {
369
369
  function getValidatorLabel(chain) {
370
370
  if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
371
371
  return 'dApp';
372
- } else if (_constants2._STAKING_CHAIN_GROUP.relay.includes(chain)) {
372
+ } else if (_constants2._STAKING_CHAIN_GROUP.relay.includes(chain) || _constants2._STAKING_CHAIN_GROUP.bittensor.includes(chain)) {
373
373
  return 'Validator';
374
374
  }
375
375
  return 'Collator';
@@ -8,6 +8,7 @@ exports.default = void 0;
8
8
  exports.isJsonPayload = isJsonPayload;
9
9
  var _common = require("@ethereumjs/common");
10
10
  var _tx = require("@ethereumjs/tx");
11
+ var _types = require("@subwallet/chain-list/types");
11
12
  var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
12
13
  var _helpers = require("@subwallet/extension-base/background/handlers/helpers");
13
14
  var _subscriptions = require("@subwallet/extension-base/background/handlers/subscriptions");
@@ -32,7 +33,7 @@ var _token = require("@subwallet/extension-base/services/balance-service/transfe
32
33
  var _tonTransfer = require("@subwallet/extension-base/services/balance-service/transfer/ton-transfer");
33
34
  var _xcm = require("@subwallet/extension-base/services/balance-service/transfer/xcm");
34
35
  var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
35
- var _types = require("@subwallet/extension-base/services/chain-service/types");
36
+ var _types2 = require("@subwallet/extension-base/services/chain-service/types");
36
37
  var _utils4 = require("@subwallet/extension-base/services/chain-service/utils");
37
38
  var _constants3 = require("@subwallet/extension-base/services/request-service/constants");
38
39
  var _constants4 = require("@subwallet/extension-base/services/setting-service/constants");
@@ -40,18 +41,18 @@ var _constants5 = require("@subwallet/extension-base/services/wallet-connect-ser
40
41
  var _helpers2 = require("@subwallet/extension-base/services/wallet-connect-service/helpers");
41
42
  var _storage = require("@subwallet/extension-base/storage");
42
43
  var _stores = require("@subwallet/extension-base/stores");
43
- var _types2 = require("@subwallet/extension-base/types");
44
+ var _types3 = require("@subwallet/extension-base/types");
44
45
  var _utils5 = require("@subwallet/extension-base/utils");
45
46
  var _parseTransaction2 = require("@subwallet/extension-base/utils/eth/parseTransaction");
46
47
  var _extensionChains = require("@subwallet/extension-chains");
47
48
  var _keyring = require("@subwallet/keyring");
48
- var _types3 = require("@subwallet/keyring/types");
49
+ var _types4 = require("@subwallet/keyring/types");
49
50
  var _uiKeyring = require("@subwallet/ui-keyring");
50
51
  var _utils6 = require("@walletconnect/utils");
51
52
  var _bignumber = _interopRequireDefault(require("bignumber.js"));
52
53
  var _i18next = require("i18next");
53
54
  var _rxjs = require("rxjs");
54
- var _types4 = require("@polkadot/types");
55
+ var _types5 = require("@polkadot/types");
55
56
  var _util = require("@polkadot/util");
56
57
  var _utilCrypto = require("@polkadot/util-crypto");
57
58
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
@@ -200,7 +201,7 @@ class KoniExtension {
200
201
  const {
201
202
  reject
202
203
  } = queued;
203
- reject(new _TransactionError.TransactionError(_types2.BasicTxErrorType.USER_REJECT_REQUEST));
204
+ reject(new _TransactionError.TransactionError(_types3.BasicTxErrorType.USER_REJECT_REQUEST));
204
205
  return true;
205
206
  }
206
207
 
@@ -572,9 +573,9 @@ class KoniExtension {
572
573
  isAddressValidWithAuthType(address, accountAuthTypes) {
573
574
  const type = (0, _keyring.getKeypairTypeByAddress)(address);
574
575
  const validTypes = {
575
- evm: _types3.EthereumKeypairTypes,
576
- substrate: _types3.SubstrateKeypairTypes,
577
- ton: _types3.TonKeypairTypes
576
+ evm: _types4.EthereumKeypairTypes,
577
+ substrate: _types4.SubstrateKeypairTypes,
578
+ ton: _types4.TonKeypairTypes
578
579
  };
579
580
  return !!accountAuthTypes && accountAuthTypes.some(authType => {
580
581
  var _validTypes$authType;
@@ -1246,10 +1247,10 @@ class KoniExtension {
1246
1247
  };
1247
1248
  const ignoreWarnings = [];
1248
1249
  if (transferAll) {
1249
- ignoreWarnings.push(_types2.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT);
1250
+ ignoreWarnings.push(_types3.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT);
1250
1251
  }
1251
1252
  if (transferBounceable) {
1252
- ignoreWarnings.push(_types2.BasicTxWarningCode.IS_BOUNCEABLE_ADDRESS);
1253
+ ignoreWarnings.push(_types3.BasicTxWarningCode.IS_BOUNCEABLE_ADDRESS);
1253
1254
  }
1254
1255
  return this.#koniState.transactionService.handleTransaction({
1255
1256
  errors,
@@ -1355,10 +1356,10 @@ class KoniExtension {
1355
1356
  }
1356
1357
  const ignoreWarnings = [];
1357
1358
  if (transferAll) {
1358
- ignoreWarnings.push(_types2.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT);
1359
+ ignoreWarnings.push(_types3.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT);
1359
1360
  }
1360
1361
  if (transferBounceable) {
1361
- ignoreWarnings.push(_types2.BasicTxWarningCode.IS_BOUNCEABLE_ADDRESS);
1362
+ ignoreWarnings.push(_types3.BasicTxWarningCode.IS_BOUNCEABLE_ADDRESS);
1362
1363
  }
1363
1364
  return await this.#koniState.transactionService.handleTransaction({
1364
1365
  url: _constants3.EXTENSION_REQUEST_URL,
@@ -1452,13 +1453,47 @@ class KoniExtension {
1452
1453
  return false;
1453
1454
  }
1454
1455
  }
1456
+ async validateERC721Token(data) {
1457
+ var _data$metadata;
1458
+ const evmApi = this.#koniState.getEvmApi(data.originChain);
1459
+
1460
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
1461
+ const tokenContract = new evmApi.api.eth.Contract(_utils._ERC721_ABI, (_data$metadata = data.metadata) === null || _data$metadata === void 0 ? void 0 : _data$metadata.contractAddress);
1462
+ try {
1463
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
1464
+ await tokenContract.methods.tokenOfOwnerByIndex('0xB7fdD27a8Df011816205a6e3cAA097DC4D8C2C5d', 1).call();
1465
+ return true;
1466
+ } catch (err) {
1467
+ const error = err;
1468
+ if (error.message.includes('ERC721Enumerable: owner index out of bounds')) {
1469
+ return true;
1470
+ } else {
1471
+ return false;
1472
+ }
1473
+ }
1474
+ }
1455
1475
  async upsertCustomToken(data) {
1456
1476
  try {
1477
+ if (data.assetType === _types._AssetType.ERC721) {
1478
+ const isCompatible = await this.validateERC721Token(data);
1479
+ if (!isCompatible) {
1480
+ return {
1481
+ success: false,
1482
+ error: 'incompatibleNFT'
1483
+ };
1484
+ }
1485
+ }
1457
1486
  await this.#koniState.upsertCustomToken(data);
1458
- return true;
1487
+ return {
1488
+ success: true,
1489
+ error: ''
1490
+ };
1459
1491
  } catch (e) {
1460
1492
  console.error(e);
1461
- return false;
1493
+ return {
1494
+ success: false,
1495
+ error: 'Error'
1496
+ };
1462
1497
  }
1463
1498
  }
1464
1499
  async deleteCustomAsset(assetSlug) {
@@ -1904,7 +1939,7 @@ class KoniExtension {
1904
1939
  chainName: chainInfo.name
1905
1940
  }
1906
1941
  });
1907
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
1942
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
1908
1943
  }
1909
1944
  const bondingValidation = (0, _bonding.validateBondingCondition)(chainInfo, amount, selectedValidators, address, chainStakingMetadata, nominatorMetadata);
1910
1945
  if (!amount || !selectedValidators || bondingValidation.length > 0) {
@@ -1932,7 +1967,7 @@ class KoniExtension {
1932
1967
  } = inputData;
1933
1968
  const chainStakingMetadata = await this.#koniState.getStakingMetadataByChain(chain, _KoniTypes.StakingType.NOMINATED);
1934
1969
  if (!chainStakingMetadata || !nominatorMetadata) {
1935
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INTERNAL_ERROR)]);
1970
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INTERNAL_ERROR)]);
1936
1971
  }
1937
1972
  const unbondingValidation = (0, _bonding.validateUnbondingCondition)(nominatorMetadata, amount, chain, chainStakingMetadata, validatorAddress);
1938
1973
  if (!amount || unbondingValidation.length > 0) {
@@ -1957,10 +1992,10 @@ class KoniExtension {
1957
1992
  } = inputData;
1958
1993
  const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
1959
1994
  if (!address || !poolHandler) {
1960
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INVALID_PARAMS)]);
1995
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INVALID_PARAMS)]);
1961
1996
  }
1962
1997
  const chain = poolHandler.chain;
1963
- const stakingType = poolHandler.type === _types2.YieldPoolType.NOMINATION_POOL ? _KoniTypes.StakingType.POOLED : _KoniTypes.StakingType.NOMINATED;
1998
+ const stakingType = poolHandler.type === _types3.YieldPoolType.NOMINATION_POOL ? _KoniTypes.StakingType.POOLED : _KoniTypes.StakingType.NOMINATED;
1964
1999
  const substrateApi = this.#koniState.getSubstrateApi(chain);
1965
2000
  const extrinsic = await (0, _bonding.getClaimRewardExtrinsic)(substrateApi, chain, address, stakingType, bondReward);
1966
2001
  return await this.#koniState.transactionService.handleTransaction({
@@ -1981,7 +2016,7 @@ class KoniExtension {
1981
2016
  } = inputData;
1982
2017
  const chain = (_this$koniState$earni = this.#koniState.earningService.getPoolHandler(slug)) === null || _this$koniState$earni === void 0 ? void 0 : _this$koniState$earni.chain;
1983
2018
  if (!chain || !selectedUnstaking) {
1984
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INVALID_PARAMS)]);
2019
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INVALID_PARAMS)]);
1985
2020
  }
1986
2021
  const substrateApi = this.#koniState.getSubstrateApi(chain);
1987
2022
  // @ts-ignore
@@ -2011,7 +2046,7 @@ class KoniExtension {
2011
2046
  chainName: chainInfo.name
2012
2047
  }
2013
2048
  });
2014
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
2049
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
2015
2050
  }
2016
2051
  const bondingValidation = (0, _relayChain.validatePoolBondingCondition)(chainInfo, amount, selectedPool, address, chainStakingMetadata, nominatorMetadata);
2017
2052
  if (!amount || bondingValidation.length > 0) {
@@ -2043,7 +2078,7 @@ class KoniExtension {
2043
2078
  chainName: chainInfo === null || chainInfo === void 0 ? void 0 : chainInfo.name
2044
2079
  }
2045
2080
  });
2046
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
2081
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
2047
2082
  }
2048
2083
  const unbondingValidation = (0, _relayChain.validateRelayUnbondingCondition)(amount, chainStakingMetadata, nominatorMetadata);
2049
2084
  if (!amount || unbondingValidation.length > 0) {
@@ -2080,7 +2115,7 @@ class KoniExtension {
2080
2115
  networkKey
2081
2116
  } = inputData;
2082
2117
  if (!address) {
2083
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INVALID_PARAMS)]);
2118
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INVALID_PARAMS)]);
2084
2119
  }
2085
2120
  const dotSamaApi = this.#koniState.getSubstrateApi(networkKey);
2086
2121
  const chainInfo = this.#koniState.getChainInfo(networkKey);
@@ -2282,8 +2317,8 @@ class KoniExtension {
2282
2317
  metadata = await this.#koniState.chainService.getMetadataByHash(payload.genesisHash);
2283
2318
  if (metadata) {
2284
2319
  var _chainInfo$substrateI, _chainInfo$substrateI2, _chainInfo$substrateI3, _chainInfo$substrateI4;
2285
- registry = new _types4.TypeRegistry();
2286
- const _metadata = new _types4.Metadata(registry, metadata.hexValue);
2320
+ registry = new _types5.TypeRegistry();
2321
+ const _metadata = new _types5.Metadata(registry, metadata.hexValue);
2287
2322
  registry.register(metadata.types);
2288
2323
  registry.setChainProperties(registry.createType('ChainProperties', {
2289
2324
  ss58Format: (_chainInfo$substrateI = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI2 = chainInfo.substrateInfo) === null || _chainInfo$substrateI2 === void 0 ? void 0 : _chainInfo$substrateI2.addressPrefix) !== null && _chainInfo$substrateI !== void 0 ? _chainInfo$substrateI : 42,
@@ -2293,7 +2328,7 @@ class KoniExtension {
2293
2328
  registry.setMetadata(_metadata, payload.signedExtensions, metadata.userExtensions);
2294
2329
  } else {
2295
2330
  // we have no metadata, create a new registry
2296
- registry = new _types4.TypeRegistry();
2331
+ registry = new _types5.TypeRegistry();
2297
2332
  registry.setSignedExtensions(payload.signedExtensions);
2298
2333
  }
2299
2334
  }
@@ -2319,7 +2354,7 @@ class KoniExtension {
2319
2354
  }
2320
2355
  } else {
2321
2356
  // for non-payload, just create a registry to use
2322
- registry = new _types4.TypeRegistry();
2357
+ registry = new _types5.TypeRegistry();
2323
2358
  }
2324
2359
  const result = request.sign(registry, pair);
2325
2360
  resolve({
@@ -2722,7 +2757,7 @@ class KoniExtension {
2722
2757
  const {
2723
2758
  connectionStatus
2724
2759
  } = this.#koniState.chainService.getChainStatusByKey(_constants2._DEFAULT_MANTA_ZK_CHAIN);
2725
- if (connectionStatus !== _types._ChainConnectionStatus.CONNECTED) {
2760
+ if (connectionStatus !== _types2._ChainConnectionStatus.CONNECTED) {
2726
2761
  // TODO: do better
2727
2762
  await timeout();
2728
2763
  }
@@ -2932,7 +2967,7 @@ class KoniExtension {
2932
2967
  address
2933
2968
  } = data;
2934
2969
  if (!data) {
2935
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INTERNAL_ERROR)]);
2970
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INTERNAL_ERROR)]);
2936
2971
  }
2937
2972
  const isLastStep = inputData.currentStep + 1 === path.steps.length;
2938
2973
  const yieldValidation = await this.#koniState.earningService.validateYieldJoin({
@@ -3067,7 +3102,7 @@ class KoniExtension {
3067
3102
  } = params;
3068
3103
  const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3069
3104
  if (!poolHandler) {
3070
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INVALID_PARAMS)]);
3105
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INVALID_PARAMS)]);
3071
3106
  }
3072
3107
  const extrinsic = await this.#koniState.earningService.handleYieldWithdraw(params);
3073
3108
  return await this.#koniState.transactionService.handleTransaction({
@@ -3087,7 +3122,7 @@ class KoniExtension {
3087
3122
  } = params;
3088
3123
  const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3089
3124
  if (!poolHandler || !selectedUnstaking) {
3090
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INVALID_PARAMS)]);
3125
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INVALID_PARAMS)]);
3091
3126
  }
3092
3127
  const chain = poolHandler.chain;
3093
3128
  const extrinsic = await this.#koniState.earningService.handleYieldCancelUnstake(params);
@@ -3107,7 +3142,7 @@ class KoniExtension {
3107
3142
  } = params;
3108
3143
  const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3109
3144
  if (!address || !poolHandler) {
3110
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INVALID_PARAMS)]);
3145
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INVALID_PARAMS)]);
3111
3146
  }
3112
3147
  const extrinsic = await this.#koniState.earningService.handleYieldClaimReward(params);
3113
3148
  return await this.#koniState.transactionService.handleTransaction({
@@ -3318,7 +3353,7 @@ class KoniExtension {
3318
3353
  recipient
3319
3354
  } = inputData;
3320
3355
  if (!quote || !address || !process) {
3321
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types2.BasicTxErrorType.INTERNAL_ERROR)]);
3356
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INTERNAL_ERROR)]);
3322
3357
  }
3323
3358
  const isLastStep = inputData.currentStep + 1 === process.steps.length;
3324
3359
  const swapValidations = await this.#koniState.swapService.validateSwapProcess({
@@ -13,6 +13,6 @@ const packageInfo = {
13
13
  name: '@subwallet/extension-base',
14
14
  path: typeof __dirname === 'string' ? __dirname : 'auto',
15
15
  type: 'cjs',
16
- version: '1.3.1'
16
+ version: '1.3.3-0'
17
17
  };
18
18
  exports.packageInfo = packageInfo;