@kamino-finance/klend-sdk
Version:
Typescript SDK for interacting with the Kamino Lending (klend) protocol
44 lines • 1.96 kB
JavaScript
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
;