UNPKG

@prism-hq/prism-ag

Version:

Prism Aggregator

62 lines (61 loc) 3.11 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadWhirlpools = void 0; const whirlpools_prism_sdk_1 = require("whirlpools-prism-sdk"); const web3_js_1 = require("@solana/web3.js"); const types_1 = require("../../types/types"); function loadWhirlpools(liquidity, connection) { return __awaiter(this, void 0, void 0, function* () { try { if (!liquidity || liquidity.length == 0) return []; let whirlpools = {}; let whirlpoolsArr = []; let pro = []; let addrs = []; for (let i = 0; i < liquidity.length; i++) { let pool = liquidity[i]; addrs.push(pool.poolAddress); } let fetcher = new whirlpools_prism_sdk_1.AccountFetcher(connection); //@ts-ignore whirlpoolsArr = yield fetcher.listPools(addrs, false); // console.log(whirlpoolsArr); pro = []; for (let i = 0; i < liquidity.length; i++) { let pool = liquidity[i]; let whirlpoolData = whirlpoolsArr[i]; let fetcher = new whirlpools_prism_sdk_1.AccountFetcher(connection); pro.push(whirlpools_prism_sdk_1.SwapUtils.getTickArrays(whirlpoolData.tickCurrentIndex, whirlpoolData.tickSpacing, true, new web3_js_1.PublicKey(types_1.WHIRLPOOL_PROGRAM), pool.poolAddress, fetcher, false)); pro.push(whirlpools_prism_sdk_1.SwapUtils.getTickArrays(whirlpoolData.tickCurrentIndex, whirlpoolData.tickSpacing, false, new web3_js_1.PublicKey(types_1.WHIRLPOOL_PROGRAM), pool.poolAddress, fetcher, false)); } let ticks = yield Promise.all(pro); for (let i = 0; i < liquidity.length; i++) { let pool = liquidity[i]; let whirlpool = whirlpoolsArr[i]; let tickArraysAtoB = ticks[2 * i]; let tickArraysBtoA = ticks[2 * i + 1]; whirlpools[pool.poolAddress.toBase58()] = { whirlpool: whirlpool, poolAddress: pool.poolAddress, tickArraysAtoB: tickArraysAtoB, tickArraysBtoA: tickArraysBtoA, }; } return whirlpools; } catch (e) { return {}; } }); } exports.loadWhirlpools = loadWhirlpools;