@subwallet/extension-base 1.1.33-beta.2 → 1.1.33-beta.3

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 (27) hide show
  1. package/background/KoniTypes.d.ts +0 -9
  2. package/background/KoniTypes.js +0 -3
  3. package/cjs/background/KoniTypes.js +0 -3
  4. package/cjs/koni/api/yield/helper/utils.js +3 -6
  5. package/cjs/services/earning-service/handlers/liquid-staking/base.js +1 -2
  6. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +1 -2
  7. package/cjs/services/earning-service/handlers/liquid-staking/index.js +0 -7
  8. package/cjs/services/earning-service/handlers/special.js +3 -7
  9. package/cjs/services/earning-service/service.js +0 -1
  10. package/cjs/services/transaction-service/index.js +0 -3
  11. package/cjs/types/yield/actions/join/step.js +0 -1
  12. package/koni/api/yield/helper/utils.d.ts +1 -1
  13. package/koni/api/yield/helper/utils.js +3 -5
  14. package/package.json +2 -7
  15. package/services/earning-service/handlers/liquid-staking/base.d.ts +1 -1
  16. package/services/earning-service/handlers/liquid-staking/base.js +1 -2
  17. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +3 -3
  18. package/services/earning-service/handlers/liquid-staking/bifrost.js +1 -2
  19. package/services/earning-service/handlers/liquid-staking/index.d.ts +0 -1
  20. package/services/earning-service/handlers/liquid-staking/index.js +0 -1
  21. package/services/earning-service/handlers/special.js +3 -7
  22. package/services/earning-service/service.js +1 -2
  23. package/services/transaction-service/index.js +0 -3
  24. package/types/yield/actions/join/step.d.ts +0 -1
  25. package/types/yield/actions/join/step.js +0 -1
  26. package/services/earning-service/handlers/liquid-staking/bifrost-manta.d.ts +0 -37
  27. package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +0 -132
