@subwallet/extension-base 1.3.71-0 → 1.3.73-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 +13 -2
- package/background/KoniTypes.js +3 -1
- package/cjs/background/KoniTypes.js +3 -1
- package/cjs/core/logic-validation/recipientAddress.js +1 -1
- package/cjs/core/logic-validation/transfer.js +33 -10
- package/cjs/core/types.js +1 -0
- package/cjs/koni/background/handlers/Extension.js +81 -10
- package/cjs/koni/background/handlers/State.js +2 -4
- package/cjs/koni/background/subscription.js +2 -22
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +46 -2
- package/cjs/services/balance-service/transfer/token.js +13 -35
- package/cjs/services/balance-service/transfer/xcm/index.js +3 -8
- package/cjs/services/balance-service/transfer/xcm/utils.js +1 -1
- package/cjs/services/chain-service/constants.js +6 -5
- package/cjs/services/chain-service/index.js +1 -0
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +17 -2
- package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +55 -0
- package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +41 -0
- package/cjs/services/migration-service/scripts/index.js +17 -13
- package/cjs/services/substrate-proxy-service/constant.js +26 -0
- package/cjs/services/substrate-proxy-service/index.js +170 -0
- package/cjs/services/transaction-service/index.js +78 -10
- package/cjs/services/transaction-service/utils.js +8 -5
- package/cjs/types/index.js +11 -0
- package/cjs/types/substrateProxyAccount/actions/index.js +1 -0
- package/cjs/types/substrateProxyAccount/index.js +16 -0
- package/cjs/utils/account/transform.js +5 -4
- package/cjs/utils/fee/transfer.js +4 -2
- package/core/logic-validation/recipientAddress.js +1 -1
- package/core/logic-validation/transfer.d.ts +3 -3
- package/core/logic-validation/transfer.js +34 -11
- package/core/types.d.ts +2 -1
- package/core/types.js +1 -0
- package/koni/background/handlers/Extension.d.ts +3 -0
- package/koni/background/handlers/Extension.js +81 -10
- package/koni/background/handlers/State.d.ts +2 -1
- package/koni/background/handlers/State.js +2 -4
- package/koni/background/subscription.js +2 -22
- package/package.json +37 -7
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +47 -3
- package/services/balance-service/transfer/token.d.ts +0 -4
- package/services/balance-service/transfer/token.js +12 -33
- package/services/balance-service/transfer/xcm/index.js +3 -8
- package/services/balance-service/transfer/xcm/utils.d.ts +0 -2
- package/services/balance-service/transfer/xcm/utils.js +1 -1
- package/services/chain-service/constants.d.ts +1 -1
- package/services/chain-service/constants.js +4 -4
- package/services/chain-service/index.js +1 -0
- package/services/chain-service/utils/patch.d.ts +1 -1
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/native-staking/para-chain.js +17 -2
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.d.ts +4 -0
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +46 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +33 -0
- package/services/migration-service/scripts/index.js +8 -4
- package/services/open-gov/interface.d.ts +4 -3
- package/services/substrate-proxy-service/constant.d.ts +3 -0
- package/services/substrate-proxy-service/constant.js +19 -0
- package/services/substrate-proxy-service/index.d.ts +13 -0
- package/services/substrate-proxy-service/index.js +159 -0
- package/services/transaction-service/index.js +79 -11
- package/services/transaction-service/types.d.ts +2 -2
- package/services/transaction-service/utils.js +8 -5
- package/types/balance/transfer.d.ts +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/types/substrateProxyAccount/actions/index.d.ts +17 -0
- package/types/substrateProxyAccount/actions/index.js +1 -0
- package/types/substrateProxyAccount/index.d.ts +23 -0
- package/types/substrateProxyAccount/index.js +8 -0
- package/types/transaction/request.d.ts +1 -0
- package/types/yield/actions/join/submit.d.ts +1 -1
- package/types/yield/info/pallet.d.ts +1 -1
- package/utils/account/transform.js +5 -4
- package/utils/fee/transfer.js +4 -2
|
@@ -8,7 +8,7 @@ import EventEmitter from 'eventemitter3';
|
|
|
8
8
|
import { TransactionConfig } from 'web3-core';
|
|
9
9
|
import { SubmittableExtrinsic } from '@polkadot/api/promise/types';
|
|
10
10
|
import { EventRecord } from '@polkadot/types/interfaces';
|
|
11
|
-
export interface SWTransactionBase extends ValidateTransactionResponse, Partial<Pick<BaseRequestSign, 'ignoreWarnings'>>, TransactionFee, SWTransactionEmitter {
|
|
11
|
+
export interface SWTransactionBase extends ValidateTransactionResponse, Partial<Pick<BaseRequestSign, 'ignoreWarnings' | 'signerSubstrateProxyAddress'>>, TransactionFee, SWTransactionEmitter {
|
|
12
12
|
id: string;
|
|
13
13
|
url?: string;
|
|
14
14
|
isInternal: boolean;
|
|
@@ -50,7 +50,7 @@ export interface SWTransactionEmitter {
|
|
|
50
50
|
emitterTransaction?: TransactionEmitter;
|
|
51
51
|
}
|
|
52
52
|
declare type SwInputBase = Pick<SWTransactionBase, 'address' | 'url' | 'data' | 'extrinsicType' | 'chain' | 'chainType' | 'ignoreWarnings' | 'transferNativeAmount'> & Partial<Pick<SWTransactionBase, 'additionalValidator' | 'eventsHandler'>>;
|
|
53
|
-
export interface SWTransactionInput extends SwInputBase, Partial<Pick<SWTransactionBase, 'estimateFee' | 'signAfterCreate' | 'isPassConfirmation' | 'step' | 'errorOnTimeOut' | 'xcmFeeDryRun'>>, TransactionFee {
|
|
53
|
+
export interface SWTransactionInput extends SwInputBase, Partial<Pick<SWTransactionBase, 'estimateFee' | 'signAfterCreate' | 'isPassConfirmation' | 'step' | 'errorOnTimeOut' | 'xcmFeeDryRun' | 'signerSubstrateProxyAddress'>>, TransactionFee {
|
|
54
54
|
id?: string;
|
|
55
55
|
transaction?: SWTransactionBase['transaction'] | null;
|
|
56
56
|
warnings?: SWTransactionBase['warnings'];
|
|
@@ -25,6 +25,9 @@ function getBlockExplorerAccountRoute(explorerLink) {
|
|
|
25
25
|
if (explorerLink.includes('devnet-explorer.mosaicchain.io')) {
|
|
26
26
|
return 'accounts';
|
|
27
27
|
}
|
|
28
|
+
if (explorerLink.includes('mainnet-gw2.mosaicchain.io')) {
|
|
29
|
+
return 'accounts';
|
|
30
|
+
}
|
|
28
31
|
if (explorerLink.includes('statescan.io')) {
|
|
29
32
|
return '#/accounts';
|
|
30
33
|
}
|
|
@@ -53,7 +56,7 @@ function getBlockExplorerAccountRoute(explorerLink) {
|
|
|
53
56
|
return 'account';
|
|
54
57
|
}
|
|
55
58
|
if (explorerLink.includes('node.xode.net')) {
|
|
56
|
-
return 'account';
|
|
59
|
+
return 'polkadot/account';
|
|
57
60
|
}
|
|
58
61
|
if (explorerLink.includes('tonviewer.com')) {
|
|
59
62
|
return '';
|
|
@@ -82,7 +85,10 @@ function getBlockExplorerTxRoute(chainInfo) {
|
|
|
82
85
|
if (['edgeware', 'commune'].includes(chainInfo.slug)) {
|
|
83
86
|
return 'extrinsics';
|
|
84
87
|
}
|
|
85
|
-
if (['
|
|
88
|
+
if (['xode'].includes(chainInfo.slug)) {
|
|
89
|
+
return 'polkadot/extrinsics';
|
|
90
|
+
}
|
|
91
|
+
if (['mosaicTest', 'polkadex', 'mosaic'].includes(chainInfo.slug)) {
|
|
86
92
|
return 'transactions';
|
|
87
93
|
}
|
|
88
94
|
const explorerLink = _getBlockExplorerFromChain(chainInfo);
|
|
@@ -126,9 +132,6 @@ export function getExplorerLink(chainInfo, value, type) {
|
|
|
126
132
|
if (chainInfo.slug === 'tangle') {
|
|
127
133
|
return `${explorerLink}${explorerLink.endsWith('/') ? '' : '/'}extrinsic/${value}${route}/${value}`;
|
|
128
134
|
}
|
|
129
|
-
if (chainInfo.slug === 'xode') {
|
|
130
|
-
return `${explorerLink}${explorerLink.endsWith('/') ? '' : '/'}polkadot-chain-transaction?search=${value}`;
|
|
131
|
-
}
|
|
132
135
|
if (['truth_network', 'aventus'].includes(chainInfo.slug)) {
|
|
133
136
|
// getTransactionId(value)
|
|
134
137
|
// .then((transactionId) => {
|
|
@@ -18,6 +18,7 @@ export interface ResponseSubscribeTransfer {
|
|
|
18
18
|
feePercentageSpecialCase?: number;
|
|
19
19
|
error?: string;
|
|
20
20
|
isEvmRpcError?: boolean;
|
|
21
|
+
maxTransferableWithoutFee: string;
|
|
21
22
|
}
|
|
22
23
|
export interface RequestSubmitTransferWithId extends RequestSubmitTransfer {
|
|
23
24
|
id?: string;
|
package/types/index.d.ts
CHANGED
package/types/index.js
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseRequestSign, InternalRequestSign } from '../../transaction';
|
|
2
|
+
import { SubstrateProxyAccountItem, SubstrateProxyType } from '..';
|
|
3
|
+
export interface AddSubstrateProxyAccountParams extends BaseRequestSign {
|
|
4
|
+
address: string;
|
|
5
|
+
chain: string;
|
|
6
|
+
substrateProxyAddress: string;
|
|
7
|
+
substrateProxyType: SubstrateProxyType;
|
|
8
|
+
substrateProxyDeposit: string;
|
|
9
|
+
}
|
|
10
|
+
export declare type RequestAddSubstrateProxyAccount = InternalRequestSign<AddSubstrateProxyAccountParams>;
|
|
11
|
+
export interface RemoveSubstrateProxyAccountParams extends BaseRequestSign {
|
|
12
|
+
address: string;
|
|
13
|
+
chain: string;
|
|
14
|
+
selectedSubstrateProxyAccounts: SubstrateProxyAccountItem[];
|
|
15
|
+
isRemoveAll?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare type RequestRemoveSubstrateProxyAccount = InternalRequestSign<RemoveSubstrateProxyAccountParams>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
2
|
+
export interface ExcludedSubstrateProxyAccounts {
|
|
3
|
+
address: string;
|
|
4
|
+
substrateProxyType: SubstrateProxyType;
|
|
5
|
+
}
|
|
6
|
+
export interface RequestGetSubstrateProxyAccountGroup {
|
|
7
|
+
chain: string;
|
|
8
|
+
address: string;
|
|
9
|
+
type?: ExtrinsicType;
|
|
10
|
+
excludedSubstrateProxyAccounts?: ExcludedSubstrateProxyAccounts[];
|
|
11
|
+
}
|
|
12
|
+
export declare type SubstrateProxyType = 'Any' | 'NonTransfer' | 'Governance' | 'Staking';
|
|
13
|
+
export interface SubstrateProxyAccountItem {
|
|
14
|
+
substrateProxyAddress: string;
|
|
15
|
+
substrateProxyType: SubstrateProxyType;
|
|
16
|
+
delay: number;
|
|
17
|
+
proxyId?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SubstrateProxyAccountGroup {
|
|
20
|
+
substrateProxyAccounts: SubstrateProxyAccountItem[];
|
|
21
|
+
substrateProxyDeposit: string;
|
|
22
|
+
}
|
|
23
|
+
export * from './actions';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
// All possible proxy types in Substrate in this article: https://wiki.polkadot.com/learn/learn-proxies/#proxy-types
|
|
5
|
+
// Only support these 4 types for now
|
|
6
|
+
|
|
7
|
+
export * from "./actions/index.js";
|
|
8
|
+
export {};
|
|
@@ -2,6 +2,7 @@ import { TransactionFee } from '../fee';
|
|
|
2
2
|
import { TransactionWarningType } from './warning';
|
|
3
3
|
export declare type BaseRequestSign = {
|
|
4
4
|
ignoreWarnings?: TransactionWarningType[];
|
|
5
|
+
signerSubstrateProxyAddress?: string;
|
|
5
6
|
};
|
|
6
7
|
export declare type InternalRequestSign<T> = T & BaseRequestSign;
|
|
7
8
|
export interface RequestBaseTransfer {
|
|
@@ -86,7 +86,7 @@ export interface BondingSubmitParams extends BaseRequestSign {
|
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
export declare type RequestBondingSubmit = InternalRequestSign<BondingSubmitParams>;
|
|
89
|
-
export declare type SubmitChangeValidatorStaking = SubmitBittensorChangeValidatorStaking | SubmitJoinNativeStaking
|
|
89
|
+
export declare type SubmitChangeValidatorStaking = InternalRequestSign<SubmitBittensorChangeValidatorStaking | SubmitJoinNativeStaking>;
|
|
90
90
|
export interface SubmitBittensorChangeValidatorStaking extends SubmitJoinNativeStaking {
|
|
91
91
|
originValidator: string;
|
|
92
92
|
maxAmount: string;
|
|
@@ -54,7 +54,7 @@ export declare enum PalletParachainStakingRequestType {
|
|
|
54
54
|
BOND_LESS = "bondLess"
|
|
55
55
|
}
|
|
56
56
|
export interface PalletParachainStakingDelegationRequestsScheduledRequest {
|
|
57
|
-
delegator
|
|
57
|
+
delegator?: string;
|
|
58
58
|
whenExecutable: number;
|
|
59
59
|
action: Record<PalletParachainStakingRequestType, number>;
|
|
60
60
|
}
|
|
@@ -157,14 +157,15 @@ const EARN_VMANTA_ACTIONS = [ExtrinsicType.MINT_VMANTA, ExtrinsicType.REDEEM_VMA
|
|
|
157
157
|
const EVM_ACTIONS = [ExtrinsicType.TOKEN_SPENDING_APPROVAL, ExtrinsicType.EVM_EXECUTE];
|
|
158
158
|
const CLAIM_AVAIL_BRIDGE = [ExtrinsicType.CLAIM_BRIDGE];
|
|
159
159
|
const OPEN_GOV_ACTIONS = [ExtrinsicType.GOV_VOTE, ExtrinsicType.GOV_UNVOTE, ExtrinsicType.GOV_UNLOCK_VOTE];
|
|
160
|
+
const SUBSTRATE_PROXY_ACTION = [ExtrinsicType.ADD_SUBSTRATE_PROXY_ACCOUNT, ExtrinsicType.REMOVE_SUBSTRATE_PROXY_ACCOUNT];
|
|
160
161
|
const OTHER_ACTIONS = [ExtrinsicType.TRANSFER_XCM, ExtrinsicType.SEND_NFT, ExtrinsicType.SWAP, ExtrinsicType.CROWDLOAN];
|
|
161
162
|
export const getAccountTransactionActions = (signMode, networkType, type, _meta, _specialNetwork) => {
|
|
162
163
|
if ([AccountSignMode.PASSWORD, AccountSignMode.INJECTED].includes(signMode)) {
|
|
163
164
|
switch (networkType) {
|
|
164
165
|
case AccountChainType.SUBSTRATE:
|
|
165
|
-
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, ...OTHER_ACTIONS];
|
|
166
|
+
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, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
166
167
|
case AccountChainType.ETHEREUM:
|
|
167
|
-
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...OTHER_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...EVM_ACTIONS];
|
|
168
|
+
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...OTHER_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...SUBSTRATE_PROXY_ACTION, ...EVM_ACTIONS];
|
|
168
169
|
case AccountChainType.TON:
|
|
169
170
|
return [...BASE_TRANSFER_ACTIONS];
|
|
170
171
|
case AccountChainType.CARDANO:
|
|
@@ -175,7 +176,7 @@ export const getAccountTransactionActions = (signMode, networkType, type, _meta,
|
|
|
175
176
|
} else if (signMode === AccountSignMode.QR) {
|
|
176
177
|
switch (networkType) {
|
|
177
178
|
case AccountChainType.SUBSTRATE:
|
|
178
|
-
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, ...OTHER_ACTIONS];
|
|
179
|
+
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, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
179
180
|
case AccountChainType.ETHEREUM:
|
|
180
181
|
return [...(isProductionMode ? [] : [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OTHER_ACTIONS, ...EVM_ACTIONS])];
|
|
181
182
|
case AccountChainType.TON:
|
|
@@ -190,7 +191,7 @@ export const getAccountTransactionActions = (signMode, networkType, type, _meta,
|
|
|
190
191
|
case AccountChainType.SUBSTRATE:
|
|
191
192
|
return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS,
|
|
192
193
|
// ...EARN_QDOT_ACTIONS,
|
|
193
|
-
...OPEN_GOV_ACTIONS, ...OTHER_ACTIONS];
|
|
194
|
+
...OPEN_GOV_ACTIONS, ...SUBSTRATE_PROXY_ACTION, ...OTHER_ACTIONS];
|
|
194
195
|
case AccountChainType.ETHEREUM:
|
|
195
196
|
return [...BASE_TRANSFER_ACTIONS, ...EARN_STDOT_ACTIONS, ...EVM_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ExtrinsicType.STAKING_WITHDRAW,
|
|
196
197
|
// For liquid staking
|
package/utils/fee/transfer.js
CHANGED
|
@@ -319,7 +319,8 @@ export const calculateTransferMaxTransferable = async (id, request, freeBalance,
|
|
|
319
319
|
feeType: feeChainType,
|
|
320
320
|
id: id,
|
|
321
321
|
error,
|
|
322
|
-
isEvmRpcError: isEvmRpcError
|
|
322
|
+
isEvmRpcError: isEvmRpcError,
|
|
323
|
+
maxTransferableWithoutFee: freeBalance.value
|
|
323
324
|
};
|
|
324
325
|
};
|
|
325
326
|
export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee) => {
|
|
@@ -510,7 +511,8 @@ export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee)
|
|
|
510
511
|
feeOptions: feeOptions,
|
|
511
512
|
feeType: feeChainType,
|
|
512
513
|
id: id,
|
|
513
|
-
error
|
|
514
|
+
error,
|
|
515
|
+
maxTransferableWithoutFee: freeBalance.value
|
|
514
516
|
};
|
|
515
517
|
};
|
|
516
518
|
export const isEvmEIP1559FeeDetail = fee => {
|