UNPKG

@marinade.finance/kamino-sdk

Version:
79 lines (68 loc) 2.41 kB
import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as borsh from '@project-serum/borsh'; export interface InitializeRewardParamFields { /** Reward open time */ openTime: BN; /** Reward end time */ endTime: BN; /** Token reward per second are earned per unit of liquidity */ emissionsPerSecondX64: BN; } export interface InitializeRewardParamJSON { /** Reward open time */ openTime: string; /** Reward end time */ endTime: string; /** Token reward per second are earned per unit of liquidity */ emissionsPerSecondX64: string; } export class InitializeRewardParam { /** Reward open time */ readonly openTime: BN; /** Reward end time */ readonly endTime: BN; /** Token reward per second are earned per unit of liquidity */ readonly emissionsPerSecondX64: BN; constructor(fields: InitializeRewardParamFields) { this.openTime = fields.openTime; this.endTime = fields.endTime; this.emissionsPerSecondX64 = fields.emissionsPerSecondX64; } static layout(property?: string) { return borsh.struct([borsh.u64('openTime'), borsh.u64('endTime'), borsh.u128('emissionsPerSecondX64')], property); } // eslint-disable-next-line @typescript-eslint/no-explicit-any static fromDecoded(obj: any) { return new InitializeRewardParam({ openTime: obj.openTime, endTime: obj.endTime, emissionsPerSecondX64: obj.emissionsPerSecondX64, }); } static toEncodable(fields: InitializeRewardParamFields) { return { openTime: fields.openTime, endTime: fields.endTime, emissionsPerSecondX64: fields.emissionsPerSecondX64, }; } toJSON(): InitializeRewardParamJSON { return { openTime: this.openTime.toString(), endTime: this.endTime.toString(), emissionsPerSecondX64: this.emissionsPerSecondX64.toString(), }; } static fromJSON(obj: InitializeRewardParamJSON): InitializeRewardParam { return new InitializeRewardParam({ openTime: new BN(obj.openTime), endTime: new BN(obj.endTime), emissionsPerSecondX64: new BN(obj.emissionsPerSecondX64), }); } toEncodable() { return InitializeRewardParam.toEncodable(this); } }