@swaptoshi/dex-module
Version:
Klayr decentralized exchange (dex) on-chain module
26 lines • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DexTransferFeeConversionMethod = void 0;
const fee_conversion_module_1 = require("@swaptoshi/fee-conversion-module");
const hooks_1 = require("../hooks");
class DexTransferFeeConversionMethod extends fee_conversion_module_1.BaseFeeConversionMethod {
async verifyFeeConversion(context) {
const swapTransferCheck = await hooks_1.isSwapByTransfer.bind(this)(context, context.transaction);
if (swapTransferCheck.status && swapTransferCheck.payload) {
const senderFeeBalance = await this.tokenMethod.getAvailableBalance(context, context.transaction.senderAddress, this.feeMethod.getFeeTokenID());
const feeDifference = senderFeeBalance - context.transaction.fee;
if (feeDifference < BigInt(0)) {
return {
status: fee_conversion_module_1.FeeConversionVerifyStatus.WITH_CONVERSION,
payload: {
tokenId: swapTransferCheck.payload.tokenID,
txAmount: swapTransferCheck.payload.amount,
},
};
}
}
return { status: fee_conversion_module_1.FeeConversionVerifyStatus.NO_CONVERSION };
}
}
exports.DexTransferFeeConversionMethod = DexTransferFeeConversionMethod;
//# sourceMappingURL=dex_transfer.js.map