@kamino-finance/klend-sdk
Version:
Typescript SDK for interacting with the Kamino Lending (klend) protocol
207 lines • 7.66 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BASE_SEED_FARM_USER_STATE = exports.BASE_SEED_USER_STATE = exports.BASE_SEED_GLOBAL_CONFIG_STATE = exports.BASE_SEED_SHORT_URL = exports.BASE_SEED_REFERRER_STATE = exports.BASE_SEED_REFERRER_TOKEN_STATE = exports.BASE_SEED_USER_METADATA = exports.RESERVE_COLL_SUPPLY_SEED = exports.RESERVE_COLL_MINT_SEED = exports.FEE_RECEIVER_SEED = exports.RESERVE_LIQ_SUPPLY_SEED = exports.LENDING_MARKET_AUTH_SEED = void 0;
exports.reservePdas = reservePdas;
exports.lendingMarketAuthPda = lendingMarketAuthPda;
exports.reserveLiqSupplyPda = reserveLiqSupplyPda;
exports.reserveFeeVaultPda = reserveFeeVaultPda;
exports.reserveCollateralMintPda = reserveCollateralMintPda;
exports.reserveCollateralSupplyPda = reserveCollateralSupplyPda;
exports.userMetadataPda = userMetadataPda;
exports.referrerTokenStatePda = referrerTokenStatePda;
exports.referrerStatePda = referrerStatePda;
exports.shortUrlPda = shortUrlPda;
exports.globalConfigPda = globalConfigPda;
exports.programDataPda = programDataPda;
exports.obligationFarmStatePda = obligationFarmStatePda;
exports.getKVaultSharesMetadataPda = getKVaultSharesMetadataPda;
const web3_js_1 = require("@solana/web3.js");
const programId_1 = require("../idl_codegen/programId");
const farms_sdk_1 = require("@kamino-finance/farms-sdk");
const vault_1 = require("../classes/vault");
/**
* Lending market authority seed
*/
exports.LENDING_MARKET_AUTH_SEED = 'lma';
/**
* Reserve liquidity supply seed
*/
exports.RESERVE_LIQ_SUPPLY_SEED = 'reserve_liq_supply';
/**
* Reserve fee vault seed
*/
exports.FEE_RECEIVER_SEED = 'fee_receiver';
/**
* Reserve collateral mint seed
*/
exports.RESERVE_COLL_MINT_SEED = 'reserve_coll_mint';
/**
* Reserve collateral supply seed
*/
exports.RESERVE_COLL_SUPPLY_SEED = 'reserve_coll_supply';
/**
* User metadata seed
*/
exports.BASE_SEED_USER_METADATA = 'user_meta';
/**
* Referrer token state seed
*/
exports.BASE_SEED_REFERRER_TOKEN_STATE = 'referrer_acc';
/**
* Referrer state seed
*/
exports.BASE_SEED_REFERRER_STATE = 'ref_state';
/**
* Short url seed
*/
exports.BASE_SEED_SHORT_URL = 'short_url';
/**
* Short url seed
*/
exports.BASE_SEED_GLOBAL_CONFIG_STATE = 'global_config';
/**
* Farm user state seed
*/
exports.BASE_SEED_USER_STATE = 'user';
/**
* User farm state seed
*/
exports.BASE_SEED_FARM_USER_STATE = Buffer.from('user');
/**
* Returns all the PDAs for the given reserve
* @param programId
* @param market
* @param mint
* @returns ReservePdas
*/
function reservePdas(programId, market, mint) {
return {
liquiditySupplyVault: reserveLiqSupplyPda(market, mint, programId)[0],
collateralMint: reserveCollateralMintPda(market, mint, programId)[0],
collateralSupplyVault: reserveCollateralSupplyPda(market, mint, programId)[0],
feeVault: reserveFeeVaultPda(market, mint, programId)[0],
};
}
/**
* Returns the PDA and bump for the lending market authority
* @param lendingMarket
* @param programId
* @returns [authority, bump]
*/
function lendingMarketAuthPda(lendingMarket, programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.LENDING_MARKET_AUTH_SEED), lendingMarket.toBuffer()], programId);
}
/**
* Returns the PDA and bump for the reserve liquidity supply
* @param lendingMarket
* @param mint
* @param programId
* @returns [pda, bump]
*/
function reserveLiqSupplyPda(lendingMarket, mint, programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.RESERVE_LIQ_SUPPLY_SEED), lendingMarket.toBuffer(), mint.toBuffer()], programId);
}
/**
* Returns the PDA and bump for the reserve fee vault
* @param lendingMarket
* @param mint
* @param programId
* @returns [vaultPda, bump]
*/
function reserveFeeVaultPda(lendingMarket, mint, programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.FEE_RECEIVER_SEED), lendingMarket.toBuffer(), mint.toBuffer()], programId);
}
/**
* Returns the PDA and bump for the reserve collateral mint
* @param lendingMarket
* @param mint
* @param programId
* @returns [mintPda, bump]
*/
function reserveCollateralMintPda(lendingMarket, mint, programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.RESERVE_COLL_MINT_SEED), lendingMarket.toBuffer(), mint.toBuffer()], programId);
}
/**
* Returns the PDA and bump for the reserve collateral supply
* @param lendingMarket
* @param mint
* @param programId
* @returns [pda, bump]
*/
function reserveCollateralSupplyPda(lendingMarket, mint, programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.RESERVE_COLL_SUPPLY_SEED), lendingMarket.toBuffer(), mint.toBuffer()], programId);
}
/**
* Returns the PDA and bump for the user metadata state
* @param user
* @param programId
* @returns [pda, bump]
*/
function userMetadataPda(user, programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.BASE_SEED_USER_METADATA), user.toBuffer()], programId);
}
/**
* Returns the PDA and bump for the referrer account for a mint
* @param referrer
* @param reserve
* @param programId
* @returns [pda, bump]
*/
function referrerTokenStatePda(referrer, reserve, programId = programId_1.PROGRAM_ID) {
if (referrer.equals(web3_js_1.PublicKey.default)) {
return [programId];
}
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.BASE_SEED_REFERRER_TOKEN_STATE), referrer.toBuffer(), reserve.toBuffer()], programId);
}
/**
* Returns the PDA and bump for the referrer state
* @param referrer
* @param programId
* @returns [pda, bump]
*/
function referrerStatePda(referrer, programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.BASE_SEED_REFERRER_STATE), referrer.toBuffer()], programId);
}
/**
* Returns the PDA and bump for the short url
* @param shortUrl
* @param programId
* @returns [pda, bump]
*/
function shortUrlPda(shortUrl, programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.BASE_SEED_SHORT_URL), Buffer.from(shortUrl)], programId);
}
/**
* Returns the PDA and bump for the global config state.
* @param programId
* @returns [pda, bump]
*/
function globalConfigPda(programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.BASE_SEED_GLOBAL_CONFIG_STATE)], programId);
}
/**
* Returns the PDA and bump for the program data.
* @param programId
* @returns [pda, bump]
*/
function programDataPda(programId = programId_1.PROGRAM_ID) {
return web3_js_1.PublicKey.findProgramAddressSync([programId.toBuffer()], new web3_js_1.PublicKey('BPFLoaderUpgradeab1e11111111111111111111111'));
}
/**
* Returns the PDA for the obligation farm state
* @param farm
* @param obligation
* @returns pda
*/
function obligationFarmStatePda(farm, obligation) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(exports.BASE_SEED_USER_STATE), farm.toBytes(), obligation.toBytes()], farms_sdk_1.farmsId)[0];
}
/**
* Returns the PDA for the kVault shares metadata
* @param mint
* @returns [pda, bump]
*/
function getKVaultSharesMetadataPda(mint) {
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(vault_1.METADATA_SEED), vault_1.METADATA_PROGRAM_ID.toBuffer(), mint.toBuffer()], vault_1.METADATA_PROGRAM_ID);
}
//# sourceMappingURL=seeds.js.map