UNPKG

@kamino-finance/farms-sdk

Version:
661 lines (571 loc) 14.5 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 "@coral-xyz/borsh"; export interface UpdateRewardRpsJSON { kind: "UpdateRewardRps"; } export class UpdateRewardRps { static readonly discriminator = 0; static readonly kind = "UpdateRewardRps"; readonly discriminator = 0; readonly kind = "UpdateRewardRps"; toJSON(): UpdateRewardRpsJSON { return { kind: "UpdateRewardRps", }; } toEncodable() { return { UpdateRewardRps: {}, }; } } export interface UpdateRewardMinClaimDurationJSON { kind: "UpdateRewardMinClaimDuration"; } export class UpdateRewardMinClaimDuration { static readonly discriminator = 1; static readonly kind = "UpdateRewardMinClaimDuration"; readonly discriminator = 1; readonly kind = "UpdateRewardMinClaimDuration"; toJSON(): UpdateRewardMinClaimDurationJSON { return { kind: "UpdateRewardMinClaimDuration", }; } toEncodable() { return { UpdateRewardMinClaimDuration: {}, }; } } export interface WithdrawAuthorityJSON { kind: "WithdrawAuthority"; } export class WithdrawAuthority { static readonly discriminator = 2; static readonly kind = "WithdrawAuthority"; readonly discriminator = 2; readonly kind = "WithdrawAuthority"; toJSON(): WithdrawAuthorityJSON { return { kind: "WithdrawAuthority", }; } toEncodable() { return { WithdrawAuthority: {}, }; } } export interface DepositWarmupPeriodJSON { kind: "DepositWarmupPeriod"; } export class DepositWarmupPeriod { static readonly discriminator = 3; static readonly kind = "DepositWarmupPeriod"; readonly discriminator = 3; readonly kind = "DepositWarmupPeriod"; toJSON(): DepositWarmupPeriodJSON { return { kind: "DepositWarmupPeriod", }; } toEncodable() { return { DepositWarmupPeriod: {}, }; } } export interface WithdrawCooldownPeriodJSON { kind: "WithdrawCooldownPeriod"; } export class WithdrawCooldownPeriod { static readonly discriminator = 4; static readonly kind = "WithdrawCooldownPeriod"; readonly discriminator = 4; readonly kind = "WithdrawCooldownPeriod"; toJSON(): WithdrawCooldownPeriodJSON { return { kind: "WithdrawCooldownPeriod", }; } toEncodable() { return { WithdrawCooldownPeriod: {}, }; } } export interface RewardTypeJSON { kind: "RewardType"; } export class RewardType { static readonly discriminator = 5; static readonly kind = "RewardType"; readonly discriminator = 5; readonly kind = "RewardType"; toJSON(): RewardTypeJSON { return { kind: "RewardType", }; } toEncodable() { return { RewardType: {}, }; } } export interface RpsDecimalsJSON { kind: "RpsDecimals"; } export class RpsDecimals { static readonly discriminator = 6; static readonly kind = "RpsDecimals"; readonly discriminator = 6; readonly kind = "RpsDecimals"; toJSON(): RpsDecimalsJSON { return { kind: "RpsDecimals", }; } toEncodable() { return { RpsDecimals: {}, }; } } export interface LockingModeJSON { kind: "LockingMode"; } export class LockingMode { static readonly discriminator = 7; static readonly kind = "LockingMode"; readonly discriminator = 7; readonly kind = "LockingMode"; toJSON(): LockingModeJSON { return { kind: "LockingMode", }; } toEncodable() { return { LockingMode: {}, }; } } export interface LockingStartTimestampJSON { kind: "LockingStartTimestamp"; } export class LockingStartTimestamp { static readonly discriminator = 8; static readonly kind = "LockingStartTimestamp"; readonly discriminator = 8; readonly kind = "LockingStartTimestamp"; toJSON(): LockingStartTimestampJSON { return { kind: "LockingStartTimestamp", }; } toEncodable() { return { LockingStartTimestamp: {}, }; } } export interface LockingDurationJSON { kind: "LockingDuration"; } export class LockingDuration { static readonly discriminator = 9; static readonly kind = "LockingDuration"; readonly discriminator = 9; readonly kind = "LockingDuration"; toJSON(): LockingDurationJSON { return { kind: "LockingDuration", }; } toEncodable() { return { LockingDuration: {}, }; } } export interface LockingEarlyWithdrawalPenaltyBpsJSON { kind: "LockingEarlyWithdrawalPenaltyBps"; } export class LockingEarlyWithdrawalPenaltyBps { static readonly discriminator = 10; static readonly kind = "LockingEarlyWithdrawalPenaltyBps"; readonly discriminator = 10; readonly kind = "LockingEarlyWithdrawalPenaltyBps"; toJSON(): LockingEarlyWithdrawalPenaltyBpsJSON { return { kind: "LockingEarlyWithdrawalPenaltyBps", }; } toEncodable() { return { LockingEarlyWithdrawalPenaltyBps: {}, }; } } export interface DepositCapAmountJSON { kind: "DepositCapAmount"; } export class DepositCapAmount { static readonly discriminator = 11; static readonly kind = "DepositCapAmount"; readonly discriminator = 11; readonly kind = "DepositCapAmount"; toJSON(): DepositCapAmountJSON { return { kind: "DepositCapAmount", }; } toEncodable() { return { DepositCapAmount: {}, }; } } export interface SlashedAmountSpillAddressJSON { kind: "SlashedAmountSpillAddress"; } export class SlashedAmountSpillAddress { static readonly discriminator = 12; static readonly kind = "SlashedAmountSpillAddress"; readonly discriminator = 12; readonly kind = "SlashedAmountSpillAddress"; toJSON(): SlashedAmountSpillAddressJSON { return { kind: "SlashedAmountSpillAddress", }; } toEncodable() { return { SlashedAmountSpillAddress: {}, }; } } export interface ScopePricesAccountJSON { kind: "ScopePricesAccount"; } export class ScopePricesAccount { static readonly discriminator = 13; static readonly kind = "ScopePricesAccount"; readonly discriminator = 13; readonly kind = "ScopePricesAccount"; toJSON(): ScopePricesAccountJSON { return { kind: "ScopePricesAccount", }; } toEncodable() { return { ScopePricesAccount: {}, }; } } export interface ScopeOraclePriceIdJSON { kind: "ScopeOraclePriceId"; } export class ScopeOraclePriceId { static readonly discriminator = 14; static readonly kind = "ScopeOraclePriceId"; readonly discriminator = 14; readonly kind = "ScopeOraclePriceId"; toJSON(): ScopeOraclePriceIdJSON { return { kind: "ScopeOraclePriceId", }; } toEncodable() { return { ScopeOraclePriceId: {}, }; } } export interface ScopeOracleMaxAgeJSON { kind: "ScopeOracleMaxAge"; } export class ScopeOracleMaxAge { static readonly discriminator = 15; static readonly kind = "ScopeOracleMaxAge"; readonly discriminator = 15; readonly kind = "ScopeOracleMaxAge"; toJSON(): ScopeOracleMaxAgeJSON { return { kind: "ScopeOracleMaxAge", }; } toEncodable() { return { ScopeOracleMaxAge: {}, }; } } export interface UpdateRewardScheduleCurvePointsJSON { kind: "UpdateRewardScheduleCurvePoints"; } export class UpdateRewardScheduleCurvePoints { static readonly discriminator = 16; static readonly kind = "UpdateRewardScheduleCurvePoints"; readonly discriminator = 16; readonly kind = "UpdateRewardScheduleCurvePoints"; toJSON(): UpdateRewardScheduleCurvePointsJSON { return { kind: "UpdateRewardScheduleCurvePoints", }; } toEncodable() { return { UpdateRewardScheduleCurvePoints: {}, }; } } export interface UpdatePendingFarmAdminJSON { kind: "UpdatePendingFarmAdmin"; } export class UpdatePendingFarmAdmin { static readonly discriminator = 17; static readonly kind = "UpdatePendingFarmAdmin"; readonly discriminator = 17; readonly kind = "UpdatePendingFarmAdmin"; toJSON(): UpdatePendingFarmAdminJSON { return { kind: "UpdatePendingFarmAdmin", }; } toEncodable() { return { UpdatePendingFarmAdmin: {}, }; } } export interface UpdateStrategyIdJSON { kind: "UpdateStrategyId"; } export class UpdateStrategyId { static readonly discriminator = 18; static readonly kind = "UpdateStrategyId"; readonly discriminator = 18; readonly kind = "UpdateStrategyId"; toJSON(): UpdateStrategyIdJSON { return { kind: "UpdateStrategyId", }; } toEncodable() { return { UpdateStrategyId: {}, }; } } export interface UpdateDelegatedRpsAdminJSON { kind: "UpdateDelegatedRpsAdmin"; } export class UpdateDelegatedRpsAdmin { static readonly discriminator = 19; static readonly kind = "UpdateDelegatedRpsAdmin"; readonly discriminator = 19; readonly kind = "UpdateDelegatedRpsAdmin"; toJSON(): UpdateDelegatedRpsAdminJSON { return { kind: "UpdateDelegatedRpsAdmin", }; } toEncodable() { return { UpdateDelegatedRpsAdmin: {}, }; } } export interface UpdateVaultIdJSON { kind: "UpdateVaultId"; } export class UpdateVaultId { static readonly discriminator = 20; static readonly kind = "UpdateVaultId"; readonly discriminator = 20; readonly kind = "UpdateVaultId"; toJSON(): UpdateVaultIdJSON { return { kind: "UpdateVaultId", }; } toEncodable() { return { UpdateVaultId: {}, }; } } // eslint-disable-next-line @typescript-eslint/no-explicit-any export function fromDecoded(obj: any): types.FarmConfigOptionKind { if (typeof obj !== "object") { throw new Error("Invalid enum object"); } if ("UpdateRewardRps" in obj) { return new UpdateRewardRps(); } if ("UpdateRewardMinClaimDuration" in obj) { return new UpdateRewardMinClaimDuration(); } if ("WithdrawAuthority" in obj) { return new WithdrawAuthority(); } if ("DepositWarmupPeriod" in obj) { return new DepositWarmupPeriod(); } if ("WithdrawCooldownPeriod" in obj) { return new WithdrawCooldownPeriod(); } if ("RewardType" in obj) { return new RewardType(); } if ("RpsDecimals" in obj) { return new RpsDecimals(); } if ("LockingMode" in obj) { return new LockingMode(); } if ("LockingStartTimestamp" in obj) { return new LockingStartTimestamp(); } if ("LockingDuration" in obj) { return new LockingDuration(); } if ("LockingEarlyWithdrawalPenaltyBps" in obj) { return new LockingEarlyWithdrawalPenaltyBps(); } if ("DepositCapAmount" in obj) { return new DepositCapAmount(); } if ("SlashedAmountSpillAddress" in obj) { return new SlashedAmountSpillAddress(); } if ("ScopePricesAccount" in obj) { return new ScopePricesAccount(); } if ("ScopeOraclePriceId" in obj) { return new ScopeOraclePriceId(); } if ("ScopeOracleMaxAge" in obj) { return new ScopeOracleMaxAge(); } if ("UpdateRewardScheduleCurvePoints" in obj) { return new UpdateRewardScheduleCurvePoints(); } if ("UpdatePendingFarmAdmin" in obj) { return new UpdatePendingFarmAdmin(); } if ("UpdateStrategyId" in obj) { return new UpdateStrategyId(); } if ("UpdateDelegatedRpsAdmin" in obj) { return new UpdateDelegatedRpsAdmin(); } if ("UpdateVaultId" in obj) { return new UpdateVaultId(); } throw new Error("Invalid enum object"); } export function fromJSON( obj: types.FarmConfigOptionJSON, ): types.FarmConfigOptionKind { switch (obj.kind) { case "UpdateRewardRps": { return new UpdateRewardRps(); } case "UpdateRewardMinClaimDuration": { return new UpdateRewardMinClaimDuration(); } case "WithdrawAuthority": { return new WithdrawAuthority(); } case "DepositWarmupPeriod": { return new DepositWarmupPeriod(); } case "WithdrawCooldownPeriod": { return new WithdrawCooldownPeriod(); } case "RewardType": { return new RewardType(); } case "RpsDecimals": { return new RpsDecimals(); } case "LockingMode": { return new LockingMode(); } case "LockingStartTimestamp": { return new LockingStartTimestamp(); } case "LockingDuration": { return new LockingDuration(); } case "LockingEarlyWithdrawalPenaltyBps": { return new LockingEarlyWithdrawalPenaltyBps(); } case "DepositCapAmount": { return new DepositCapAmount(); } case "SlashedAmountSpillAddress": { return new SlashedAmountSpillAddress(); } case "ScopePricesAccount": { return new ScopePricesAccount(); } case "ScopeOraclePriceId": { return new ScopeOraclePriceId(); } case "ScopeOracleMaxAge": { return new ScopeOracleMaxAge(); } case "UpdateRewardScheduleCurvePoints": { return new UpdateRewardScheduleCurvePoints(); } case "UpdatePendingFarmAdmin": { return new UpdatePendingFarmAdmin(); } case "UpdateStrategyId": { return new UpdateStrategyId(); } case "UpdateDelegatedRpsAdmin": { return new UpdateDelegatedRpsAdmin(); } case "UpdateVaultId": { return new UpdateVaultId(); } } } export function layout(property?: string) { const ret = borsh.rustEnum([ borsh.struct([], "UpdateRewardRps"), borsh.struct([], "UpdateRewardMinClaimDuration"), borsh.struct([], "WithdrawAuthority"), borsh.struct([], "DepositWarmupPeriod"), borsh.struct([], "WithdrawCooldownPeriod"), borsh.struct([], "RewardType"), borsh.struct([], "RpsDecimals"), borsh.struct([], "LockingMode"), borsh.struct([], "LockingStartTimestamp"), borsh.struct([], "LockingDuration"), borsh.struct([], "LockingEarlyWithdrawalPenaltyBps"), borsh.struct([], "DepositCapAmount"), borsh.struct([], "SlashedAmountSpillAddress"), borsh.struct([], "ScopePricesAccount"), borsh.struct([], "ScopeOraclePriceId"), borsh.struct([], "ScopeOracleMaxAge"), borsh.struct([], "UpdateRewardScheduleCurvePoints"), borsh.struct([], "UpdatePendingFarmAdmin"), borsh.struct([], "UpdateStrategyId"), borsh.struct([], "UpdateDelegatedRpsAdmin"), borsh.struct([], "UpdateVaultId"), ]); if (property !== undefined) { return ret.replicate(property); } return ret; }