UNPKG

@symmetry-hq/baskets-v2-sdk

Version:

Symmetry Baskets V2 SDK

159 lines (158 loc) 7.75 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.createBasketHandler = createBasketHandler; exports.editBasketSettingsHandler = editBasketSettingsHandler; exports.addLamportsForAutomationHandler = addLamportsForAutomationHandler; exports.addNewTokenHandler = addNewTokenHandler; exports.removeTokenHandler = removeTokenHandler; exports.updateTokenWeightsHandler = updateTokenWeightsHandler; exports.createPythSponsoredFeedsHandler = createPythSponsoredFeedsHandler; exports.updatePythSponsoredFeedsHandler = updatePythSponsoredFeedsHandler; const web3_js_1 = require("@solana/web3.js"); const createBasket_1 = require("./instructions/creator/createBasket"); const programAccounts_1 = require("./utils/programAccounts"); const txUtils_1 = require("./utils/txUtils"); const editBasket_1 = require("./instructions/creator/editBasket"); const oracle_1 = require("./utils/oracle"); const addNewToken_1 = require("./instructions/manager/addNewToken"); const removeToken_1 = require("./instructions/manager/removeToken"); const updateTokenWeights_1 = require("./instructions/manager/updateTokenWeights"); const updatePythSponsoredFeeds_1 = require("./instructions/oracleUpdate/updatePythSponsoredFeeds"); const createPythSponsoredFeeds_1 = require("./instructions/oracleUpdate/createPythSponsoredFeeds"); const addLamportsForAutomation_1 = require("./instructions/manager/addLamportsForAutomation"); function createBasketHandler(sdkParams, params, basketKeypair) { return __awaiter(this, void 0, void 0, function* () { const ixs = yield (0, createBasket_1.createBasketIxs)(Object.assign(Object.assign({}, params), { basketKeypair: basketKeypair, creator: sdkParams.payer, program: sdkParams.program })); return yield (0, txUtils_1.prepareV0Transactions)({ connection: sdkParams.connection, payer: sdkParams.payer, priorityFee: sdkParams.priorityFee, multipleIxs: [ixs], multipleLookupTableAddresses: [[]], signers: [[basketKeypair]], batches: [1], }); }); } function editBasketSettingsHandler(sdkParams, params) { return __awaiter(this, void 0, void 0, function* () { const ix = yield (0, editBasket_1.editBasketIx)(Object.assign(Object.assign({}, params), { creator: sdkParams.payer, program: sdkParams.program })); return yield (0, txUtils_1.prepareV0Transactions)({ connection: sdkParams.connection, payer: sdkParams.payer, priorityFee: sdkParams.priorityFee, multipleIxs: [[ix]], multipleLookupTableAddresses: [[]], signers: [[]], batches: [1], }); }); } function addLamportsForAutomationHandler(sdkParams, params) { return __awaiter(this, void 0, void 0, function* () { const ix = yield (0, addLamportsForAutomation_1.addLamportsForAutomationIx)({ program: sdkParams.program, basket: params.basket, manager: sdkParams.payer, amount: params.amount, }); return yield (0, txUtils_1.prepareV0Transactions)({ connection: sdkParams.connection, payer: sdkParams.payer, priorityFee: sdkParams.priorityFee, multipleIxs: [[ix]], multipleLookupTableAddresses: [[]], signers: [[]], batches: [1], }); }); } function addNewTokenHandler(sdkParams, params) { return __awaiter(this, void 0, void 0, function* () { const accountInfos = yield (0, programAccounts_1.getAccountInfos)(sdkParams.connection, [params.token, params.oraclePool]); const validation = (0, oracle_1.validateOracle)(sdkParams.program, params.token, //@ts-ignore accountInfos[0], accountInfos[1], params.oracleType, params.oracle1, params.oracle2); if (validation != "OK") throw new Error("Error: " + validation); const ix = yield (0, addNewToken_1.addNewTokenIx)(Object.assign({ program: sdkParams.program, manager: sdkParams.payer }, params)); return yield (0, txUtils_1.prepareV0Transactions)({ connection: sdkParams.connection, payer: sdkParams.payer, priorityFee: sdkParams.priorityFee, multipleIxs: [[ix]], multipleLookupTableAddresses: [[]], signers: [[]], batches: [1], }); }); } function removeTokenHandler(sdkParams, params) { return __awaiter(this, void 0, void 0, function* () { const ix = yield (0, removeToken_1.removeTokenIx)(Object.assign({ program: sdkParams.program, manager: sdkParams.payer }, params)); return yield (0, txUtils_1.prepareV0Transactions)({ connection: sdkParams.connection, payer: sdkParams.payer, priorityFee: sdkParams.priorityFee, multipleIxs: [[ix]], multipleLookupTableAddresses: [[]], signers: [[]], batches: [1], }); }); } function updateTokenWeightsHandler(sdkParams, params) { return __awaiter(this, void 0, void 0, function* () { const ix = yield (0, updateTokenWeights_1.updateTokenWeightsIx)(Object.assign({ program: sdkParams.program, manager: sdkParams.payer }, params)); return yield (0, txUtils_1.prepareV0Transactions)({ connection: sdkParams.connection, payer: sdkParams.payer, priorityFee: sdkParams.priorityFee, multipleIxs: [[ix]], multipleLookupTableAddresses: [[]], signers: [[]], batches: [1], }); }); } function createPythSponsoredFeedsHandler(sdkParams) { return __awaiter(this, void 0, void 0, function* () { const pythSponsoredFeedsKeypair = web3_js_1.Keypair.generate(); const ixs = yield (0, createPythSponsoredFeeds_1.createPythSponsoredFeedsIxs)({ program: sdkParams.program, payer: sdkParams.payer, pythSponsoredFeeds: pythSponsoredFeedsKeypair.publicKey, }); return yield (0, txUtils_1.prepareV0Transactions)({ connection: sdkParams.connection, payer: sdkParams.payer, priorityFee: sdkParams.priorityFee, multipleIxs: [ixs], multipleLookupTableAddresses: [[]], signers: [[pythSponsoredFeedsKeypair]], batches: [1], }); }); } function updatePythSponsoredFeedsHandler(sdkParams, params) { return __awaiter(this, void 0, void 0, function* () { const ix = yield (0, updatePythSponsoredFeeds_1.updatePythSponsoredFeedsIx)(Object.assign({ program: sdkParams.program, payer: sdkParams.payer }, params)); return yield (0, txUtils_1.prepareV0Transactions)({ connection: sdkParams.connection, payer: sdkParams.payer, priorityFee: sdkParams.priorityFee, multipleIxs: [[ix]], multipleLookupTableAddresses: [[]], signers: [[]], batches: [1], }); }); }