@kamino-finance/kliquidity-sdk
Version:
Typescript SDK for interacting with the Kamino Liquidity (kliquidity) protocol
210 lines (180 loc) • 4.58 kB
text/typescript
import { address, Address } from "@solana/kit" // 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"
import { borshAddress } from "../utils"
export interface TransferHookAJSON {
kind: "TransferHookA"
}
export class TransferHookA {
static readonly discriminator = 0
static readonly kind = "TransferHookA"
readonly discriminator = 0
readonly kind = "TransferHookA"
toJSON(): TransferHookAJSON {
return {
kind: "TransferHookA",
}
}
toEncodable() {
return {
TransferHookA: {},
}
}
}
export interface TransferHookBJSON {
kind: "TransferHookB"
}
export class TransferHookB {
static readonly discriminator = 1
static readonly kind = "TransferHookB"
readonly discriminator = 1
readonly kind = "TransferHookB"
toJSON(): TransferHookBJSON {
return {
kind: "TransferHookB",
}
}
toEncodable() {
return {
TransferHookB: {},
}
}
}
export interface TransferHookRewardJSON {
kind: "TransferHookReward"
}
export class TransferHookReward {
static readonly discriminator = 2
static readonly kind = "TransferHookReward"
readonly discriminator = 2
readonly kind = "TransferHookReward"
toJSON(): TransferHookRewardJSON {
return {
kind: "TransferHookReward",
}
}
toEncodable() {
return {
TransferHookReward: {},
}
}
}
export interface TransferHookInputJSON {
kind: "TransferHookInput"
}
export class TransferHookInput {
static readonly discriminator = 3
static readonly kind = "TransferHookInput"
readonly discriminator = 3
readonly kind = "TransferHookInput"
toJSON(): TransferHookInputJSON {
return {
kind: "TransferHookInput",
}
}
toEncodable() {
return {
TransferHookInput: {},
}
}
}
export interface TransferHookIntermediateJSON {
kind: "TransferHookIntermediate"
}
export class TransferHookIntermediate {
static readonly discriminator = 4
static readonly kind = "TransferHookIntermediate"
readonly discriminator = 4
readonly kind = "TransferHookIntermediate"
toJSON(): TransferHookIntermediateJSON {
return {
kind: "TransferHookIntermediate",
}
}
toEncodable() {
return {
TransferHookIntermediate: {},
}
}
}
export interface TransferHookOutputJSON {
kind: "TransferHookOutput"
}
export class TransferHookOutput {
static readonly discriminator = 5
static readonly kind = "TransferHookOutput"
readonly discriminator = 5
readonly kind = "TransferHookOutput"
toJSON(): TransferHookOutputJSON {
return {
kind: "TransferHookOutput",
}
}
toEncodable() {
return {
TransferHookOutput: {},
}
}
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function fromDecoded(obj: any): types.AccountsTypeKind {
if (typeof obj !== "object") {
throw new Error("Invalid enum object")
}
if ("TransferHookA" in obj) {
return new TransferHookA()
}
if ("TransferHookB" in obj) {
return new TransferHookB()
}
if ("TransferHookReward" in obj) {
return new TransferHookReward()
}
if ("TransferHookInput" in obj) {
return new TransferHookInput()
}
if ("TransferHookIntermediate" in obj) {
return new TransferHookIntermediate()
}
if ("TransferHookOutput" in obj) {
return new TransferHookOutput()
}
throw new Error("Invalid enum object")
}
export function fromJSON(obj: types.AccountsTypeJSON): types.AccountsTypeKind {
switch (obj.kind) {
case "TransferHookA": {
return new TransferHookA()
}
case "TransferHookB": {
return new TransferHookB()
}
case "TransferHookReward": {
return new TransferHookReward()
}
case "TransferHookInput": {
return new TransferHookInput()
}
case "TransferHookIntermediate": {
return new TransferHookIntermediate()
}
case "TransferHookOutput": {
return new TransferHookOutput()
}
}
}
export function layout(property?: string) {
const ret = borsh.rustEnum([
borsh.struct([], "TransferHookA"),
borsh.struct([], "TransferHookB"),
borsh.struct([], "TransferHookReward"),
borsh.struct([], "TransferHookInput"),
borsh.struct([], "TransferHookIntermediate"),
borsh.struct([], "TransferHookOutput"),
])
if (property !== undefined) {
return ret.replicate(property)
}
return ret
}