@subwallet/extension-base 1.2.8-0 → 1.2.9-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 (130) hide show
  1. package/background/KoniTypes.d.ts +7 -3
  2. package/background/KoniTypes.js +1 -1
  3. package/cjs/background/KoniTypes.js +1 -1
  4. package/cjs/core/logic-validation/transfer.js +22 -2
  5. package/cjs/core/substrate/foreign-asset-pallet.js +16 -0
  6. package/cjs/core/substrate/xcm-parser.js +26 -4
  7. package/cjs/koni/api/contract-handler/evm/web3.js +58 -0
  8. package/cjs/{services/chain-service/helper → koni/api/contract-handler/utils}/index.js +19 -2
  9. package/cjs/koni/api/contract-handler/wasm/index.js +49 -0
  10. package/cjs/koni/api/nft/evm_nft/index.js +6 -6
  11. package/cjs/koni/api/nft/wasm_nft/index.js +16 -16
  12. package/cjs/koni/api/yield/helper/utils.js +1 -22
  13. package/cjs/koni/background/handlers/Extension.js +128 -64
  14. package/cjs/packageInfo.js +1 -1
  15. package/cjs/services/balance-service/helpers/index.js +11 -0
  16. package/cjs/services/balance-service/helpers/process.js +50 -0
  17. package/cjs/services/balance-service/helpers/subscribe/evm.js +11 -3
  18. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +10 -24
  19. package/cjs/services/balance-service/index.js +20 -0
  20. package/cjs/{koni/api/tokens/evm/transfer.js → services/balance-service/transfer/smart-contract.js} +33 -38
  21. package/cjs/{koni/api/dotsama/transfer.js → services/balance-service/transfer/token.js} +3 -3
  22. package/cjs/{koni/api → services/balance-service/transfer}/xcm/index.js +26 -6
  23. package/cjs/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.js +2 -2
  24. package/cjs/services/balance-service/transfer/xcm/snowBridge.js +60 -0
  25. package/cjs/{koni/api → services/balance-service/transfer}/xcm/xTokens.js +1 -1
  26. package/cjs/{koni/api → services/balance-service/transfer}/xcm/xcmPallet.js +1 -1
  27. package/cjs/services/chain-service/handler/EvmChainHandler.js +3 -3
  28. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +4 -4
  29. package/cjs/services/chain-service/health-check/utils/asset-info.js +18 -18
  30. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +16 -35
  31. package/cjs/services/earning-service/handlers/special.js +1 -1
  32. package/cjs/services/swap-service/handler/base-handler.js +3 -2
  33. package/cjs/services/swap-service/handler/chainflip-handler.js +10 -9
  34. package/cjs/services/swap-service/handler/hydradx-handler.js +12 -11
  35. package/cjs/services/swap-service/index.js +3 -2
  36. package/cjs/services/swap-service/utils.js +1 -13
  37. package/cjs/services/transaction-service/index.js +2 -2
  38. package/cjs/types/service-base.js +30 -1
  39. package/cjs/types/swap/index.js +0 -4
  40. package/cjs/utils/eth/parseTransaction/index.js +10 -10
  41. package/core/logic-validation/transfer.d.ts +1 -1
  42. package/core/logic-validation/transfer.js +22 -3
  43. package/core/substrate/foreign-asset-pallet.d.ts +8 -0
  44. package/core/substrate/foreign-asset-pallet.js +9 -0
  45. package/core/substrate/xcm-parser.d.ts +3 -1
  46. package/core/substrate/xcm-parser.js +25 -5
  47. package/koni/api/contract-handler/evm/web3.d.ts +8 -0
  48. package/koni/api/contract-handler/evm/web3.js +45 -0
  49. package/{services/chain-service/helper → koni/api/contract-handler/utils}/index.d.ts +4 -0
  50. package/{services/chain-service/helper → koni/api/contract-handler/utils}/index.js +15 -1
  51. package/koni/api/contract-handler/utils/snowbridge_gateway_abi.json +1122 -0
  52. package/koni/api/{tokens → contract-handler}/wasm/index.d.ts +0 -2
  53. package/koni/api/{tokens → contract-handler}/wasm/index.js +1 -25
  54. package/koni/api/nft/evm_nft/index.js +1 -1
  55. package/koni/api/nft/wasm_nft/index.js +2 -2
  56. package/koni/api/yield/helper/utils.d.ts +1 -5
  57. package/koni/api/yield/helper/utils.js +0 -16
  58. package/koni/background/handlers/Extension.d.ts +2 -0
  59. package/koni/background/handlers/Extension.js +82 -18
  60. package/package.json +85 -79
  61. package/packageInfo.js +1 -1
  62. package/services/balance-service/helpers/index.d.ts +1 -0
  63. package/services/balance-service/helpers/index.js +2 -1
  64. package/services/balance-service/helpers/process.d.ts +13 -0
  65. package/services/balance-service/helpers/process.js +43 -0
  66. package/services/balance-service/helpers/subscribe/evm.js +11 -3
  67. package/services/balance-service/helpers/subscribe/substrate/index.js +11 -25
  68. package/services/balance-service/index.d.ts +3 -0
  69. package/services/balance-service/index.js +21 -1
  70. package/services/balance-service/transfer/smart-contract.d.ts +7 -0
  71. package/{koni/api/tokens/evm/transfer.js → services/balance-service/transfer/smart-contract.js} +28 -31
  72. package/{koni/api/dotsama/transfer.js → services/balance-service/transfer/token.js} +4 -4
  73. package/{koni/api → services/balance-service/transfer}/xcm/index.d.ts +9 -3
  74. package/{koni/api → services/balance-service/transfer}/xcm/index.js +21 -3
  75. package/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.js +3 -3
  76. package/services/balance-service/transfer/xcm/snowBridge.d.ts +4 -0
  77. package/services/balance-service/transfer/xcm/snowBridge.js +54 -0
  78. package/{koni/api → services/balance-service/transfer}/xcm/xTokens.js +1 -1
  79. package/{koni/api → services/balance-service/transfer}/xcm/xcmPallet.js +1 -1
  80. package/services/chain-service/handler/EvmChainHandler.js +1 -1
  81. package/services/chain-service/handler/SubstrateChainHandler.js +2 -2
  82. package/services/chain-service/health-check/utils/asset-info.js +3 -3
  83. package/services/earning-service/handlers/liquid-staking/stella-swap.js +16 -35
  84. package/services/earning-service/handlers/special.js +1 -1
  85. package/services/swap-service/handler/base-handler.d.ts +5 -5
  86. package/services/swap-service/handler/base-handler.js +4 -3
  87. package/services/swap-service/handler/chainflip-handler.d.ts +4 -4
  88. package/services/swap-service/handler/chainflip-handler.js +7 -6
  89. package/services/swap-service/handler/hydradx-handler.d.ts +6 -6
  90. package/services/swap-service/handler/hydradx-handler.js +12 -11
  91. package/services/swap-service/index.d.ts +3 -2
  92. package/services/swap-service/index.js +4 -3
  93. package/services/swap-service/utils.d.ts +1 -3
  94. package/services/swap-service/utils.js +1 -11
  95. package/services/transaction-service/index.js +2 -2
  96. package/types/service-base.d.ts +31 -3
  97. package/types/service-base.js +23 -1
  98. package/types/swap/index.d.ts +8 -30
  99. package/types/swap/index.js +0 -4
  100. package/types/yield/actions/join/submit.d.ts +7 -4
  101. package/utils/eth/parseTransaction/index.js +1 -1
  102. package/cjs/koni/api/tokens/evm/balance.js +0 -18
  103. package/cjs/koni/api/tokens/evm/web3.js +0 -17
  104. package/cjs/koni/api/tokens/index.js +0 -17
  105. package/cjs/koni/api/tokens/wasm/index.js +0 -74
  106. package/koni/api/tokens/evm/balance.d.ts +0 -2
  107. package/koni/api/tokens/evm/balance.js +0 -12
  108. package/koni/api/tokens/evm/transfer.d.ts +0 -17
  109. package/koni/api/tokens/evm/web3.d.ts +0 -3
  110. package/koni/api/tokens/evm/web3.js +0 -9
  111. package/koni/api/tokens/index.d.ts +0 -1
  112. package/koni/api/tokens/index.js +0 -11
  113. /package/cjs/koni/api/{tokens → contract-handler}/wasm/utils.js +0 -0
  114. /package/cjs/{koni/api → services/balance-service/transfer}/xcm/utils.js +0 -0
  115. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/azero_domain_registry_abi.json +0 -0
  116. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/erc20_abi.json +0 -0
  117. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/erc721_abi.json +0 -0
  118. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/neuroguns_psp34_abi.json +0 -0
  119. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/pink_psp34_abi.json +0 -0
  120. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/psp22_abi.json +0 -0
  121. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/psp34_abi.json +0 -0
  122. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/test_erc721_abi.json +0 -0
  123. /package/koni/api/{tokens → contract-handler}/wasm/utils.d.ts +0 -0
  124. /package/koni/api/{tokens → contract-handler}/wasm/utils.js +0 -0
  125. /package/{koni/api/dotsama/transfer.d.ts → services/balance-service/transfer/token.d.ts} +0 -0
  126. /package/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.d.ts +0 -0
  127. /package/{koni/api → services/balance-service/transfer}/xcm/utils.d.ts +0 -0
  128. /package/{koni/api → services/balance-service/transfer}/xcm/utils.js +0 -0
  129. /package/{koni/api → services/balance-service/transfer}/xcm/xTokens.d.ts +0 -0
  130. /package/{koni/api → services/balance-service/transfer}/xcm/xcmPallet.d.ts +0 -0
