UNPKG

@swaptoshi/dex-module

Version:

Klayr decentralized exchange (dex) on-chain module

35 lines 1.56 kB
"use strict"; 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