UNPKG

@rarimo/swap

Version:

Internal tools that other Rarimo packages use to swap tokens.

44 lines (43 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "buildPayload", { enumerable: true, get: function() { return buildPayload; } }); const _shared = require("@rarimo/shared"); const _ethers = require("ethers"); const _const = require("../../../const"); const ABIS = [ _shared.MASTER_ROUTER_ABI, _shared.BRIDGE_ROUTER_ABI, _shared.MULTICALL_ROUTER_ABI, _shared.TRADER_JOE_ROUTER_ABI, _shared.TRANSFER_ROUTER_ABI, _shared.UNISWAP_V2_ROUTER_ABI, _shared.UNISWAP_V3_ROUTER, _shared.WRAP_ROUTER_ABI ]; const buildPayload = (cmd, values)=>{ const command = _const.SWAP_COMMANDS_NAME_MAP[cmd]; if (!command) { throw new Error(`Unknown command ${cmd}`); } const isFragmentExists = (j)=>{ return j.type === 'function' && j.name === command; }; const abi = ABIS.find((i)=>i.some(isFragmentExists)); if (!abi) { throw new Error(`ABI for command ${command} not found`); } const functionData = new _ethers.utils.Interface(abi).encodeFunctionData(command, values); return { command: cmd, skipRevert: false, data: '0x' + functionData.slice(10) }; }; //# sourceMappingURL=payload.js.map