@swaptoshi/dex-module
Version:
Klayr decentralized exchange (dex) on-chain module
35 lines • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreatePoolCommand = void 0;
const klayr_framework_1 = require("klayr-framework");
const context_1 = require("../stores/context");
const pool_1 = require("../stores/pool");
const schema_1 = require("../schema");
const utils_1 = require("../utils");
class CreatePoolCommand extends klayr_framework_1.Modules.BaseCommand {
constructor() {
super(...arguments);
this.schema = schema_1.createPoolCommandSchema;
}
async verify(_context) {
try {
(0, utils_1.verifyCreatePoolParam)(_context.params);
}
catch (error) {
return {
status: klayr_framework_1.StateMachine.VerifyStatus.FAIL,
error: new Error(error.message),
};
}
return { status: klayr_framework_1.StateMachine.VerifyStatus.OK };
}
async execute(_context) {
const poolStore = this.stores.get(pool_1.PoolStore);
const context = (0, context_1.commandSwapContext)(_context);
const { tokenA, tokenADecimal, tokenASymbol, tokenB, tokenBDecimal, tokenBSymbol, fee, sqrtPriceX96 } = _context.params;
const pool = await poolStore.createPool(context, tokenA, tokenASymbol, tokenADecimal, tokenB, tokenBSymbol, tokenBDecimal, fee);
await pool.initialize(tokenA.compare(tokenB) >= 0 ? (0, utils_1.inversePriceSqrt)(sqrtPriceX96) : sqrtPriceX96);
}
}
exports.CreatePoolCommand = CreatePoolCommand;
//# sourceMappingURL=create_pool_command.js.map