@subwallet/extension-base 1.3.75-2 → 1.3.77-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/background/KoniTypes.d.ts +6 -2
- package/background/KoniTypes.js +1 -0
- package/cjs/background/KoniTypes.js +1 -0
- package/cjs/core/substrate/xcm-parser.js +8 -11
- package/cjs/koni/background/handlers/Extension.js +279 -64
- package/cjs/koni/background/handlers/Tabs.js +2 -3
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/index.js +6 -1
- package/cjs/services/chain-service/index.js +1 -1
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/constants/chains.js +4 -1
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +8 -5
- package/cjs/services/earning-service/handlers/native-staking/dtao.js +85 -113
- package/cjs/services/earning-service/handlers/native-staking/tanssi.js +2 -1
- package/cjs/services/earning-service/handlers/native-staking/tao.js +85 -100
- package/cjs/services/earning-service/service.js +35 -4
- package/cjs/services/multisig-service/index.js +1 -1
- package/cjs/services/request-service/handler/SubstrateRequestHandler.js +12 -0
- package/cjs/services/request-service/index.js +3 -0
- package/cjs/services/setting-service/constants.js +2 -1
- package/cjs/services/storage-service/db-stores/InappNotification.js +1 -1
- package/cjs/services/substrate-proxy-service/constant.js +1 -1
- package/cjs/services/transaction-service/index.js +9 -0
- package/cjs/utils/account/transform.js +3 -3
- package/core/substrate/xcm-parser.d.ts +1 -0
- package/core/substrate/xcm-parser.js +7 -11
- package/koni/background/handlers/Extension.d.ts +20 -0
- package/koni/background/handlers/Extension.js +218 -6
- package/koni/background/handlers/Tabs.js +2 -3
- package/package.json +6 -6
- package/packageInfo.js +1 -1
- package/services/balance-service/index.js +6 -1
- package/services/chain-service/index.js +1 -1
- package/services/chain-service/utils/patch.d.ts +1 -1
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/constants/chains.d.ts +1 -0
- package/services/earning-service/constants/chains.js +2 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +1 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +6 -4
- package/services/earning-service/handlers/native-staking/dtao.d.ts +2 -10
- package/services/earning-service/handlers/native-staking/dtao.js +86 -116
- package/services/earning-service/handlers/native-staking/tanssi.js +2 -1
- package/services/earning-service/handlers/native-staking/tao.d.ts +4 -3
- package/services/earning-service/handlers/native-staking/tao.js +84 -101
- package/services/earning-service/service.d.ts +2 -1
- package/services/earning-service/service.js +37 -6
- package/services/inapp-notification-service/interfaces.d.ts +1 -0
- package/services/multisig-service/index.js +1 -1
- package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -0
- package/services/request-service/handler/SubstrateRequestHandler.js +12 -0
- package/services/request-service/index.d.ts +1 -0
- package/services/request-service/index.js +3 -0
- package/services/request-service/types.d.ts +1 -0
- package/services/setting-service/constants.js +2 -1
- package/services/storage-service/db-stores/InappNotification.js +1 -1
- package/services/substrate-proxy-service/constant.js +1 -1
- package/services/transaction-service/index.d.ts +1 -1
- package/services/transaction-service/index.js +9 -0
- package/types/balance/transfer.d.ts +2 -0
- package/types/multisig/index.d.ts +12 -0
- package/types/yield/actions/join/submit.d.ts +8 -1
- package/types/yield/info/account/info.d.ts +11 -5
- package/utils/account/transform.js +3 -3
|
@@ -3,7 +3,7 @@ import { TransactionError } from '@subwallet/extension-base/background/errors/Tr
|
|
|
3
3
|
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
4
4
|
import KoniState from '@subwallet/extension-base/koni/background/handlers/State';
|
|
5
5
|
import { PersistDataServiceInterface, ServiceStatus, StoppableServiceInterface } from '@subwallet/extension-base/services/base/types';
|
|
6
|
-
import { EarningRewardHistoryItem, EarningRewardItem, EarningRewardJson, HandleYieldStepData, HandleYieldStepParams, OptimalYieldPath, OptimalYieldPathParams, RequestEarlyValidateYield, RequestEarningImpact, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestYieldLeave, RequestYieldWithdrawal, ResponseEarlyValidateYield, SubmitChangeValidatorStaking, TransactionData, ValidateYieldProcessParams, YieldPoolInfo, YieldPoolTarget, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
6
|
+
import { EarningRewardHistoryItem, EarningRewardItem, EarningRewardJson, HandleYieldStepData, HandleYieldStepParams, OptimalYieldPath, OptimalYieldPathParams, RequestChangeBittensorRootClaimType, RequestEarlyValidateYield, RequestEarningImpact, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestYieldLeave, RequestYieldWithdrawal, ResponseEarlyValidateYield, SubmitChangeValidatorStaking, TransactionData, ValidateYieldProcessParams, YieldPoolInfo, YieldPoolTarget, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
7
7
|
import { PromiseHandler } from '@subwallet/extension-base/utils';
|
|
8
8
|
import { BehaviorSubject } from 'rxjs';
|
|
9
9
|
import { EarningImpactResult } from './handlers/native-staking/dtao';
|
|
@@ -109,5 +109,6 @@ export default class EarningService implements StoppableServiceInterface, Persis
|
|
|
109
109
|
handleYieldClaimReward(params: RequestStakeClaimReward): Promise<TransactionData>;
|
|
110
110
|
yieldGetEarningImpact(params: RequestEarningImpact): Promise<EarningImpactResult>;
|
|
111
111
|
handleYieldChangeValidator(params: SubmitChangeValidatorStaking): Promise<TransactionData>;
|
|
112
|
+
handleChangeRootClaimType(params: RequestChangeBittensorRootClaimType): Promise<TransactionData>;
|
|
112
113
|
resetWallet(): Promise<void>;
|
|
113
114
|
}
|
|
@@ -6,10 +6,10 @@ import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
|
6
6
|
import { CRON_REFRESH_CHAIN_STAKING_METADATA, CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL, CRON_REFRESH_EARNING_TARGETS, CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL } from '@subwallet/extension-base/constants';
|
|
7
7
|
import { ServiceStatus } from '@subwallet/extension-base/services/base/types';
|
|
8
8
|
import { _getChainSubstrateTokenSymbol, _isChainEnabled } from '@subwallet/extension-base/services/chain-service/utils';
|
|
9
|
-
import { _STAKING_CHAIN_GROUP, STAKING_IDENTITY_API_SLUG } from '@subwallet/extension-base/services/earning-service/constants';
|
|
9
|
+
import { _STAKING_CHAIN_GROUP, STAKING_IDENTITY_API_SLUG, SUNSETTED_YIELD_POOL_SLUGS } from '@subwallet/extension-base/services/earning-service/constants';
|
|
10
10
|
import BaseLiquidStakingPoolHandler from '@subwallet/extension-base/services/earning-service/handlers/liquid-staking/base';
|
|
11
11
|
import MythosNativeStakingPoolHandler from '@subwallet/extension-base/services/earning-service/handlers/native-staking/mythos';
|
|
12
|
-
import { BasicTxErrorType, YieldPoolType } from '@subwallet/extension-base/types';
|
|
12
|
+
import { BasicTxErrorType, EarningStatus, YieldPoolType } from '@subwallet/extension-base/types';
|
|
13
13
|
import { addLazy, createPromiseHandler, filterAddressByChainInfo, removeLazy } from '@subwallet/extension-base/utils';
|
|
14
14
|
import { fetchStaticCache } from '@subwallet/extension-base/utils/fetchStaticCache';
|
|
15
15
|
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
@@ -90,8 +90,6 @@ export default class EarningService {
|
|
|
90
90
|
handlers.push(new AmplitudeNativeStakingPoolHandler(this.state, chain));
|
|
91
91
|
}
|
|
92
92
|
if (_STAKING_CHAIN_GROUP.bittensor.includes(chain)) {
|
|
93
|
-
// todo: check support for testnet
|
|
94
|
-
// Mainnet only
|
|
95
93
|
handlers.push(new TaoNativeStakingPoolHandler(this.state, chain));
|
|
96
94
|
handlers.push(new SubnetTaoStakingPoolHandler(this.state, chain));
|
|
97
95
|
}
|
|
@@ -434,6 +432,14 @@ export default class EarningService {
|
|
|
434
432
|
}
|
|
435
433
|
const updatedItem = structuredClone(item);
|
|
436
434
|
updatedItem.metadata.availableMethod = handler.availableMethod;
|
|
435
|
+
|
|
436
|
+
// Disable staking for sunsetted pools
|
|
437
|
+
if (SUNSETTED_YIELD_POOL_SLUGS.includes(item.slug)) {
|
|
438
|
+
updatedItem.metadata.availableMethod = {
|
|
439
|
+
...updatedItem.metadata.availableMethod,
|
|
440
|
+
join: false
|
|
441
|
+
};
|
|
442
|
+
}
|
|
437
443
|
this.updateYieldPoolInfo(updatedItem);
|
|
438
444
|
});
|
|
439
445
|
return onlineData;
|
|
@@ -526,7 +532,11 @@ export default class EarningService {
|
|
|
526
532
|
const yieldPositionInfo = this.yieldPositionSubject.getValue();
|
|
527
533
|
existedYieldPosition.forEach(item => {
|
|
528
534
|
if (!this.inactivePoolSlug.has(item.slug)) {
|
|
529
|
-
|
|
535
|
+
const normalizedItem = SUNSETTED_YIELD_POOL_SLUGS.includes(item.slug) ? {
|
|
536
|
+
...item,
|
|
537
|
+
status: EarningStatus.NOT_EARNING
|
|
538
|
+
} : item;
|
|
539
|
+
yieldPositionInfo[this._getYieldPositionKey(item.slug, item.address)] = normalizedItem;
|
|
530
540
|
}
|
|
531
541
|
});
|
|
532
542
|
this.yieldPositionSubject.next(yieldPositionInfo);
|
|
@@ -549,7 +559,11 @@ export default class EarningService {
|
|
|
549
559
|
return `${slug}---${address}`;
|
|
550
560
|
}
|
|
551
561
|
updateYieldPosition(data) {
|
|
552
|
-
|
|
562
|
+
const normalizedData = SUNSETTED_YIELD_POOL_SLUGS.includes(data.slug) ? {
|
|
563
|
+
...data,
|
|
564
|
+
status: EarningStatus.NOT_EARNING
|
|
565
|
+
} : data;
|
|
566
|
+
this.yieldPositionPersistQueue.push(normalizedData);
|
|
553
567
|
addLazy('persistYieldPositionInfo', () => {
|
|
554
568
|
const yieldPositionInfo = this.yieldPositionSubject.getValue();
|
|
555
569
|
const queue = [...this.yieldPositionPersistQueue];
|
|
@@ -982,6 +996,23 @@ export default class EarningService {
|
|
|
982
996
|
return Promise.reject(new TransactionError(BasicTxErrorType.INTERNAL_ERROR));
|
|
983
997
|
}
|
|
984
998
|
}
|
|
999
|
+
async handleChangeRootClaimType(params) {
|
|
1000
|
+
await this.eventService.waitChainReady;
|
|
1001
|
+
const {
|
|
1002
|
+
bittensorRootClaimType,
|
|
1003
|
+
chain,
|
|
1004
|
+
slug
|
|
1005
|
+
} = params;
|
|
1006
|
+
if (!_STAKING_CHAIN_GROUP.bittensor.includes(chain)) {
|
|
1007
|
+
return Promise.reject(new TransactionError(BasicTxErrorType.UNSUPPORTED));
|
|
1008
|
+
}
|
|
1009
|
+
const handler = this.getPoolHandler(slug);
|
|
1010
|
+
if (handler) {
|
|
1011
|
+
return handler.handleChangeRootClaimType(bittensorRootClaimType);
|
|
1012
|
+
} else {
|
|
1013
|
+
return Promise.reject(new TransactionError(BasicTxErrorType.INTERNAL_ERROR));
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
985
1016
|
|
|
986
1017
|
/* Other */
|
|
987
1018
|
|
|
@@ -206,7 +206,7 @@ export class MultisigService {
|
|
|
206
206
|
*/
|
|
207
207
|
handleEvents(events, eventTypes) {
|
|
208
208
|
let needReload = false;
|
|
209
|
-
if (eventTypes.includes('account.add') || eventTypes.includes('account.remove')) {
|
|
209
|
+
if (eventTypes.includes('account.add') || eventTypes.includes('account.remove') || eventTypes.includes('account.updateCurrent')) {
|
|
210
210
|
needReload = true;
|
|
211
211
|
}
|
|
212
212
|
if (eventTypes.includes('chain.updateState') || eventTypes.includes('transaction.done')) {
|
|
@@ -9,6 +9,7 @@ export default class SubstrateRequestHandler {
|
|
|
9
9
|
constructor(requestService: RequestService);
|
|
10
10
|
getSignRequest(id: string): SignRequest | undefined;
|
|
11
11
|
get allSubstrateRequests(): SigningRequest[];
|
|
12
|
+
updateSignRequest(id: string, request: RequestSign, signerAddress?: string): void;
|
|
12
13
|
private updateIconSign;
|
|
13
14
|
private signComplete;
|
|
14
15
|
get numSubstrateRequests(): number;
|
|
@@ -34,6 +34,18 @@ export default class SubstrateRequestHandler {
|
|
|
34
34
|
isInternal: isInternalRequest(url)
|
|
35
35
|
}));
|
|
36
36
|
}
|
|
37
|
+
updateSignRequest(id, request, signerAddress) {
|
|
38
|
+
const current = this.getSignRequest(id);
|
|
39
|
+
if (!current) {
|
|
40
|
+
throw new TransactionError(BasicTxErrorType.INVALID_PARAMS, 'Sign request not found');
|
|
41
|
+
}
|
|
42
|
+
this.#substrateRequests[id] = {
|
|
43
|
+
...current,
|
|
44
|
+
request,
|
|
45
|
+
signerAddress: signerAddress || current.signerAddress
|
|
46
|
+
};
|
|
47
|
+
this.updateIconSign();
|
|
48
|
+
}
|
|
37
49
|
updateIconSign(shouldClose) {
|
|
38
50
|
this.signSubject.next(this.allSubstrateRequests);
|
|
39
51
|
this.#requestService.updateIconV2(shouldClose);
|
|
@@ -55,6 +55,7 @@ export default class RequestService {
|
|
|
55
55
|
get confirmationsQueueSubjectTon(): BehaviorSubject<ConfirmationsQueueTon>;
|
|
56
56
|
get confirmationsQueueSubjectCardano(): BehaviorSubject<ConfirmationsQueueCardano>;
|
|
57
57
|
getSignRequest(id: string): import("./types").SignRequest | undefined;
|
|
58
|
+
updateSignRequest(id: string, request: RequestSign, signerAddress?: string): void;
|
|
58
59
|
signInternalTransaction(id: string, address: string, url: string, payload: SignerPayloadJSON, onSign?: (id: string) => void, isWrappedTx?: SubstrateTransactionWrappingStatus): Promise<ResponseSigning>;
|
|
59
60
|
addConfirmation<CT extends ConfirmationType>(id: string, url: string, type: CT, payload: ConfirmationDefinitions[CT][0]['payload'], options?: ConfirmationsQueueItemOptions, validator?: (input: ConfirmationDefinitions[CT][1]) => Error | undefined): Promise<ConfirmationDefinitions[CT][1]>;
|
|
60
61
|
addConfirmationTon<CT extends ConfirmationTypeTon>(id: string, url: string, type: CT, payload: ConfirmationDefinitionsTon[CT][0]['payload'], options?: ConfirmationsQueueItemOptions, validator?: (input: ConfirmationDefinitionsTon[CT][1]) => Error | undefined): Promise<ConfirmationDefinitionsTon[CT][1]>;
|
|
@@ -167,6 +167,9 @@ export default class RequestService {
|
|
|
167
167
|
getSignRequest(id) {
|
|
168
168
|
return this.#substrateRequestHandler.getSignRequest(id);
|
|
169
169
|
}
|
|
170
|
+
updateSignRequest(id, request, signerAddress) {
|
|
171
|
+
this.#substrateRequestHandler.updateSignRequest(id, request, signerAddress);
|
|
172
|
+
}
|
|
170
173
|
async signInternalTransaction(id, address, url, payload, onSign, isWrappedTx) {
|
|
171
174
|
if (isWrappedTx === SubstrateTransactionWrappingStatus.WRAP_RESULT) {
|
|
172
175
|
return this.#substrateRequestHandler.signWrappedTransaction(id, address, url, payload, onSign);
|
|
@@ -2,6 +2,7 @@ import { AccountAuthType, RequestSign, Resolver, ResponseSigning } from '@subwal
|
|
|
2
2
|
import { MetadataDef } from '@subwallet/extension-inject/types';
|
|
3
3
|
export interface SignRequest extends Resolver<ResponseSigning> {
|
|
4
4
|
address: string;
|
|
5
|
+
signerAddress?: string;
|
|
5
6
|
id: string;
|
|
6
7
|
request: RequestSign;
|
|
7
8
|
url: string;
|
|
@@ -23,7 +23,8 @@ export const DEFAULT_NOTIFICATION_SETUP = {
|
|
|
23
23
|
earningClaim: true,
|
|
24
24
|
earningWithdraw: true,
|
|
25
25
|
availBridgeClaim: true,
|
|
26
|
-
polygonBridgeClaim: true
|
|
26
|
+
polygonBridgeClaim: true,
|
|
27
|
+
pendingMultisigApprovals: true
|
|
27
28
|
// isHideWithdraw: false, // todo: just for test, remove later
|
|
28
29
|
// isHideMarketing: false,
|
|
29
30
|
// isHideAnnouncement: false
|
|
@@ -82,7 +82,7 @@ export default class InappNotificationStore extends BaseStore {
|
|
|
82
82
|
isRead: true
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
|
-
return this.table.where('proxyId').equalsIgnoreCase(proxyId).modify({
|
|
85
|
+
return this.table.where('proxyId').equalsIgnoreCase(proxyId).filter(notification => !excludeNotificationIds.includes(notification.id)).modify({
|
|
86
86
|
isRead: true
|
|
87
87
|
});
|
|
88
88
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
5
5
|
const SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS = {
|
|
6
|
-
STAKING: [ExtrinsicType.STAKING_BOND, ExtrinsicType.STAKING_UNBOND, ExtrinsicType.STAKING_WITHDRAW, ExtrinsicType.STAKING_JOIN_POOL, ExtrinsicType.STAKING_LEAVE_POOL, ExtrinsicType.CHANGE_EARNING_VALIDATOR, ExtrinsicType.STAKING_CANCEL_UNSTAKE, ExtrinsicType.STAKING_CLAIM_REWARD],
|
|
6
|
+
STAKING: [ExtrinsicType.STAKING_BOND, ExtrinsicType.STAKING_UNBOND, ExtrinsicType.STAKING_WITHDRAW, ExtrinsicType.STAKING_JOIN_POOL, ExtrinsicType.STAKING_LEAVE_POOL, ExtrinsicType.CHANGE_EARNING_VALIDATOR, ExtrinsicType.STAKING_CANCEL_UNSTAKE, ExtrinsicType.STAKING_CLAIM_REWARD, ExtrinsicType.CHANGE_BITTENSOR_ROOT_CLAIM_TYPE],
|
|
7
7
|
GOV: [ExtrinsicType.GOV_VOTE, ExtrinsicType.GOV_UNVOTE, ExtrinsicType.GOV_UNLOCK_VOTE],
|
|
8
8
|
PROXY: [
|
|
9
9
|
// only type any can add proxy
|
|
@@ -74,7 +74,7 @@ export default class TransactionService {
|
|
|
74
74
|
private sendPermitTransaction;
|
|
75
75
|
private sendDutchTransaction;
|
|
76
76
|
private removeTransaction;
|
|
77
|
-
|
|
77
|
+
updateTransaction(id: string, data: Partial<Omit<SWTransactionBase, 'id'>>): void;
|
|
78
78
|
private getTransactionLink;
|
|
79
79
|
private transactionToHistories;
|
|
80
80
|
private onSigned;
|
|
@@ -1371,6 +1371,15 @@ export default class TransactionService {
|
|
|
1371
1371
|
case ExtrinsicType.UNKNOWN:
|
|
1372
1372
|
break;
|
|
1373
1373
|
}
|
|
1374
|
+
const txData = transaction.data;
|
|
1375
|
+
const signer = txData === null || txData === void 0 ? void 0 : txData.signer;
|
|
1376
|
+
if (signer) {
|
|
1377
|
+
const currentAdditionalInfo = historyItem.additionalInfo ? historyItem.additionalInfo : {};
|
|
1378
|
+
historyItem.additionalInfo = {
|
|
1379
|
+
...currentAdditionalInfo,
|
|
1380
|
+
signer
|
|
1381
|
+
};
|
|
1382
|
+
}
|
|
1374
1383
|
try {
|
|
1375
1384
|
// Return one more history record if transaction send to account in the wallets
|
|
1376
1385
|
const toAccount = (historyItem === null || historyItem === void 0 ? void 0 : historyItem.to) && keyring.getPair(historyItem.to);
|
|
@@ -35,6 +35,8 @@ export interface RequestSubmitTransfer extends BaseRequestSign, TransactionFee {
|
|
|
35
35
|
value: string;
|
|
36
36
|
transferBounceable?: boolean;
|
|
37
37
|
isSubstrateECDSATransaction?: boolean;
|
|
38
|
+
maxTransferableWithoutFee?: string;
|
|
39
|
+
maxTransferable?: string;
|
|
38
40
|
}
|
|
39
41
|
export interface RequestSubmitSignPsbtTransfer extends BaseRequestSign {
|
|
40
42
|
id: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
|
|
1
2
|
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
2
3
|
import { MultisigTxType } from '@subwallet/extension-base/services/multisig-service';
|
|
3
4
|
import { DecodeCallDataResponse } from '@subwallet/extension-base/services/multisig-service/utils';
|
|
@@ -44,6 +45,17 @@ export interface InitMultisigTxResponse {
|
|
|
44
45
|
networkFee: string;
|
|
45
46
|
error?: SelectSignatoryError;
|
|
46
47
|
}
|
|
48
|
+
export interface PrepareMultisigSignRequest {
|
|
49
|
+
id: string;
|
|
50
|
+
signer: string;
|
|
51
|
+
}
|
|
52
|
+
export interface PrepareMultisigSignResponse {
|
|
53
|
+
submittedCallData: HexString;
|
|
54
|
+
callData: HexString;
|
|
55
|
+
depositAmount: string;
|
|
56
|
+
networkFee: string;
|
|
57
|
+
errors: TransactionError[];
|
|
58
|
+
}
|
|
47
59
|
export interface RequestGetSignableAccountInfos {
|
|
48
60
|
multisigProxyId: string;
|
|
49
61
|
chain: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _Address, ChainType, ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
2
2
|
import { BaseProcessRequestSign, BaseRequestSign, InternalRequestSign, TransactionData } from '../../../transaction';
|
|
3
|
-
import { NominationPoolInfo, ValidatorInfo, YieldPoolType, YieldPositionInfo } from '../../info';
|
|
3
|
+
import { BittensorRootClaimType, NominationPoolInfo, ValidatorInfo, YieldPoolType, YieldPositionInfo } from '../../info';
|
|
4
4
|
import { OptimalYieldPath } from './step';
|
|
5
5
|
export interface HandleYieldStepData {
|
|
6
6
|
txChain: string;
|
|
@@ -95,3 +95,10 @@ export interface SubmitBittensorChangeValidatorStaking extends SubmitJoinNativeS
|
|
|
95
95
|
subnetSymbol: string;
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
|
+
export interface ChangeBittensorRootClaimTypeParams extends BaseRequestSign {
|
|
99
|
+
slug: string;
|
|
100
|
+
address: string;
|
|
101
|
+
chain: string;
|
|
102
|
+
bittensorRootClaimType: BittensorRootClaimType;
|
|
103
|
+
}
|
|
104
|
+
export declare type RequestChangeBittensorRootClaimType = InternalRequestSign<ChangeBittensorRootClaimTypeParams>;
|
|
@@ -48,12 +48,18 @@ export interface AbstractYieldPositionInfo extends BaseYieldPositionInfo {
|
|
|
48
48
|
subnetShortName: string;
|
|
49
49
|
originalTotalStake: string;
|
|
50
50
|
};
|
|
51
|
-
metadata?:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
metadata?: TanssiStakingMetadata | BittensorStakingMetadata;
|
|
52
|
+
}
|
|
53
|
+
export interface TanssiStakingMetadata {
|
|
54
|
+
isShowActiveStakeDetails?: boolean;
|
|
55
|
+
pendingStake?: string;
|
|
56
|
+
compoundingStake?: string;
|
|
57
|
+
manualStake?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface BittensorStakingMetadata {
|
|
60
|
+
bittensorRootClaimType?: BittensorRootClaimType;
|
|
56
61
|
}
|
|
62
|
+
export declare type BittensorRootClaimType = 'Swap' | 'Keep' | 'Others';
|
|
57
63
|
/**
|
|
58
64
|
* @interface SpecialYieldPositionInfo
|
|
59
65
|
* @extends AbstractYieldPositionInfo
|
|
@@ -166,7 +166,7 @@ export const getAccountTransactionActions = (signMode, networkType, type, _meta,
|
|
|
166
166
|
if ([AccountSignMode.PASSWORD, AccountSignMode.INJECTED].includes(signMode)) {
|
|
167
167
|
switch (networkType) {
|
|
168
168
|
case AccountChainType.SUBSTRATE:
|
|
169
|
-
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OPEN_GOV_ACTIONS, ...MULTISIG_ACTIONS, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
169
|
+
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OPEN_GOV_ACTIONS, ExtrinsicType.CHANGE_BITTENSOR_ROOT_CLAIM_TYPE, ...MULTISIG_ACTIONS, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
170
170
|
case AccountChainType.ETHEREUM:
|
|
171
171
|
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...OTHER_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...SUBSTRATE_PROXY_ACTION, ...EVM_ACTIONS];
|
|
172
172
|
case AccountChainType.TON:
|
|
@@ -179,7 +179,7 @@ export const getAccountTransactionActions = (signMode, networkType, type, _meta,
|
|
|
179
179
|
} else if (signMode === AccountSignMode.QR) {
|
|
180
180
|
switch (networkType) {
|
|
181
181
|
case AccountChainType.SUBSTRATE:
|
|
182
|
-
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OPEN_GOV_ACTIONS, ...MULTISIG_ACTIONS, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
182
|
+
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OPEN_GOV_ACTIONS, ExtrinsicType.CHANGE_BITTENSOR_ROOT_CLAIM_TYPE, ...MULTISIG_ACTIONS, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
183
183
|
case AccountChainType.ETHEREUM:
|
|
184
184
|
return [...(isProductionMode ? [] : [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OTHER_ACTIONS, ...EVM_ACTIONS])];
|
|
185
185
|
case AccountChainType.TON:
|
|
@@ -213,7 +213,7 @@ export const getAccountTransactionActions = (signMode, networkType, type, _meta,
|
|
|
213
213
|
case AccountChainType.SUBSTRATE:
|
|
214
214
|
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS,
|
|
215
215
|
// ...EARN_QDOT_ACTIONS,
|
|
216
|
-
...OPEN_GOV_ACTIONS, ...MULTISIG_ACTIONS, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
216
|
+
...OPEN_GOV_ACTIONS, ExtrinsicType.CHANGE_BITTENSOR_ROOT_CLAIM_TYPE, ...MULTISIG_ACTIONS, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
217
217
|
case AccountChainType.ETHEREUM:
|
|
218
218
|
return [...BASE_TRANSFER_ACTIONS, ...EARN_STDOT_ACTIONS, ...EVM_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ExtrinsicType.STAKING_WITHDRAW,
|
|
219
219
|
// For liquid staking
|