@subwallet/extension-base 1.0.2-1b → 1.0.2-2

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 (122) hide show
  1. package/background/KoniTypes.d.ts +34 -16
  2. package/background/KoniTypes.js +7 -6
  3. package/background/errors/TransactionError.js +1 -21
  4. package/cjs/background/KoniTypes.js +7 -6
  5. package/cjs/background/errors/TransactionError.js +0 -20
  6. package/cjs/constants/index.js +26 -8
  7. package/cjs/koni/api/dotsama/balance.js +224 -49
  8. package/cjs/koni/api/dotsama/transfer.js +29 -30
  9. package/cjs/koni/api/nft/acala_nft/index.js +1 -4
  10. package/cjs/koni/api/nft/bit.country/index.js +1 -4
  11. package/cjs/koni/api/nft/evm_nft/index.js +3 -7
  12. package/cjs/koni/api/nft/index.js +6 -3
  13. package/cjs/koni/api/nft/karura_nft/index.js +1 -4
  14. package/cjs/koni/api/nft/rmrk_nft/index.js +1 -8
  15. package/cjs/koni/api/nft/statemine_nft/index.js +1 -4
  16. package/cjs/koni/api/nft/unique_nft/index.js +1 -6
  17. package/cjs/koni/api/nft/wasm_nft/index.js +111 -169
  18. package/cjs/koni/api/nft/wasm_nft/utils.js +7 -11
  19. package/cjs/koni/api/staking/bonding/amplitude.js +9 -13
  20. package/cjs/koni/api/staking/bonding/astar.js +13 -15
  21. package/cjs/koni/api/staking/bonding/index.js +10 -22
  22. package/cjs/koni/api/staking/bonding/paraChain.js +2 -85
  23. package/cjs/koni/api/staking/bonding/relayChain.js +16 -119
  24. package/cjs/koni/api/staking/bonding/utils.js +8 -27
  25. package/cjs/koni/api/tokens/wasm/index.js +4 -5
  26. package/cjs/koni/api/xcm/polkadotXcm.js +1 -1
  27. package/cjs/koni/api/xcm/utils.js +13 -18
  28. package/cjs/koni/api/xcm/xTokens.js +1 -1
  29. package/cjs/koni/api/xcm/xcmPallet.js +6 -9
  30. package/cjs/koni/background/cron.js +47 -150
  31. package/cjs/koni/background/handlers/Extension.js +64 -106
  32. package/cjs/koni/background/handlers/State.js +21 -19
  33. package/cjs/koni/background/handlers/Tabs.js +1 -8
  34. package/cjs/koni/background/subscription.js +29 -32
  35. package/cjs/packageInfo.js +1 -1
  36. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +8 -13
  37. package/cjs/services/chain-service/handler/light-client/index.js +0 -2
  38. package/cjs/services/chain-service/index.js +7 -6
  39. package/cjs/services/event-service/index.js +1 -5
  40. package/cjs/services/event-service/types.js +1 -11
  41. package/cjs/services/history-service/index.js +10 -16
  42. package/cjs/services/history-service/subsquid-multi-chain-history.js +9 -12
  43. package/cjs/services/price-service/coingecko.js +1 -0
  44. package/cjs/services/price-service/index.js +3 -2
  45. package/cjs/services/request-service/handler/AuthRequestHandler.js +2 -6
  46. package/cjs/services/storage-service/DatabaseService.js +33 -52
  47. package/cjs/services/storage-service/db-stores/Nft.js +17 -4
  48. package/cjs/services/transaction-service/event-parser/index.js +48 -20
  49. package/cjs/services/transaction-service/index.js +14 -23
  50. package/cjs/utils/index.js +14 -7
  51. package/constants/index.d.ts +13 -7
  52. package/constants/index.js +13 -7
  53. package/koni/api/dotsama/balance.d.ts +1 -0
  54. package/koni/api/dotsama/balance.js +197 -22
  55. package/koni/api/dotsama/transfer.js +4 -5
  56. package/koni/api/nft/acala_nft/index.js +1 -3
  57. package/koni/api/nft/bit.country/index.js +1 -3
  58. package/koni/api/nft/evm_nft/index.js +3 -6
  59. package/koni/api/nft/index.d.ts +2 -1
  60. package/koni/api/nft/index.js +6 -3
  61. package/koni/api/nft/karura_nft/index.js +1 -3
  62. package/koni/api/nft/nft.d.ts +0 -1
  63. package/koni/api/nft/rmrk_nft/index.js +1 -8
  64. package/koni/api/nft/statemine_nft/index.js +1 -3
  65. package/koni/api/nft/unique_nft/index.js +1 -5
  66. package/koni/api/nft/wasm_nft/index.d.ts +2 -0
  67. package/koni/api/nft/wasm_nft/index.js +109 -167
  68. package/koni/api/nft/wasm_nft/utils.d.ts +5 -7
  69. package/koni/api/nft/wasm_nft/utils.js +5 -7
  70. package/koni/api/staking/bonding/amplitude.d.ts +1 -0
  71. package/koni/api/staking/bonding/amplitude.js +10 -15
  72. package/koni/api/staking/bonding/astar.js +6 -8
  73. package/koni/api/staking/bonding/index.d.ts +1 -4
  74. package/koni/api/staking/bonding/index.js +13 -23
  75. package/koni/api/staking/bonding/paraChain.d.ts +0 -3
  76. package/koni/api/staking/bonding/paraChain.js +5 -86
  77. package/koni/api/staking/bonding/relayChain.d.ts +1 -5
  78. package/koni/api/staking/bonding/relayChain.js +18 -118
  79. package/koni/api/staking/bonding/utils.d.ts +2 -3
  80. package/koni/api/staking/bonding/utils.js +9 -27
  81. package/koni/api/tokens/wasm/index.js +4 -5
  82. package/koni/api/xcm/polkadotXcm.js +2 -2
  83. package/koni/api/xcm/utils.d.ts +6 -5
  84. package/koni/api/xcm/utils.js +10 -15
  85. package/koni/api/xcm/xTokens.js +2 -2
  86. package/koni/api/xcm/xcmPallet.js +9 -10
  87. package/koni/background/cron.d.ts +1 -6
  88. package/koni/background/cron.js +48 -151
  89. package/koni/background/handlers/Extension.d.ts +2 -2
  90. package/koni/background/handlers/Extension.js +67 -108
  91. package/koni/background/handlers/State.d.ts +6 -5
  92. package/koni/background/handlers/State.js +21 -19
  93. package/koni/background/handlers/Tabs.js +1 -8
  94. package/koni/background/subscription.js +30 -31
  95. package/package.json +8 -13
  96. package/packageInfo.js +1 -1
  97. package/services/chain-service/handler/SubstrateChainHandler.js +9 -14
  98. package/services/chain-service/handler/light-client/index.d.ts +1 -17
  99. package/services/chain-service/handler/light-client/index.js +1 -1
  100. package/services/chain-service/helper/psp22_abi.json +881 -1041
  101. package/services/chain-service/helper/psp34_abi.json +1808 -2964
  102. package/services/chain-service/index.js +7 -6
  103. package/services/event-service/index.js +1 -5
  104. package/services/event-service/types.d.ts +9 -5
  105. package/services/event-service/types.js +1 -4
  106. package/services/history-service/index.d.ts +1 -1
  107. package/services/history-service/index.js +10 -16
  108. package/services/history-service/subsquid-multi-chain-history.js +11 -15
  109. package/services/price-service/coingecko.js +1 -0
  110. package/services/price-service/index.js +3 -2
  111. package/services/request-service/handler/AuthRequestHandler.js +2 -6
  112. package/services/storage-service/DatabaseService.d.ts +0 -1
  113. package/services/storage-service/DatabaseService.js +33 -52
  114. package/services/storage-service/db-stores/Nft.d.ts +2 -1
  115. package/services/storage-service/db-stores/Nft.js +16 -4
  116. package/services/transaction-service/event-parser/index.js +49 -21
  117. package/services/transaction-service/index.js +14 -23
  118. package/utils/index.d.ts +1 -1
  119. package/utils/index.js +12 -6
  120. package/cjs/koni/api/tokens/wasm/utils.js +0 -63
  121. package/koni/api/tokens/wasm/utils.d.ts +0 -6
  122. package/koni/api/tokens/wasm/utils.js +0 -54
