@subwallet/extension-base 1.3.77-0 → 1.3.78-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 +2 -0
- package/cjs/core/logic-validation/index.js +1 -1
- package/cjs/core/substrate/xcm-parser.js +10 -1
- package/cjs/koni/background/handlers/Extension.js +35 -8
- package/cjs/koni/background/handlers/State.js +20 -0
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/evm.js +85 -6
- package/cjs/services/balance-service/helpers/subscribe/index.js +2 -1
- package/cjs/services/balance-service/index.js +6 -2
- package/cjs/services/balance-service/transfer/token.js +15 -0
- package/cjs/services/balance-service/transfer/xcm/bittensorBridge/index.js +27 -0
- package/cjs/services/balance-service/transfer/xcm/bittensorBridge/nativeTokenBridge.js +58 -0
- package/cjs/services/balance-service/transfer/xcm/bittensorBridge/utils.js +36 -0
- package/cjs/services/balance-service/transfer/xcm/index.js +61 -2
- package/cjs/services/balance-service/transfer/xcm/utils.js +94 -6
- package/cjs/services/chain-service/constants.js +4 -2
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/constants/chains.js +4 -2
- package/cjs/services/earning-service/handlers/special.js +82 -65
- package/cjs/services/earning-service/service.js +1 -0
- package/cjs/services/swap-service/handler/bittensor-handler.js +197 -0
- package/cjs/services/swap-service/index.js +7 -0
- package/cjs/services/transaction-service/index.js +1 -0
- package/cjs/types/balance/index.js +1 -0
- package/cjs/types/swap/index.js +3 -1
- package/cjs/utils/fee/transfer.js +20 -5
- package/core/logic-validation/index.js +1 -1
- package/core/substrate/xcm-parser.d.ts +2 -0
- package/core/substrate/xcm-parser.js +8 -1
- package/koni/background/handlers/Extension.js +36 -9
- package/koni/background/handlers/State.d.ts +1 -0
- package/koni/background/handlers/State.js +20 -0
- package/package.json +26 -6
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/evm.d.ts +1 -0
- package/services/balance-service/helpers/subscribe/evm.js +76 -1
- package/services/balance-service/helpers/subscribe/index.js +2 -1
- package/services/balance-service/index.js +6 -2
- package/services/balance-service/transfer/token.d.ts +2 -1
- package/services/balance-service/transfer/token.js +15 -0
- package/services/balance-service/transfer/xcm/bittensorBridge/index.d.ts +2 -0
- package/services/balance-service/transfer/xcm/bittensorBridge/index.js +5 -0
- package/services/balance-service/transfer/xcm/bittensorBridge/nativeTokenBridge.d.ts +6 -0
- package/services/balance-service/transfer/xcm/bittensorBridge/nativeTokenBridge.js +50 -0
- package/services/balance-service/transfer/xcm/bittensorBridge/utils.d.ts +8 -0
- package/services/balance-service/transfer/xcm/bittensorBridge/utils.js +29 -0
- package/services/balance-service/transfer/xcm/index.d.ts +5 -0
- package/services/balance-service/transfer/xcm/index.js +57 -2
- package/services/balance-service/transfer/xcm/utils.d.ts +3 -2
- package/services/balance-service/transfer/xcm/utils.js +87 -1
- package/services/chain-service/constants.d.ts +2 -0
- package/services/chain-service/constants.js +4 -2
- 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 -1
- package/services/earning-service/handlers/special.d.ts +1 -1
- package/services/earning-service/handlers/special.js +85 -68
- package/services/earning-service/service.js +1 -0
- package/services/swap-service/handler/bittensor-handler.d.ts +21 -0
- package/services/swap-service/handler/bittensor-handler.js +189 -0
- package/services/swap-service/index.js +7 -0
- package/services/transaction-service/index.js +1 -0
- package/services/transaction-service/types.d.ts +4 -3
- package/types/balance/index.d.ts +3 -1
- package/types/balance/index.js +1 -0
- package/types/balance/transfer.d.ts +7 -0
- package/types/fee/base.d.ts +1 -0
- package/types/swap/index.d.ts +3 -1
- package/types/swap/index.js +3 -1
- package/types/yield/actions/join/step.d.ts +6 -0
- package/types/yield/actions/join/submit.d.ts +1 -0
- package/utils/fee/transfer.d.ts +1 -0
- package/utils/fee/transfer.js +21 -6
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { _ChainAsset } from '@subwallet/chain-list/types';
|
|
1
2
|
import { YieldPoolTarget } from '@subwallet/extension-base/types';
|
|
2
3
|
/**
|
|
3
4
|
* @interface RequestEarlyValidateYield
|
|
@@ -95,3 +96,8 @@ export interface OptimalYieldPath {
|
|
|
95
96
|
connectionError?: string;
|
|
96
97
|
}
|
|
97
98
|
export declare type GenStepFunction = (params: OptimalYieldPathParams) => Promise<YieldStepBaseInfo | undefined>;
|
|
99
|
+
export interface XcmStepMetadataForLiqStaking {
|
|
100
|
+
sendingValue: string;
|
|
101
|
+
originTokenInfo: _ChainAsset;
|
|
102
|
+
destinationTokenInfo: _ChainAsset;
|
|
103
|
+
}
|
package/utils/fee/transfer.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export interface CalculateMaxTransferable extends TransactionFee {
|
|
|
20
20
|
isTransferNativeTokenAndPayLocalTokenAsFee: boolean;
|
|
21
21
|
nativeToken: _ChainAsset;
|
|
22
22
|
transferAll?: boolean;
|
|
23
|
+
metadata?: Record<string, any>;
|
|
23
24
|
}
|
|
24
25
|
export declare const detectTransferTxType: (srcToken: _ChainAsset, srcChain: _ChainInfo, destChain: _ChainInfo) => FeeChainType;
|
|
25
26
|
export declare const calculateMaxTransferable: (id: string, request: CalculateMaxTransferable, freeBalance: AmountData, fee: FeeInfo) => Promise<ResponseSubscribeTransfer>;
|
package/utils/fee/transfer.js
CHANGED
|
@@ -9,9 +9,10 @@ import { createCardanoTransaction } from '@subwallet/extension-base/services/bal
|
|
|
9
9
|
import { gasSettingsForEWC, getERC20TransactionObject, getEVMTransactionObject } from '@subwallet/extension-base/services/balance-service/transfer/smart-contract';
|
|
10
10
|
import { createSubstrateExtrinsic } from '@subwallet/extension-base/services/balance-service/transfer/token';
|
|
11
11
|
import { createTonTransaction } from '@subwallet/extension-base/services/balance-service/transfer/ton-transfer';
|
|
12
|
-
import { createAcrossBridgeExtrinsic, createAvailBridgeExtrinsicFromAvail, createAvailBridgeTxFromEth, createPolygonBridgeExtrinsic, createSnowBridgeExtrinsic, createXcmExtrinsicV2 } from '@subwallet/extension-base/services/balance-service/transfer/xcm';
|
|
12
|
+
import { createAcrossBridgeExtrinsic, createAvailBridgeExtrinsicFromAvail, createAvailBridgeTxFromEth, createBittensorToSubtensorEvmExtrinsic, createPolygonBridgeExtrinsic, createSnowBridgeExtrinsic, createSubtensorEvmToBittensorExtrinsic, createXcmExtrinsicV2 } from '@subwallet/extension-base/services/balance-service/transfer/xcm';
|
|
13
13
|
import { _isAcrossChainBridge, _isAcrossTestnetBridge, getAcrossSendingValue } from '@subwallet/extension-base/services/balance-service/transfer/xcm/acrossBridge';
|
|
14
14
|
import { isAvailChainBridge } from '@subwallet/extension-base/services/balance-service/transfer/xcm/availBridge';
|
|
15
|
+
import { _isBittensorToSubtensorBridge, _isSubtensorToBittensorBridge } from '@subwallet/extension-base/services/balance-service/transfer/xcm/bittensorBridge/nativeTokenBridge';
|
|
15
16
|
import { _isPolygonChainBridge } from '@subwallet/extension-base/services/balance-service/transfer/xcm/polygonBridge';
|
|
16
17
|
import { _isPosChainBridge } from '@subwallet/extension-base/services/balance-service/transfer/xcm/posBridge';
|
|
17
18
|
import { estimateXcmFee } from '@subwallet/extension-base/services/balance-service/transfer/xcm/utils';
|
|
@@ -82,6 +83,7 @@ export const calculateTransferMaxTransferable = async (id, request, freeBalance,
|
|
|
82
83
|
feeOption,
|
|
83
84
|
isTransferLocalTokenAndPayThatTokenAsFee,
|
|
84
85
|
isTransferNativeTokenAndPayLocalTokenAsFee,
|
|
86
|
+
metadata,
|
|
85
87
|
nativeToken,
|
|
86
88
|
srcChain,
|
|
87
89
|
srcToken,
|
|
@@ -184,7 +186,8 @@ export const calculateTransferMaxTransferable = async (id, request, freeBalance,
|
|
|
184
186
|
networkKey: srcChain.slug,
|
|
185
187
|
tokenInfo: srcToken,
|
|
186
188
|
to: recipient,
|
|
187
|
-
substrateApi
|
|
189
|
+
substrateApi,
|
|
190
|
+
metadata
|
|
188
191
|
});
|
|
189
192
|
}
|
|
190
193
|
if (feeChainType === 'evm') {
|
|
@@ -337,10 +340,12 @@ export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee)
|
|
|
337
340
|
srcChain,
|
|
338
341
|
srcToken,
|
|
339
342
|
substrateApi,
|
|
343
|
+
transferAll,
|
|
340
344
|
value
|
|
341
345
|
} = request;
|
|
342
346
|
const feeChainType = fee.type;
|
|
343
347
|
let estimatedFee = '0';
|
|
348
|
+
let crossChainFee = '0';
|
|
344
349
|
let feeOptions;
|
|
345
350
|
let maxTransferable;
|
|
346
351
|
let error;
|
|
@@ -350,7 +355,9 @@ export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee)
|
|
|
350
355
|
const isPolygonBridgeTransfer = _isPolygonChainBridge(srcChain.slug, destChain.slug);
|
|
351
356
|
const isPosBridgeTransfer = _isPosChainBridge(srcChain.slug, destChain.slug);
|
|
352
357
|
const isAcrossBridgeTransfer = _isAcrossChainBridge(srcChain.slug, destChain.slug);
|
|
353
|
-
const
|
|
358
|
+
const isBittensorBridgeTransfer = _isBittensorToSubtensorBridge(srcChain.slug, destChain.slug);
|
|
359
|
+
const isSubtensorEvmBridgeTransfer = _isSubtensorToBittensorBridge(srcChain.slug, destChain.slug);
|
|
360
|
+
const isSubstrateParaspellXcm = !(isAvailBridgeFromEvm || isAvailBridgeFromAvail || isSnowBridgeEvmTransfer || isPolygonBridgeTransfer || isPosBridgeTransfer || isAcrossBridgeTransfer || isBittensorBridgeTransfer || isSubtensorEvmBridgeTransfer);
|
|
354
361
|
const fakeAddress = '5DRewsYzhJqZXU3SRaWy1FSt5iDr875ao91aw5fjrJmDG4Ap'; // todo: move this
|
|
355
362
|
const substrateAddress = fakeAddress; // todo: move this
|
|
356
363
|
const evmAddress = u8aToHex(addressToEvm(fakeAddress)); // todo: move this
|
|
@@ -373,7 +380,8 @@ export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee)
|
|
|
373
380
|
evmApi,
|
|
374
381
|
feeCustom,
|
|
375
382
|
feeOption,
|
|
376
|
-
feeInfo: fee
|
|
383
|
+
feeInfo: fee,
|
|
384
|
+
transferAll
|
|
377
385
|
};
|
|
378
386
|
let funcCreateExtrinsic;
|
|
379
387
|
if (isPosBridgeTransfer || isPolygonBridgeTransfer) {
|
|
@@ -381,6 +389,10 @@ export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee)
|
|
|
381
389
|
} else if (isAcrossBridgeTransfer) {
|
|
382
390
|
funcCreateExtrinsic = createAcrossBridgeExtrinsic;
|
|
383
391
|
params.sendingValue = await getAcrossSendingValue(srcChain, srcToken, destChain, _isAcrossTestnetBridge(srcChain.slug));
|
|
392
|
+
} else if (isBittensorBridgeTransfer) {
|
|
393
|
+
funcCreateExtrinsic = createBittensorToSubtensorEvmExtrinsic;
|
|
394
|
+
} else if (isSubtensorEvmBridgeTransfer) {
|
|
395
|
+
funcCreateExtrinsic = createSubtensorEvmToBittensorExtrinsic;
|
|
384
396
|
} else if (isSnowBridgeEvmTransfer) {
|
|
385
397
|
funcCreateExtrinsic = createSnowBridgeExtrinsic;
|
|
386
398
|
} else if (isAvailBridgeFromEvm) {
|
|
@@ -412,7 +424,8 @@ export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee)
|
|
|
412
424
|
};
|
|
413
425
|
} else if (feeChainType === 'substrate') {
|
|
414
426
|
// Calculate fee for substrate transaction
|
|
415
|
-
if (
|
|
427
|
+
if (isSubstrateParaspellXcm) {
|
|
428
|
+
var _xcmFeeInfo$destinati;
|
|
416
429
|
const xcmFeeInfo = await estimateXcmFee({
|
|
417
430
|
fromChainInfo: params.originChain,
|
|
418
431
|
fromTokenInfo: params.originTokenInfo,
|
|
@@ -422,6 +435,7 @@ export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee)
|
|
|
422
435
|
value: params.sendingValue
|
|
423
436
|
});
|
|
424
437
|
estimatedFee = (xcmFeeInfo === null || xcmFeeInfo === void 0 ? void 0 : xcmFeeInfo.origin.fee) || '0';
|
|
438
|
+
crossChainFee = (xcmFeeInfo === null || xcmFeeInfo === void 0 ? void 0 : (_xcmFeeInfo$destinati = xcmFeeInfo.destination) === null || _xcmFeeInfo$destinati === void 0 ? void 0 : _xcmFeeInfo$destinati.fee) || '0';
|
|
425
439
|
} else {
|
|
426
440
|
try {
|
|
427
441
|
var _paymentInfo$partialF2;
|
|
@@ -436,7 +450,8 @@ export const calculateXcmMaxTransferable = async (id, request, freeBalance, fee)
|
|
|
436
450
|
estimatedFee = new BigN(estimatedFee).plus(tip).toFixed(0);
|
|
437
451
|
feeOptions = {
|
|
438
452
|
...fee,
|
|
439
|
-
estimatedFee
|
|
453
|
+
estimatedFee,
|
|
454
|
+
crossChainFee
|
|
440
455
|
};
|
|
441
456
|
} else if (feeChainType === 'bitcoin') {
|
|
442
457
|
feeOptions = {
|