@@ -2,12 +2,14 @@ import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo, _FundStatus, _MultiChai
2
2
  import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
3
3
  import { AuthUrls, Resolver } from '@subwallet/extension-base/background/handlers/State';
4
4
  import { AccountAuthType, AccountJson, AddressJson, AuthorizeRequest, ConfirmationRequestBase, RequestAccountList, RequestAccountSubscribe, RequestAccountUnsubscribe, RequestAuthorizeCancel, RequestAuthorizeReject, RequestAuthorizeSubscribe, RequestAuthorizeTab, RequestCurrentAccountAddress, ResponseAuthorizeList, ResponseJsonGetAccountInfo, SeedLengths } from '@subwallet/extension-base/background/types';
5
+ import { RequestOptimalTransferProcess } from '@subwallet/extension-base/services/balance-service/helpers';
5
6
  import { _CHAIN_VALIDATION_ERROR } from '@subwallet/extension-base/services/chain-service/handler/types';
6
7
  import { _ChainState, _EvmApi, _NetworkUpsertParams, _SubstrateApi, _ValidateCustomAssetRequest, _ValidateCustomAssetResponse, EnableChainParams, EnableMultiChainParams } from '@subwallet/extension-base/services/chain-service/types';
7
8
  import { CrowdloanContributionsResponse } from '@subwallet/extension-base/services/subscan-service/types';