@@ -12,9 +12,8 @@ exports.getAstarStakingMetadata = getAstarStakingMetadata;
12
12
  exports.getAstarUnbondingExtrinsic = getAstarUnbondingExtrinsic;
13
13
  exports.getAstarWithdrawalExtrinsic = getAstarWithdrawalExtrinsic;
14
14
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
15
- var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
16
15
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
17
- var _utils2 = require("@subwallet/extension-base/utils");
16
+ var _utils = require("@subwallet/extension-base/utils");
18
17
  var _crossFetch = _interopRequireDefault(require("cross-fetch"));
19
18
  var _util = require("@polkadot/util");
20
19
  var _utilCrypto = require("@polkadot/util-crypto");
@@ -74,7 +73,6 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
74
73
  const [_ledger, _era, _stakerInfo] = await Promise.all([chainApi.api.query.dappsStaking.ledger(address), chainApi.api.query.dappsStaking.currentEra(), chainApi.api.query.dappsStaking.generalStakerInfo.entries(address)]);
75
74
  const ledger = _ledger.toPrimitive();
76
75
  const currentEra = _era.toString();
77
- const minDelegatorStake = chainApi.api.consts.dappsStaking.minimumStakingAmount.toString();
78
76
  let bnTotalActiveStake = _util.BN_ZERO;
