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 RaydiumValidationConfigFields { raydiumLiquidityPid: PublicKey raydiumRoutePid: PublicKey } export interface RaydiumValidationConfigJSON { raydiumLiquidityPid: string raydiumRoutePid: string } export class RaydiumValidationConfig { readonly raydiumLiquidityPid: PublicKey readonly raydiumRoutePid: PublicKey constructor(fields: RaydiumValidationConfigFields) { this.raydiumLiquidityPid = fields.raydiumLiquidityPid this.raydiumRoutePid = fields.raydiumRoutePid } static layout(property?: string) { return borsh.struct( [ borsh.publicKey("raydiumLiquidityPid"), borsh.publicKey("raydiumRoutePid"), ], property ) } // eslint-disable-next-line @typescript-eslint/no-explicit-any static fromDecoded(obj: any) { return new RaydiumValidationConfig({ raydiumLiquidityPid: obj.raydiumLiquidityPid, raydiumRoutePid: obj.raydiumRoutePid, }) } static toEncodable(fields: RaydiumValidationConfigFields) { return { raydiumLiquidityPid: fields.raydiumLiquidityPid, raydiumRoutePid: fields.raydiumRoutePid, } } toJSON(): RaydiumValidationConfigJSON { return { raydiumLiquidityPid: this.raydiumLiquidityPid.toString(), raydiumRoutePid: this.raydiumRoutePid.toString(), } } static fromJSON(obj: RaydiumValidationConfigJSON): RaydiumValidationConfig { return new RaydiumValidationConfig({ raydiumLiquidityPid: new PublicKey(obj.raydiumLiquidityPid), raydiumRoutePid: new PublicKey(obj.raydiumRoutePid), }) } toEncodable() { return RaydiumValidationConfig.toEncodable(this) } }