@@ -7,13 +7,13 @@ import { TransactionError } from '@subwallet/extension-base/background/errors/Tr
7
7
import { ChainType , ExtrinsicType , RequestChangeFeeToken } from '@subwallet/extension-base/background/KoniTypes' ;
8
8
import { BalanceService } from '@subwallet/extension-base/services/balance-service' ;
9
9
import { ChainService } from '@subwallet/extension-base/services/chain-service' ;
10
- import { _getTokenOnChainAssetId , _isNativeToken , _isNativeTokenBySlug } from '@subwallet/extension-base/services/chain-service/utils' ;
10
+ import { _getTokenOnChainAssetId , _isNativeToken } from '@subwallet/extension-base/services/chain-service/utils' ;
11
11
import FeeService from '@subwallet/extension-base/services/fee-service/service' ;
12
12
import { SwapBaseHandler , SwapBaseInterface } from '@subwallet/extension-base/services/swap-service/handler/base-handler' ;
13
13
import { DEFAULT_EXCESS_AMOUNT_WEIGHT } from '@subwallet/extension-base/services/swap-service/utils' ;
14
- import { BasicTxErrorType , DynamicSwapType , GenSwapStepFuncV2 , HydrationSwapStepMetadata , OptimalSwapPathParamsV2 , RuntimeDispatchInfo , ValidateSwapProcessParams } from '@subwallet/extension-base/types' ;
14
+ import { BasicTxErrorType , DynamicSwapType , GenSwapStepFuncV2 , HydrationSwapStepMetadata , OptimalSwapPathParamsV2 , ValidateSwapProcessParams } from '@subwallet/extension-base/types' ;
15
15
import { BaseStepDetail , CommonOptimalSwapPath , CommonStepFeeInfo , CommonStepType } from '@subwallet/extension-base/types/service-base' ;
16
- import { HydradxSwapTxData , SwapErrorType , SwapFeeType , SwapProviderId , SwapStepType , SwapSubmitParams , SwapSubmitStepData } from '@subwallet/extension-base/types/swap' ;
16
+ import { HydradxSwapTxData , SwapErrorType , SwapProviderId , SwapStepType , SwapSubmitParams , SwapSubmitStepData } from '@subwallet/extension-base/types/swap' ;
17
17
import { _reformatAddressWithChain } from '@subwallet/extension-base/utils' ;
18
18
import subwalletApiSdk from '@subwallet/subwallet-api-sdk' ;
19
19
import { SwapQuote } from '@subwallet/subwallet-api-sdk/modules/swapApi' ;
@@ -96,88 +96,90 @@ export class HydradxHandler implements SwapBaseInterface {
96
96
return undefined ;
97
97
}
98
98
99
- const feeStep : BaseStepDetail = {
100
- name : 'Set fee token' ,
101
- type : CommonStepType . SET_FEE_TOKEN
102
- } ;
103
-
104
- try {
105
- const customFeeTokenSlug = params . request . feeToken ;
106
-
107
- const substrateApi = this . chainService . getSubstrateApi ( this . chain ( ) ) ;
108
- const chainApi = await substrateApi . isReady ;
109
-
110
- const _currentFeeAssetId = await chainApi . api . query . multiTransactionPayment . accountCurrencyMap ( params . request . address ) ;
111
- const currentFeeAssetId = _currentFeeAssetId ?. toString ( ) ;
112
-
113
- const nativeTokenInfo = this . chainService . getNativeTokenInfo ( this . chain ( ) ) ;
114
- const nativeTokenAssetId = _getTokenOnChainAssetId ( nativeTokenInfo ) ;
115
-
116
- const userRequestChangeFeeToken = ! ! customFeeTokenSlug && ! _isNativeTokenBySlug ( customFeeTokenSlug ) ;
117
-
118
- if ( ! userRequestChangeFeeToken ) {
119
- const isCurrentFeeTokenNative = ! currentFeeAssetId || nativeTokenAssetId === currentFeeAssetId ;
120
-
121
- if ( ! isCurrentFeeTokenNative ) {
122
- const setFeeTx = chainApi . api . tx . multiTransactionPayment . setCurrency ( nativeTokenAssetId ) ;
123
- const _txFee = await setFeeTx . paymentInfo ( params . request . address ) ;
124
- const txFee = _txFee . toPrimitive ( ) as unknown as RuntimeDispatchInfo ;
125
-
126
- const fee : CommonStepFeeInfo = {
127
- feeComponent : [ {
128
- feeType : SwapFeeType . NETWORK_FEE ,
129
- amount : new BigNumber ( txFee . partialFee ) . toString ( ) ,
130
- tokenSlug : nativeTokenInfo . slug
131
- } ] ,
132
- selectedFeeToken : nativeTokenInfo . slug ,
133
- defaultFeeToken : nativeTokenInfo . slug ,
134
- feeOptions : [ nativeTokenInfo . slug ]
135
- } ;
136
-
137
- return [
138
- feeStep ,
139
- fee
140
- ] ;
141
- }
142
- } else {
143
- const selectedFeeTokenInfo = this . chainService . getAssetBySlug ( customFeeTokenSlug ) ;
144
- const selectedFeeAssetId = _getTokenOnChainAssetId ( selectedFeeTokenInfo ) ;
145
- const isCurrentFeeTokenSameAsRequest = currentFeeAssetId && selectedFeeAssetId === currentFeeAssetId ;
146
-
147
- if ( ! isCurrentFeeTokenSameAsRequest ) {
148
- const setFeeTx = chainApi . api . tx . multiTransactionPayment . setCurrency ( selectedFeeAssetId ) ;
149
- const _txFee = await setFeeTx . paymentInfo ( params . request . address ) ;
150
- const txFee = _txFee . toPrimitive ( ) as unknown as RuntimeDispatchInfo ;
151
- const spotPrice = await this . tradeRouter ?. getBestSpotPrice ( selectedFeeAssetId , nativeTokenAssetId ) ;
152
-
153
- if ( ! spotPrice ) {
154
- return ; // todo: should handle this better, can potentially cause failed transaction in the following steps
155
- }
156
-
157
- const convertedFeeAmount = new BigNumber ( txFee . partialFee ) . dividedBy ( spotPrice . amount ) ;
158
-
159
- const fee : CommonStepFeeInfo = {
160
- feeComponent : [ {
161
- feeType : SwapFeeType . NETWORK_FEE ,
162
- amount : convertedFeeAmount . shiftedBy ( _getAssetDecimals ( selectedFeeTokenInfo ) ) . toFixed ( 0 ) ,
163
- tokenSlug : selectedFeeTokenInfo . slug
164
- } ] ,
165
- selectedFeeToken : selectedFeeTokenInfo . slug ,
166
- defaultFeeToken : selectedFeeTokenInfo . slug ,
167
- feeOptions : [ selectedFeeTokenInfo . slug ]
168
- } ;
169
-
170
- return [
171
- feeStep ,
172
- fee
173
- ] ;
174
- }
175
- }
176
-
177
- return undefined ;
178
- } catch ( e ) {
179
- return undefined ;
180
- }
99
+ // const feeStep: BaseStepDetail = {
100
+ // name: 'Set fee token',
101
+ // type: CommonStepType.SET_FEE_TOKEN
102
+ // };
103
+
104
+ // try {
105
+ // const customFeeTokenSlug = params.request.feeToken;
106
+ //
107
+ // const substrateApi = this.chainService.getSubstrateApi(this.chain());
108
+ // const chainApi = await substrateApi.isReady;
109
+ //
110
+ // const _currentFeeAssetId = await chainApi.api.query.multiTransactionPayment.accountCurrencyMap(params.request.address);
111
+ // const currentFeeAssetId = _currentFeeAssetId?.toString();
112
+ //
113
+ // const nativeTokenInfo = this.chainService.getNativeTokenInfo(this.chain());
114
+ // const nativeTokenAssetId = _getTokenOnChainAssetId(nativeTokenInfo);
115
+ //
116
+ // const userRequestChangeFeeToken = !!customFeeTokenSlug && !_isNativeTokenBySlug(customFeeTokenSlug);
117
+ //
118
+ // if (!userRequestChangeFeeToken) {
119
+ // const isCurrentFeeTokenNative = !currentFeeAssetId || nativeTokenAssetId === currentFeeAssetId;
120
+ //
121
+ // if (!isCurrentFeeTokenNative) {
122
+ // const setFeeTx = chainApi.api.tx.multiTransactionPayment.setCurrency(nativeTokenAssetId);
123
+ // const _txFee = await setFeeTx.paymentInfo(params.request.address);
124
+ // const txFee = _txFee.toPrimitive() as unknown as RuntimeDispatchInfo;
125
+ //
126
+ // const fee: CommonStepFeeInfo = {
127
+ // feeComponent: [{
128
+ // feeType: SwapFeeType.NETWORK_FEE,
129
+ // amount: new BigN(txFee.partialFee).toString(),
130
+ // tokenSlug: nativeTokenInfo.slug
131
+ // }],
132
+ // selectedFeeToken: nativeTokenInfo.slug,
133
+ // defaultFeeToken: nativeTokenInfo.slug,
134
+ // feeOptions: [nativeTokenInfo.slug]
135
+ // };
136
+ //
137
+ // return [
138
+ // feeStep,
139
+ // fee
140
+ // ];
141
+ // }
142
+ // } else {
143
+ // const selectedFeeTokenInfo = this.chainService.getAssetBySlug(customFeeTokenSlug);
144
+ // const selectedFeeAssetId = _getTokenOnChainAssetId(selectedFeeTokenInfo);
145
+ // const isCurrentFeeTokenSameAsRequest = currentFeeAssetId && selectedFeeAssetId === currentFeeAssetId;
146
+ //
147
+ // if (!isCurrentFeeTokenSameAsRequest) {
148
+ // const setFeeTx = chainApi.api.tx.multiTransactionPayment.setCurrency(selectedFeeAssetId);
149
+ // const _txFee = await setFeeTx.paymentInfo(params.request.address);
150
+ // const txFee = _txFee.toPrimitive() as unknown as RuntimeDispatchInfo;
151
+ // const spotPrice = await this.tradeRouter?.getBestSpotPrice(selectedFeeAssetId, nativeTokenAssetId);
152
+ //
153
+ // if (!spotPrice) {
154
+ // return; // todo: should handle this better, can potentially cause failed transaction in the following steps
155
+ // }
156
+ //
157
+ // const convertedFeeAmount = new BigN(txFee.partialFee).dividedBy(spotPrice.amount);
158
+ //
159
+ // const fee: CommonStepFeeInfo = {
160
+ // feeComponent: [{
161
+ // feeType: SwapFeeType.NETWORK_FEE,
162
+ // amount: convertedFeeAmount.shiftedBy(_getAssetDecimals(selectedFeeTokenInfo)).toFixed(0),
163
+ // tokenSlug: selectedFeeTokenInfo.slug
164
+ // }],
165
+ // selectedFeeToken: selectedFeeTokenInfo.slug,
166
+ // defaultFeeToken: selectedFeeTokenInfo.slug,
167
+ // feeOptions: [selectedFeeTokenInfo.slug]
168
+ // };
169
+ //
170
+ // return [
171
+ // feeStep,
172
+ // fee
173
+ // ];
174
+ // }
175
+ // }
176
+ //
177
+ // return undefined;
178
+ // } catch (e) {
179
+ // return undefined;
180
+ // }
181
+
182
+ return undefined ;
181
183
}
182
184
183
185
async getSubmitStep ( params : OptimalSwapPathParamsV2 , stepIndex : number ) : Promise < [ BaseStepDetail , CommonStepFeeInfo ] | undefined > {
0 commit comments