UNPKG

@swaptoshi/dex-module

Version:

Klayr decentralized exchange (dex) on-chain module

28 lines 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.verifyValidCrossTransfer = verifyValidCrossTransfer; const codec_1 = require("@klayr/codec"); const constants_1 = require("../../constants"); const pool_1 = require("../../stores/pool"); const schema_1 = require("../../schema"); const INVALID_TRANSFER_RECIPIENTS = [constants_1.POSITION_MANAGER_ADDRESS, constants_1.ROUTER_ADDRESS]; async function verifyValidCrossTransfer(context) { var _a, _b, _c; if (context.ccm.module === 'token' && context.ccm.crossChainCommand === 'transferCrossChain') { const params = codec_1.codec.decode(schema_1.crossChainTokenTransferMessageParams, context.ccm.params); if (INVALID_TRANSFER_RECIPIENTS.findIndex(t => t.equals(params.recipientAddress)) >= 0) { await ((_a = this._tokenMethod) === null || _a === void 0 ? void 0 : _a.transfer(context.getMethodContext(), params.recipientAddress, params.senderAddress, params.tokenID, params.amount)); } } if (context.ccm.module === 'nft' && context.ccm.crossChainCommand === 'crossChainTransfer') { const params = codec_1.codec.decode(schema_1.crossChainNFTTransferMessageParamsSchema, context.ccm.params); if (INVALID_TRANSFER_RECIPIENTS.findIndex(t => t.equals(params.recipientAddress)) >= 0) { await ((_b = this._nftMethod) === null || _b === void 0 ? void 0 : _b.transfer(context.getMethodContext(), params.recipientAddress, params.senderAddress, params.nftID)); } const poolStore = this.stores.get(pool_1.PoolStore); if (await poolStore.has(context, params.recipientAddress)) { await ((_c = this._nftMethod) === null || _c === void 0 ? void 0 : _c.transfer(context.getMethodContext(), params.recipientAddress, params.senderAddress, params.nftID)); } } } //# sourceMappingURL=verifyValidCrossTransfer.js.map