@swaptoshi/dex-module
Version:
Klayr decentralized exchange (dex) on-chain module
35 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MULTIPLE_POOLS_MIN_LENGTH = exports.POP_OFFSET = exports.NEXT_OFFSET = exports.FEE_SIZE = exports.ADDR_SIZE = void 0;
exports.hasMultiplePools = hasMultiplePools;
exports.numPools = numPools;
exports.decodeFirstPool = decodeFirstPool;
exports.getFirstPool = getFirstPool;
exports.getLastPool = getLastPool;
exports.skipToken = skipToken;
const int_1 = require("../int");
const bytes_lib_1 = require("./bytes_lib");
exports.ADDR_SIZE = 8;
exports.FEE_SIZE = 3;
exports.NEXT_OFFSET = exports.ADDR_SIZE + exports.FEE_SIZE;
exports.POP_OFFSET = exports.NEXT_OFFSET + exports.ADDR_SIZE;
exports.MULTIPLE_POOLS_MIN_LENGTH = exports.POP_OFFSET + exports.NEXT_OFFSET;
function hasMultiplePools(path) {
return path.length >= exports.MULTIPLE_POOLS_MIN_LENGTH;
}
function numPools(path) {
return int_1.Uint256.from(path.length).sub(exports.ADDR_SIZE).div(exports.NEXT_OFFSET).toString();
}
function decodeFirstPool(path) {
return [(0, bytes_lib_1.toAddress)(path, 0), (0, bytes_lib_1.toAddress)(path, exports.NEXT_OFFSET), (0, bytes_lib_1.toUint24)(path, exports.ADDR_SIZE).toString()];
}
function getFirstPool(path) {
return path.subarray(0, exports.POP_OFFSET);
}
function getLastPool(path) {
return path.subarray(path.length - exports.POP_OFFSET, path.length);
}
function skipToken(path) {
return (0, bytes_lib_1.slice)(path, exports.NEXT_OFFSET, path.length - exports.NEXT_OFFSET);
}
//# sourceMappingURL=path.js.map