79
77
  if (_stakerInfo.length > 0) {
80
78
  const dAppInfoMap = {};
@@ -91,13 +89,13 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
91
89
  const currentStake = stakeList.slice(-1)[0].staked.toString() || '0';
92
90
  const bnCurrentStake = new _util.BN(currentStake);
93
91
  if (bnCurrentStake.gt(_util.BN_ZERO)) {
94
- const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ? _KoniTypes.StakingStatus.EARNING_REWARD : _KoniTypes.StakingStatus.NOT_EARNING;
95
92
  bnTotalActiveStake = bnTotalActiveStake.add(bnCurrentStake);
96
93
  const dappInfo = dAppInfoMap[dappAddress];
97
94
  nominationList.push({
98
- status: dappStakingStatus,
95
+ status: _KoniTypes.StakingStatus.NOT_EARNING,
96
+ // TODO
99
97
  chain,
100
- validatorAddress: dappAddress.toLowerCase(),
98
+ validatorAddress: dappAddress,
101
99
  activeStake: currentStake,
102
100
  validatorMinStake: '0',
103
101
  validatorIdentity: dappInfo === null || dappInfo === void 0 ? void 0 : dappInfo.name,
@@ -124,7 +122,6 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
124
122
  if (nominationList.length === 0 && unstakingList.length === 0) {
125
123
  return;
126
124
  }
127
- const stakingStatus = (0, _utils.getStakingStatusByNominations)(bnTotalActiveStake, nominationList);
128
125
  return {
129
126
  chain,
130
127
  type: _KoniTypes.StakingType.NOMINATED,
@@ -132,14 +129,15 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
132
129
  activeStake: bnTotalActiveStake.toString(),
133
130
  nominations: nominationList,
134
131
  unstakings: unstakingList,
135
- status: stakingStatus
132
+ status: _KoniTypes.StakingStatus.NOT_EARNING // TODO
136
133
  };
137
134
  }
135
+
138
136
  async function getAstarDappsInfo(networkKey, substrateApi) {
139
137
  const chainApi = await substrateApi.isReady;
140
138
  const rawMaxStakerPerContract = chainApi.api.consts.dappsStaking.maxNumberOfStakersPerContract.toHuman();
141
139
  const allDappsInfo = [];
142
- const maxStakerPerContract = (0, _utils2.parseRawNumber)(rawMaxStakerPerContract);
140
+ const maxStakerPerContract = (0, _utils.parseRawNumber)(rawMaxStakerPerContract);
143
141
  const allDappsReq = new Promise(function (resolve) {
144
142
  (0, _crossFetch.default)(`https://api.astar.network/api/v1/${networkKey}/dapps-staking/dapps`, {
145
143
  method: 'GET'
@@ -148,12 +146,12 @@ async function getAstarDappsInfo(networkKey, substrateApi) {
148
146
  }).catch(console.error);
149
147
  });
150
148
  const [_era, _allDapps] = await Promise.all([chainApi.api.query.dappsStaking.currentEra(), allDappsReq]);
151
- const era = (0, _utils2.parseRawNumber)(_era.toHuman());
149
+ const era = (0, _utils.parseRawNumber)(_era.toHuman());
152
150
  const allDapps = _allDapps;
153
151
  await Promise.all(allDapps.map(async dapp => {
154
152
  const dappName = dapp.name;
155
153
  const dappAddress = dapp.address;
156
- const dappIcon = (0, _utils2.isUrl)(dapp.iconUrl) ? dapp.iconUrl : undefined;
154
+ const dappIcon = (0, _utils.isUrl)(dapp.iconUrl) ? dapp.iconUrl : undefined;
157
155
  const contractParam = (0, _utilCrypto.isEthereumAddress)(dappAddress) ? {
158
156
  Evm: dappAddress
159
157
  } : {
@@ -172,7 +170,7 @@ async function getAstarDappsInfo(networkKey, substrateApi) {
172
170
  allDappsInfo.push({
173
171
  commission: 0,
174
172
  expectedReturn: 0,
175
- address: dappAddress.toLowerCase(),
173
+ address: dappAddress,
176
174
  totalStake: totalStake,
177
175
  ownStake: '0',
178
176
  otherStake: totalStake.toString(),
@@ -215,7 +213,7 @@ async function getAstarWithdrawalExtrinsic(substrateApi) {
215
213
  async function getAstarClaimRewardExtrinsic(substrateApi, address) {
216
214
  const apiPromise = await substrateApi.isReady;
217
215
  const [_stakedDapps, _currentEra] = await Promise.all([apiPromise.api.query.dappsStaking.generalStakerInfo.entries(address), apiPromise.api.query.dappsStaking.currentEra()]);
218
- const currentEra = (0, _utils2.parseRawNumber)(_currentEra.toHuman());
216
+ const currentEra = (0, _utils.parseRawNumber)(_currentEra.toHuman());
219
217
  const transactions = [];
220
218
  for (const item of _stakedDapps) {
221
219
  const data = item[0].toHuman();
@@ -232,12 +230,12 @@ async function getAstarClaimRewardExtrinsic(substrateApi, address) {
232
230
  staked
233
231
  } = stakes[i];
234
232
  const bnStaked = new _util.BN(staked.replaceAll(',', ''));
235
- const parsedEra = (0, _utils2.parseRawNumber)(era);
233
+ const parsedEra = (0, _utils.parseRawNumber)(era);
236
234
  if (bnStaked.eq(new _util.BN(0))) {
237
235
  continue;
238
236
  }
239
237
  const nextEraData = (_stakes = stakes[i + 1]) !== null && _stakes !== void 0 ? _stakes : null;
240
- const nextEra = nextEraData && (0, _utils2.parseRawNumber)(nextEraData.era);
238
+ const nextEra = nextEraData && (0, _utils.parseRawNumber)(nextEraData.era);
241
239
  const isLastEra = i === stakes.length - 1;
242
240
  const eraToClaim = isLastEra ? currentEra - parsedEra : nextEra - parsedEra;
243
241
  numberOfUnclaimedEra += eraToClaim;
@@ -12,8 +12,6 @@ exports.getNominatorMetadata = getNominatorMetadata;
12
12
  exports.getUnbondingExtrinsic = getUnbondingExtrinsic;
13
13
  exports.getValidatorsInfo = getValidatorsInfo;
14
14
  exports.getWithdrawalExtrinsic = getWithdrawalExtrinsic;
15
- exports.validateBondingCondition = validateBondingCondition;
16
- exports.validateUnbondingCondition = validateUnbondingCondition;
17
15
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
18
16
  var _amplitude = require("@subwallet/extension-base/koni/api/staking/bonding/amplitude");
19
17
  var _astar = require("@subwallet/extension-base/koni/api/staking/bonding/astar");
@@ -25,27 +23,15 @@ var _constants = require("@subwallet/extension-base/services/chain-service/const
25
23
 
26
24
  // all addresses must be converted to its chain format
27
25
 
28
- function validateUnbondingCondition(nominatorMetadata, amount, chain, chainStakingMetadata, selectedValidator) {
29
- if (_constants._STAKING_CHAIN_GROUP.relay.includes(chain)) {
30
- return (0, _relayChain.validateRelayUnbondingCondition)(amount, chainStakingMetadata, nominatorMetadata);
31
- }
32
- return (0, _paraChain.validateParaChainUnbondingCondition)(amount, nominatorMetadata, chainStakingMetadata, selectedValidator);
33
- }
34
- function validateBondingCondition(chainInfo, amount, selectedValidators, address, chainStakingMetadata, nominatorMetadata) {
35
- if (_constants._STAKING_CHAIN_GROUP.relay.includes(chainInfo.slug)) {
36
- return (0, _relayChain.validateRelayBondingCondition)(chainInfo, amount, selectedValidators, address, chainStakingMetadata, nominatorMetadata);
37
- }
38
- return (0, _paraChain.validateParaChainBondingCondition)(chainInfo, amount, selectedValidators, address, chainStakingMetadata, nominatorMetadata);
39
- }
40
- async function getChainStakingMetadata(chainInfo, substrateApi) {
41
- if (_constants._STAKING_CHAIN_GROUP.astar.includes(chainInfo.slug)) {
42
- return (0, _astar.getAstarStakingMetadata)(chainInfo.slug, substrateApi);
43
- } else if (_constants._STAKING_CHAIN_GROUP.para.includes(chainInfo.slug)) {
44
- return (0, _paraChain.getParaChainStakingMetadata)(chainInfo.slug, substrateApi);
45
- } else if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chainInfo.slug)) {
46
- return (0, _amplitude.getAmplitudeStakingMetadata)(chainInfo.slug, substrateApi);
26
+ async function getChainStakingMetadata(chain, substrateApi) {
27
+ if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
28
+ return (0, _astar.getAstarStakingMetadata)(chain, substrateApi);
29
+ } else if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
30
+ return (0, _paraChain.getParaChainStakingMetadata)(chain, substrateApi);
31
+ } else if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
32
+ return (0, _amplitude.getAmplitudeStakingMetadata)(chain, substrateApi);
47
33
  }
48
- return (0, _relayChain.getRelayChainStakingMetadata)(chainInfo, substrateApi);
34
+ return (0, _relayChain.getRelayChainStakingMetadata)(chain, substrateApi);
49
35
  }
50
36
  async function getNominatorMetadata(chainInfo, address, substrateApi) {
51
37
  if (_constants._STAKING_CHAIN_GROUP.astar.includes(chainInfo.slug)) {
@@ -115,6 +101,8 @@ async function getClaimRewardExtrinsic(substrateApi, chain, address, stakingType
115
101
  async function getCancelWithdrawalExtrinsic(substrateApi, chain, selectedUnstaking) {
116
102
  if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
117
103
  return (0, _paraChain.getParaCancelWithdrawalExtrinsic)(substrateApi, selectedUnstaking);
104
+ } else if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
105
+ return (0, _amplitude.getAmplitudeCancelWithdrawalExtrinsic)(substrateApi);
118
106
  }
119
107
  return (0, _relayChain.getRelayCancelWithdrawalExtrinsic)(substrateApi, selectedUnstaking);
120
108
  }
@@ -12,9 +12,6 @@ exports.getParaWithdrawalExtrinsic = getParaWithdrawalExtrinsic;
12
12
  exports.getParachainCollatorsInfo = getParachainCollatorsInfo;
13
13
  exports.getTuringCancelCompoundingExtrinsic = getTuringCancelCompoundingExtrinsic;
14
14
  exports.getTuringCompoundExtrinsic = getTuringCompoundExtrinsic;
15
- exports.validateParaChainBondingCondition = validateParaChainBondingCondition;
16
- exports.validateParaChainUnbondingCondition = validateParaChainUnbondingCondition;
17
- var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
18
15
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
19
16
  var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
20
17
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
@@ -25,78 +22,6 @@ var _utilCrypto = require("@polkadot/util-crypto");
25
22
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
26
23
  // SPDX-License-Identifier: Apache-2.0
27
24
 
28
- function validateParaChainUnbondingCondition(amount, nominatorMetadata, chainStakingMetadata, selectedCollator) {
29
- const errors = [];
30
- let targetNomination;
31
- for (const nomination of nominatorMetadata.nominations) {
32
- if ((0, _utils3.isSameAddress)(nomination.validatorAddress, selectedCollator)) {
33
- targetNomination = nomination;
34
- break;
35
- }
36
- }
37
- if (!targetNomination) {
38
- errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR));
39
- return errors;
40
- }
41
- const bnActiveStake = new _util.BN(targetNomination.activeStake);
42
- const bnRemainingStake = bnActiveStake.sub(new _util.BN(amount));
43
- const bnChainMinStake = new _util.BN(chainStakingMetadata.minStake || '0');
44
- const bnCollatorMinStake = new _util.BN(targetNomination.validatorMinStake || '0');
45
- const bnMinStake = bnCollatorMinStake > bnChainMinStake ? bnCollatorMinStake : bnChainMinStake;
46
- if (targetNomination.hasUnstaking) {
47
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXIST_UNSTAKING_REQUEST));
48
- }
49
- if (!(bnRemainingStake.isZero() || bnRemainingStake.gte(bnMinStake))) {
50
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.INVALID_ACTIVE_STAKE));
51
- }
52
- return errors;
53
- }
54
- function validateParaChainBondingCondition(chainInfo, amount, selectedCollators, address, chainStakingMetadata, nominatorMetadata) {
55
- const errors = [];
56
- const selectedCollator = selectedCollators[0];
57
- let bnTotalStake = new _util.BN(amount);
58
- const bnChainMinStake = new _util.BN(chainStakingMetadata.minStake || '0');
59
- const bnCollatorMinStake = new _util.BN(selectedCollator.minBond || '0');
60
- const bnMinStake = bnCollatorMinStake > bnChainMinStake ? bnCollatorMinStake : bnChainMinStake;
61
- if (!nominatorMetadata) {
62
- if (!bnTotalStake.gte(bnMinStake)) {
63
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
64
- }
65
- return errors;
66
- }
67
- const {
68
- bondedValidators
69
- } = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
70
- const parsedSelectedCollatorAddress = (0, _utils3.reformatAddress)(selectedCollator.address, 0);
71
- if (!bondedValidators.includes(parsedSelectedCollatorAddress)) {
72
- // new delegation
73
- if (!bnTotalStake.gte(bnMinStake)) {
74
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
75
- }
76
- const delegationCount = nominatorMetadata.nominations.length + 1;
77
- if (delegationCount > chainStakingMetadata.maxValidatorPerNominator) {
78
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXCEED_MAX_NOMINATIONS));
79
- }
80
- } else {
81
- let currentDelegationAmount = '0';
82
- let hasUnstaking = false;
83
- for (const delegation of nominatorMetadata.nominations) {
84
- if ((0, _utils3.reformatAddress)(delegation.validatorAddress, 0) === parsedSelectedCollatorAddress) {
85
- currentDelegationAmount = delegation.activeStake;
86
- hasUnstaking = !!delegation.hasUnstaking && delegation.hasUnstaking;
87
- break;
88
- }
89
- }
90
- bnTotalStake = bnTotalStake.add(new _util.BN(currentDelegationAmount));
91
- if (!bnTotalStake.gte(bnMinStake)) {
92
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
93
- }
94
- if (hasUnstaking) {
95
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXIST_UNSTAKING_REQUEST));
96
- }
97
- }
98
- return errors;
99
- }
100
25
  async function getParaChainStakingMetadata(chain, substrateApi) {
101
26
  const chainApi = await substrateApi.isReady;
102
27
  const _round = (await chainApi.api.query.parachainStaking.round()).toHuman();
@@ -150,16 +75,13 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
150
75
  }
151
76
  let bnTotalActiveStake = _util.BN_ZERO;
152
77
  await Promise.all(delegatorState.delegations.map(async delegation => {
153
- const [_delegationScheduledRequests, _identity, _roundInfo, _collatorInfo] = await Promise.all([chainApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), chainApi.api.query.identity.identityOf(delegation.owner), chainApi.api.query.parachainStaking.round(), chainApi.api.query.parachainStaking.candidateInfo(delegation.owner)]);
154
- const rawCollatorInfo = _collatorInfo.toHuman();
155
- const minDelegation = (rawCollatorInfo === null || rawCollatorInfo === void 0 ? void 0 : rawCollatorInfo.lowestTopDelegationAmount).replaceAll(',', '');
78
+ const [_delegationScheduledRequests, _identity, _roundInfo] = await Promise.all([chainApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), chainApi.api.query.identity.identityOf(delegation.owner), chainApi.api.query.parachainStaking.round()]);
156
79
  const identityInfo = _identity.toHuman();
157
80
  const roundInfo = _roundInfo.toPrimitive();
158
81
  const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
159
82
  const currentRound = roundInfo.current;
160
83
  const identity = (0, _utils.parseIdentity)(identityInfo);
161
84
  let hasUnstaking = false;
162
- let delegationStatus = _KoniTypes.StakingStatus.NOT_EARNING;
163
85
 
164
86
  // parse unstaking info
165
87
  if (delegationScheduledRequests) {
@@ -186,13 +108,10 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
186
108
  const bnStake = new _util.BN(delegation.amount);
187
109
  const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
188
110
  const bnActiveStake = bnStake.sub(bnUnstakeBalance);
189
- if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegation))) {
190
- delegationStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
191
- }
192
111
  bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
193
112
  nominationList.push({
194
113
  chain,
195
- status: delegationStatus,
114
+ status: _KoniTypes.StakingStatus.NOT_EARNING,
196
115
  validatorAddress: delegation.owner,
197
116
  validatorIdentity: identity,
198
117
  activeStake: bnActiveStake.toString(),
@@ -204,11 +123,9 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
204
123
  const collatorInfo = _collatorInfo.toPrimitive();
205
124
  nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
206
125
  }));
207
- const stakingStatus = (0, _utils.getStakingStatusByNominations)(bnTotalActiveStake, nominationList);
208
126
  return {
209
127
  chain,
210
128
  type: _KoniTypes.StakingType.NOMINATED,
211
- status: stakingStatus,
212
129
  address: address,
213
130
  activeStake: bnTotalActiveStake.toString(),
214
131
  nominations: nominationList,
@@ -16,10 +16,6 @@ exports.getRelayPoolsInfo = getRelayPoolsInfo;
16
16
  exports.getRelayUnbondingExtrinsic = getRelayUnbondingExtrinsic;
17
17
  exports.getRelayValidatorsInfo = getRelayValidatorsInfo;
18
18
  exports.getRelayWithdrawalExtrinsic = getRelayWithdrawalExtrinsic;
19
- exports.validatePoolBondingCondition = validatePoolBondingCondition;
20
- exports.validateRelayBondingCondition = validateRelayBondingCondition;
21
- exports.validateRelayUnbondingCondition = validateRelayUnbondingCondition;
22
- var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
23
19
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
24
20
  var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
25
21
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
@@ -30,91 +26,16 @@ var _utilCrypto = require("@polkadot/util-crypto");
30
26
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
31
27
  // SPDX-License-Identifier: Apache-2.0
32
28
 
33
- function validateRelayUnbondingCondition(amount, chainStakingMetadata, nominatorMetadata) {
34
- const errors = [];
35
- const bnActiveStake = new _util.BN(nominatorMetadata.activeStake);
36
- const bnRemainingStake = bnActiveStake.sub(new _util.BN(amount));
37
- const minStake = new _util.BN(chainStakingMetadata.minPoolBonding || '0');
38
- if (!(bnRemainingStake.isZero() || bnRemainingStake.gte(minStake))) {
39
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.INVALID_ACTIVE_STAKE));
40
- }
41
- if (nominatorMetadata.unstakings.length > chainStakingMetadata.maxWithdrawalRequestPerValidator) {
42
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXCEED_MAX_UNSTAKING));
43
- }
44
- return errors;
45
- }
46
- function validatePoolBondingCondition(chainInfo, amount, selectedPool, address, chainStakingMetadata, nominatorMetadata) {
47
- // cannot stake when unstake all
48
- // amount >= min stake
49
- const errors = [];
50
- let bnTotalStake = new _util.BN(amount);
51
- const bnMinStake = new _util.BN(chainStakingMetadata.minPoolBonding || '0');
52
- if (nominatorMetadata) {
53
- const bnCurrentActiveStake = new _util.BN(nominatorMetadata.activeStake);
54
- bnTotalStake = bnTotalStake.add(bnCurrentActiveStake);
55
- if (!bnCurrentActiveStake.gt(_util.BN_ZERO)) {
56
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXIST_UNSTAKING_REQUEST));
57
- }
58
- }
59
- if (!bnTotalStake.gte(bnMinStake)) {
60
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
61
- }
62
- return errors;
63
- }
64
- function validateRelayBondingCondition(chainInfo, amount, selectedValidators, address, chainStakingMetadata, nominatorMetadata) {
65
- const errors = [];
66
- let bnTotalStake = new _util.BN(amount);
67
- const bnMinStake = new _util.BN(chainStakingMetadata.minStake);
68
- if (!nominatorMetadata) {
69
- if (!bnTotalStake.gte(bnMinStake)) {
70
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
71
- }
72
- if (selectedValidators.length > chainStakingMetadata.maxValidatorPerNominator) {
73
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXCEED_MAX_NOMINATIONS));
74
- }
75
- return errors;
76
- }
77
- const bnCurrentActiveStake = new _util.BN(nominatorMetadata.activeStake);
78
- bnTotalStake = bnTotalStake.add(bnCurrentActiveStake);
79
- if (!bnTotalStake.gte(bnMinStake)) {
80
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
81
- }
82
- if (selectedValidators.length > chainStakingMetadata.maxValidatorPerNominator) {
83
- errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXCEED_MAX_NOMINATIONS));
84
- }
85
- return errors;
86
- }
87
- async function getRelayChainStakingMetadata(chainInfo, substrateApi) {
88
- var _chainApi$api$query$a, _chainApi$api$query, _chainApi$api$query$s, _chainApi$api$query2, _chainApi$api$query2$, _chainApi$api$query3, _chainApi$api$query3$;
89
- const chain = chainInfo.slug;
90
- const {
91
- decimals
92
- } = (0, _utils2._getChainNativeTokenBasicInfo)(chainInfo);
29
+ async function getRelayChainStakingMetadata(chain, substrateApi) {
30
+ var _chainApi$api$query$a, _chainApi$api$query, _chainApi$api$query$n;
93
31
  const chainApi = await substrateApi.isReady;
94
32
  const _era = await chainApi.api.query.staking.currentEra();
95
33
  const currentEra = _era.toString();
96
34
  const maxNominations = chainApi.api.consts.staking.maxNominations.toString();
97
35
  const maxUnlockingChunks = chainApi.api.consts.staking.maxUnlockingChunks.toString();
98
36
  const unlockingEras = chainApi.api.consts.staking.bondingDuration.toString();
99
- const [_totalEraStake, _totalIssuance, _auctionCounter, _minimumActiveStake, _minNominatorBond, _minPoolJoin, _eraStakers] = await Promise.all([chainApi.api.query.staking.erasTotalStake(parseInt(currentEra)), chainApi.api.query.balances.totalIssuance(), (_chainApi$api$query$a = chainApi.api.query.auctions) === null || _chainApi$api$query$a === void 0 ? void 0 : _chainApi$api$query$a.auctionCounter(), ((_chainApi$api$query = chainApi.api.query) === null || _chainApi$api$query === void 0 ? void 0 : (_chainApi$api$query$s = _chainApi$api$query.staking) === null || _chainApi$api$query$s === void 0 ? void 0 : _chainApi$api$query$s.minimumActiveStake) && ((_chainApi$api$query2 = chainApi.api.query) === null || _chainApi$api$query2 === void 0 ? void 0 : (_chainApi$api$query2$ = _chainApi$api$query2.staking) === null || _chainApi$api$query2$ === void 0 ? void 0 : _chainApi$api$query2$.minimumActiveStake()), chainApi.api.query.staking.minNominatorBond(), (_chainApi$api$query3 = chainApi.api.query) === null || _chainApi$api$query3 === void 0 ? void 0 : (_chainApi$api$query3$ = _chainApi$api$query3.nominationPools) === null || _chainApi$api$query3$ === void 0 ? void 0 : _chainApi$api$query3$.minJoinBond(), chainApi.api.query.staking.erasStakers.entries(parseInt(currentEra))]);
100
- const eraStakers = _eraStakers;
101
- const nominatorList = [];
102
- for (const item of eraStakers) {
103
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
104
- const rawValidatorStat = item[1].toHuman();
105
- const eraNominators = rawValidatorStat.others;
106
- for (const nominator of eraNominators) {
107
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
108
- if (!nominatorList.includes(nominator.who)) {
109
- nominatorList.push(nominator.who);
110
- }
111
- }
112
- }
113
- const minActiveStake = (_minimumActiveStake === null || _minimumActiveStake === void 0 ? void 0 : _minimumActiveStake.toString()) || '0';
114
- const minNominatorBond = _minNominatorBond.toString();
115
- const bnMinActiveStake = new _util.BN(minActiveStake);
116
- const bnMinNominatorBond = new _util.BN(minNominatorBond);
117
- const minStake = bnMinActiveStake.gt(bnMinNominatorBond) ? bnMinActiveStake : bnMinNominatorBond;
37
+ const [_totalEraStake, _totalIssuance, _auctionCounter, _minimumActiveStake, _minPoolJoin] = await Promise.all([chainApi.api.query.staking.erasTotalStake(parseInt(currentEra)), chainApi.api.query.balances.totalIssuance(), (_chainApi$api$query$a = chainApi.api.query.auctions) === null || _chainApi$api$query$a === void 0 ? void 0 : _chainApi$api$query$a.auctionCounter(), chainApi.api.query.staking.minimumActiveStake(), (_chainApi$api$query = chainApi.api.query) === null || _chainApi$api$query === void 0 ? void 0 : (_chainApi$api$query$n = _chainApi$api$query.nominationPools) === null || _chainApi$api$query$n === void 0 ? void 0 : _chainApi$api$query$n.minJoinBond()]);
38
+ const minStake = _minimumActiveStake.toString();
118
39
  const minPoolJoin = (_minPoolJoin === null || _minPoolJoin === void 0 ? void 0 : _minPoolJoin.toString()) || undefined;
119
40
  const rawTotalEraStake = _totalEraStake.toString();
120
41
  const rawTotalIssuance = _totalIssuance.toString();
@@ -132,30 +53,21 @@ async function getRelayChainStakingMetadata(chainInfo, substrateApi) {
132
53
  expectedReturn,
133
54
  // in %, annually
134
55
  inflation,
135
- minStake: minStake.toString(),
136
- minPoolBonding: (10 ** decimals).toString(),
137
- // default is 1
56
+ minStake,
138
57
  maxValidatorPerNominator: parseInt(maxNominations),
139
58
  maxWithdrawalRequestPerValidator: parseInt(maxUnlockingChunks),
140
59
  allowCancelUnstaking: true,
141
60
  unstakingPeriod: unlockingPeriod,
142
- minJoinNominationPool: minPoolJoin,
143
- nominatorCount: nominatorList.length
61
+ minJoinNominationPool: minPoolJoin
144
62
  };
145
63
  }
146
64
  async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi) {
147
- var _chainApi$api$query4, _chainApi$api$query4$, _chainApi$api$query5, _chainApi$api$query5$, _chainApi$api$query6, _chainApi$api$query6$, _chainApi$api$query7, _chainApi$api$query7$, _chainApi$api$query8, _chainApi$api$query8$, _chainApi$api$query9, _chainApi$api$query9$, _chainApi$api$query10, _chainApi$api$query11;
148
65
  if ((0, _utilCrypto.isEthereumAddress)(address)) {
149
66
  return;
150
67
  }
151
68
  const chain = chainInfo.slug;
152
69
  const chainApi = await substrateApi.isReady;
153
- const [_ledger, _nominations, _currentEra, _bonded, _minimumActiveStake, _minNominatorBond] = await Promise.all([(_chainApi$api$query4 = chainApi.api.query) === null || _chainApi$api$query4 === void 0 ? void 0 : (_chainApi$api$query4$ = _chainApi$api$query4.staking) === null || _chainApi$api$query4$ === void 0 ? void 0 : _chainApi$api$query4$.ledger(address), (_chainApi$api$query5 = chainApi.api.query) === null || _chainApi$api$query5 === void 0 ? void 0 : (_chainApi$api$query5$ = _chainApi$api$query5.staking) === null || _chainApi$api$query5$ === void 0 ? void 0 : _chainApi$api$query5$.nominators(address), (_chainApi$api$query6 = chainApi.api.query) === null || _chainApi$api$query6 === void 0 ? void 0 : (_chainApi$api$query6$ = _chainApi$api$query6.staking) === null || _chainApi$api$query6$ === void 0 ? void 0 : _chainApi$api$query6$.currentEra(), (_chainApi$api$query7 = chainApi.api.query) === null || _chainApi$api$query7 === void 0 ? void 0 : (_chainApi$api$query7$ = _chainApi$api$query7.staking) === null || _chainApi$api$query7$ === void 0 ? void 0 : _chainApi$api$query7$.bonded(address), ((_chainApi$api$query8 = chainApi.api.query) === null || _chainApi$api$query8 === void 0 ? void 0 : (_chainApi$api$query8$ = _chainApi$api$query8.staking) === null || _chainApi$api$query8$ === void 0 ? void 0 : _chainApi$api$query8$.minimumActiveStake) && ((_chainApi$api$query9 = chainApi.api.query) === null || _chainApi$api$query9 === void 0 ? void 0 : (_chainApi$api$query9$ = _chainApi$api$query9.staking) === null || _chainApi$api$query9$ === void 0 ? void 0 : _chainApi$api$query9$.minimumActiveStake()), (_chainApi$api$query10 = chainApi.api.query) === null || _chainApi$api$query10 === void 0 ? void 0 : (_chainApi$api$query11 = _chainApi$api$query10.staking) === null || _chainApi$api$query11 === void 0 ? void 0 : _chainApi$api$query11.minNominatorBond()]);
154
- const minActiveStake = (_minimumActiveStake === null || _minimumActiveStake === void 0 ? void 0 : _minimumActiveStake.toString()) || '0';
155
- const minNominatorBond = _minNominatorBond.toString();
156
- const bnMinActiveStake = new _util.BN(minActiveStake);
157
- const bnMinNominatorBond = new _util.BN(minNominatorBond);
158
- const minStake = bnMinActiveStake.gt(bnMinNominatorBond) ? bnMinActiveStake : bnMinNominatorBond;
70
+ const [_ledger, _nominations, _currentEra, _bonded] = await Promise.all([chainApi.api.query.staking.ledger(address), chainApi.api.query.staking.nominators(address), chainApi.api.query.staking.currentEra(), chainApi.api.query.staking.bonded(address)]);
159
71
  const _maxNominatorRewardedPerValidator = chainApi.api.consts.staking.maxNominatorRewardedPerValidator.toString();
160
72
  const maxNominatorRewardedPerValidator = parseInt(_maxNominatorRewardedPerValidator);
161
73
  const ledger = _ledger.toPrimitive();
@@ -165,6 +77,7 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
165
77
  if (!ledger) {
166
78
  return;
167
79
  }
80
+ let stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
168
81
  const activeStake = ledger.active.toString();
169
82
  const nominationList = [];
170
83
  const unstakingList = [];
@@ -179,10 +92,7 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
179
92
  const topNominators = eraStaker.others.map(nominator => {
180
93
  return nominator.who;
181
94
  });
182
- if (!topNominators.includes((0, _utils3.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
183
- // if nominator has target but not in nominator list
184
- nominationStatus = _KoniTypes.StakingStatus.WAITING;
185
- } else if (topNominators.slice(0, maxNominatorRewardedPerValidator).includes((0, _utils3.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
95
+ if (topNominators.slice(0, maxNominatorRewardedPerValidator).includes((0, _utils3.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
186
96
  // if address in top nominators
187
97
  nominationStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
188
98
  }
@@ -196,20 +106,11 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
196
106
  }));
197
107
  }
198
108
 
199
- let stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
200
- const bnActiveStake = new _util.BN(activeStake);
201
- let waitingNominationCount = 0;
202
- if (bnActiveStake.gte(minStake)) {
203
- for (const nomination of nominationList) {
204
- if (nomination.status === _KoniTypes.StakingStatus.EARNING_REWARD) {
205
- // only need 1 earning nomination to count
206
- stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
207
- } else if (nomination.status === _KoniTypes.StakingStatus.WAITING) {
208
- waitingNominationCount += 1;
209
- }
210
- }
211
- if (waitingNominationCount === nominationList.length) {
212
- stakingStatus = _KoniTypes.StakingStatus.WAITING;
109
+ for (const nomination of nominationList) {
110
+ if (nomination.status === _KoniTypes.StakingStatus.EARNING_REWARD) {
111
+ // only need 1 earning nomination to count
112
+ stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
113
+ break;
213
114
  }
214
115
  }
215
116
  ledger.unlocking.forEach(unlockingChunk => {
@@ -288,10 +189,6 @@ async function getRelayChainPoolMemberMetadata(chainInfo, address, substrateApi)
288
189
  waitingTime: waitingTime > 0 ? waitingTime : 0
289
190
  });
290
191
  });
291
- const bnActiveStake = new _util.BN(poolMemberInfo.points.toString());
292
- if (!bnActiveStake.gt(_util.BN_ZERO)) {
293
- stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
294
- }
295
192
  return {
296
193
  chain: chainInfo.slug,
297
194
  type: _KoniTypes.StakingType.POOLED,
@@ -352,9 +249,9 @@ async function getRelayValidatorsInfo(chain, substrateApi, decimals, chainStakin
352
249
  }
353
250
  const extraInfoMap = {};
354
251
  await Promise.all(allValidators.map(async address => {
355
- var _chainApi$api$query12, _chainApi$api$query13, _identityInfo$judgeme;
252
+ var _chainApi$api$query2, _chainApi$api$query2$, _identityInfo$judgeme;
356
253
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
357
- const [_commissionInfo, _identityInfo] = await Promise.all([chainApi.api.query.staking.validators(address), (_chainApi$api$query12 = chainApi.api.query) === null || _chainApi$api$query12 === void 0 ? void 0 : (_chainApi$api$query13 = _chainApi$api$query12.identity) === null || _chainApi$api$query13 === void 0 ? void 0 : _chainApi$api$query13.identityOf(address)]);
254
+ const [_commissionInfo, _identityInfo] = await Promise.all([chainApi.api.query.staking.validators(address), (_chainApi$api$query2 = chainApi.api.query) === null || _chainApi$api$query2 === void 0 ? void 0 : (_chainApi$api$query2$ = _chainApi$api$query2.identity) === null || _chainApi$api$query2$ === void 0 ? void 0 : _chainApi$api$query2$.identityOf(address)]);
358
255
  const commissionInfo = _commissionInfo.toHuman();
359
256
  const identityInfo = _identityInfo ? _identityInfo.toHuman() : null;
360
257
  let identity;
@@ -16,7 +16,6 @@ exports.getInflationParams = getInflationParams;
16
16
  exports.getParaCurrentInflation = getParaCurrentInflation;
17
17
  exports.getStakingAvailableActionsByChain = getStakingAvailableActionsByChain;
18
18
  exports.getStakingAvailableActionsByNominator = getStakingAvailableActionsByNominator;
19
- exports.getStakingStatusByNominations = getStakingStatusByNominations;
20
19
  exports.getWithdrawalInfo = getWithdrawalInfo;
21
20
  exports.isActionFromValidator = isActionFromValidator;
22
21
  exports.isShowNominationByValidator = isShowNominationByValidator;
@@ -151,8 +150,11 @@ function getBondedValidators(nominations) {
151
150
  const bondedValidators = [];
152
151
  let nominationCount = 0;
153
152
  for (const nomination of nominations) {
154
- nominationCount += 1;
155
- bondedValidators.push((0, _utils.reformatAddress)(nomination.validatorAddress, 0));
153
+ const bnActiveStake = new _util.BN(nomination.activeStake);
154
+ if (bnActiveStake.gt(_util.BN_ZERO)) {
155
+ nominationCount += 1;
156
+ bondedValidators.push((0, _utils.reformatAddress)(nomination.validatorAddress, 0));
157
+ }
156
158
  }
157
159
  return {
158
160
  nominationCount,
@@ -195,15 +197,13 @@ function getStakingAvailableActionsByChain(chain, type) {
195
197
  }
196
198
  return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CANCEL_UNSTAKE];
197
199
  }
198
- function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedReward) {
200
+ function getStakingAvailableActionsByNominator(nominatorMetadata) {
199
201
  const result = [StakingAction.STAKE];
200
202
  const bnActiveStake = new _util.BN(nominatorMetadata.activeStake);
201
203
  if (nominatorMetadata.activeStake && bnActiveStake.gt(_util.BN_ZERO)) {
202
204
  result.push(StakingAction.UNSTAKE);
203
- const isAstarNetwork = _constants._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain);
204
- const isAmplitudeNetwork = _constants._STAKING_CHAIN_GROUP.amplitude.includes(nominatorMetadata.chain);
205
- const bnUnclaimedReward = new _util.BN(unclaimedReward || '0');
206
- if ((nominatorMetadata.type === _KoniTypes.StakingType.POOLED || isAmplitudeNetwork) && bnUnclaimedReward.gt(_util.BN_ZERO) || isAstarNetwork) {
205
+ const isChainAllowClaimReward = _constants._STAKING_CHAIN_GROUP.amplitude.includes(nominatorMetadata.chain) || _constants._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain);
206
+ if (nominatorMetadata.type === _KoniTypes.StakingType.POOLED || isChainAllowClaimReward) {
207
207
  result.push(StakingAction.CLAIM_REWARD);
208
208
  }
209
209
  }
@@ -245,23 +245,4 @@ function getWithdrawalInfo(nominatorMetadata) {
245
245
  }
246
246
  }
247
247
  return result;
248
- }
249
- function getStakingStatusByNominations(bnTotalActiveStake, nominationList) {
250
- let stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
251
- if (bnTotalActiveStake.isZero()) {
252
- stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
253
- } else {
254
- let invalidDelegationCount = 0;
255
- for (const nomination of nominationList) {
256
- if (nomination.status === _KoniTypes.StakingStatus.NOT_EARNING) {
257
- invalidDelegationCount += 1;
258
- }
259
- }
260
- if (invalidDelegationCount > 0 && invalidDelegationCount < nominationList.length) {
261
- stakingStatus = _KoniTypes.StakingStatus.PARTIALLY_EARNING;
262
- } else if (invalidDelegationCount === nominationList.length) {
263
- stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
264
- }
265
- }
266
- return stakingStatus;
267
248
  }
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getPSP22ContractPromise = getPSP22ContractPromise;
7
7
  exports.getPSP34ContractPromise = getPSP34ContractPromise;
8
8
  exports.getPSP34TransferExtrinsic = getPSP34TransferExtrinsic;
9
- var _utils = require("@subwallet/extension-base/koni/api/tokens/wasm/utils");
10
9
  var _helper = require("@subwallet/extension-base/services/chain-service/helper");
11
10
  var _apiContract = require("@polkadot/api-contract");
12
11
  // Copyright 2019-2022 @subwallet/extension-base
@@ -23,10 +22,10 @@ async function getPSP34TransferExtrinsic(networkKey, substrateApi, senderAddress
23
22
  const onChainOption = params.onChainOption;
24
23
  try {
25
24
  const contractPromise = getPSP34ContractPromise(substrateApi.api, contractAddress);
26
- // @ts-ignore
27
- const gasLimit = await (0, _utils.getWasmContractGasLimit)(substrateApi.api, senderAddress, 'psp34::transfer', contractPromise, {}, [recipientAddress, onChainOption, {}]);
28
-
29
- // @ts-ignore
25
+ const transferQuery = await contractPromise.query['psp34::transfer'](senderAddress, {
26
+ gasLimit: -1
27
+ }, recipientAddress, onChainOption, {});
28
+ const gasLimit = transferQuery.gasRequired.toString();
30
29
  return contractPromise.tx['psp34::transfer']({
31
30
  gasLimit
32
31
  }, recipientAddress, onChainOption, {});
@@ -42,7 +42,7 @@ function getAssetLocation(tokenInfo, sendingValue) {
42
42
  };
43
43
  }
44
44
  function getExtrinsicByPolkadotXcmPallet(tokenInfo, originChainInfo, destinationChainInfo, recipientAddress, value, api) {
45
- const weightParam = (0, _utils.getDestWeight)();
45
+ const weightParam = _utils.NETWORK_USE_UNLIMITED_WEIGHT.includes(originChainInfo.slug) ? _utils.POLKADOT_UNLIMITED_WEIGHT : _utils.FOUR_INSTRUCTIONS_WEIGHT;
46
46
  const beneficiary = (0, _utils.getBeneficiary)(originChainInfo, destinationChainInfo, recipientAddress);
47
47
  const destination = getDestinationChainLocation(destinationChainInfo);
48
48
  const assetLocation = getAssetLocation(tokenInfo, value);