UNPKG

fbonds-core

Version:

Banx protocol sdk

84 lines (83 loc) 6.05 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 }); const helpers_1 = require("../fbond-protocol//helpers"); const types_1 = require("../fbond-protocol/types"); const src_1 = require("src"); const migration_1 = require("src/fbond-protocol/functions/migration"); const utils_1 = require("./utils"); (() => __awaiter(void 0, void 0, void 0, function* () { const chunks = (array, chunkSize = 10) => { let res = []; for (let currentChunk = 0; currentChunk < array.length; currentChunk += chunkSize) { res.push(array.slice(currentChunk, currentChunk + chunkSize)); } return res; }; const mainnetConnection = new src_1.anchor.web3.Connection('https://mainnet.helius-rpc.com/?api-key=0dd0537a-65dd-4d40-a7d5-97804e3caa7e', 'confirmed'); const connection = mainnetConnection; const userKeypair = yield (0, utils_1.createKeypairFromFile)(__dirname + '/keys/banx_admin_mainnet.json'); // console.log(userKeypair.publicKey) const sendTxnUserMock = (txn, signers) => __awaiter(void 0, void 0, void 0, function* () { }); const sendTxnUserDevnet = (txn, signers) => __awaiter(void 0, void 0, void 0, function* () { return console.log(yield connection.sendTransaction(txn.add(src_1.web3.ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 40000 })), [userKeypair, ...signers]).catch((err) => console.log(err))); }); const program = (0, helpers_1.returnAnchorProgram)(mainnetConnection); const fbonds = (yield program.account.fraktBond.all()).map(fbond => (0, helpers_1.anchorRawBNsAndPubkeysToNumsAndStrings)(fbond)); // const fbondsToDelete = fbonds.filter(fbond => fbond.fraktBondState === FraktBondState.PerpetualLiquidatedByClaim || fbond.fraktBondState === FraktBondState.PerpetualRepaid) const btts = (yield program.account.bondTradeTransactionV3.all()).map(fbond => (0, helpers_1.anchorRawBNsAndPubkeysToNumsAndStrings)(fbond)); // const bttsToDelete = btts.filter(fbond => fbond.bondTradeTransactionState === BondTradeTransactionV2State.PerpetualLiquidatedByClaim // || fbond.bondTradeTransactionState === BondTradeTransactionV2State.PerpetualPartialRepaid || fbond.bondTradeTransactionState === BondTradeTransactionV2State.PerpetualRefinanceRepaid) const activeBtts = btts.filter(fbond => fbond.bondTradeTransactionState == types_1.BondTradeTransactionV2State.PerpetualActive || fbond.bondTradeTransactionState == types_1.BondTradeTransactionV2State.PerpetualBorrowerListing || fbond.bondTradeTransactionState == types_1.BondTradeTransactionV2State.PerpetualManualTerminating || fbond.bondTradeTransactionState == types_1.BondTradeTransactionV2State.PerpetualAutoTerminating || fbond.bondTradeTransactionState == types_1.BondTradeTransactionV2State.PerpetualRefinancedActive || fbond.bondTradeTransactionState == types_1.BondTradeTransactionV2State.PerpetualSellingListing || fbond.bondTradeTransactionState == types_1.BondTradeTransactionV2State.PerpetualSellingLoan); const offers = (yield program.account.bondOfferV3.all()).map(fbond => (0, helpers_1.anchorRawBNsAndPubkeysToNumsAndStrings)(fbond)); let offersToDelete = offers.filter(fbond => fbond.pairState === types_1.PairState.PerpetualBondingCurveClosed && fbond.edgeSettlement.isZero() && !activeBtts.find(btt => btt.bondOffer.toString() === fbond.publicKey.toString())); // const facelessOfffres = offers.filter(offer => offer.hadoMarket.toString() === "BzxKw3JLmPt7aagkHnRQEMQ4Le1rZdwEib5Viuig42hu" ) // const activeBttFacclessToDelete = btts.filter(fbond => fbond.bondTradeTransactionState === BondTradeTransactionV2State.PerpetualActive // && facelessOfffres.find(offer => offer.publicKey.toString() == fbond.bondOffer.toString())); // const activeFbondsFacclessToDelete = fbonds.filter(fbond => fbond.fraktBondState === FraktBondState.PerpetualActive && fbond.fraktMarket.toString() === "BBDTWocoEELhwmRBECcudJ2yfCDX1fteYj9uFQAsCDtr"); // console.log("count: ", fbondsToDelete.length,) // fbondsToDelete.length = 1; let chunk = chunks(offersToDelete, 8); console.log("count: ", chunk.length); for (let indexChunk = 0; indexChunk < chunk.length; indexChunk++) { let tempChunk = chunk[indexChunk]; let tr = new src_1.web3.Transaction(); const instructions = []; console.log("patching : ", indexChunk, chunk.length); for (let index = 0; index < tempChunk.length; index++) { const offerr = tempChunk[index]; const result = yield (0, migration_1.harvestRentByAdmin)({ connection: connection, accounts: { adminPukey: userKeypair.publicKey, }, sendTxn: sendTxnUserMock, programId: program.programId, args: { account: offerr, isFacelses: false } }); // if (result.rentOwner.toString() != userKeypair.publicKey.toString()) { // console.log(offerr, "rent owner: ", result.rentOwner) // } instructions.push(...result.instructions); } for (let instruction of [...instructions]) tr.add(instruction); yield sendTxnUserDevnet(tr, []); } }))();