@@ -371,19 +371,16 @@ export declare enum ExtrinsicType {
371
371
  MINT_SDOT = "earn.mint_sdot",
372
372
  MINT_QDOT = "earn.mint_qdot",
373
373
  MINT_STDOT = "earn.mint_stdot",
374
- MINT_VMANTA = "earn.mint_vmanta",
375
374
  REDEEM_QDOT = "earn.redeem_qdot",
376
375
  REDEEM_VDOT = "earn.redeem_vdot",
377
376
  REDEEM_LDOT = "earn.redeem_ldot",
378
377
  REDEEM_SDOT = "earn.redeem_sdot",
379
378
  REDEEM_STDOT = "earn.redeem_stdot",
380
- REDEEM_VMANTA = "earn.redeem_vmanta",
381
379
  UNSTAKE_QDOT = "earn.unstake_qdot",
382
380
  UNSTAKE_VDOT = "earn.unstake_vdot",
383
381
  UNSTAKE_LDOT = "earn.unstake_ldot",
384
382
  UNSTAKE_SDOT = "earn.unstake_sdot",
385
383
  UNSTAKE_STDOT = "earn.unstake_stdot",
386
- UNSTAKE_VMANTA = "earn.unstake_vmanta",
387
384
  TOKEN_APPROVE = "evm.token_approve",
388
385
  EVM_EXECUTE = "evm.execute",
389
386
  UNKNOWN = "unknown"
@@ -410,19 +407,16 @@ export interface ExtrinsicDataTypeMap {
410
407
  [ExtrinsicType.MINT_QDOT]: SubmitYieldStepData;
411
408
  [ExtrinsicType.MINT_STDOT]: SubmitYieldStepData;
412
409
  [ExtrinsicType.MINT_STDOT]: SubmitYieldStepData;
413
- [ExtrinsicType.MINT_VMANTA]: SubmitYieldStepData;
414
410
  [ExtrinsicType.UNSTAKE_VDOT]: RequestYieldLeave;
415
411
  [ExtrinsicType.UNSTAKE_QDOT]: RequestYieldLeave;
416
412
  [ExtrinsicType.UNSTAKE_LDOT]: RequestYieldLeave;
417
413
  [ExtrinsicType.UNSTAKE_SDOT]: RequestYieldLeave;
418
414
  [ExtrinsicType.UNSTAKE_STDOT]: RequestYieldLeave;
419
- [ExtrinsicType.UNSTAKE_VMANTA]: RequestYieldLeave;
420
415
  [ExtrinsicType.REDEEM_VDOT]: RequestYieldLeave;
421
416
  [ExtrinsicType.REDEEM_QDOT]: RequestYieldLeave;
422
417
  [ExtrinsicType.REDEEM_LDOT]: RequestYieldLeave;
423
418
  [ExtrinsicType.REDEEM_SDOT]: RequestYieldLeave;
424
419
  [ExtrinsicType.REDEEM_STDOT]: RequestYieldLeave;
425
- [ExtrinsicType.REDEEM_VMANTA]: RequestYieldLeave;
426
420
  [ExtrinsicType.TOKEN_APPROVE]: TokenApproveData;
427
421
  [ExtrinsicType.EVM_EXECUTE]: TransactionConfig;
428
422
  [ExtrinsicType.CROWDLOAN]: any;
@@ -476,19 +470,16 @@ export declare type TransactionAdditionalInfo = {
476
470
  [ExtrinsicType.TRANSFER_XCM]: XCMTransactionAdditionalInfo;
477
471
  [ExtrinsicType.SEND_NFT]: NFTTransactionAdditionalInfo;
478
472
  [ExtrinsicType.MINT_VDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
479
- [ExtrinsicType.MINT_VMANTA]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
480
473
  [ExtrinsicType.MINT_QDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
481
474
  [ExtrinsicType.MINT_SDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
482
475
  [ExtrinsicType.MINT_LDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
483
476
  [ExtrinsicType.MINT_STDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
484
477
  [ExtrinsicType.REDEEM_VDOT]: LeavePoolAdditionalData;
485
- [ExtrinsicType.REDEEM_VMANTA]: LeavePoolAdditionalData;
486
478
  [ExtrinsicType.REDEEM_QDOT]: LeavePoolAdditionalData;
487
479
  [ExtrinsicType.REDEEM_SDOT]: LeavePoolAdditionalData;
488
480
  [ExtrinsicType.REDEEM_LDOT]: LeavePoolAdditionalData;
489
481
  [ExtrinsicType.REDEEM_STDOT]: LeavePoolAdditionalData;
490
482
  [ExtrinsicType.UNSTAKE_VDOT]: LeavePoolAdditionalData;
491
- [ExtrinsicType.UNSTAKE_VMANTA]: LeavePoolAdditionalData;
492
483
  [ExtrinsicType.UNSTAKE_QDOT]: LeavePoolAdditionalData;
493
484
  [ExtrinsicType.UNSTAKE_SDOT]: LeavePoolAdditionalData;
494
485
  [ExtrinsicType.UNSTAKE_LDOT]: LeavePoolAdditionalData;
@@ -81,19 +81,16 @@ export let ExtrinsicType;
81
81
  ExtrinsicType["MINT_SDOT"] = "earn.mint_sdot";
82
82
  ExtrinsicType["MINT_QDOT"] = "earn.mint_qdot";
83
83
  ExtrinsicType["MINT_STDOT"] = "earn.mint_stdot";
84
- ExtrinsicType["MINT_VMANTA"] = "earn.mint_vmanta";
85
84
  ExtrinsicType["REDEEM_QDOT"] = "earn.redeem_qdot";
86
85
  ExtrinsicType["REDEEM_VDOT"] = "earn.redeem_vdot";
87
86
  ExtrinsicType["REDEEM_LDOT"] = "earn.redeem_ldot";
88
87
  ExtrinsicType["REDEEM_SDOT"] = "earn.redeem_sdot";
89
88
  ExtrinsicType["REDEEM_STDOT"] = "earn.redeem_stdot";
90
- ExtrinsicType["REDEEM_VMANTA"] = "earn.redeem_vmanta";
91
89
  ExtrinsicType["UNSTAKE_QDOT"] = "earn.unstake_qdot";
92
90
  ExtrinsicType["UNSTAKE_VDOT"] = "earn.unstake_vdot";
93
91
  ExtrinsicType["UNSTAKE_LDOT"] = "earn.unstake_ldot";
94
92
  ExtrinsicType["UNSTAKE_SDOT"] = "earn.unstake_sdot";
95
93
  ExtrinsicType["UNSTAKE_STDOT"] = "earn.unstake_stdot";
96
- ExtrinsicType["UNSTAKE_VMANTA"] = "earn.unstake_vmanta";
97
94
  ExtrinsicType["TOKEN_APPROVE"] = "evm.token_approve";
98
95
  ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
99
96
  ExtrinsicType["UNKNOWN"] = "unknown";
@@ -95,19 +95,16 @@ exports.ExtrinsicType = ExtrinsicType;
95
95
  ExtrinsicType["MINT_SDOT"] = "earn.mint_sdot";
96
96
  ExtrinsicType["MINT_QDOT"] = "earn.mint_qdot";
97
97
  ExtrinsicType["MINT_STDOT"] = "earn.mint_stdot";
98
- ExtrinsicType["MINT_VMANTA"] = "earn.mint_vmanta";
99
98
  ExtrinsicType["REDEEM_QDOT"] = "earn.redeem_qdot";
100
99
  ExtrinsicType["REDEEM_VDOT"] = "earn.redeem_vdot";
101
100
  ExtrinsicType["REDEEM_LDOT"] = "earn.redeem_ldot";
102
101
  ExtrinsicType["REDEEM_SDOT"] = "earn.redeem_sdot";
103
102
  ExtrinsicType["REDEEM_STDOT"] = "earn.redeem_stdot";
104
- ExtrinsicType["REDEEM_VMANTA"] = "earn.redeem_vmanta";
105
103
  ExtrinsicType["UNSTAKE_QDOT"] = "earn.unstake_qdot";
106
104
  ExtrinsicType["UNSTAKE_VDOT"] = "earn.unstake_vdot";
107
105
  ExtrinsicType["UNSTAKE_LDOT"] = "earn.unstake_ldot";
108
106
  ExtrinsicType["UNSTAKE_SDOT"] = "earn.unstake_sdot";
109
107
  ExtrinsicType["UNSTAKE_STDOT"] = "earn.unstake_stdot";
110
- ExtrinsicType["UNSTAKE_VMANTA"] = "earn.unstake_vmanta";
111
108
  ExtrinsicType["TOKEN_APPROVE"] = "evm.token_approve";
112
109
  ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
113
110
  ExtrinsicType["UNKNOWN"] = "unknown";
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -11,8 +10,6 @@ exports.syntheticSelectedValidators = void 0;
11
10
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
12
11
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
13
12
  var _types = require("@subwallet/extension-base/types");
14
- var _utils2 = require("@subwallet/extension-base/utils");
15
- var _bignumber = _interopRequireDefault(require("bignumber.js"));
16
13
  // Copyright 2019-2022 @subwallet/extension-base
17
14
  // SPDX-License-Identifier: Apache-2.0
18
15
 
@@ -43,7 +40,7 @@ function convertDerivativeToOriginToken(amount, poolInfo, derivativeTokenInfo, o
43
40
  const derivativeDecimals = (0, _utils._getAssetDecimals)(derivativeTokenInfo);
44
41
  const originDecimals = (0, _utils._getAssetDecimals)(originTokenInfo);
45
42
  const exchangeRate = ((_poolInfo$statistic = poolInfo.statistic) === null || _poolInfo$statistic === void 0 ? void 0 : (_poolInfo$statistic$a = _poolInfo$statistic.assetEarning) === null || _poolInfo$statistic$a === void 0 ? void 0 : _poolInfo$statistic$a[0].exchangeRate) || 1;
46
- const formattedAmount = new _bignumber.default(amount).dividedBy(_utils2.BN_TEN.pow(derivativeDecimals)); // TODO: decimals
47
- const minAmount = formattedAmount.multipliedBy(exchangeRate);
48
- return minAmount.multipliedBy(_utils2.BN_TEN.pow(originDecimals)).toFixed(0);
43
+ const formattedAmount = parseInt(amount) / 10 ** derivativeDecimals; // TODO: decimals
44
+ const minAmount = formattedAmount * exchangeRate;
45
+ return Math.floor(minAmount * 10 ** originDecimals);
49
46
  }
@@ -10,7 +10,6 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
10
10
  var _utils = require("@subwallet/extension-base/koni/api/yield/helper/utils");
11
11
  var _types = require("@subwallet/extension-base/types");
12
12
  var _utils2 = require("@subwallet/extension-base/utils");
13
- var _bignumber = _interopRequireDefault(require("bignumber.js"));
14
13
  var _i18next = require("i18next");
15
14
  var _util = require("@polkadot/util");
16
15
  var _special = _interopRequireDefault(require("../special"));
@@ -39,7 +38,7 @@ class BaseLiquidStakingPoolHandler extends _special.default {
39
38
  return Promise.reject(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INVALID_PARAMS));
40
39
  }
41
40
  const formattedMinAmount = (0, _utils.convertDerivativeToOriginToken)(amount, poolInfo, derivativeTokenInfo, originTokenInfo);
42
- return new _bignumber.default(formattedMinAmount).multipliedBy(this.minAmountPercent).toFixed(0);
41
+ return Math.floor(this.minAmountPercent * formattedMinAmount);
43
42
  }
44
43
  async validateYieldLeave(amount, address, fastLeave, selectedTarget) {
45
44
  const poolInfo = await this.getPoolInfo();
@@ -41,7 +41,7 @@ class BifrostLiquidStakingPoolHandler extends _base.default {
41
41
  super(state, chain);
42
42
  const chainInfo = this.chainInfo;
43
43
  this.slug = `DOT___liquid_staking___${chain}`;
44
- this.name = `${chainInfo.name} Liquid Staking DOT`;
44
+ this.name = `${chainInfo.name} Liquid Staking`;
45
45
  this.shortName = chainInfo.name.replaceAll(' Relay Chain', '');
46
46
  }
47
47
  getDescription() {
@@ -100,7 +100,6 @@ class BifrostLiquidStakingPoolHandler extends _base.default {
100
100
  unstakingPeriod: 24 * 28,
101
101
  maxCandidatePerFarmer: 1,
102
102
  maxWithdrawalRequestPerFarmer: 1,
103
- farmerCount: vDOTStats.holders,
104
103
  earningThreshold: {
105
104
  join: minimumMint,
106
105
  defaultUnstake: minimumRedeem,
@@ -16,12 +16,6 @@ Object.defineProperty(exports, "BifrostLiquidStakingPoolHandler", {
16
16
  return _bifrost.default;
17
17
  }
18
18
  });
19
- Object.defineProperty(exports, "BifrostMantaLiquidStakingPoolHandler", {
20
- enumerable: true,
21
- get: function () {
22
- return _bifrostManta.default;
23
- }
24
- });
25
19
  Object.defineProperty(exports, "ParallelLiquidStakingPoolHandler", {
26
20
  enumerable: true,
27
21
  get: function () {
@@ -36,6 +30,5 @@ Object.defineProperty(exports, "StellaSwapLiquidStakingPoolHandler", {
36
30
  });
37
31
  var _acala = _interopRequireDefault(require("./acala"));
38
32
  var _bifrost = _interopRequireDefault(require("./bifrost"));
39
- var _bifrostManta = _interopRequireDefault(require("./bifrost-manta"));
40
33
  var _parallel = _interopRequireDefault(require("./parallel"));
41
34
  var _stellaSwap = _interopRequireDefault(require("./stella-swap"));
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _chainList = require("@subwallet/chain-list");
8
9
  var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
9
10
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
10
11
  var _constants = require("@subwallet/extension-base/constants");
@@ -207,16 +208,13 @@ class BaseSpecialStakingPoolHandler extends _base.default {
207
208
  const altInputTokenBalance = await this.state.balanceService.getTokenFreeBalance(address, altInputTokenInfo.originChain, altInputTokenSlug);
208
209
  const bnAltInputTokenBalance = new _util.BN(altInputTokenBalance.value || '0');
209
210
  if (bnAltInputTokenBalance.gt(_util.BN_ZERO)) {
210
- const altChainInfo = this.state.getChainInfo(altInputTokenInfo.originChain);
211
- const symbol = altInputTokenInfo.symbol;
212
- const networkName = altChainInfo.name;
213
211
  const step = {
214
212
  metadata: {
215
213
  sendingValue: bnAmount.toString(),
216
214
  originTokenInfo: altInputTokenInfo,
217
215
  destinationTokenInfo: inputTokenInfo
218
216
  },
219
- name: `Transfer ${symbol} from ${networkName}`,
217
+ name: 'Transfer DOT from Polkadot',
220
218
  type: _types.YieldStepType.XCM
221
219
  };
222
220
  const xcmOriginSubstrateApi = await this.state.getSubstrateApi(altInputTokenInfo.originChain).isReady;
@@ -413,9 +411,7 @@ class BaseSpecialStakingPoolHandler extends _base.default {
413
411
  amount
414
412
  } = data;
415
413
  const destinationTokenSlug = this.inputAsset;
416
- const altInputTokenSlug = this.altInputAsset || '';
417
- const altInputTokenInfo = this.state.getAssetBySlug(altInputTokenSlug);
418
- const originChainInfo = this.state.getChainInfo(altInputTokenInfo.originChain);
414
+ const originChainInfo = this.state.getChainInfo(_chainList.COMMON_CHAIN_SLUGS.POLKADOT);
419
415
  const originTokenSlug = (0, _utils2._getChainNativeTokenSlug)(originChainInfo);
420
416
  const originTokenInfo = this.state.getAssetBySlug(originTokenSlug);
421
417
  const destinationTokenInfo = this.state.getAssetBySlug(destinationTokenSlug);
@@ -77,7 +77,6 @@ class EarningService {
77
77
  if (_constants2._STAKING_CHAIN_GROUP.liquidStaking.includes(chain)) {
78
78
  if (chain === 'bifrost_dot') {
79
79
  handlers.push(new _handlers.BifrostLiquidStakingPoolHandler(this.state, chain));
80
- handlers.push(new _handlers.BifrostMantaLiquidStakingPoolHandler(this.state, chain));
81
80
  }
82
81
  if (chain === 'acala') {
83
82
  handlers.push(new _handlers.AcalaLiquidStakingPoolHandler(this.state, chain));
@@ -529,7 +529,6 @@ class TransactionService {
529
529
  case _KoniTypes.ExtrinsicType.MINT_QDOT:
530
530
  case _KoniTypes.ExtrinsicType.MINT_LDOT:
531
531
  case _KoniTypes.ExtrinsicType.MINT_SDOT:
532
- case _KoniTypes.ExtrinsicType.MINT_VMANTA:
533
532
 
534
533
  // eslint-disable-next-line no-fallthrough
535
534
  case _KoniTypes.ExtrinsicType.MINT_VDOT:
@@ -583,14 +582,12 @@ class TransactionService {
583
582
  break;
584
583
  }
585
584
  case _KoniTypes.ExtrinsicType.UNSTAKE_VDOT:
586
- case _KoniTypes.ExtrinsicType.UNSTAKE_VMANTA:
587
585
  case _KoniTypes.ExtrinsicType.UNSTAKE_LDOT:
588
586
  case _KoniTypes.ExtrinsicType.UNSTAKE_SDOT:
589
587
  case _KoniTypes.ExtrinsicType.UNSTAKE_STDOT:
590
588
  case _KoniTypes.ExtrinsicType.REDEEM_STDOT:
591
589
  case _KoniTypes.ExtrinsicType.REDEEM_LDOT:
592
590
  case _KoniTypes.ExtrinsicType.REDEEM_SDOT:
593
- case _KoniTypes.ExtrinsicType.REDEEM_VMANTA:
594
591
 
595
592
  // eslint-disable-next-line no-fallthrough
596
593
  case _KoniTypes.ExtrinsicType.REDEEM_VDOT:
@@ -39,7 +39,6 @@ exports.YieldStepType = YieldStepType;
39
39
  YieldStepType["NOMINATE"] = "NOMINATE";
40
40
  YieldStepType["JOIN_NOMINATION_POOL"] = "JOIN_NOMINATION_POOL";
41
41
  YieldStepType["MINT_VDOT"] = "MINT_VDOT";
42
- YieldStepType["MINT_VMANTA"] = "MINT_VMANTA";
43
42
  YieldStepType["MINT_LDOT"] = "MINT_LDOT";
44
43
  YieldStepType["MINT_QDOT"] = "MINT_QDOT";
45
44
  YieldStepType["MINT_SDOT"] = "MINT_SDOT";
@@ -7,4 +7,4 @@ export declare const DEFAULT_YIELD_FIRST_STEP: YieldStepDetail;
7
7
  export declare const YIELD_EXTRINSIC_TYPES: ExtrinsicType[];
8
8
  export declare const YIELD_POOL_STAT_REFRESH_INTERVAL = 90000;
9
9
  export declare const YIELD_POOL_MIN_AMOUNT_PERCENT: Record<string, number>;
10
- export declare function convertDerivativeToOriginToken(amount: string, poolInfo: SpecialYieldPoolInfo, derivativeTokenInfo: _ChainAsset, originTokenInfo: _ChainAsset): string;
10
+ export declare function convertDerivativeToOriginToken(amount: string, poolInfo: SpecialYieldPoolInfo, derivativeTokenInfo: _ChainAsset, originTokenInfo: _ChainAsset): number;
@@ -4,8 +4,6 @@
4
4
  import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
5
5
  import { _getAssetDecimals } from '@subwallet/extension-base/services/chain-service/utils';
6
6
  import { YieldStepType } from '@subwallet/extension-base/types';
7
- import { BN_TEN } from '@subwallet/extension-base/utils';
8
- import BigN from 'bignumber.js';
9
7
  export const syntheticSelectedValidators = ['15MLn9YQaHZ4GMkhK3qXqR5iGGSdULyJ995ctjeBgFRseyi6', '1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih', '1yGJ3h7TQuJWLYSsUVPZbM8aR8UsQXCqMvrFx5Fn1ktiAmq', '16GDRhRYxk42paoK6TfHAqWej8PdDDUwdDazjv4bAn4KGNeb', '13Ybj8CPEArUee78DxUAP9yX3ABmFNVQME1ZH4w8HVncHGzc', '14yx4vPAACZRhoDQm1dyvXD3QdRQyCRRCe5tj1zPomhhS29a', '14Vh8S1DzzycngbAB9vqEgPFR9JpSvmF1ezihTUES1EaHAV', '153YD8ZHD9dRh82U419bSCB5SzWhbdAFzjj4NtA5pMazR2yC', '1LUckyocmz9YzeQZHVpBvYYRGXb3rnSm2tvfz79h3G3JDgP', '14oRE62MB1SWR6h5RTx3GY5HK2oZipi1Gp3zdiLwVYLfEyRZ', '1cFsLn7o74nmjbRyDtMAnMpQMc5ZLsjgCSz9Np2mcejUK83', '15ZvLonEseaWZNy8LDkXXj3Y8bmAjxCjwvpy4pXWSL4nGSBs', '1NebF2xZHb4TJJpiqZZ3reeTo8dZov6LZ49qZqcHHbsmHfo', '1HmAqbBRrWvsqbLkvpiVDkdA2PcctUE5JUe3qokEh1FN455', '15tfUt4iQNjMyhZiJGBf4EpETE2KqtW1nfJwbBT1MvWjvcK9', '12RXTLiaYh59PokjZVhQvKzcfBEB5CvDnjKKUmDUotzcTH3S'];
10
8
  export function calculateAlternativeFee(feeInfo) {
11
9
  return feeInfo.partialFee;
@@ -28,7 +26,7 @@ export function convertDerivativeToOriginToken(amount, poolInfo, derivativeToken
28
26
  const derivativeDecimals = _getAssetDecimals(derivativeTokenInfo);
29
27
  const originDecimals = _getAssetDecimals(originTokenInfo);
30
28
  const exchangeRate = ((_poolInfo$statistic = poolInfo.statistic) === null || _poolInfo$statistic === void 0 ? void 0 : (_poolInfo$statistic$a = _poolInfo$statistic.assetEarning) === null || _poolInfo$statistic$a === void 0 ? void 0 : _poolInfo$statistic$a[0].exchangeRate) || 1;
31
- const formattedAmount = new BigN(amount).dividedBy(BN_TEN.pow(derivativeDecimals)); // TODO: decimals
32
- const minAmount = formattedAmount.multipliedBy(exchangeRate);
33
- return minAmount.multipliedBy(BN_TEN.pow(originDecimals)).toFixed(0);
29
+ const formattedAmount = parseInt(amount) / 10 ** derivativeDecimals; // TODO: decimals
30
+ const minAmount = formattedAmount * exchangeRate;
31
+ return Math.floor(minAmount * 10 ** originDecimals);
34
32
  }
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "./cjs/detectPackage.js"
18
18
  ],
19
19
  "type": "module",
20
- "version": "1.1.33-beta.2",
20
+ "version": "1.1.33-beta.3",
21
21
  "main": "./cjs/index.js",
22
22
  "module": "./index.js",
23
23
  "types": "./index.d.ts",
@@ -755,11 +755,6 @@
755
755
  "require": "./cjs/services/earning-service/handlers/liquid-staking/bifrost.js",
756
756
  "default": "./services/earning-service/handlers/liquid-staking/bifrost.js"
757
757
  },
758
- "./services/earning-service/handlers/liquid-staking/bifrost-manta": {
759
- "types": "./services/earning-service/handlers/liquid-staking/bifrost-manta.d.ts",
760
- "require": "./cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js",
761
- "default": "./services/earning-service/handlers/liquid-staking/bifrost-manta.js"
762
- },
763
758
  "./services/earning-service/handlers/liquid-staking/parallel": {
764
759
  "types": "./services/earning-service/handlers/liquid-staking/parallel.d.ts",
765
760
  "require": "./cjs/services/earning-service/handlers/liquid-staking/parallel.js",
@@ -1721,7 +1716,7 @@
1721
1716
  "@reduxjs/toolkit": "^1.9.1",
1722
1717
  "@sora-substrate/type-definitions": "^1.17.7",
1723
1718
  "@substrate/connect": "^0.7.26",
1724
- "@subwallet/chain-list": "0.2.40-beta.2",
1719
+ "@subwallet/chain-list": "0.2.39",
1725
1720
  "@subwallet/extension-base": "^1.1.33-0",
1726
1721
  "@subwallet/extension-chains": "^1.1.33-0",
1727
1722
  "@subwallet/extension-dapp": "^1.1.33-0",
@@ -6,6 +6,6 @@ export default abstract class BaseLiquidStakingPoolHandler extends BaseSpecialSt
6
6
  /** Rate convert token when redeem */
7
7
  readonly minAmountPercent: number;
8
8
  static get defaultMinAmountPercent(): number;
9
- createParamToRedeem(amount: string, address: string): Promise<string>;
9
+ createParamToRedeem(amount: string, address: string): Promise<number>;
10
10
  validateYieldLeave(amount: string, address: string, fastLeave: boolean, selectedTarget?: string): Promise<TransactionError[]>;
11
11
  }
@@ -6,7 +6,6 @@ import { BasicTxErrorType, StakingTxErrorType } from '@subwallet/extension-base/
6
6
  import { convertDerivativeToOriginToken } from '@subwallet/extension-base/koni/api/yield/helper/utils';
7
7
  import { YieldPoolType } from '@subwallet/extension-base/types';
8
8
  import { formatNumber } from '@subwallet/extension-base/utils';
9
- import BigN from 'bignumber.js';
10
9
  import { t } from 'i18next';
11
10
  import { BN, BN_ZERO } from '@polkadot/util';
12
11
  import BaseSpecialStakingPoolHandler from "../special.js";
@@ -32,7 +31,7 @@ export default class BaseLiquidStakingPoolHandler extends BaseSpecialStakingPool
32
31
  return Promise.reject(new TransactionError(BasicTxErrorType.INVALID_PARAMS));
33
32
  }
34
33
  const formattedMinAmount = convertDerivativeToOriginToken(amount, poolInfo, derivativeTokenInfo, originTokenInfo);
35
- return new BigN(formattedMinAmount).multipliedBy(this.minAmountPercent).toFixed(0);
34
+ return Math.floor(this.minAmountPercent * formattedMinAmount);
36
35
  }
37
36
  async validateYieldLeave(amount, address, fastLeave, selectedTarget) {
38
37
  const poolInfo = await this.getPoolInfo();
@@ -24,14 +24,14 @@ export interface BifrostVtokenExchangeRate {
24
24
  }
25
25
  export default class BifrostLiquidStakingPoolHandler extends BaseLiquidStakingPoolHandler {
26
26
  slug: string;
27
- protected name: string;
28
- protected shortName: string;
27
+ protected readonly name: string;
28
+ protected readonly shortName: string;
29
29
  protected readonly altInputAsset: string;
30
30
  protected readonly derivativeAssets: string[];
31
31
  protected readonly inputAsset: string;
32
32
  protected readonly rewardAssets: string[];
33
33
  protected readonly feeAssets: string[];
34
- readonly minAmountPercent: number;
34
+ readonly minAmountPercent = 0.99;
35
35
  protected readonly availableMethod: YieldPoolMethodInfo;
36
36
  protected readonly rateDecimals = 0;
37
37
  constructor(state: KoniState, chain: string);
@@ -34,7 +34,7 @@ export default class BifrostLiquidStakingPoolHandler extends BaseLiquidStakingPo
34
34
  super(state, chain);
35
35
  const chainInfo = this.chainInfo;
36
36
  this.slug = `DOT___liquid_staking___${chain}`;
37
- this.name = `${chainInfo.name} Liquid Staking DOT`;
37
+ this.name = `${chainInfo.name} Liquid Staking`;
38
38
  this.shortName = chainInfo.name.replaceAll(' Relay Chain', '');
39
39
  }
40
40
  getDescription() {
@@ -93,7 +93,6 @@ export default class BifrostLiquidStakingPoolHandler extends BaseLiquidStakingPo
93
93
  unstakingPeriod: 24 * 28,
94
94
  maxCandidatePerFarmer: 1,
95
95
  maxWithdrawalRequestPerFarmer: 1,
96
- farmerCount: vDOTStats.holders,
97
96
  earningThreshold: {
98
97
  join: minimumMint,
99
98
  defaultUnstake: minimumRedeem,
@@ -1,5 +1,4 @@
1
1
  export { default as AcalaLiquidStakingPoolHandler } from './acala';
2
2
  export { default as BifrostLiquidStakingPoolHandler } from './bifrost';
3
- export { default as BifrostMantaLiquidStakingPoolHandler } from './bifrost-manta';
4
3
  export { default as ParallelLiquidStakingPoolHandler } from './parallel';
5
4
  export { default as StellaSwapLiquidStakingPoolHandler } from './stella-swap';
@@ -3,6 +3,5 @@
3
3
 
4
4
  export { default as AcalaLiquidStakingPoolHandler } from "./acala.js";
5
5
  export { default as BifrostLiquidStakingPoolHandler } from "./bifrost.js";
6
- export { default as BifrostMantaLiquidStakingPoolHandler } from "./bifrost-manta.js";
7
6
  export { default as ParallelLiquidStakingPoolHandler } from "./parallel.js";
8
7
  export { default as StellaSwapLiquidStakingPoolHandler } from "./stella-swap.js";
@@ -1,6 +1,7 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-base
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
+ import { COMMON_CHAIN_SLUGS } from '@subwallet/chain-list';
4
5
  import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
5
6
  import { BasicTxErrorType, ChainType, ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
6
7
  import { ALL_ACCOUNT_KEY } from '@subwallet/extension-base/constants';
@@ -200,16 +201,13 @@ export default class BaseSpecialStakingPoolHandler extends BasePoolHandler {
200
201
  const altInputTokenBalance = await this.state.balanceService.getTokenFreeBalance(address, altInputTokenInfo.originChain, altInputTokenSlug);
201
202
  const bnAltInputTokenBalance = new BN(altInputTokenBalance.value || '0');
202
203
  if (bnAltInputTokenBalance.gt(BN_ZERO)) {
203
- const altChainInfo = this.state.getChainInfo(altInputTokenInfo.originChain);
204
- const symbol = altInputTokenInfo.symbol;
205
- const networkName = altChainInfo.name;
206
204
  const step = {
207
205
  metadata: {
208
206
  sendingValue: bnAmount.toString(),
209
207
  originTokenInfo: altInputTokenInfo,
210
208
  destinationTokenInfo: inputTokenInfo
211
209
  },
212
- name: `Transfer ${symbol} from ${networkName}`,
210
+ name: 'Transfer DOT from Polkadot',
213
211
  type: YieldStepType.XCM
214
212
  };
215
213
  const xcmOriginSubstrateApi = await this.state.getSubstrateApi(altInputTokenInfo.originChain).isReady;
@@ -406,9 +404,7 @@ export default class BaseSpecialStakingPoolHandler extends BasePoolHandler {
406
404
  amount
407
405
  } = data;
408
406
  const destinationTokenSlug = this.inputAsset;
409
- const altInputTokenSlug = this.altInputAsset || '';
410
- const altInputTokenInfo = this.state.getAssetBySlug(altInputTokenSlug);
411
- const originChainInfo = this.state.getChainInfo(altInputTokenInfo.originChain);
407
+ const originChainInfo = this.state.getChainInfo(COMMON_CHAIN_SLUGS.POLKADOT);
412
408
  const originTokenSlug = _getChainNativeTokenSlug(originChainInfo);
413
409
  const originTokenInfo = this.state.getAssetBySlug(originTokenSlug);
414
410
  const destinationTokenInfo = this.state.getAssetBySlug(destinationTokenSlug);
@@ -12,7 +12,7 @@ import { YieldPoolType } from '@subwallet/extension-base/types';
12
12
  import { addLazy, categoryAddresses, createPromiseHandler } from '@subwallet/extension-base/utils';
13
13
  import fetch from 'cross-fetch';
14
14
  import { BehaviorSubject } from 'rxjs';
15
- import { AcalaLiquidStakingPoolHandler, AmplitudeNativeStakingPoolHandler, AstarNativeStakingPoolHandler, BifrostLiquidStakingPoolHandler, BifrostMantaLiquidStakingPoolHandler, InterlayLendingPoolHandler, NominationPoolHandler, ParallelLiquidStakingPoolHandler, ParaNativeStakingPoolHandler, RelayNativeStakingPoolHandler, StellaSwapLiquidStakingPoolHandler } from "./handlers/index.js";
15
+ import { AcalaLiquidStakingPoolHandler, AmplitudeNativeStakingPoolHandler, AstarNativeStakingPoolHandler, BifrostLiquidStakingPoolHandler, InterlayLendingPoolHandler, NominationPoolHandler, ParallelLiquidStakingPoolHandler, ParaNativeStakingPoolHandler, RelayNativeStakingPoolHandler, StellaSwapLiquidStakingPoolHandler } from "./handlers/index.js";
16
16
  const POOLS_DATA_URLS = 'https://sw-static-cache.pages.dev/earning/yield-pools.json';
17
17
  const fetchPoolsData = async () => {
18
18
  const res = await fetch(POOLS_DATA_URLS);
@@ -70,7 +70,6 @@ export default class EarningService {
70
70
  if (_STAKING_CHAIN_GROUP.liquidStaking.includes(chain)) {
71
71
  if (chain === 'bifrost_dot') {
72
72
  handlers.push(new BifrostLiquidStakingPoolHandler(this.state, chain));
73
- handlers.push(new BifrostMantaLiquidStakingPoolHandler(this.state, chain));
74
73
  }
75
74
  if (chain === 'acala') {
76
75
  handlers.push(new AcalaLiquidStakingPoolHandler(this.state, chain));
@@ -522,7 +522,6 @@ export default class TransactionService {
522
522
  case ExtrinsicType.MINT_QDOT:
523
523
  case ExtrinsicType.MINT_LDOT:
524
524
  case ExtrinsicType.MINT_SDOT:
525
- case ExtrinsicType.MINT_VMANTA:
526
525
 
527
526
  // eslint-disable-next-line no-fallthrough
528
527
  case ExtrinsicType.MINT_VDOT:
@@ -576,14 +575,12 @@ export default class TransactionService {
576
575
  break;
577
576
  }
578
577
  case ExtrinsicType.UNSTAKE_VDOT:
579
- case ExtrinsicType.UNSTAKE_VMANTA:
580
578
  case ExtrinsicType.UNSTAKE_LDOT:
581
579
  case ExtrinsicType.UNSTAKE_SDOT:
582
580
  case ExtrinsicType.UNSTAKE_STDOT:
583
581
  case ExtrinsicType.REDEEM_STDOT:
584
582
  case ExtrinsicType.REDEEM_LDOT:
585
583
  case ExtrinsicType.REDEEM_SDOT:
586
- case ExtrinsicType.REDEEM_VMANTA:
587
584
 
588
585
  // eslint-disable-next-line no-fallthrough
589
586
  case ExtrinsicType.REDEEM_VDOT:
@@ -39,7 +39,6 @@ export declare enum YieldStepType {
39
39
  NOMINATE = "NOMINATE",
40
40
  JOIN_NOMINATION_POOL = "JOIN_NOMINATION_POOL",
41
41
  MINT_VDOT = "MINT_VDOT",
42
- MINT_VMANTA = "MINT_VMANTA",
43
42
  MINT_LDOT = "MINT_LDOT",
44
43
  MINT_QDOT = "MINT_QDOT",
45
44
  MINT_SDOT = "MINT_SDOT",
@@ -38,7 +38,6 @@ export let YieldStepType;
38
38
  YieldStepType["NOMINATE"] = "NOMINATE";
39
39
  YieldStepType["JOIN_NOMINATION_POOL"] = "JOIN_NOMINATION_POOL";
40
40
  YieldStepType["MINT_VDOT"] = "MINT_VDOT";
41
- YieldStepType["MINT_VMANTA"] = "MINT_VMANTA";
42
41
  YieldStepType["MINT_LDOT"] = "MINT_LDOT";
43
42
  YieldStepType["MINT_QDOT"] = "MINT_QDOT";
44
43
  YieldStepType["MINT_SDOT"] = "MINT_SDOT";
@@ -1,37 +0,0 @@
1
- import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
2
- import KoniState from '@subwallet/extension-base/koni/background/handlers/State';
3
- import { BaseYieldStepDetail, HandleYieldStepData, LiquidYieldPoolInfo, OptimalYieldPath, SubmitYieldJoinData, TransactionData } from '@subwallet/extension-base/types';
4
- import BifrostLiquidStakingPoolHandler from './bifrost';
5
- export interface BifrostLiquidStakingMeta {
6
- apy: string;
7
- apyBase: string;
8
- apyReward: string;
9
- tvl: number;
10
- tvm: number;
11
- holders: number;
12
- }
13
- export interface BifrostVtokenExchangeRateResp {
14
- ratio: BifrostVtokenExchangeRate[];
15
- }
16
- export interface BifrostVtokenExchangeRate {
17
- ratio: string;
18
- key: string;
19
- timestamp: string;
20
- total_issuance: number;
21
- token_pool: number;
22
- }
23
- export default class BifrostMantaLiquidStakingPoolHandler extends BifrostLiquidStakingPoolHandler {
24
- protected readonly altInputAsset: string;
25
- protected readonly derivativeAssets: string[];
26
- protected readonly inputAsset: string;
27
- protected readonly rewardAssets: string[];
28
- protected readonly feeAssets: string[];
29
- readonly minAmountPercent: number;
30
- constructor(state: KoniState, chain: string);
31
- protected getDescription(): string;
32
- getPoolStat(): Promise<LiquidYieldPoolInfo>;
33
- get submitJoinStepInfo(): BaseYieldStepDetail;
34
- handleSubmitStep(data: SubmitYieldJoinData, path: OptimalYieldPath): Promise<HandleYieldStepData>;
35
- handleYieldRedeem(amount: string, address: string, selectedTarget?: string): Promise<[ExtrinsicType, TransactionData]>;
36
- handleYieldUnstake(amount: string, address: string, selectedTarget?: string): Promise<[ExtrinsicType, TransactionData]>;
37
- }
@@ -1,132 +0,0 @@
1
- // Copyright 2019-2022 @subwallet/extension-base
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { ChainType, ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
5
- import { _getAssetDecimals, _getTokenOnChainInfo } from '@subwallet/extension-base/services/chain-service/utils';
6
- import { YieldStepType } from '@subwallet/extension-base/types';
7
- import fetch from 'cross-fetch';
8
- import BifrostLiquidStakingPoolHandler from "./bifrost.js";
9
- const STATS_URL = 'https://api.bifrost.app/api/site';
10
- const RATIO_URL = 'https://api.bifrost.app/api/omni/MANTA';
11
- export default class BifrostMantaLiquidStakingPoolHandler extends BifrostLiquidStakingPoolHandler {
12
- altInputAsset = 'manta_network-NATIVE-MANTA';
13
- derivativeAssets = ['bifrost_dot-LOCAL-vMANTA'];
14
- inputAsset = 'bifrost_dot-LOCAL-MANTA';
15
- rewardAssets = ['bifrost_dot-LOCAL-MANTA'];
16
- feeAssets = ['bifrost_dot-NATIVE-BNC', 'bifrost_dot-LOCAL-MANTA'];
17
- minAmountPercent = 0.985;
18
- constructor(state, chain) {
19
- super(state, chain);
20
- const chainInfo = this.chainInfo;
21
- this.slug = `MANTA___liquid_staking___${chain}`;
22
- this.name = `${chainInfo.name} Liquid Staking Manta`;
23
- this.shortName = chainInfo.name.replaceAll(' Relay Chain', '');
24
- }
25
- getDescription() {
26
- return 'Stake MANTA to earn yield on vMANTA';
27
- }
28
-
29
- /* Subscribe pool info */
30
-
31
- async getPoolStat() {
32
- const substrateApi = await this.substrateApi.isReady;
33
- const stakingMetaPromise = new Promise(function (resolve) {
34
- fetch(STATS_URL, {
35
- method: 'GET'
36
- }).then(res => {
37
- resolve(res.json());
38
- }).catch(console.error);
39
- });
40
- const exchangeRatePromise = new Promise(function (resolve) {
41
- fetch(RATIO_URL, {
42
- method: 'GET'
43
- }).then(resp => {
44
- resolve(resp.json());
45
- }).catch(console.error);
46
- });
47
- const derivativeTokenInfo = this.state.getAssetBySlug(this.derivativeAssets[0]);
48
- const inputTokenInfo = this.state.getAssetBySlug(this.inputAsset);
49
- const [_stakingMeta, _exchangeRate, _minimumRedeem, _minimumMint] = await Promise.all([stakingMetaPromise, exchangeRatePromise, substrateApi.api.query.vtokenMinting.minimumRedeem(_getTokenOnChainInfo(derivativeTokenInfo)), substrateApi.api.query.vtokenMinting.minimumMint(_getTokenOnChainInfo(inputTokenInfo))]);
50
- const minimumRedeem = _minimumRedeem.toString();
51
- const minimumMint = _minimumMint.toString();
52
- const stakingMeta = _stakingMeta;
53
- const exchangeRate = _exchangeRate;
54
- const vMANTAStats = stakingMeta.vMANTA;
55
- const assetInfo = this.state.getAssetBySlug(this.inputAsset);
56
- const assetDecimals = 10 ** _getAssetDecimals(assetInfo);
57
- const rate = parseFloat(exchangeRate.ratio[exchangeRate.ratio.length - 1].ratio); // TODO
58
-
59
- this.updateExchangeRate(rate);
60
- return {
61
- ...this.baseInfo,
62
- type: this.type,
63
- metadata: {
64
- ...this.metadataInfo,
65
- description: this.getDescription()
66
- },
67
- statistic: {
68
- assetEarning: [{
69
- slug: this.rewardAssets[0],
70
- apy: parseFloat(vMANTAStats.apyBase),
71
- exchangeRate: rate
72
- }],
73
- farmerCount: vMANTAStats.holders,
74
- unstakingPeriod: 24 * 7,
75
- maxCandidatePerFarmer: 1,
76
- maxWithdrawalRequestPerFarmer: 1,
77
- earningThreshold: {
78
- join: minimumMint,
79
- defaultUnstake: minimumRedeem,
80
- fastUnstake: '0'
81
- },
82
- totalApy: parseFloat(vMANTAStats.apyBase),
83
- tvl: (vMANTAStats.tvm * assetDecimals).toString()
84
- }
85
- };
86
- }
87
-
88
- /* Subscribe pool info */
89
-
90
- /* Join pool action */
91
-
92
- get submitJoinStepInfo() {
93
- return {
94
- name: 'Mint vMANTA',
95
- type: YieldStepType.MINT_VMANTA
96
- };
97
- }
98
- async handleSubmitStep(data, path) {
99
- const substrateApi = await this.substrateApi.isReady;
100
- const inputTokenSlug = this.inputAsset;
101
- const inputTokenInfo = this.state.getAssetBySlug(inputTokenSlug);
102
- const extrinsic = substrateApi.api.tx.vtokenMinting.mint(_getTokenOnChainInfo(inputTokenInfo), data.amount, undefined, undefined);
103
- return {
104
- txChain: this.chain,
105
- extrinsicType: ExtrinsicType.MINT_VMANTA,
106
- extrinsic,
107
- txData: data,
108
- transferNativeAmount: '0',
109
- chainType: ChainType.SUBSTRATE
110
- };
111
- }
112
-
113
- /* Join pool action */
114
-
115
- /* Leave pool action */
116
-
117
- async handleYieldRedeem(amount, address, selectedTarget) {
118
- const substrateApi = await this.substrateApi.isReady;
119
- const weightedMinAmount = await this.createParamToRedeem(amount, address);
120
- const extrinsic = substrateApi.api.tx.stablePool.swap(5, 1, 0, amount, weightedMinAmount);
121
- return [ExtrinsicType.REDEEM_VMANTA, extrinsic];
122
- }
123
- async handleYieldUnstake(amount, address, selectedTarget) {
124
- const chainApi = await this.substrateApi.isReady;
125
- const derivativeTokenSlug = this.derivativeAssets[0];
126
- const derivativeTokenInfo = this.state.getAssetBySlug(derivativeTokenSlug);
127
- const extrinsic = chainApi.api.tx.vtokenMinting.redeem(_getTokenOnChainInfo(derivativeTokenInfo), amount);
128
- return [ExtrinsicType.UNSTAKE_VMANTA, extrinsic];
129
- }
130
-
131
- /* Leave pool action */
132
- }