UNPKG

kamino-sdk-beta

Version:

Typescript SDK for interacting with the Kamino Liquidity (kliquidity) protocol

138 lines 5.83 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RewardInfo = void 0; const web3_js_1 = require("@solana/web3.js"); // eslint-disable-line @typescript-eslint/no-unused-vars const bn_js_1 = __importDefault(require("bn.js")); // eslint-disable-line @typescript-eslint/no-unused-vars const borsh = __importStar(require("@coral-xyz/borsh")); /** Stores the state relevant for tracking liquidity mining rewards */ class RewardInfo { /** Reward token mint. */ mint; /** Reward vault token account. */ vault; /** Authority account that allows to fund rewards */ funder; /** TODO check whether we need to store it in pool */ rewardDuration; /** TODO check whether we need to store it in pool */ rewardDurationEnd; /** TODO check whether we need to store it in pool */ rewardRate; /** The last time reward states were updated. */ lastUpdateTime; /** Accumulated seconds where when farm distribute rewards, but the bin is empty. The reward will be accumulated for next reward time window. */ cumulativeSecondsWithEmptyLiquidityReward; constructor(fields) { this.mint = fields.mint; this.vault = fields.vault; this.funder = fields.funder; this.rewardDuration = fields.rewardDuration; this.rewardDurationEnd = fields.rewardDurationEnd; this.rewardRate = fields.rewardRate; this.lastUpdateTime = fields.lastUpdateTime; this.cumulativeSecondsWithEmptyLiquidityReward = fields.cumulativeSecondsWithEmptyLiquidityReward; } static layout(property) { return borsh.struct([ borsh.publicKey("mint"), borsh.publicKey("vault"), borsh.publicKey("funder"), borsh.u64("rewardDuration"), borsh.u64("rewardDurationEnd"), borsh.u128("rewardRate"), borsh.u64("lastUpdateTime"), borsh.u64("cumulativeSecondsWithEmptyLiquidityReward"), ], property); } // eslint-disable-next-line @typescript-eslint/no-explicit-any static fromDecoded(obj) { return new RewardInfo({ mint: obj.mint, vault: obj.vault, funder: obj.funder, rewardDuration: obj.rewardDuration, rewardDurationEnd: obj.rewardDurationEnd, rewardRate: obj.rewardRate, lastUpdateTime: obj.lastUpdateTime, cumulativeSecondsWithEmptyLiquidityReward: obj.cumulativeSecondsWithEmptyLiquidityReward, }); } static toEncodable(fields) { return { mint: fields.mint, vault: fields.vault, funder: fields.funder, rewardDuration: fields.rewardDuration, rewardDurationEnd: fields.rewardDurationEnd, rewardRate: fields.rewardRate, lastUpdateTime: fields.lastUpdateTime, cumulativeSecondsWithEmptyLiquidityReward: fields.cumulativeSecondsWithEmptyLiquidityReward, }; } toJSON() { return { mint: this.mint.toString(), vault: this.vault.toString(), funder: this.funder.toString(), rewardDuration: this.rewardDuration.toString(), rewardDurationEnd: this.rewardDurationEnd.toString(), rewardRate: this.rewardRate.toString(), lastUpdateTime: this.lastUpdateTime.toString(), cumulativeSecondsWithEmptyLiquidityReward: this.cumulativeSecondsWithEmptyLiquidityReward.toString(), }; } static fromJSON(obj) { return new RewardInfo({ mint: new web3_js_1.PublicKey(obj.mint), vault: new web3_js_1.PublicKey(obj.vault), funder: new web3_js_1.PublicKey(obj.funder), rewardDuration: new bn_js_1.default(obj.rewardDuration), rewardDurationEnd: new bn_js_1.default(obj.rewardDurationEnd), rewardRate: new bn_js_1.default(obj.rewardRate), lastUpdateTime: new bn_js_1.default(obj.lastUpdateTime), cumulativeSecondsWithEmptyLiquidityReward: new bn_js_1.default(obj.cumulativeSecondsWithEmptyLiquidityReward), }); } toEncodable() { return RewardInfo.toEncodable(this); } } exports.RewardInfo = RewardInfo; //# sourceMappingURL=RewardInfo.js.map