Skip to content

Commit 54caf69

Browse files
committed
[Issue-4321] feat: add excess amount by accross destination fee
1 parent 5c1e813 commit 54caf69

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

packages/extension-base/src/services/swap-service/handler/uniswap-handler.ts

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -565,43 +565,49 @@ export class UniswapHandler implements SwapBaseInterface {
565565
recipient: receiverAddress
566566
});
567567

568-
// // todo: wait until this ready to get destination fee. the real receiveAmount is deduce by this fee
569-
// const acrossQuote = await getAcrossQuote({
570-
// destinationChain: toChainInfo,
571-
// destinationTokenInfo: toTokenInfo,
572-
// originChain: fromChainInfo,
573-
// originTokenInfo: fromTokenInfo,
574-
// recipient: receiverAddress,
575-
// sender: senderAddress,
576-
// sendingValue,
577-
// feeInfo
578-
// });
568+
const acrossQuote = await getAcrossQuote({
569+
destinationChain: toChainInfo,
570+
destinationTokenInfo: toTokenInfo,
571+
originChain: fromChainInfo,
572+
originTokenInfo: fromTokenInfo,
573+
recipient: receiverAddress,
574+
sender: senderAddress,
575+
sendingValue: mockSendingValue,
576+
feeInfo
577+
});
579578

579+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access
580+
const destinationFee = BigNumber(mockSendingValue).minus(acrossQuote.metadata.outputAmount).toFixed(0, 1);
580581
const estimatedBridgeFee = await estimateTxFee(tx, evmApi, feeInfo);
581582

582583
let sendingValue;
583584
let expectedReceive;
584585

585586
if (isBridgeFirst) {
586587
expectedReceive = selectedQuote.fromAmount;
588+
sendingValue = BigNumber(destinationFee).multipliedBy(1.02).plus(expectedReceive).toFixed(0, 1);
587589

588-
if (isBridgeNativeToken) {
589-
sendingValue = BigNumber(expectedReceive).plus(estimatedBridgeFee).toFixed(0, 1);
590-
} else {
591-
sendingValue = BigNumber(expectedReceive).toFixed(0, 1);
592-
}
590+
// if (isBridgeNativeToken) {
591+
// sendingValue = BigNumber(expectedReceive).plus(estimatedBridgeFee).toFixed(0, 1);
592+
// } else {
593+
// sendingValue = BigNumber(expectedReceive).toFixed(0, 1);
594+
// }
593595
} else if (isBridgeSecond) {
594596
sendingValue = BigNumber(selectedQuote.toAmount).div(1.02).toFixed(0, 1);
597+
expectedReceive = BigNumber(sendingValue).minus(destinationFee).toFixed(0, 1);
595598

596-
if (isBridgeNativeToken) {
597-
expectedReceive = BigNumber(sendingValue).minus(estimatedBridgeFee).toFixed(0, 1);
598-
} else {
599-
expectedReceive = sendingValue;
600-
}
599+
// if (isBridgeNativeToken) {
600+
// expectedReceive = BigNumber(sendingValue).minus(estimatedBridgeFee).toFixed(0, 1);
601+
// } else {
602+
// expectedReceive = sendingValue;
603+
// }
601604
} else {
602605
return undefined;
603606
}
604607

608+
console.log('send bridge amount', sendingValue);
609+
console.log('receive bridge amount', expectedReceive);
610+
605611
const fee: CommonStepFeeInfo = {
606612
feeComponent: [{
607613
feeType: SwapFeeType.NETWORK_FEE,

0 commit comments

Comments
 (0)