UNPKG

@kamino-finance/klend-sdk

Version:

Typescript SDK for interacting with the Kamino Lending (klend) protocol

44 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extendLookupTableIxs = void 0; exports.printAddressLookupTable = printAddressLookupTable; exports.createLookupTableIx = createLookupTableIx; exports.extendLookupTableChunkIx = extendLookupTableChunkIx; const web3_js_1 = require("@solana/web3.js"); async function printAddressLookupTable(connection, lookupTablePk) { const lookupTableAccount = (await connection.getAddressLookupTable(lookupTablePk)).value; if (!lookupTableAccount) { console.error('Lookup table is not found'); } console.log(`Lookup table account, ${lookupTablePk.toString()}`); lookupTableAccount?.state.addresses.forEach((address, index) => { console.log(`Address: ${address.toString()} at index ${index}`); }); } async function createLookupTableIx(connection, wallet) { const [createLookupTableIxs, lookupTableAddress] = web3_js_1.AddressLookupTableProgram.createLookupTable({ authority: wallet, payer: wallet, recentSlot: await connection.getSlot('confirmed'), }); return [createLookupTableIxs, lookupTableAddress]; } function extendLookupTableChunkIx(wallet, lookupTablePk, keys, payer = web3_js_1.PublicKey.default) { return web3_js_1.AddressLookupTableProgram.extendLookupTable({ authority: wallet, payer: payer.equals(web3_js_1.PublicKey.default) ? wallet : payer, lookupTable: lookupTablePk, addresses: keys, }); } const extendLookupTableIxs = (wallet, table, keys, payer = web3_js_1.PublicKey.default) => { const chunkSize = 25; const extendLookupIxs = []; for (let i = 0; i < keys.length; i += chunkSize) { const chunk = keys.slice(i, i + chunkSize); extendLookupIxs.push(extendLookupTableChunkIx(wallet, table, chunk, payer)); } return extendLookupIxs; }; exports.extendLookupTableIxs = extendLookupTableIxs; //# sourceMappingURL=lookupTable.js.map