UNPKG

@marinade.finance/kamino-sdk

Version:
95 lines (84 loc) 2.71 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 WhirlpoolRewardInfoFields { mint: PublicKey vault: PublicKey authority: PublicKey emissionsPerSecondX64: BN growthGlobalX64: BN } export interface WhirlpoolRewardInfoJSON { mint: string vault: string authority: string emissionsPerSecondX64: string growthGlobalX64: string } export class WhirlpoolRewardInfo { readonly mint: PublicKey readonly vault: PublicKey readonly authority: PublicKey readonly emissionsPerSecondX64: BN readonly growthGlobalX64: BN constructor(fields: WhirlpoolRewardInfoFields) { this.mint = fields.mint this.vault = fields.vault this.authority = fields.authority this.emissionsPerSecondX64 = fields.emissionsPerSecondX64 this.growthGlobalX64 = fields.growthGlobalX64 } static layout(property?: string) { return borsh.struct( [ borsh.publicKey("mint"), borsh.publicKey("vault"), borsh.publicKey("authority"), borsh.u128("emissionsPerSecondX64"), borsh.u128("growthGlobalX64"), ], property ) } // eslint-disable-next-line @typescript-eslint/no-explicit-any static fromDecoded(obj: any) { return new WhirlpoolRewardInfo({ mint: obj.mint, vault: obj.vault, authority: obj.authority, emissionsPerSecondX64: obj.emissionsPerSecondX64, growthGlobalX64: obj.growthGlobalX64, }) } static toEncodable(fields: WhirlpoolRewardInfoFields) { return { mint: fields.mint, vault: fields.vault, authority: fields.authority, emissionsPerSecondX64: fields.emissionsPerSecondX64, growthGlobalX64: fields.growthGlobalX64, } } toJSON(): WhirlpoolRewardInfoJSON { return { mint: this.mint.toString(), vault: this.vault.toString(), authority: this.authority.toString(), emissionsPerSecondX64: this.emissionsPerSecondX64.toString(), growthGlobalX64: this.growthGlobalX64.toString(), } } static fromJSON(obj: WhirlpoolRewardInfoJSON): WhirlpoolRewardInfo { return new WhirlpoolRewardInfo({ mint: new PublicKey(obj.mint), vault: new PublicKey(obj.vault), authority: new PublicKey(obj.authority), emissionsPerSecondX64: new BN(obj.emissionsPerSecondX64), growthGlobalX64: new BN(obj.growthGlobalX64), }) } toEncodable() { return WhirlpoolRewardInfo.toEncodable(this) } }