@rarimo/swap
Version:
Internal tools that other Rarimo packages use to swap tokens.
44 lines (43 loc) • 1.27 kB
JavaScript
;
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