@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.
Files changed (63) hide show
  1. package/background/KoniTypes.d.ts +6 -2
  2. package/background/KoniTypes.js +1 -0
  3. package/cjs/background/KoniTypes.js +1 -0
  4. package/cjs/core/substrate/xcm-parser.js +8 -11
  5. package/cjs/koni/background/handlers/Extension.js +279 -64
  6. package/cjs/koni/background/handlers/Tabs.js +2 -3
  7. package/cjs/packageInfo.js +1 -1
  8. package/cjs/services/balance-service/index.js +6 -1
  9. package/cjs/services/chain-service/index.js +1 -1
  10. package/cjs/services/chain-service/utils/patch.js +1 -1
  11. package/cjs/services/earning-service/constants/chains.js +4 -1
  12. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +8 -5
  13. package/cjs/services/earning-service/handlers/native-staking/dtao.js +85 -113
  14. package/cjs/services/earning-service/handlers/native-staking/tanssi.js +2 -1
  15. package/cjs/services/earning-service/handlers/native-staking/tao.js +85 -100
  16. package/cjs/services/earning-service/service.js +35 -4
  17. package/cjs/services/multisig-service/index.js +1 -1
  18. package/cjs/services/request-service/handler/SubstrateRequestHandler.js +12 -0
  19. package/cjs/services/request-service/index.js +3 -0
  20. package/cjs/services/setting-service/constants.js +2 -1
  21. package/cjs/services/storage-service/db-stores/InappNotification.js +1 -1
  22. package/cjs/services/substrate-proxy-service/constant.js +1 -1
  23. package/cjs/services/transaction-service/index.js +9 -0
  24. package/cjs/utils/account/transform.js +3 -3
  25. package/core/substrate/xcm-parser.d.ts +1 -0
  26. package/core/substrate/xcm-parser.js +7 -11
  27. package/koni/background/handlers/Extension.d.ts +20 -0
  28. package/koni/background/handlers/Extension.js +218 -6
  29. package/koni/background/handlers/Tabs.js +2 -3
  30. package/package.json +6 -6
  31. package/packageInfo.js +1 -1
  32. package/services/balance-service/index.js +6 -1
  33. package/services/chain-service/index.js +1 -1
  34. package/services/chain-service/utils/patch.d.ts +1 -1
  35. package/services/chain-service/utils/patch.js +1 -1
  36. package/services/earning-service/constants/chains.d.ts +1 -0
  37. package/services/earning-service/constants/chains.js +2 -0
  38. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +1 -0
  39. package/services/earning-service/handlers/liquid-staking/stella-swap.js +6 -4
  40. package/services/earning-service/handlers/native-staking/dtao.d.ts +2 -10
  41. package/services/earning-service/handlers/native-staking/dtao.js +86 -116
  42. package/services/earning-service/handlers/native-staking/tanssi.js +2 -1
  43. package/services/earning-service/handlers/native-staking/tao.d.ts +4 -3
  44. package/services/earning-service/handlers/native-staking/tao.js +84 -101
  45. package/services/earning-service/service.d.ts +2 -1
  46. package/services/earning-service/service.js +37 -6
  47. package/services/inapp-notification-service/interfaces.d.ts +1 -0
  48. package/services/multisig-service/index.js +1 -1
  49. package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -0
  50. package/services/request-service/handler/SubstrateRequestHandler.js +12 -0
  51. package/services/request-service/index.d.ts +1 -0
  52. package/services/request-service/index.js +3 -0
  53. package/services/request-service/types.d.ts +1 -0
  54. package/services/setting-service/constants.js +2 -1
  55. package/services/storage-service/db-stores/InappNotification.js +1 -1
  56. package/services/substrate-proxy-service/constant.js +1 -1
  57. package/services/transaction-service/index.d.ts +1 -1
  58. package/services/transaction-service/index.js +9 -0
  59. package/types/balance/transfer.d.ts +2 -0
  60. package/types/multisig/index.d.ts +12 -0
  61. package/types/yield/actions/join/submit.d.ts +8 -1
  62. package/types/yield/info/account/info.d.ts +11 -5
  63. 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
- yieldPositionInfo[this._getYieldPositionKey(item.slug, item.address)] = item;
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
- this.yieldPositionPersistQueue.push(data);
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
 
@@ -118,6 +118,7 @@ export interface ShowNotificationPayload {
118
118
  earningWithdraw: boolean;
119
119
  availBridgeClaim: boolean;
120
120
  polygonBridgeClaim: boolean;
121
+ pendingMultisigApprovals: boolean;
121
122
  }
122
123
  export interface NotificationSetup {
123
124
  isEnabled: boolean;
@@ -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
- private updateTransaction;
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
- pendingStake?: string;
53
- compoundingStake?: string;
54
- manualStake?: string;
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