@subwallet/extension-base 1.1.28-beta.1 → 1.1.28-beta.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.
- package/background/KoniTypes.d.ts +9 -7
- package/cjs/koni/api/yield/helper/utils.js +2 -2
- package/cjs/koni/background/handlers/Extension.js +25 -1
- package/cjs/services/earning-service/constants/chains.js +2 -2
- package/cjs/services/earning-service/handlers/base.js +24 -6
- package/cjs/services/earning-service/handlers/lending/interlay.js +9 -7
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +9 -7
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +5 -1
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +9 -7
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +9 -7
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +9 -7
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +23 -9
- package/cjs/services/earning-service/handlers/native-staking/astar.js +28 -8
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +5 -5
- package/cjs/services/earning-service/handlers/native-staking/base.js +11 -1
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +21 -7
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +35 -18
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +34 -14
- package/cjs/services/earning-service/handlers/special.js +32 -8
- package/cjs/services/earning-service/service.js +41 -17
- package/cjs/services/earning-service/utils/index.js +18 -1
- package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +21 -0
- package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +21 -0
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/storage-service/DatabaseService.js +4 -0
- package/cjs/services/transaction-service/index.js +3 -3
- package/cjs/types/yield/actions/join/step.js +10 -0
- package/cjs/types/yield/info/base.js +7 -0
- package/cjs/utils/yield/index.js +3 -0
- package/koni/api/yield/helper/utils.js +2 -2
- package/koni/background/handlers/Extension.d.ts +2 -0
- package/koni/background/handlers/Extension.js +25 -1
- package/package.json +11 -1
- package/services/earning-service/constants/chains.js +2 -2
- package/services/earning-service/handlers/base.d.ts +6 -4
- package/services/earning-service/handlers/base.js +24 -6
- package/services/earning-service/handlers/lending/interlay.d.ts +1 -1
- package/services/earning-service/handlers/lending/interlay.js +9 -7
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +2 -2
- package/services/earning-service/handlers/liquid-staking/acala.js +9 -7
- package/services/earning-service/handlers/liquid-staking/base.d.ts +2 -1
- package/services/earning-service/handlers/liquid-staking/base.js +5 -1
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +2 -2
- package/services/earning-service/handlers/liquid-staking/bifrost.js +9 -7
- package/services/earning-service/handlers/liquid-staking/parallel.d.ts +2 -2
- package/services/earning-service/handlers/liquid-staking/parallel.js +9 -7
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +1 -1
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +9 -7
- package/services/earning-service/handlers/native-staking/amplitude.js +23 -9
- package/services/earning-service/handlers/native-staking/astar.d.ts +2 -1
- package/services/earning-service/handlers/native-staking/astar.js +28 -8
- package/services/earning-service/handlers/native-staking/base-para.js +5 -5
- package/services/earning-service/handlers/native-staking/base.d.ts +3 -2
- package/services/earning-service/handlers/native-staking/base.js +10 -1
- package/services/earning-service/handlers/native-staking/para-chain.js +21 -7
- package/services/earning-service/handlers/native-staking/relay-chain.js +35 -18
- package/services/earning-service/handlers/nomination-pool/index.d.ts +1 -1
- package/services/earning-service/handlers/nomination-pool/index.js +33 -14
- package/services/earning-service/handlers/special.d.ts +4 -2
- package/services/earning-service/handlers/special.js +32 -8
- package/services/earning-service/service.d.ts +6 -2
- package/services/earning-service/service.js +40 -17
- package/services/earning-service/utils/index.d.ts +5 -1
- package/services/earning-service/utils/index.js +13 -1
- package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
- package/services/migration-service/scripts/index.js +3 -1
- package/services/storage-service/DatabaseService.d.ts +1 -0
- package/services/storage-service/DatabaseService.js +4 -0
- package/services/transaction-service/index.js +3 -3
- package/types/yield/actions/join/step.d.ts +19 -0
- package/types/yield/actions/join/step.js +12 -0
- package/types/yield/actions/others.d.ts +4 -1
- package/types/yield/info/account/info.d.ts +3 -14
- package/types/yield/info/account/reward.d.ts +3 -14
- package/types/yield/info/base.d.ts +17 -0
- package/types/yield/info/base.js +8 -0
- package/types/yield/info/chain/info.d.ts +81 -63
- package/types/yield/info/chain/target.d.ts +4 -0
- package/cjs/koni/api/dotsama/balance.js +0 -464
- package/cjs/services/migration-service/scripts/MigrateEthProvider.js +0 -17
- package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +0 -17
- package/cjs/services/migration-service/scripts/MigrateProvider.js +0 -29
- package/cjs/services/storage-service/index.js +0 -241
- package/cjs/types.js +0 -1
- package/cjs/utils/address.js +0 -34
- package/cjs/utils/keyring.js +0 -57
|
@@ -24,7 +24,21 @@ class ParaNativeStakingPoolHandler extends _basePara.default {
|
|
|
24
24
|
let cancel = false;
|
|
25
25
|
const chainApi = this.substrateApi;
|
|
26
26
|
const nativeToken = this.nativeToken;
|
|
27
|
-
|
|
27
|
+
if (!this.isActive) {
|
|
28
|
+
const data = {
|
|
29
|
+
// TODO
|
|
30
|
+
...this.baseInfo,
|
|
31
|
+
type: this.type,
|
|
32
|
+
metadata: {
|
|
33
|
+
...this.metadataInfo,
|
|
34
|
+
description: this.getDescription()
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
callback(data);
|
|
38
|
+
return () => {
|
|
39
|
+
cancel = true;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
28
42
|
await chainApi.isReady;
|
|
29
43
|
const unsub = await chainApi.api.query.parachainStaking.round(async _round => {
|
|
30
44
|
var _chainApi$api$consts, _chainApi$api$consts$, _chainApi$api$consts$2;
|
|
@@ -59,12 +73,13 @@ class ParaNativeStakingPoolHandler extends _basePara.default {
|
|
|
59
73
|
const minToHuman = (0, _utils3.formatNumber)(minStake.toString(), nativeToken.decimals || 0, _utils3.balanceFormatter);
|
|
60
74
|
const data = {
|
|
61
75
|
// TODO
|
|
62
|
-
...
|
|
63
|
-
description: this.description.replaceAll('{{amount}}', minToHuman),
|
|
76
|
+
...this.baseInfo,
|
|
64
77
|
type: this.type,
|
|
65
78
|
metadata: {
|
|
66
|
-
|
|
67
|
-
|
|
79
|
+
...this.metadataInfo,
|
|
80
|
+
description: this.getDescription(minToHuman)
|
|
81
|
+
},
|
|
82
|
+
statistic: {
|
|
68
83
|
maxCandidatePerFarmer: parseInt(maxDelegations),
|
|
69
84
|
maxWithdrawalRequestPerFarmer: 1,
|
|
70
85
|
// by default
|
|
@@ -76,7 +91,6 @@ class ParaNativeStakingPoolHandler extends _basePara.default {
|
|
|
76
91
|
// not have
|
|
77
92
|
tvl: totalStake.toString(),
|
|
78
93
|
unstakingPeriod: unstakingPeriod,
|
|
79
|
-
allowCancelUnstaking: true,
|
|
80
94
|
inflation
|
|
81
95
|
}
|
|
82
96
|
};
|
|
@@ -176,7 +190,7 @@ class ParaNativeStakingPoolHandler extends _basePara.default {
|
|
|
176
190
|
async subscribePoolPosition(useAddresses, resultCallback) {
|
|
177
191
|
let cancel = false;
|
|
178
192
|
const substrateApi = this.substrateApi;
|
|
179
|
-
const defaultInfo = this.
|
|
193
|
+
const defaultInfo = this.baseInfo;
|
|
180
194
|
const chainInfo = this.chainInfo;
|
|
181
195
|
await substrateApi.isReady;
|
|
182
196
|
const unsub = await substrateApi.api.query.parachainStaking.delegatorState.multi(useAddresses, async ledgers => {
|
|
@@ -29,7 +29,21 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
29
29
|
const substrateApi = this.substrateApi;
|
|
30
30
|
const chainInfo = this.chainInfo;
|
|
31
31
|
const nativeToken = this.nativeToken;
|
|
32
|
-
|
|
32
|
+
if (!this.isActive) {
|
|
33
|
+
const data = {
|
|
34
|
+
// TODO
|
|
35
|
+
...this.baseInfo,
|
|
36
|
+
type: this.type,
|
|
37
|
+
metadata: {
|
|
38
|
+
...this.metadataInfo,
|
|
39
|
+
description: this.getDescription()
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
callback(data);
|
|
43
|
+
return () => {
|
|
44
|
+
cancel = true;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
33
47
|
await substrateApi.isReady;
|
|
34
48
|
const unsub = await ((_substrateApi$api$que = substrateApi.api.query.staking) === null || _substrateApi$api$que === void 0 ? void 0 : _substrateApi$api$que.currentEra(async _currentEra => {
|
|
35
49
|
var _substrateApi$api$con, _substrateApi$api$con2, _substrateApi$api$que2, _substrateApi$api$que3, _substrateApi$api$que4, _substrateApi$api$que5, _substrateApi$api$que6;
|
|
@@ -59,12 +73,13 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
59
73
|
const minToHuman = (0, _utils4.formatNumber)(minStake.toString(), nativeToken.decimals || 0, _utils4.balanceFormatter);
|
|
60
74
|
const data = {
|
|
61
75
|
// TODO
|
|
62
|
-
...
|
|
63
|
-
description: this.description.replaceAll('{{amount}}', minToHuman),
|
|
76
|
+
...this.baseInfo,
|
|
64
77
|
type: this.type,
|
|
65
78
|
metadata: {
|
|
66
|
-
|
|
67
|
-
|
|
79
|
+
...this.metadataInfo,
|
|
80
|
+
description: this.getDescription(minToHuman)
|
|
81
|
+
},
|
|
82
|
+
statistic: {
|
|
68
83
|
maxCandidatePerFarmer: parseInt(maxNominations),
|
|
69
84
|
maxWithdrawalRequestPerFarmer: parseInt(maxUnlockingChunks),
|
|
70
85
|
// TODO recheck
|
|
@@ -76,7 +91,6 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
76
91
|
totalApy: expectedReturn,
|
|
77
92
|
// TODO recheck
|
|
78
93
|
unstakingPeriod: unlockingPeriod,
|
|
79
|
-
allowCancelUnstaking: true,
|
|
80
94
|
inflation: inflation
|
|
81
95
|
}
|
|
82
96
|
};
|
|
@@ -141,7 +155,7 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
141
155
|
let stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
142
156
|
const bnActiveStake = new _util.BN(activeStake);
|
|
143
157
|
let waitingNominationCount = 0;
|
|
144
|
-
if (bnActiveStake.gte(minStake)) {
|
|
158
|
+
if (bnActiveStake.gte(minStake) && bnActiveStake.gt(_util.BN_ZERO)) {
|
|
145
159
|
for (const nomination of nominationList) {
|
|
146
160
|
if (nomination.status === _types.EarningStatus.EARNING_REWARD) {
|
|
147
161
|
// only need 1 earning nomination to count
|
|
@@ -180,7 +194,7 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
180
194
|
var _substrateApi$api$que19;
|
|
181
195
|
let cancel = false;
|
|
182
196
|
const substrateApi = await this.substrateApi.isReady;
|
|
183
|
-
const defaultInfo = this.
|
|
197
|
+
const defaultInfo = this.baseInfo;
|
|
184
198
|
const chainInfo = this.chainInfo;
|
|
185
199
|
const unsub = await ((_substrateApi$api$que19 = substrateApi.api.query.staking) === null || _substrateApi$api$que19 === void 0 ? void 0 : _substrateApi$api$que19.ledger.multi(useAddresses, async ledgers => {
|
|
186
200
|
if (cancel) {
|
|
@@ -232,7 +246,7 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
232
246
|
const decimals = this.nativeToken.decimals || 0;
|
|
233
247
|
const chainApi = await this.substrateApi.isReady;
|
|
234
248
|
const poolInfo = await this.getPoolInfo();
|
|
235
|
-
if (!poolInfo) {
|
|
249
|
+
if (!poolInfo || !poolInfo.statistic) {
|
|
236
250
|
return Promise.reject(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR));
|
|
237
251
|
}
|
|
238
252
|
const _era = await chainApi.api.query.staking.currentEra();
|
|
@@ -299,13 +313,13 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
299
313
|
const commission = extraInfoMap[validator.address].commission;
|
|
300
314
|
const bnValidatorStake = totalStakeMap[validator.address].div(bnDecimals);
|
|
301
315
|
if (_constants2._STAKING_CHAIN_GROUP.aleph.includes(this.chain)) {
|
|
302
|
-
validator.expectedReturn = (0, _utils.calculateAlephZeroValidatorReturn)(poolInfo.
|
|
316
|
+
validator.expectedReturn = (0, _utils.calculateAlephZeroValidatorReturn)(poolInfo.statistic.totalApy, (0, _utils.getCommission)(commission));
|
|
303
317
|
} else if (_constants2._STAKING_CHAIN_GROUP.ternoa.includes(this.chain)) {
|
|
304
318
|
const rewardPerValidator = new _util.BN(stakingRewards.sessionExtraRewardPayout).divn(allValidators.length).div(bnDecimals);
|
|
305
319
|
const validatorStake = totalStakeMap[validator.address].div(bnDecimals).toNumber();
|
|
306
320
|
validator.expectedReturn = (0, _utils.calculateTernoaValidatorReturn)(rewardPerValidator.toNumber(), validatorStake, (0, _utils.getCommission)(commission));
|
|
307
321
|
} else {
|
|
308
|
-
validator.expectedReturn = (0, _utils.calculateValidatorStakedReturn)(poolInfo.
|
|
322
|
+
validator.expectedReturn = (0, _utils.calculateValidatorStakedReturn)(poolInfo.statistic.totalApy, bnValidatorStake, bnAvgStake, (0, _utils.getCommission)(commission));
|
|
309
323
|
}
|
|
310
324
|
validator.commission = parseFloat(commission.split('%')[0]);
|
|
311
325
|
validator.blocked = extraInfoMap[validator.address].blocked;
|
|
@@ -332,16 +346,19 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
332
346
|
return Promise.resolve([new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)]);
|
|
333
347
|
}
|
|
334
348
|
const poolInfo = _poolInfo;
|
|
349
|
+
if (!poolInfo.statistic) {
|
|
350
|
+
return Promise.resolve([new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)]);
|
|
351
|
+
}
|
|
335
352
|
const errors = [];
|
|
336
353
|
let bnTotalStake = new _util.BN(amount);
|
|
337
|
-
const bnMinStake = new _util.BN(poolInfo.
|
|
354
|
+
const bnMinStake = new _util.BN(poolInfo.statistic.minJoinPool);
|
|
338
355
|
const minStakeErrorMessage = (0, _utils.getMinStakeErrorMessage)(chainInfo, bnMinStake);
|
|
339
|
-
const maxValidatorErrorMessage = (0, _utils.getMaxValidatorErrorMessage)(chainInfo, poolInfo.
|
|
356
|
+
const maxValidatorErrorMessage = (0, _utils.getMaxValidatorErrorMessage)(chainInfo, poolInfo.statistic.maxCandidatePerFarmer);
|
|
340
357
|
if (!poolPosition || poolPosition.status === _types.EarningStatus.NOT_STAKING) {
|
|
341
358
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
342
359
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE, minStakeErrorMessage));
|
|
343
360
|
}
|
|
344
|
-
if (selectedValidators.length > poolInfo.
|
|
361
|
+
if (selectedValidators.length > poolInfo.statistic.maxCandidatePerFarmer) {
|
|
345
362
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXCEED_MAX_NOMINATIONS, maxValidatorErrorMessage));
|
|
346
363
|
}
|
|
347
364
|
return errors;
|
|
@@ -351,7 +368,7 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
351
368
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
352
369
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE, minStakeErrorMessage));
|
|
353
370
|
}
|
|
354
|
-
if (selectedValidators.length > poolInfo.
|
|
371
|
+
if (selectedValidators.length > poolInfo.statistic.maxCandidatePerFarmer) {
|
|
355
372
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.EXCEED_MAX_NOMINATIONS, maxValidatorErrorMessage));
|
|
356
373
|
}
|
|
357
374
|
return errors;
|
|
@@ -444,7 +461,7 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
444
461
|
const errors = [];
|
|
445
462
|
const poolInfo = await this.getPoolInfo();
|
|
446
463
|
const poolPosition = await this.getPoolPosition(address);
|
|
447
|
-
if (!poolInfo || !poolPosition || fastLeave) {
|
|
464
|
+
if (!poolInfo || !poolInfo.statistic || !poolPosition || fastLeave) {
|
|
448
465
|
return [new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)];
|
|
449
466
|
}
|
|
450
467
|
if (fastLeave) {
|
|
@@ -452,8 +469,8 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
452
469
|
}
|
|
453
470
|
const bnActiveStake = new _util.BN(poolPosition.activeStake);
|
|
454
471
|
const bnRemainingStake = bnActiveStake.sub(new _util.BN(amount));
|
|
455
|
-
const minStake = new _util.BN(poolInfo.
|
|
456
|
-
const maxUnstake = poolInfo.
|
|
472
|
+
const minStake = new _util.BN(poolInfo.statistic.minJoinPool || '0');
|
|
473
|
+
const maxUnstake = poolInfo.statistic.maxWithdrawalRequestPerFarmer;
|
|
457
474
|
if (!(bnRemainingStake.isZero() || bnRemainingStake.gte(minStake))) {
|
|
458
475
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.INVALID_ACTIVE_STAKE));
|
|
459
476
|
}
|
|
@@ -30,7 +30,12 @@ class NominationPoolHandler extends _base.default {
|
|
|
30
30
|
this.slug = `${symbol}___nomination_pool___${_chainInfo.slug}`;
|
|
31
31
|
this.name = `${tokenName} Nomination Pool`;
|
|
32
32
|
this.shortName = _chainInfo.name.replaceAll(' Relay Chain', '');
|
|
33
|
-
|
|
33
|
+
}
|
|
34
|
+
getDescription() {
|
|
35
|
+
let amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '0';
|
|
36
|
+
const _chainAsset = this.nativeToken;
|
|
37
|
+
const symbol = _chainAsset.symbol;
|
|
38
|
+
return `Start staking with just {{amount}} ${symbol}`.replace('{{amount}}', amount);
|
|
34
39
|
}
|
|
35
40
|
|
|
36
41
|
/* Subscribe pool info */
|
|
@@ -41,7 +46,21 @@ class NominationPoolHandler extends _base.default {
|
|
|
41
46
|
const substrateApi = this.substrateApi;
|
|
42
47
|
const chainInfo = this.chainInfo;
|
|
43
48
|
const nativeToken = this.nativeToken;
|
|
44
|
-
|
|
49
|
+
if (!this.isActive) {
|
|
50
|
+
const data = {
|
|
51
|
+
// TODO
|
|
52
|
+
...this.baseInfo,
|
|
53
|
+
type: this.type,
|
|
54
|
+
metadata: {
|
|
55
|
+
...this.metadataInfo,
|
|
56
|
+
description: this.getDescription()
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
callback(data);
|
|
60
|
+
return () => {
|
|
61
|
+
cancel = true;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
45
64
|
await substrateApi.isReady;
|
|
46
65
|
const unsub = await ((_substrateApi$api$que = substrateApi.api.query.staking) === null || _substrateApi$api$que === void 0 ? void 0 : _substrateApi$api$que.currentEra(async _currentEra => {
|
|
47
66
|
var _substrateApi$api$que2, _substrateApi$api$que3, _substrateApi$api$que4;
|
|
@@ -69,12 +88,13 @@ class NominationPoolHandler extends _base.default {
|
|
|
69
88
|
const minToHuman = (0, _utils3.formatNumber)(minPoolJoin || '0', nativeToken.decimals || 0, _utils3.balanceFormatter);
|
|
70
89
|
const data = {
|
|
71
90
|
// TODO
|
|
72
|
-
...
|
|
73
|
-
description: this.description.replaceAll('{{amount}}', minToHuman),
|
|
91
|
+
...this.baseInfo,
|
|
74
92
|
type: this.type,
|
|
75
93
|
metadata: {
|
|
76
|
-
|
|
77
|
-
|
|
94
|
+
...this.metadataInfo,
|
|
95
|
+
description: this.getDescription(minToHuman)
|
|
96
|
+
},
|
|
97
|
+
statistic: {
|
|
78
98
|
maxCandidatePerFarmer: 1,
|
|
79
99
|
maxWithdrawalRequestPerFarmer: parseInt(maxUnlockingChunks),
|
|
80
100
|
// TODO recheck
|
|
@@ -87,7 +107,6 @@ class NominationPoolHandler extends _base.default {
|
|
|
87
107
|
totalApy: expectedReturn,
|
|
88
108
|
// TODO recheck
|
|
89
109
|
unstakingPeriod: unlockingPeriod,
|
|
90
|
-
allowCancelUnstaking: false,
|
|
91
110
|
inflation: inflation
|
|
92
111
|
}
|
|
93
112
|
};
|
|
@@ -178,7 +197,7 @@ class NominationPoolHandler extends _base.default {
|
|
|
178
197
|
var _substrateApi$api$que5, _substrateApi$api$que6;
|
|
179
198
|
let cancel = false;
|
|
180
199
|
const substrateApi = this.substrateApi;
|
|
181
|
-
const defaultInfo = this.
|
|
200
|
+
const defaultInfo = this.baseInfo;
|
|
182
201
|
await substrateApi.isReady;
|
|
183
202
|
const unsub = await ((_substrateApi$api$que5 = substrateApi.api.query) === null || _substrateApi$api$que5 === void 0 ? void 0 : (_substrateApi$api$que6 = _substrateApi$api$que5.nominationPools) === null || _substrateApi$api$que6 === void 0 ? void 0 : _substrateApi$api$que6.poolMembers.multi(useAddresses, async ledgers => {
|
|
184
203
|
if (cancel) {
|
|
@@ -237,7 +256,7 @@ class NominationPoolHandler extends _base.default {
|
|
|
237
256
|
const _unclaimedReward = await ((_substrateApi$api$cal = substrateApi.api.call) === null || _substrateApi$api$cal === void 0 ? void 0 : (_substrateApi$api$cal2 = _substrateApi$api$cal.nominationPoolsApi) === null || _substrateApi$api$cal2 === void 0 ? void 0 : _substrateApi$api$cal2.pendingRewards(address));
|
|
238
257
|
if (_unclaimedReward) {
|
|
239
258
|
callBack({
|
|
240
|
-
...this.
|
|
259
|
+
...this.baseInfo,
|
|
241
260
|
address: address,
|
|
242
261
|
type: this.type,
|
|
243
262
|
unclaimedReward: _unclaimedReward.toString(),
|
|
@@ -330,13 +349,14 @@ class NominationPoolHandler extends _base.default {
|
|
|
330
349
|
}, fee];
|
|
331
350
|
}
|
|
332
351
|
async validateYieldJoin(data, path) {
|
|
352
|
+
var _poolInfo$statistic;
|
|
333
353
|
const {
|
|
334
354
|
address,
|
|
335
355
|
amount,
|
|
336
356
|
selectedPool
|
|
337
357
|
} = data;
|
|
338
358
|
const _poolInfo = await this.getPoolInfo();
|
|
339
|
-
if (!_poolInfo) {
|
|
359
|
+
if (!_poolInfo || !_poolInfo.statistic) {
|
|
340
360
|
return Promise.resolve([new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)]);
|
|
341
361
|
}
|
|
342
362
|
const poolInfo = _poolInfo;
|
|
@@ -347,7 +367,7 @@ class NominationPoolHandler extends _base.default {
|
|
|
347
367
|
// amount >= min stake
|
|
348
368
|
const errors = [];
|
|
349
369
|
let bnTotalStake = new _util.BN(amount);
|
|
350
|
-
const bnMinStake = new _util.BN(poolInfo.
|
|
370
|
+
const bnMinStake = new _util.BN(((_poolInfo$statistic = poolInfo.statistic) === null || _poolInfo$statistic === void 0 ? void 0 : _poolInfo$statistic.minJoinPool) || '0');
|
|
351
371
|
const minStakeErrorMessage = (0, _utils.getMinStakeErrorMessage)(chainInfo, bnMinStake);
|
|
352
372
|
const existUnstakeErrorMessage = (0, _utils.getExistUnstakeErrorMessage)(chainInfo.slug, _KoniTypes.StakingType.POOLED, true);
|
|
353
373
|
if (selectedPool.state !== 'Open') {
|
|
@@ -430,7 +450,7 @@ class NominationPoolHandler extends _base.default {
|
|
|
430
450
|
const errors = [];
|
|
431
451
|
const poolInfo = await this.getPoolInfo();
|
|
432
452
|
const poolPosition = await this.getPoolPosition(address);
|
|
433
|
-
if (!poolInfo || !poolPosition || fastLeave) {
|
|
453
|
+
if (!poolInfo || !poolPosition || fastLeave || !poolInfo.statistic) {
|
|
434
454
|
return [new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)];
|
|
435
455
|
}
|
|
436
456
|
if (fastLeave) {
|
|
@@ -438,8 +458,8 @@ class NominationPoolHandler extends _base.default {
|
|
|
438
458
|
}
|
|
439
459
|
const bnActiveStake = new _util.BN(poolPosition.activeStake);
|
|
440
460
|
const bnRemainingStake = bnActiveStake.sub(new _util.BN(amount));
|
|
441
|
-
const minStake = new _util.BN(poolInfo.
|
|
442
|
-
const maxUnstake = poolInfo.
|
|
461
|
+
const minStake = new _util.BN(poolInfo.statistic.minJoinPool || '0');
|
|
462
|
+
const maxUnstake = poolInfo.statistic.maxWithdrawalRequestPerFarmer;
|
|
443
463
|
if (!(bnRemainingStake.isZero() || bnRemainingStake.gte(minStake))) {
|
|
444
464
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.INVALID_ACTIVE_STAKE));
|
|
445
465
|
}
|
|
@@ -20,17 +20,24 @@ var _base = _interopRequireDefault(require("./base"));
|
|
|
20
20
|
// SPDX-License-Identifier: Apache-2.0
|
|
21
21
|
|
|
22
22
|
class BaseSpecialStakingPoolHandler extends _base.default {
|
|
23
|
+
/** Pool's type */
|
|
24
|
+
|
|
23
25
|
/** Allow to create default unstake transaction */
|
|
24
26
|
allowDefaultUnstake = false;
|
|
25
27
|
/** Allow to create fast unstake transaction */
|
|
26
28
|
allowFastUnstake = true;
|
|
27
|
-
get
|
|
29
|
+
get metadataInfo() {
|
|
28
30
|
return {
|
|
29
31
|
altInputAssets: this.altInputAsset,
|
|
30
32
|
derivativeAssets: this.derivativeAssets,
|
|
31
33
|
inputAsset: this.inputAsset,
|
|
32
34
|
rewardAssets: this.rewardAssets,
|
|
33
|
-
feeAssets: this.feeAssets
|
|
35
|
+
feeAssets: this.feeAssets,
|
|
36
|
+
logo: this.logo,
|
|
37
|
+
shortName: this.shortName,
|
|
38
|
+
name: this.name,
|
|
39
|
+
isAvailable: true,
|
|
40
|
+
allowCancelUnstaking: false
|
|
34
41
|
};
|
|
35
42
|
}
|
|
36
43
|
get isPoolSupportAlternativeFee() {
|
|
@@ -47,11 +54,25 @@ class BaseSpecialStakingPoolHandler extends _base.default {
|
|
|
47
54
|
async subscribePoolInfo(callback) {
|
|
48
55
|
let cancel = false;
|
|
49
56
|
const getStatInterval = () => {
|
|
50
|
-
this.
|
|
57
|
+
if (!this.isActive) {
|
|
51
58
|
if (!cancel) {
|
|
59
|
+
const rs = {
|
|
60
|
+
...this.baseInfo,
|
|
61
|
+
type: this.type,
|
|
62
|
+
metadata: {
|
|
63
|
+
...this.metadataInfo,
|
|
64
|
+
description: this.getDescription()
|
|
65
|
+
}
|
|
66
|
+
};
|
|
52
67
|
callback(rs);
|
|
53
68
|
}
|
|
54
|
-
}
|
|
69
|
+
} else {
|
|
70
|
+
this.getPoolStat().then(rs => {
|
|
71
|
+
if (!cancel) {
|
|
72
|
+
callback(rs);
|
|
73
|
+
}
|
|
74
|
+
}).catch(console.error);
|
|
75
|
+
}
|
|
55
76
|
};
|
|
56
77
|
getStatInterval();
|
|
57
78
|
const interval = setInterval(() => {
|
|
@@ -199,6 +220,9 @@ class BaseSpecialStakingPoolHandler extends _base.default {
|
|
|
199
220
|
return [new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)];
|
|
200
221
|
}
|
|
201
222
|
const poolInfo = _poolInfo;
|
|
223
|
+
if (!poolInfo.statistic) {
|
|
224
|
+
return [new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)];
|
|
225
|
+
}
|
|
202
226
|
const processValidation = {
|
|
203
227
|
ok: true,
|
|
204
228
|
status: _types.YieldValidationStatus.OK
|
|
@@ -220,7 +244,7 @@ class BaseSpecialStakingPoolHandler extends _base.default {
|
|
|
220
244
|
return [new _TransactionError.TransactionError(_types.YieldValidationStatus.NOT_ENOUGH_FEE, processValidation.message, processValidation)];
|
|
221
245
|
}
|
|
222
246
|
}
|
|
223
|
-
if (!bnAmount.gte(new _bn.default(poolInfo.
|
|
247
|
+
if (!bnAmount.gte(new _bn.default(poolInfo.statistic.minJoinPool || '0'))) {
|
|
224
248
|
processValidation.failedStep = path.steps[id];
|
|
225
249
|
processValidation.ok = false;
|
|
226
250
|
processValidation.status = _types.YieldValidationStatus.NOT_ENOUGH_MIN_JOIN_POOL;
|
|
@@ -338,7 +362,7 @@ class BaseSpecialStakingPoolHandler extends _base.default {
|
|
|
338
362
|
async validateYieldLeave(amount, address, fastLeave, selectedTarget) {
|
|
339
363
|
const poolInfo = await this.getPoolInfo();
|
|
340
364
|
const poolPosition = await this.getPoolPosition(address);
|
|
341
|
-
if (!poolInfo || !poolPosition) {
|
|
365
|
+
if (!poolInfo || !poolInfo.statistic || !poolPosition) {
|
|
342
366
|
return [new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)];
|
|
343
367
|
}
|
|
344
368
|
if (!this.allowDefaultUnstake && !fastLeave) {
|
|
@@ -350,8 +374,8 @@ class BaseSpecialStakingPoolHandler extends _base.default {
|
|
|
350
374
|
const errors = [];
|
|
351
375
|
const bnActiveStake = new _bn.default(poolPosition.activeStake);
|
|
352
376
|
const bnRemainingStake = bnActiveStake.sub(new _bn.default(amount));
|
|
353
|
-
const minStake = new _bn.default(poolInfo.
|
|
354
|
-
const maxUnstake = poolInfo.
|
|
377
|
+
const minStake = new _bn.default(poolInfo.statistic.minJoinPool || '0');
|
|
378
|
+
const maxUnstake = poolInfo.statistic.maxWithdrawalRequestPerFarmer;
|
|
355
379
|
if (!(bnRemainingStake.isZero() || bnRemainingStake.gte(minStake))) {
|
|
356
380
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.INVALID_ACTIVE_STAKE));
|
|
357
381
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -8,6 +9,8 @@ var _TransactionError = require("@subwallet/extension-base/background/errors/Tra
|
|
|
8
9
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
9
10
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
10
11
|
var _constants = require("@subwallet/extension-base/services/earning-service/constants");
|
|
12
|
+
var _base = _interopRequireDefault(require("@subwallet/extension-base/services/earning-service/handlers/liquid-staking/base"));
|
|
13
|
+
var _types = require("@subwallet/extension-base/types");
|
|
11
14
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
12
15
|
var _rxjs = require("rxjs");
|
|
13
16
|
var _handlers = require("./handlers");
|
|
@@ -20,12 +23,15 @@ class EarningService {
|
|
|
20
23
|
ready: false,
|
|
21
24
|
data: {}
|
|
22
25
|
});
|
|
26
|
+
minAmountPercentSubject = new _rxjs.BehaviorSubject({});
|
|
23
27
|
constructor(state) {
|
|
24
28
|
this.state = state;
|
|
25
|
-
this.initHandlers();
|
|
29
|
+
this.initHandlers().catch(console.error);
|
|
26
30
|
}
|
|
27
|
-
initHandlers() {
|
|
28
|
-
|
|
31
|
+
async initHandlers() {
|
|
32
|
+
await this.state.eventService.waitChainReady;
|
|
33
|
+
const chains = Object.keys(this.state.getChainInfoMap());
|
|
34
|
+
const minAmountPercent = {};
|
|
29
35
|
for (const chain of chains) {
|
|
30
36
|
const handlers = [];
|
|
31
37
|
if (_constants._STAKING_CHAIN_GROUP.relay.includes(chain)) {
|
|
@@ -66,9 +72,15 @@ class EarningService {
|
|
|
66
72
|
this.handlers[handler.slug] = handler;
|
|
67
73
|
}
|
|
68
74
|
}
|
|
75
|
+
for (const handler of Object.values(this.handlers)) {
|
|
76
|
+
if (handler.type === _types.YieldPoolType.LIQUID_STAKING) {
|
|
77
|
+
minAmountPercent[handler.slug] = handler.minAmountPercent;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
minAmountPercent.default = _base.default.defaultMinAmountPercent;
|
|
81
|
+
this.minAmountPercentSubject.next(minAmountPercent);
|
|
69
82
|
}
|
|
70
83
|
getPoolHandler(slug) {
|
|
71
|
-
this.initHandlers();
|
|
72
84
|
return this.handlers[slug];
|
|
73
85
|
}
|
|
74
86
|
isPoolSupportAlternativeFee(slug) {
|
|
@@ -79,25 +91,27 @@ class EarningService {
|
|
|
79
91
|
throw new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR);
|
|
80
92
|
}
|
|
81
93
|
}
|
|
94
|
+
subscribeMinAmountPercent() {
|
|
95
|
+
return this.minAmountPercentSubject;
|
|
96
|
+
}
|
|
97
|
+
getMinAmountPercent() {
|
|
98
|
+
return this.minAmountPercentSubject.getValue();
|
|
99
|
+
}
|
|
82
100
|
|
|
83
101
|
/* Subscribe pools' info */
|
|
84
102
|
|
|
85
103
|
async subscribePoolsInfo(callback) {
|
|
86
104
|
let cancel = false;
|
|
87
105
|
await this.state.eventService.waitChainReady;
|
|
88
|
-
this.initHandlers();
|
|
89
|
-
const activeChains = this.state.activeChainSlugs;
|
|
90
106
|
const unsubList = [];
|
|
91
107
|
for (const handler of Object.values(this.handlers)) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}).catch(console.error);
|
|
100
|
-
}
|
|
108
|
+
handler.subscribePoolInfo(callback).then(unsub => {
|
|
109
|
+
if (cancel) {
|
|
110
|
+
unsub();
|
|
111
|
+
} else {
|
|
112
|
+
unsubList.push(unsub);
|
|
113
|
+
}
|
|
114
|
+
}).catch(console.error);
|
|
101
115
|
}
|
|
102
116
|
return () => {
|
|
103
117
|
cancel = true;
|
|
@@ -114,7 +128,6 @@ class EarningService {
|
|
|
114
128
|
async subscribePoolPositions(addresses, callback) {
|
|
115
129
|
let cancel = false;
|
|
116
130
|
await this.state.eventService.waitChainReady;
|
|
117
|
-
this.initHandlers();
|
|
118
131
|
const [substrateAddresses, evmAddresses] = (0, _utils2.categoryAddresses)(addresses);
|
|
119
132
|
const activeChains = this.state.activeChainSlugs;
|
|
120
133
|
const unsubList = [];
|
|
@@ -156,7 +169,6 @@ class EarningService {
|
|
|
156
169
|
async getPoolReward(addresses, callback) {
|
|
157
170
|
let cancel = false;
|
|
158
171
|
await this.state.eventService.waitChainReady;
|
|
159
|
-
this.initHandlers();
|
|
160
172
|
const [substrateAddresses, evmAddresses] = (0, _utils2.categoryAddresses)(addresses);
|
|
161
173
|
const activeChains = this.state.activeChainSlugs;
|
|
162
174
|
const unsubList = [];
|
|
@@ -213,6 +225,18 @@ class EarningService {
|
|
|
213
225
|
|
|
214
226
|
/* Join */
|
|
215
227
|
|
|
228
|
+
async earlyValidateJoin(request) {
|
|
229
|
+
await this.state.eventService.waitChainReady;
|
|
230
|
+
const {
|
|
231
|
+
slug
|
|
232
|
+
} = request;
|
|
233
|
+
const handler = this.getPoolHandler(slug);
|
|
234
|
+
if (handler) {
|
|
235
|
+
return handler.earlyValidate(request);
|
|
236
|
+
} else {
|
|
237
|
+
throw new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
216
240
|
async generateOptimalSteps(params) {
|
|
217
241
|
await this.state.eventService.waitChainReady;
|
|
218
242
|
const {
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.calculateReward = calculateReward;
|
|
7
7
|
exports.isActionFromValidator = isActionFromValidator;
|
|
8
|
+
exports.isNominationPool = exports.isNativeStakingPool = exports.isLiquidPool = exports.isLendingPool = void 0;
|
|
8
9
|
exports.parseIdentity = parseIdentity;
|
|
9
10
|
var _constants = require("@subwallet/extension-base/services/earning-service/constants");
|
|
10
11
|
var _types = require("@subwallet/extension-base/types");
|
|
@@ -108,4 +109,20 @@ function isActionFromValidator(stakingType, chain) {
|
|
|
108
109
|
return true;
|
|
109
110
|
}
|
|
110
111
|
return false;
|
|
111
|
-
}
|
|
112
|
+
}
|
|
113
|
+
const isNominationPool = pool => {
|
|
114
|
+
return pool.type === _types.YieldPoolType.NOMINATION_POOL;
|
|
115
|
+
};
|
|
116
|
+
exports.isNominationPool = isNominationPool;
|
|
117
|
+
const isNativeStakingPool = pool => {
|
|
118
|
+
return pool.type === _types.YieldPoolType.NATIVE_STAKING;
|
|
119
|
+
};
|
|
120
|
+
exports.isNativeStakingPool = isNativeStakingPool;
|
|
121
|
+
const isLiquidPool = pool => {
|
|
122
|
+
return pool.type === _types.YieldPoolType.LIQUID_STAKING;
|
|
123
|
+
};
|
|
124
|
+
exports.isLiquidPool = isLiquidPool;
|
|
125
|
+
const isLendingPool = pool => {
|
|
126
|
+
return pool.type === _types.YieldPoolType.LENDING;
|
|
127
|
+
};
|
|
128
|
+
exports.isLendingPool = isLendingPool;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
|
|
9
|
+
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
10
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
|
|
12
|
+
class MigrateEarningHistory extends _Base.default {
|
|
13
|
+
async run() {
|
|
14
|
+
try {
|
|
15
|
+
await this.state.dbService.removeOldEarningData();
|
|
16
|
+
} catch (e) {
|
|
17
|
+
console.error(e);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = MigrateEarningHistory;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
|
|
9
|
+
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
10
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
|
|
12
|
+
class MigrateEarningVersion extends _Base.default {
|
|
13
|
+
async run() {
|
|
14
|
+
try {
|
|
15
|
+
await this.state.dbService.removeOldEarningData();
|
|
16
|
+
} catch (e) {
|
|
17
|
+
console.error(e);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = MigrateEarningVersion;
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = exports.EVERYTIME = void 0;
|
|
8
8
|
var _DeleteEarningData = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/DeleteEarningData"));
|
|
9
9
|
var _EnableEarningChains = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/EnableEarningChains"));
|
|
10
|
+
var _MigrateEarningVersion = _interopRequireDefault(require("./databases/MigrateEarningVersion"));
|
|
10
11
|
var _MigrateEthProvider = _interopRequireDefault(require("./providers/MigrateEthProvider"));
|
|
11
12
|
var _MigratePioneerProvider = _interopRequireDefault(require("./providers/MigratePioneerProvider"));
|
|
12
13
|
var _MigrateProvidersV1M1P = _interopRequireDefault(require("./providers/MigrateProvidersV1M1P24"));
|
|
@@ -48,7 +49,8 @@ var _default = {
|
|
|
48
49
|
'1.1.17-01': _MigratePioneerProvider.default,
|
|
49
50
|
'1.1.17-03': _EnableVaraChain.default,
|
|
50
51
|
'1.1.24-01': _MigrateProvidersV1M1P.default,
|
|
51
|
-
'1.1.26-01': _MigratePolygonUSDCProvider.default
|
|
52
|
+
'1.1.26-01': _MigratePolygonUSDCProvider.default,
|
|
53
|
+
'1.1.28-01': _MigrateEarningVersion.default
|
|
52
54
|
// [`${EVERYTIME}-1`]: AutoEnableChainsTokens
|
|
53
55
|
};
|
|
54
56
|
exports.default = _default;
|
|
@@ -288,6 +288,10 @@ class DatabaseService {
|
|
|
288
288
|
|
|
289
289
|
/* Earning */
|
|
290
290
|
|
|
291
|
+
async removeOldEarningData() {
|
|
292
|
+
await this.stores.yieldPoolInfo.clear();
|
|
293
|
+
await this.stores.yieldPosition.clear();
|
|
294
|
+
}
|
|
291
295
|
async updateYieldPoolStore(data) {
|
|
292
296
|
await this.stores.yieldPoolInfo.upsert(data);
|
|
293
297
|
}
|
|
@@ -532,7 +532,7 @@ class TransactionService {
|
|
|
532
532
|
case _KoniTypes.ExtrinsicType.REDEEM_QDOT:
|
|
533
533
|
{
|
|
534
534
|
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
535
|
-
const yieldPoolInfo = data.
|
|
535
|
+
const yieldPoolInfo = data.poolInfo;
|
|
536
536
|
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
537
537
|
const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
|
|
538
538
|
const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
|
|
@@ -553,11 +553,11 @@ class TransactionService {
|
|
|
553
553
|
case _KoniTypes.ExtrinsicType.REDEEM_VDOT:
|
|
554
554
|
{
|
|
555
555
|
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
556
|
-
const yieldPoolInfo = data.
|
|
556
|
+
const yieldPoolInfo = data.poolInfo;
|
|
557
557
|
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
558
558
|
const derivativeTokenSlug = yieldPoolInfo.metadata.derivativeAssets[0];
|
|
559
559
|
const derivativeTokenInfo = this.state.chainService.getAssetBySlug(derivativeTokenSlug);
|
|
560
|
-
const chainInfo = this.state.chainService.getChainInfoByKey(data.
|
|
560
|
+
const chainInfo = this.state.chainService.getChainInfoByKey(data.poolInfo.chain);
|
|
561
561
|
historyItem.amount = {
|
|
562
562
|
value: data.amount,
|
|
563
563
|
symbol: (0, _utils._getAssetSymbol)(derivativeTokenInfo),
|