8
9
  import { SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
9
10
  import { WalletConnectNotSupportRequest, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
10
- import { BalanceJson, BuyServiceInfo, BuyTokenInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestEarlyValidateYield, RequestGetYieldPoolTargets, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseEarlyValidateYield, ResponseGetYieldPoolTargets, StorageDataInterface, SubmitYieldStepData, TokenApproveData, UnlockDotTransactionNft, UnstakingStatus, ValidateYieldProcessParams, YieldPoolInfo, YieldPositionInfo, YieldValidationStatus } from '@subwallet/extension-base/types';
11
+ import { BalanceJson, BuyServiceInfo, BuyTokenInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestEarlyValidateYield, RequestGetYieldPoolTargets, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseEarlyValidateYield, ResponseGetYieldPoolTargets, StorageDataInterface, SubmitYieldStepData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateYieldProcessParams, YieldPoolInfo, YieldPositionInfo, YieldValidationStatus } from '@subwallet/extension-base/types';
12
+ import { CommonOptimalPath } from '@subwallet/extension-base/types/service-base';
11
13
  import { SwapErrorType, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapSubmitParams, SwapTxData, ValidateSwapProcessParams } from '@subwallet/extension-base/types/swap';
12
14
  import { InjectedAccount, InjectedAccountWithMeta, MetadataDefBase } from '@subwallet/extension-inject/types';
13
15
  import { KeyringPair$Json, KeyringPair$Meta } from '@subwallet/keyring/types';
@@ -391,7 +393,7 @@ export declare enum ExtrinsicType {
391
393
  UNSTAKE_SDOT = "earn.unstake_sdot",
392
394
  UNSTAKE_STDOT = "earn.unstake_stdot",
393
395
  UNSTAKE_VMANTA = "earn.unstake_vmanta",
394
- TOKEN_APPROVE = "evm.token_approve",
396
+ TOKEN_SPENDING_APPROVAL = "token.spending_approval",
395
397
  SWAP = "swap",
396
398
  EVM_EXECUTE = "evm.execute",
397
399
  UNKNOWN = "unknown"
@@ -431,7 +433,7 @@ export interface ExtrinsicDataTypeMap {
431
433
  [ExtrinsicType.REDEEM_SDOT]: RequestYieldLeave;
432
434
  [ExtrinsicType.REDEEM_STDOT]: RequestYieldLeave;
433
435
  [ExtrinsicType.REDEEM_VMANTA]: RequestYieldLeave;
434
- [ExtrinsicType.TOKEN_APPROVE]: TokenApproveData;
436
+ [ExtrinsicType.TOKEN_SPENDING_APPROVAL]: TokenSpendingApprovalParams;
435
437
  [ExtrinsicType.EVM_EXECUTE]: TransactionConfig;
436
438
  [ExtrinsicType.CROWDLOAN]: any;
437
439
  [ExtrinsicType.SWAP]: SwapTxData;
@@ -1670,6 +1672,8 @@ export interface KoniRequestSignatures {
1670
1672
  'pri(freeBalance.subscribe)': [RequestFreeBalance, AmountDataWithId, AmountDataWithId];
1671
1673
  'pri(accounts.checkTransfer)': [RequestCheckTransfer, ValidateTransactionResponse];
1672
1674
  'pri(accounts.transfer)': [RequestTransfer, SWTransactionResponse];
1675
+ 'pri(accounts.getOptimalTransferProcess)': [RequestOptimalTransferProcess, CommonOptimalPath];
1676
+ 'pri(accounts.approveSpending)': [TokenSpendingApprovalParams, SWTransactionResponse];
1673
1677
  'pri(accounts.checkCrossChainTransfer)': [RequestCheckCrossChainTransfer, ValidateTransactionResponse];
1674
1678
  'pri(accounts.crossChainTransfer)': [RequestCrossChainTransfer, SWTransactionResponse];
1675
1679
  'pri(confirmations.subscribe)': [RequestConfirmationsSubscribe, ConfirmationsQueue, ConfirmationsQueue];
@@ -99,7 +99,7 @@ export let ExtrinsicType;
99
99
  ExtrinsicType["UNSTAKE_SDOT"] = "earn.unstake_sdot";
100
100
  ExtrinsicType["UNSTAKE_STDOT"] = "earn.unstake_stdot";
101
101
  ExtrinsicType["UNSTAKE_VMANTA"] = "earn.unstake_vmanta";
102
- ExtrinsicType["TOKEN_APPROVE"] = "evm.token_approve";
102
+ ExtrinsicType["TOKEN_SPENDING_APPROVAL"] = "token.spending_approval";
103
103
  ExtrinsicType["SWAP"] = "swap";
104
104
  ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
105
105
  ExtrinsicType["UNKNOWN"] = "unknown";
@@ -114,7 +114,7 @@ exports.ExtrinsicType = ExtrinsicType;
114
114
  ExtrinsicType["UNSTAKE_SDOT"] = "earn.unstake_sdot";
115
115
  ExtrinsicType["UNSTAKE_STDOT"] = "earn.unstake_stdot";
116
116
  ExtrinsicType["UNSTAKE_VMANTA"] = "earn.unstake_vmanta";
117
- ExtrinsicType["TOKEN_APPROVE"] = "evm.token_approve";
117
+ ExtrinsicType["TOKEN_SPENDING_APPROVAL"] = "token.spending_approval";
118
118
  ExtrinsicType["SWAP"] = "swap";
119
119
  ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
120
120
  ExtrinsicType["UNKNOWN"] = "unknown";
@@ -88,13 +88,14 @@ function validateXcmTransferRequest(destTokenInfo, sender, sendingValue) {
88
88
  }
89
89
  return [errors, keypair, transferValue];
90
90
  }
91
- function additionalValidateXcmTransfer(originTokenInfo, destinationTokenInfo, sendingAmount, senderTransferable) {
91
+ function additionalValidateXcmTransfer(originTokenInfo, destinationTokenInfo, sendingAmount, senderTransferable, receiverNativeBalance, destChainInfo) {
92
+ let isSnowBridge = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
92
93
  const destMinAmount = (0, _utils._getTokenMinAmount)(destinationTokenInfo);
93
94
  const minSendingRequired = new _bignumber.default(destMinAmount).multipliedBy(_constants.XCM_MIN_AMOUNT_RATIO);
94
95
  let error;
95
96
  let warning;
96
97
 
97
- // Check ed for receiver
98
+ // Check sending token ED for receiver
98
99
  if (new _bignumber.default(sendingAmount).lt(minSendingRequired)) {
99
100
  const atLeastStr = (0, _utils3.formatNumber)(minSendingRequired, destinationTokenInfo.decimals || 0, _utils3.balanceFormatter, {
100
101
  maxNumberFormat: destinationTokenInfo.decimals || 6
@@ -107,6 +108,25 @@ function additionalValidateXcmTransfer(originTokenInfo, destinationTokenInfo, se
107
108
  }));
108
109
  }
109
110
 
111
+ // check native token ED on dest chain for receiver
112
+ const bnKeepAliveBalance = (0, _utils._isNativeToken)(destinationTokenInfo) ? new _bignumber.default(receiverNativeBalance).plus(sendingAmount) : new _bignumber.default(receiverNativeBalance);
113
+ if (isSnowBridge && bnKeepAliveBalance.lt((0, _utils._getChainExistentialDeposit)(destChainInfo))) {
114
+ const {
115
+ decimals,
116
+ symbol
117
+ } = (0, _utils._getChainNativeTokenBasicInfo)(destChainInfo);
118
+ const atLeastStr = (0, _utils3.formatNumber)((0, _utils._getChainExistentialDeposit)(destChainInfo), decimals || 0, _utils3.balanceFormatter, {
119
+ maxNumberFormat: 6
120
+ });
121
+ error = new _TransactionError.TransactionError(_KoniTypes.TransferTxErrorType.RECEIVER_NOT_ENOUGH_EXISTENTIAL_DEPOSIT, (0, _i18next.t)(' Insufficient {{symbol}} on {{chain}} to cover min balance ({{amount}} {{symbol}})', {
122
+ replace: {
123
+ amount: atLeastStr,
124
+ symbol,
125
+ chain: destChainInfo.name
126
+ }
127
+ }));
128
+ }
129
+
110
130
  // Check ed for sender
111
131
  if (!(0, _utils._isNativeToken)(originTokenInfo)) {
112
132
  if (new _bignumber.default(senderTransferable).minus(sendingAmount).lt((0, _utils._getTokenMinAmount)(originTokenInfo))) {
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports._getForeignAssetPalletLockedBalance = _getForeignAssetPalletLockedBalance;
7
+ exports._getForeignAssetPalletTransferable = _getForeignAssetPalletTransferable;
8
+ // Copyright 2019-2022 @subwallet/extension-base
9
+ // SPDX-License-Identifier: Apache-2.0
10
+
11
+ function _getForeignAssetPalletTransferable(accountInfo) {
12
+ return accountInfo.status !== 'Liquid' ? BigInt(0) : BigInt(accountInfo.balance);
13
+ }
14
+ function _getForeignAssetPalletLockedBalance(accountInfo) {
15
+ return accountInfo.status === 'Liquid' ? BigInt(0) : BigInt(accountInfo.balance);
16
+ }
@@ -8,7 +8,9 @@ exports._getXcmDestWeight = _getXcmDestWeight;
8
8
  exports._getXcmMultiAssets = _getXcmMultiAssets;
9
9
  exports._getXcmMultiLocation = _getXcmMultiLocation;
10
10
  exports._getXcmUnstableWarning = _getXcmUnstableWarning;
11
+ exports._isSnowBridgeXcm = _isSnowBridgeXcm;
11
12
  exports._isXcmTransferUnstable = _isXcmTransferUnstable;
13
+ exports._isXcmWithinSameConsensus = _isXcmWithinSameConsensus;
12
14
  var _chainList = require("@subwallet/chain-list");
13
15
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
14
16
  var _utilCrypto = require("@polkadot/util-crypto");
@@ -60,7 +62,7 @@ function _getXcmMultiLocation(originChainInfo, destChainInfo, version, recipient
60
62
  function _isXcmTransferUnstable(originChainInfo, destChainInfo) {
61
63
  return !_isXcmWithinSameConsensus(originChainInfo, destChainInfo);
62
64
  }
63
- function _getXcmUnstableWarning(originChainInfo) {
65
+ function getAssetHubBridgeUnstableWarning(originChainInfo) {
64
66
  switch (originChainInfo.slug) {
65
67
  case _chainList.COMMON_CHAIN_SLUGS.POLKADOT_ASSET_HUB:
66
68
  return 'Cross-chain transfer of this token is not recommended as it is in beta and incurs a transaction fee of 2 DOT. Continue at your own risk';
@@ -70,12 +72,32 @@ function _getXcmUnstableWarning(originChainInfo) {
70
72
  return 'Cross-chain transfer of this token is not recommended as it is in beta and incurs a large transaction fee. Continue at your own risk';
71
73
  }
72
74
  }
73
-
74
- // ---------------------------------------------------------------------------------------------------------------------
75
-
75
+ function getSnowBridgeUnstableWarning(originChainInfo) {
76
+ switch (originChainInfo.slug) {
77
+ case _chainList.COMMON_CHAIN_SLUGS.POLKADOT_ASSET_HUB:
78
+ return 'Cross-chain transfer of this token is not recommended as it is in beta, incurs a fee of 70$ and takes up to 1 hour to complete. Continue at your own risk';
79
+ case _chainList.COMMON_CHAIN_SLUGS.ETHEREUM:
80
+ return 'Cross-chain transfer of this token is not recommended as it is in beta, incurs a fee of 5$ and takes up to 1 hour to complete. Continue at your own risk';
81
+ default:
82
+ return 'Cross-chain transfer of this token is not recommended as it is in beta, incurs a high fee and takes up to 1 hour to complete. Continue at your own risk';
83
+ }
84
+ }
85
+ function _getXcmUnstableWarning(originChainInfo, destChainInfo) {
86
+ if (_isSnowBridgeXcm(originChainInfo, destChainInfo)) {
87
+ return getSnowBridgeUnstableWarning(originChainInfo);
88
+ } else {
89
+ return getAssetHubBridgeUnstableWarning(originChainInfo);
90
+ }
91
+ }
76
92
  function _isXcmWithinSameConsensus(originChainInfo, destChainInfo) {
77
93
  return (0, _utils._getSubstrateRelayParent)(originChainInfo) === destChainInfo.slug || (0, _utils._getSubstrateRelayParent)(destChainInfo) === originChainInfo.slug || (0, _utils._getSubstrateRelayParent)(originChainInfo) === (0, _utils._getSubstrateRelayParent)(destChainInfo);
78
94
  }
95
+ function _isSnowBridgeXcm(originChainInfo, destChainInfo) {
96
+ return !_isXcmWithinSameConsensus(originChainInfo, destChainInfo) && ((0, _utils._isPureEvmChain)(originChainInfo) || (0, _utils._isPureEvmChain)(destChainInfo));
97
+ }
98
+
99
+ // ---------------------------------------------------------------------------------------------------------------------
100
+
79
101
  function _getMultiLocationParent(originChainInfo, isWithinSameConsensus) {
80
102
  let parent = 0; // how many hops up the hierarchy
81
103
 
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getERC20Allowance = getERC20Allowance;
7
+ exports.getERC20Contract = void 0;
8
+ exports.getERC20SpendingApprovalTx = getERC20SpendingApprovalTx;
9
+ exports.getWeb3Contract = getWeb3Contract;
10
+ var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
11
+ var _utils2 = require("@subwallet/extension-base/services/fee-service/utils");
12
+ // Copyright 2019-2022 @subwallet/extension-base
13
+ // SPDX-License-Identifier: Apache-2.0
14
+
15
+ const getERC20Contract = function (assetAddress, evmApi) {
16
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
17
+ // @ts-ignore
18
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access
19
+ return new evmApi.api.eth.Contract(_utils._ERC20_ABI, assetAddress, options);
20
+ };
21
+ exports.getERC20Contract = getERC20Contract;
22
+ function getWeb3Contract(contractAddress, evmApi, contractAbi) {
23
+ let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
24
+ // @ts-ignore
25
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access
26
+ return new evmApi.api.eth.Contract(contractAbi, contractAddress, options);
27
+ }
28
+ async function getERC20Allowance(spender, owner, contractAddress, evmApi) {
29
+ const tokenContract = getERC20Contract(contractAddress, evmApi);
30
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
31
+ const allowanceCall = tokenContract.methods.allowance(owner, spender);
32
+
33
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
34
+ return await allowanceCall.call();
35
+ }
36
+ async function getERC20SpendingApprovalTx(spender, owner, contractAddress, evmApi) {
37
+ var _priority$maxFeePerGa, _priority$maxPriority;
38
+ let amount = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '115792089237316195423570985008687907853269984665640564039457584007913129639935';
39
+ const tokenContract = getERC20Contract(contractAddress, evmApi);
40
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
41
+ const approveCall = tokenContract.methods.approve(spender, amount); // TODO: need test
42
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
43
+ const approveEncodedCall = approveCall.encodeABI();
44
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
45
+ const gasLimit = await approveCall.estimateGas({
46
+ from: owner
47
+ });
48
+ const priority = await (0, _utils2.calculateGasFeeParams)(evmApi, evmApi.chainSlug);
49
+ return {
50
+ from: owner,
51
+ to: contractAddress,
52
+ data: approveEncodedCall,
53
+ gas: gasLimit,
54
+ gasPrice: priority.gasPrice,
55
+ maxFeePerGas: (_priority$maxFeePerGa = priority.maxFeePerGas) === null || _priority$maxFeePerGa === void 0 ? void 0 : _priority$maxFeePerGa.toString(),
56
+ maxPriorityFeePerGas: (_priority$maxPriority = priority.maxPriorityFeePerGas) === null || _priority$maxPriority === void 0 ? void 0 : _priority$maxPriority.toString()
57
+ };
58
+ }
@@ -3,7 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports._TEST_ERC721_ABI = exports._PSP34_ABI = exports._PSP22_ABI = exports._PINK_PSP34_ABI = exports._NEUROGUNS_PSP34_ABI = exports._ERC721_ABI = exports._ERC20_ABI = exports._AZERO_DOMAIN_REGISTRY_ABI = void 0;
6
+ exports._TEST_ERC721_ABI = exports._SNOWBRIDGE_GATEWAY_ABI = exports._PSP34_ABI = exports._PSP22_ABI = exports._PINK_PSP34_ABI = exports._NEUROGUNS_PSP34_ABI = exports._ERC721_ABI = exports._ERC20_ABI = exports._AZERO_DOMAIN_REGISTRY_ABI = void 0;
7
+ exports.getSnowBridgeGatewayContract = getSnowBridgeGatewayContract;
8
+ exports.isSnowBridgeGatewayContract = isSnowBridgeGatewayContract;
9
+ var _chainList = require("@subwallet/chain-list");
7
10
  // Copyright 2019-2022 @subwallet/extension-base
8
11
  // SPDX-License-Identifier: Apache-2.0
9
12
 
@@ -30,4 +33,18 @@ const _NEUROGUNS_PSP34_ABI = require('./neuroguns_psp34_abi.json');
30
33
  // eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-assignment
31
34
  exports._NEUROGUNS_PSP34_ABI = _NEUROGUNS_PSP34_ABI;
32
35
  const _AZERO_DOMAIN_REGISTRY_ABI = require('./azero_domain_registry_abi.json');
33
- exports._AZERO_DOMAIN_REGISTRY_ABI = _AZERO_DOMAIN_REGISTRY_ABI;
36
+ // eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-assignment
37
+ exports._AZERO_DOMAIN_REGISTRY_ABI = _AZERO_DOMAIN_REGISTRY_ABI;
38
+ const _SNOWBRIDGE_GATEWAY_ABI = require('./snowbridge_gateway_abi.json');
39
+ exports._SNOWBRIDGE_GATEWAY_ABI = _SNOWBRIDGE_GATEWAY_ABI;
40
+ const SNOWBRIDGE_GATEWAY_ETHEREUM_CONTRACT_ADDRESS = '0x27ca963C279c93801941e1eB8799c23f407d68e7';
41
+ const SNOWBRIDGE_GATEWAY_SEPOLIA_CONTRACT_ADDRESS = '0x5B4909cE6Ca82d2CE23BD46738953c7959E710Cd';
42
+ function getSnowBridgeGatewayContract(chain) {
43
+ if (chain === _chainList.COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA) {
44
+ return SNOWBRIDGE_GATEWAY_SEPOLIA_CONTRACT_ADDRESS;
45
+ }
46
+ return SNOWBRIDGE_GATEWAY_ETHEREUM_CONTRACT_ADDRESS;
47
+ }
48
+ function isSnowBridgeGatewayContract(contractAddress) {
49
+ return [SNOWBRIDGE_GATEWAY_ETHEREUM_CONTRACT_ADDRESS, SNOWBRIDGE_GATEWAY_SEPOLIA_CONTRACT_ADDRESS].includes(contractAddress);
50
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getPSP22ContractPromise = getPSP22ContractPromise;
7
+ exports.getPSP34ContractPromise = getPSP34ContractPromise;
8
+ exports.getTokenUriMethod = getTokenUriMethod;
9
+ exports.isAzeroDomainNft = isAzeroDomainNft;
10
+ exports.isNeurogunNft = isNeurogunNft;
11
+ exports.isPinkRoboNft = isPinkRoboNft;
12
+ var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
13
+ var _apiContract = require("@polkadot/api-contract");
14
+ // Copyright 2019-2022 @subwallet/extension-base
15
+ // SPDX-License-Identifier: Apache-2.0
16
+
17
+ function getPSP22ContractPromise(apiPromise, contractAddress) {
18
+ return new _apiContract.ContractPromise(apiPromise, _utils._PSP22_ABI, contractAddress);
19
+ }
20
+ function isPinkRoboNft(contractAddress) {
21
+ return ['XoywUxTTtNKPRrRN7V5KXCqz2QLMFeK7DxhpSniqZHps5Xq'].includes(contractAddress);
22
+ }
23
+ function isNeurogunNft(contractAddress) {
24
+ return ['aZ9bd2tHeGKrs3FnJv5oe7kgVrP5GQvdJMhC2GxjXA2Yqbd'].includes(contractAddress);
25
+ }
26
+ function isAzeroDomainNft(contractAddress) {
27
+ return ['5FsB91tXSEuMj6akzdPczAtmBaVKToqHmtAwSUzXh49AYzaD', '5CTQBfBC9SfdrCDBJdfLiyW2pg9z5W6C6Es8sK313BLnFgDf'].includes(contractAddress);
28
+ }
29
+ function getPSP34ContractPromise(apiPromise, contractAddress) {
30
+ if (isPinkRoboNft(contractAddress)) {
31
+ return new _apiContract.ContractPromise(apiPromise, _utils._PINK_PSP34_ABI, contractAddress);
32
+ }
33
+ if (isNeurogunNft(contractAddress)) {
34
+ return new _apiContract.ContractPromise(apiPromise, _utils._NEUROGUNS_PSP34_ABI, contractAddress);
35
+ }
36
+ if (isAzeroDomainNft(contractAddress)) {
37
+ return new _apiContract.ContractPromise(apiPromise, _utils._AZERO_DOMAIN_REGISTRY_ABI, contractAddress);
38
+ }
39
+ return new _apiContract.ContractPromise(apiPromise, _utils._PSP34_ABI, contractAddress);
40
+ }
41
+ function getTokenUriMethod(contractAddress) {
42
+ if (isPinkRoboNft(contractAddress)) {
43
+ return 'pinkMint::tokenUri';
44
+ }
45
+ if (isNeurogunNft(contractAddress)) {
46
+ return 'tokenUri';
47
+ }
48
+ return 'psp34Traits::tokenUri';
49
+ }
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.EvmNftApi = void 0;
7
7
  var _types = require("@subwallet/chain-list/types");
8
+ var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
8
9
  var _config = require("@subwallet/extension-base/koni/api/nft/config");
9
10
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
- var _helper = require("@subwallet/extension-base/services/chain-service/helper");
11
- var _utils = require("@subwallet/extension-base/services/chain-service/utils");
12
- var _utils2 = require("@subwallet/extension-base/utils");
11
+ var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
12
+ var _utils3 = require("@subwallet/extension-base/utils");
13
13
  var _utilCrypto = require("@polkadot/util-crypto");
14
14
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
15
15
  // SPDX-License-Identifier: Apache-2.0
@@ -28,7 +28,7 @@ class EvmNftApi extends _nft.BaseNftApi {
28
28
  if (!input) {
29
29
  return undefined;
30
30
  }
31
- if ((0, _utils2.isUrl)(input)) {
31
+ if ((0, _utils3.isUrl)(input)) {
32
32
  return input;
33
33
  }
34
34
  if (input.includes('ipfs://')) {
@@ -74,10 +74,10 @@ class EvmNftApi extends _nft.BaseNftApi {
74
74
  if (!this.evmApi) {
75
75
  return;
76
76
  }
77
- const smartContract = (0, _utils._getContractAddressOfToken)(tokenInfo);
77
+ const smartContract = (0, _utils2._getContractAddressOfToken)(tokenInfo);
78
78
 
79
79
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-assignment
80
- const contract = new this.evmApi.api.eth.Contract(_helper._ERC721_ABI, smartContract);
80
+ const contract = new this.evmApi.api.eth.Contract(_utils._ERC721_ABI, smartContract);
81
81
  let ownItem = false;
82
82
  let collectionImage;
83
83
  const nftOwnerMap = {};
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.WasmNftApi = void 0;
7
7
  var _types = require("@subwallet/chain-list/types");
8
+ var _wasm = require("@subwallet/extension-base/koni/api/contract-handler/wasm");
9
+ var _utils = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
8
10
  var _domain = require("@subwallet/extension-base/koni/api/dotsama/domain");
9
11
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
- var _utils = require("@subwallet/extension-base/koni/api/nft/wasm_nft/utils");
11
- var _wasm = require("@subwallet/extension-base/koni/api/tokens/wasm");
12
- var _utils2 = require("@subwallet/extension-base/koni/api/tokens/wasm/utils");
12
+ var _utils2 = require("@subwallet/extension-base/koni/api/nft/wasm_nft/utils");
13
13
  var _utils3 = require("@subwallet/extension-base/services/chain-service/utils");
14
14
  var _utils4 = require("@subwallet/extension-base/utils");
15
15
  var _utilCrypto = require("@polkadot/util-crypto");
@@ -31,7 +31,7 @@ async function isArtZeroFeaturedCollection(networkKey, contractAddress) {
31
31
  const urlencoded = new URLSearchParams();
32
32
  urlencoded.append('collection_address', contractAddress);
33
33
  const collectionInfoPromise = new Promise(function (resolve) {
34
- fetch((0, _utils.collectionApiFromArtZero)(networkKey), {
34
+ fetch((0, _utils2.collectionApiFromArtZero)(networkKey), {
35
35
  method: 'POST',
36
36
  headers: {
37
37
  'Content-Type': 'application/x-www-form-urlencoded'
@@ -62,7 +62,7 @@ class WasmNftApi extends _nft.BaseNftApi {
62
62
 
63
63
  // @ts-ignore
64
64
  const _onChainAttributeCount = await contractPromise.query['psp34Traits::getAttributeCount'](this.addresses[0], {
65
- gasLimit: (0, _utils2.getDefaultWeightV2)((_this$substrateApi = this.substrateApi) === null || _this$substrateApi === void 0 ? void 0 : _this$substrateApi.api)
65
+ gasLimit: (0, _utils.getDefaultWeightV2)((_this$substrateApi = this.substrateApi) === null || _this$substrateApi === void 0 ? void 0 : _this$substrateApi.api)
66
66
  });
67
67
  const _attributeCount = _onChainAttributeCount === null || _onChainAttributeCount === void 0 ? void 0 : (_onChainAttributeCoun = _onChainAttributeCount.output) === null || _onChainAttributeCoun === void 0 ? void 0 : _onChainAttributeCoun.toJSON();
68
68
  const onChainAttributeCount = _onChainAttributeCount.output ? (_attributeCount === null || _attributeCount === void 0 ? void 0 : _attributeCount.ok) || (_attributeCount === null || _attributeCount === void 0 ? void 0 : _attributeCount.Ok) : '0';
@@ -97,14 +97,14 @@ class WasmNftApi extends _nft.BaseNftApi {
97
97
  if (!parsedTokenUri) {
98
98
  return undefined;
99
99
  }
100
- const nftItemImageSrc = `${(0, _utils.itemImageApiFromArtZero)(this.chain)}?input=${parsedTokenUri}&size=500`;
100
+ const nftItemImageSrc = `${(0, _utils2.itemImageApiFromArtZero)(this.chain)}?input=${parsedTokenUri}&size=500`;
101
101
  const collectionImageUrl = await fetch(nftItemImageSrc);
102
102
  return await collectionImageUrl.text();
103
103
  }
104
104
  async parseFeaturedCollectionImage(smartContract) {
105
105
  const urlencoded = new URLSearchParams();
106
106
  urlencoded.append('collection_address', smartContract);
107
- const resp = await fetch((0, _utils.collectionDetailApiFromArtZero)(this.chain), {
107
+ const resp = await fetch((0, _utils2.collectionDetailApiFromArtZero)(this.chain), {
108
108
  method: 'POST',
109
109
  headers: {
110
110
  'Content-Type': 'application/x-www-form-urlencoded'
@@ -123,7 +123,7 @@ class WasmNftApi extends _nft.BaseNftApi {
123
123
  if (!parsedCollectionImage) {
124
124
  return;
125
125
  }
126
- const collectionImageSrc = `${(0, _utils.itemImageApiFromArtZero)(this.chain)}?input=${parsedCollectionImage}&size=500`;
126
+ const collectionImageSrc = `${(0, _utils2.itemImageApiFromArtZero)(this.chain)}?input=${parsedCollectionImage}&size=500`;
127
127
  const collectionImageUrl = await fetch(collectionImageSrc);
128
128
  return await collectionImageUrl.text();
129
129
  }
@@ -216,7 +216,7 @@ class WasmNftApi extends _nft.BaseNftApi {
216
216
  if (isFeatured) {
217
217
  const parsedTokenUri = this.parseFeaturedTokenUri(tokenUri);
218
218
  if (parsedTokenUri) {
219
- const resp = await fetch(`${(0, _utils.ipfsApiFromArtZero)(this.chain)}?input=${parsedTokenUri}`);
219
+ const resp = await fetch(`${(0, _utils2.ipfsApiFromArtZero)(this.chain)}?input=${parsedTokenUri}`);
220
220
  itemDetail = resp && resp.ok && (await resp.json());
221
221
  }
222
222
  } else {
@@ -235,7 +235,7 @@ class WasmNftApi extends _nft.BaseNftApi {
235
235
  const rawImageSrc = itemDetail.image ? itemDetail.image : itemDetail.image_url;
236
236
  if (isFeatured) {
237
237
  nftItem.image = await this.parseFeaturedNftImage(rawImageSrc);
238
- nftItem.externalUrl = (0, _utils.externalUrlOnArtZero)(this.chain);
238
+ nftItem.externalUrl = (0, _utils2.externalUrlOnArtZero)(this.chain);
239
239
  } else {
240
240
  nftItem.image = this.parseUrl(rawImageSrc);
241
241
  }
@@ -262,7 +262,7 @@ class WasmNftApi extends _nft.BaseNftApi {
262
262
  };
263
263
  const _isFeatured = isFeatured && !_domain.AZERO_DOMAIN_CONTRACTS.includes(contractPromise.address.toString());
264
264
  const _tokenUri = await contractPromise.query[(0, _wasm.getTokenUriMethod)(contractPromise.address.toString())](address, {
265
- gasLimit: (0, _utils2.getDefaultWeightV2)((_this$substrateApi2 = this.substrateApi) === null || _this$substrateApi2 === void 0 ? void 0 : _this$substrateApi2.api)
265
+ gasLimit: (0, _utils.getDefaultWeightV2)((_this$substrateApi2 = this.substrateApi) === null || _this$substrateApi2 === void 0 ? void 0 : _this$substrateApi2.api)
266
266
  }, (0, _wasm.isAzeroDomainNft)(contractPromise.address.toString()) ? {
267
267
  bytes: tokenId
268
268
  } : tokenId);
@@ -275,7 +275,7 @@ class WasmNftApi extends _nft.BaseNftApi {
275
275
  if (_isFeatured) {
276
276
  const parsedTokenUri = this.parseFeaturedTokenUri(tokenUri);
277
277
  if (parsedTokenUri) {
278
- const resp = await fetch(`${(0, _utils.ipfsApiFromArtZero)(this.chain)}?input=${parsedTokenUri}`);
278
+ const resp = await fetch(`${(0, _utils2.ipfsApiFromArtZero)(this.chain)}?input=${parsedTokenUri}`);
279
279
  itemDetail = resp && resp.ok && (await resp.json());
280
280
  }
281
281
  } else {
@@ -300,7 +300,7 @@ class WasmNftApi extends _nft.BaseNftApi {
300
300
  const rawImageSrc = itemDetail.image ? itemDetail.image : itemDetail.image_url;
301
301
  if (_isFeatured) {
302
302
  nftItem.image = await this.parseFeaturedNftImage(rawImageSrc);
303
- nftItem.externalUrl = (0, _utils.externalUrlOnArtZero)(this.chain);
303
+ nftItem.externalUrl = (0, _utils2.externalUrlOnArtZero)(this.chain);
304
304
  } else {
305
305
  nftItem.image = this.parseUrl(rawImageSrc);
306
306
  }
@@ -329,7 +329,7 @@ class WasmNftApi extends _nft.BaseNftApi {
329
329
  }
330
330
  const nftIds = [];
331
331
  const _balance = await contractPromise.query['psp34::balanceOf'](address, {
332
- gasLimit: (0, _utils2.getDefaultWeightV2)((_this$substrateApi3 = this.substrateApi) === null || _this$substrateApi3 === void 0 ? void 0 : _this$substrateApi3.api)
332
+ gasLimit: (0, _utils.getDefaultWeightV2)((_this$substrateApi3 = this.substrateApi) === null || _this$substrateApi3 === void 0 ? void 0 : _this$substrateApi3.api)
333
333
  }, address);
334
334
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
335
335
  const balanceJson = _balance === null || _balance === void 0 ? void 0 : (_balance$output = _balance.output) === null || _balance$output === void 0 ? void 0 : _balance$output.toJSON();
@@ -346,7 +346,7 @@ class WasmNftApi extends _nft.BaseNftApi {
346
346
  await Promise.all(itemIndexes.map(async i => {
347
347
  var _this$substrateApi4;
348
348
  const _tokenByIndexResp = await contractPromise.query['psp34Enumerable::ownersTokenByIndex'](address, {
349
- gasLimit: (0, _utils2.getDefaultWeightV2)((_this$substrateApi4 = this.substrateApi) === null || _this$substrateApi4 === void 0 ? void 0 : _this$substrateApi4.api)
349
+ gasLimit: (0, _utils.getDefaultWeightV2)((_this$substrateApi4 = this.substrateApi) === null || _this$substrateApi4 === void 0 ? void 0 : _this$substrateApi4.api)
350
350
  }, address, i);
351
351
  if (_tokenByIndexResp.output) {
352
352
  const rawTokenId = _tokenByIndexResp.output.toHuman();
@@ -364,7 +364,7 @@ class WasmNftApi extends _nft.BaseNftApi {
364
364
  if (isAttributeOnChain) {
365
365
  var _this$substrateApi5, _tokenUri$output;
366
366
  const _tokenUri = await contractPromise.query['psp34Traits::getAttributes'](address, {
367
- gasLimit: (0, _utils2.getDefaultWeightV2)((_this$substrateApi5 = this.substrateApi) === null || _this$substrateApi5 === void 0 ? void 0 : _this$substrateApi5.api)
367
+ gasLimit: (0, _utils.getDefaultWeightV2)((_this$substrateApi5 = this.substrateApi) === null || _this$substrateApi5 === void 0 ? void 0 : _this$substrateApi5.api)
368
368
  }, tokenIdObj, ['metadata']);
369
369
  const tokenUriObj = (_tokenUri$output = _tokenUri.output) === null || _tokenUri$output === void 0 ? void 0 : _tokenUri$output.toJSON();
370
370
  tokenUri = (tokenUriObj.ok || tokenUriObj.Ok)[0];
@@ -4,40 +4,19 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.YIELD_POOL_STAT_REFRESH_INTERVAL = exports.YIELD_POOL_MIN_AMOUNT_PERCENT = exports.YIELD_EXTRINSIC_TYPES = exports.DEFAULT_YIELD_FIRST_STEP = void 0;
8
- exports.calculateAlternativeFee = calculateAlternativeFee;
7
+ exports.YIELD_POOL_STAT_REFRESH_INTERVAL = exports.YIELD_EXTRINSIC_TYPES = void 0;
9
8
  exports.convertDerivativeToOriginToken = convertDerivativeToOriginToken;
10
- exports.syntheticSelectedValidators = void 0;
11
9
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
12
10
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
13
- var _types = require("@subwallet/extension-base/types");
14
11
  var _utils2 = require("@subwallet/extension-base/utils");
15
12
  var _bignumber = _interopRequireDefault(require("bignumber.js"));
16
13
  // Copyright 2019-2022 @subwallet/extension-base
17
14
  // SPDX-License-Identifier: Apache-2.0
18
15
 
19
- const syntheticSelectedValidators = ['15MLn9YQaHZ4GMkhK3qXqR5iGGSdULyJ995ctjeBgFRseyi6', '1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih', '1yGJ3h7TQuJWLYSsUVPZbM8aR8UsQXCqMvrFx5Fn1ktiAmq', '16GDRhRYxk42paoK6TfHAqWej8PdDDUwdDazjv4bAn4KGNeb', '13Ybj8CPEArUee78DxUAP9yX3ABmFNVQME1ZH4w8HVncHGzc', '14yx4vPAACZRhoDQm1dyvXD3QdRQyCRRCe5tj1zPomhhS29a', '14Vh8S1DzzycngbAB9vqEgPFR9JpSvmF1ezihTUES1EaHAV', '153YD8ZHD9dRh82U419bSCB5SzWhbdAFzjj4NtA5pMazR2yC', '1LUckyocmz9YzeQZHVpBvYYRGXb3rnSm2tvfz79h3G3JDgP', '14oRE62MB1SWR6h5RTx3GY5HK2oZipi1Gp3zdiLwVYLfEyRZ', '1cFsLn7o74nmjbRyDtMAnMpQMc5ZLsjgCSz9Np2mcejUK83', '15ZvLonEseaWZNy8LDkXXj3Y8bmAjxCjwvpy4pXWSL4nGSBs', '1NebF2xZHb4TJJpiqZZ3reeTo8dZov6LZ49qZqcHHbsmHfo', '1HmAqbBRrWvsqbLkvpiVDkdA2PcctUE5JUe3qokEh1FN455', '15tfUt4iQNjMyhZiJGBf4EpETE2KqtW1nfJwbBT1MvWjvcK9', '12RXTLiaYh59PokjZVhQvKzcfBEB5CvDnjKKUmDUotzcTH3S'];
20
- exports.syntheticSelectedValidators = syntheticSelectedValidators;
21
- function calculateAlternativeFee(feeInfo) {
22
- return feeInfo.partialFee;
23
- }
24
- const DEFAULT_YIELD_FIRST_STEP = {
25
- id: 0,
26
- name: 'Fill information',
27
- type: _types.YieldStepType.DEFAULT
28
- };
29
- exports.DEFAULT_YIELD_FIRST_STEP = DEFAULT_YIELD_FIRST_STEP;
30
16
  const YIELD_EXTRINSIC_TYPES = [_KoniTypes.ExtrinsicType.MINT_VDOT, _KoniTypes.ExtrinsicType.MINT_LDOT, _KoniTypes.ExtrinsicType.MINT_SDOT, _KoniTypes.ExtrinsicType.MINT_QDOT, _KoniTypes.ExtrinsicType.MINT_STDOT, _KoniTypes.ExtrinsicType.REDEEM_QDOT, _KoniTypes.ExtrinsicType.REDEEM_SDOT, _KoniTypes.ExtrinsicType.REDEEM_VDOT, _KoniTypes.ExtrinsicType.REDEEM_LDOT, _KoniTypes.ExtrinsicType.REDEEM_STDOT, _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD, _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL, _KoniTypes.ExtrinsicType.STAKING_POOL_WITHDRAW];
31
17
  exports.YIELD_EXTRINSIC_TYPES = YIELD_EXTRINSIC_TYPES;
32
18
  const YIELD_POOL_STAT_REFRESH_INTERVAL = 90000;
33
19
  exports.YIELD_POOL_STAT_REFRESH_INTERVAL = YIELD_POOL_STAT_REFRESH_INTERVAL;
34
- const YIELD_POOL_MIN_AMOUNT_PERCENT = {
35
- DOT___acala_liquid_staking: 0.98,
36
- DOT___bifrost_liquid_staking: 0.99,
37
- DOT___parallel_liquid_staking: 0.97,
38
- default: 0.98
39
- };
40
- exports.YIELD_POOL_MIN_AMOUNT_PERCENT = YIELD_POOL_MIN_AMOUNT_PERCENT;
41
20
  function convertDerivativeToOriginToken(amount, poolInfo, derivativeTokenInfo, originTokenInfo) {
42
21
  var _poolInfo$statistic, _poolInfo$statistic$a;
43
22
  const derivativeDecimals = (0, _utils._getAssetDecimals)(derivativeTokenInfo);