Skip to content

Commit f0a53f2

Browse files
committed
set default for farms program
1 parent 2b7c11f commit f0a53f2

15 files changed

+169
-39
lines changed

clients/kamino-lending/coda.config.mjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
constantPdaSeedNodeFromString,
44
defineConfig,
55
numberTypeNode,
6+
programLinkNode,
67
publicKeyTypeNode,
78
renameVisitor,
89
stringTypeNode,
@@ -16,6 +17,12 @@ export default defineConfig({
1617
docs: {
1718
npmPackageName: "@macalinao/clients-kamino-lending",
1819
},
20+
instructionAccountDefaultValues: [
21+
{
22+
account: "farmsProgram",
23+
defaultValue: programLinkNode("farms"),
24+
},
25+
],
1926
// We can add custom visitors here later if needed
2027
visitors: [
2128
addPdasVisitor({

clients/kamino-lending/src/generated/instructions/borrowObligationLiquidityV2.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import {
3535
getU64Encoder,
3636
transformEncoder,
3737
} from "@solana/kit";
38-
import { KAMINO_LENDING_PROGRAM_ADDRESS } from "../programs/index.js";
38+
import {
39+
FARMS_PROGRAM_ADDRESS,
40+
KAMINO_LENDING_PROGRAM_ADDRESS,
41+
} from "../programs/index.js";
3942
import { getAccountMetaFactory } from "../shared/index.js";
4043

4144
export const BORROW_OBLIGATION_LIQUIDITY_V2_DISCRIMINATOR: ReadonlyUint8Array =
@@ -69,7 +72,9 @@ export type BorrowObligationLiquidityV2Instruction<
6972
| AccountMeta = "Sysvar1nstructions1111111111111111111111111",
7073
TAccountObligationFarmUserState extends string | AccountMeta = string,
7174
TAccountReserveFarmState extends string | AccountMeta = string,
72-
TAccountFarmsProgram extends string | AccountMeta = string,
75+
TAccountFarmsProgram extends
76+
| string
77+
| AccountMeta = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr",
7378
TRemainingAccounts extends readonly AccountMeta[] = [],
7479
> = Instruction<TProgram> &
7580
InstructionWithData<ReadonlyUint8Array> &
@@ -195,7 +200,7 @@ export interface BorrowObligationLiquidityV2Input<
195200
instructionSysvarAccount?: Address<TAccountInstructionSysvarAccount>;
196201
obligationFarmUserState?: Address<TAccountObligationFarmUserState>;
197202
reserveFarmState?: Address<TAccountReserveFarmState>;
198-
farmsProgram: Address<TAccountFarmsProgram>;
203+
farmsProgram?: Address<TAccountFarmsProgram>;
199204
liquidityAmount: BorrowObligationLiquidityV2InstructionDataArgs["liquidityAmount"];
200205
}
201206

@@ -319,6 +324,10 @@ export function getBorrowObligationLiquidityV2Instruction<
319324
accounts.instructionSysvarAccount.value =
320325
"Sysvar1nstructions1111111111111111111111111" as Address<"Sysvar1nstructions1111111111111111111111111">;
321326
}
327+
if (!accounts.farmsProgram.value) {
328+
accounts.farmsProgram.value = FARMS_PROGRAM_ADDRESS;
329+
accounts.farmsProgram.isWritable = false;
330+
}
322331

323332
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
324333
return Object.freeze({

clients/kamino-lending/src/generated/instructions/depositAndWithdraw.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import {
3535
getU64Encoder,
3636
transformEncoder,
3737
} from "@solana/kit";
38-
import { KAMINO_LENDING_PROGRAM_ADDRESS } from "../programs/index.js";
38+
import {
39+
FARMS_PROGRAM_ADDRESS,
40+
KAMINO_LENDING_PROGRAM_ADDRESS,
41+
} from "../programs/index.js";
3942
import { getAccountMetaFactory } from "../shared/index.js";
4043

4144
export const DEPOSIT_AND_WITHDRAW_DISCRIMINATOR: ReadonlyUint8Array =
@@ -129,7 +132,9 @@ export type DepositAndWithdrawInstruction<
129132
TAccountWithdrawFarmsAccountsReserveFarmState extends
130133
| string
131134
| AccountMeta = string,
132-
TAccountFarmsProgram extends string | AccountMeta = string,
135+
TAccountFarmsProgram extends
136+
| string
137+
| AccountMeta = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr",
133138
TRemainingAccounts extends readonly AccountMeta[] = [],
134139
> = Instruction<TProgram> &
135140
InstructionWithData<ReadonlyUint8Array> &
@@ -353,7 +358,7 @@ export interface DepositAndWithdrawInput<
353358
depositFarmsAccountsReserveFarmState?: Address<TAccountDepositFarmsAccountsReserveFarmState>;
354359
withdrawFarmsAccountsObligationFarmUserState?: Address<TAccountWithdrawFarmsAccountsObligationFarmUserState>;
355360
withdrawFarmsAccountsReserveFarmState?: Address<TAccountWithdrawFarmsAccountsReserveFarmState>;
356-
farmsProgram: Address<TAccountFarmsProgram>;
361+
farmsProgram?: Address<TAccountFarmsProgram>;
357362
liquidityAmount: DepositAndWithdrawInstructionDataArgs["liquidityAmount"];
358363
withdrawCollateralAmount: DepositAndWithdrawInstructionDataArgs["withdrawCollateralAmount"];
359364
}
@@ -619,6 +624,10 @@ export function getDepositAndWithdrawInstruction<
619624
accounts.withdrawAccountsInstructionSysvarAccount.value =
620625
"Sysvar1nstructions1111111111111111111111111" as Address<"Sysvar1nstructions1111111111111111111111111">;
621626
}
627+
if (!accounts.farmsProgram.value) {
628+
accounts.farmsProgram.value = FARMS_PROGRAM_ADDRESS;
629+
accounts.farmsProgram.isWritable = false;
630+
}
622631

623632
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
624633
return Object.freeze({

clients/kamino-lending/src/generated/instructions/depositObligationCollateralV2.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import {
3535
getU64Encoder,
3636
transformEncoder,
3737
} from "@solana/kit";
38-
import { KAMINO_LENDING_PROGRAM_ADDRESS } from "../programs/index.js";
38+
import {
39+
FARMS_PROGRAM_ADDRESS,
40+
KAMINO_LENDING_PROGRAM_ADDRESS,
41+
} from "../programs/index.js";
3942
import { getAccountMetaFactory } from "../shared/index.js";
4043

4144
export const DEPOSIT_OBLIGATION_COLLATERAL_V2_DISCRIMINATOR: ReadonlyUint8Array =
@@ -64,7 +67,9 @@ export type DepositObligationCollateralV2Instruction<
6467
TAccountLendingMarketAuthority extends string | AccountMeta = string,
6568
TAccountObligationFarmUserState extends string | AccountMeta = string,
6669
TAccountReserveFarmState extends string | AccountMeta = string,
67-
TAccountFarmsProgram extends string | AccountMeta = string,
70+
TAccountFarmsProgram extends
71+
| string
72+
| AccountMeta = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr",
6873
TRemainingAccounts extends readonly AccountMeta[] = [],
6974
> = Instruction<TProgram> &
7075
InstructionWithData<ReadonlyUint8Array> &
@@ -175,7 +180,7 @@ export interface DepositObligationCollateralV2Input<
175180
lendingMarketAuthority: Address<TAccountLendingMarketAuthority>;
176181
obligationFarmUserState?: Address<TAccountObligationFarmUserState>;
177182
reserveFarmState?: Address<TAccountReserveFarmState>;
178-
farmsProgram: Address<TAccountFarmsProgram>;
183+
farmsProgram?: Address<TAccountFarmsProgram>;
179184
collateralAmount: DepositObligationCollateralV2InstructionDataArgs["collateralAmount"];
180185
}
181186

@@ -278,6 +283,10 @@ export function getDepositObligationCollateralV2Instruction<
278283
accounts.instructionSysvarAccount.value =
279284
"Sysvar1nstructions1111111111111111111111111" as Address<"Sysvar1nstructions1111111111111111111111111">;
280285
}
286+
if (!accounts.farmsProgram.value) {
287+
accounts.farmsProgram.value = FARMS_PROGRAM_ADDRESS;
288+
accounts.farmsProgram.isWritable = false;
289+
}
281290

282291
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
283292
return Object.freeze({

clients/kamino-lending/src/generated/instructions/depositReserveLiquidityAndObligationCollateralV2.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import {
3535
getU64Encoder,
3636
transformEncoder,
3737
} from "@solana/kit";
38-
import { KAMINO_LENDING_PROGRAM_ADDRESS } from "../programs/index.js";
38+
import {
39+
FARMS_PROGRAM_ADDRESS,
40+
KAMINO_LENDING_PROGRAM_ADDRESS,
41+
} from "../programs/index.js";
3942
import { getAccountMetaFactory } from "../shared/index.js";
4043

4144
export const DEPOSIT_RESERVE_LIQUIDITY_AND_OBLIGATION_COLLATERAL_V2_DISCRIMINATOR: ReadonlyUint8Array =
@@ -71,7 +74,9 @@ export type DepositReserveLiquidityAndObligationCollateralV2Instruction<
7174
| AccountMeta = "Sysvar1nstructions1111111111111111111111111",
7275
TAccountObligationFarmUserState extends string | AccountMeta = string,
7376
TAccountReserveFarmState extends string | AccountMeta = string,
74-
TAccountFarmsProgram extends string | AccountMeta = string,
77+
TAccountFarmsProgram extends
78+
| string
79+
| AccountMeta = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr",
7580
TRemainingAccounts extends readonly AccountMeta[] = [],
7681
> = Instruction<TProgram> &
7782
InstructionWithData<ReadonlyUint8Array> &
@@ -208,7 +213,7 @@ export interface DepositReserveLiquidityAndObligationCollateralV2Input<
208213
instructionSysvarAccount?: Address<TAccountInstructionSysvarAccount>;
209214
obligationFarmUserState?: Address<TAccountObligationFarmUserState>;
210215
reserveFarmState?: Address<TAccountReserveFarmState>;
211-
farmsProgram: Address<TAccountFarmsProgram>;
216+
farmsProgram?: Address<TAccountFarmsProgram>;
212217
liquidityAmount: DepositReserveLiquidityAndObligationCollateralV2InstructionDataArgs["liquidityAmount"];
213218
}
214219

@@ -345,6 +350,10 @@ export function getDepositReserveLiquidityAndObligationCollateralV2Instruction<
345350
accounts.instructionSysvarAccount.value =
346351
"Sysvar1nstructions1111111111111111111111111" as Address<"Sysvar1nstructions1111111111111111111111111">;
347352
}
353+
if (!accounts.farmsProgram.value) {
354+
accounts.farmsProgram.value = FARMS_PROGRAM_ADDRESS;
355+
accounts.farmsProgram.isWritable = false;
356+
}
348357

349358
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
350359
return Object.freeze({

clients/kamino-lending/src/generated/instructions/initFarmsForReserve.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import {
3535
getU8Encoder,
3636
transformEncoder,
3737
} from "@solana/kit";
38-
import { KAMINO_LENDING_PROGRAM_ADDRESS } from "../programs/index.js";
38+
import {
39+
FARMS_PROGRAM_ADDRESS,
40+
KAMINO_LENDING_PROGRAM_ADDRESS,
41+
} from "../programs/index.js";
3942
import { getAccountMetaFactory } from "../shared/index.js";
4043

4144
export const INIT_FARMS_FOR_RESERVE_DISCRIMINATOR: ReadonlyUint8Array =
@@ -53,7 +56,9 @@ export type InitFarmsForReserveInstruction<
5356
TAccountLendingMarket extends string | AccountMeta = string,
5457
TAccountLendingMarketAuthority extends string | AccountMeta = string,
5558
TAccountReserve extends string | AccountMeta = string,
56-
TAccountFarmsProgram extends string | AccountMeta = string,
59+
TAccountFarmsProgram extends
60+
| string
61+
| AccountMeta = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr",
5762
TAccountFarmsGlobalConfig extends string | AccountMeta = string,
5863
TAccountFarmState extends string | AccountMeta = string,
5964
TAccountFarmsVaultAuthority extends string | AccountMeta = string,
@@ -158,7 +163,7 @@ export interface InitFarmsForReserveInput<
158163
lendingMarket: Address<TAccountLendingMarket>;
159164
lendingMarketAuthority: Address<TAccountLendingMarketAuthority>;
160165
reserve: Address<TAccountReserve>;
161-
farmsProgram: Address<TAccountFarmsProgram>;
166+
farmsProgram?: Address<TAccountFarmsProgram>;
162167
farmsGlobalConfig: Address<TAccountFarmsGlobalConfig>;
163168
farmState: Address<TAccountFarmState>;
164169
farmsVaultAuthority: Address<TAccountFarmsVaultAuthority>;
@@ -244,6 +249,10 @@ export function getInitFarmsForReserveInstruction<
244249
const args = { ...input };
245250

246251
// Resolve default values.
252+
if (!accounts.farmsProgram.value) {
253+
accounts.farmsProgram.value = FARMS_PROGRAM_ADDRESS;
254+
accounts.farmsProgram.isWritable = false;
255+
}
247256
if (!accounts.rent.value) {
248257
accounts.rent.value =
249258
"SysvarRent111111111111111111111111111111111" as Address<"SysvarRent111111111111111111111111111111111">;

clients/kamino-lending/src/generated/instructions/initObligationFarmsForReserve.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import {
3535
getU8Encoder,
3636
transformEncoder,
3737
} from "@solana/kit";
38-
import { KAMINO_LENDING_PROGRAM_ADDRESS } from "../programs/index.js";
38+
import {
39+
FARMS_PROGRAM_ADDRESS,
40+
KAMINO_LENDING_PROGRAM_ADDRESS,
41+
} from "../programs/index.js";
3942
import { getAccountMetaFactory } from "../shared/index.js";
4043

4144
export const INIT_OBLIGATION_FARMS_FOR_RESERVE_DISCRIMINATOR: ReadonlyUint8Array =
@@ -57,7 +60,9 @@ export type InitObligationFarmsForReserveInstruction<
5760
TAccountReserveFarmState extends string | AccountMeta = string,
5861
TAccountObligationFarm extends string | AccountMeta = string,
5962
TAccountLendingMarket extends string | AccountMeta = string,
60-
TAccountFarmsProgram extends string | AccountMeta = string,
63+
TAccountFarmsProgram extends
64+
| string
65+
| AccountMeta = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr",
6166
TAccountRent extends
6267
| string
6368
| AccountMeta = "SysvarRent111111111111111111111111111111111",
@@ -167,7 +172,7 @@ export interface InitObligationFarmsForReserveInput<
167172
reserveFarmState: Address<TAccountReserveFarmState>;
168173
obligationFarm: Address<TAccountObligationFarm>;
169174
lendingMarket: Address<TAccountLendingMarket>;
170-
farmsProgram: Address<TAccountFarmsProgram>;
175+
farmsProgram?: Address<TAccountFarmsProgram>;
171176
rent?: Address<TAccountRent>;
172177
systemProgram?: Address<TAccountSystemProgram>;
173178
mode: InitObligationFarmsForReserveInstructionDataArgs["mode"];
@@ -248,6 +253,10 @@ export function getInitObligationFarmsForReserveInstruction<
248253
const args = { ...input };
249254

250255
// Resolve default values.
256+
if (!accounts.farmsProgram.value) {
257+
accounts.farmsProgram.value = FARMS_PROGRAM_ADDRESS;
258+
accounts.farmsProgram.isWritable = false;
259+
}
251260
if (!accounts.rent.value) {
252261
accounts.rent.value =
253262
"SysvarRent111111111111111111111111111111111" as Address<"SysvarRent111111111111111111111111111111111">;

clients/kamino-lending/src/generated/instructions/liquidateObligationAndRedeemReserveCollateralV2.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import {
3535
getU64Encoder,
3636
transformEncoder,
3737
} from "@solana/kit";
38-
import { KAMINO_LENDING_PROGRAM_ADDRESS } from "../programs/index.js";
38+
import {
39+
FARMS_PROGRAM_ADDRESS,
40+
KAMINO_LENDING_PROGRAM_ADDRESS,
41+
} from "../programs/index.js";
3942
import { getAccountMetaFactory } from "../shared/index.js";
4043

4144
export const LIQUIDATE_OBLIGATION_AND_REDEEM_RESERVE_COLLATERAL_V2_DISCRIMINATOR: ReadonlyUint8Array =
@@ -115,7 +118,9 @@ export type LiquidateObligationAndRedeemReserveCollateralV2Instruction<
115118
TAccountDebtFarmsAccountsReserveFarmState extends
116119
| string
117120
| AccountMeta = string,
118-
TAccountFarmsProgram extends string | AccountMeta = string,
121+
TAccountFarmsProgram extends
122+
| string
123+
| AccountMeta = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr",
119124
TRemainingAccounts extends readonly AccountMeta[] = [],
120125
> = Instruction<TProgram> &
121126
InstructionWithData<ReadonlyUint8Array> &
@@ -308,7 +313,7 @@ export interface LiquidateObligationAndRedeemReserveCollateralV2Input<
308313
collateralFarmsAccountsV2ReserveFarmState?: Address<TAccountCollateralFarmsAccountsV2ReserveFarmState>;
309314
debtFarmsAccountsObligationFarmUserState?: Address<TAccountDebtFarmsAccountsObligationFarmUserState>;
310315
debtFarmsAccountsReserveFarmState?: Address<TAccountDebtFarmsAccountsReserveFarmState>;
311-
farmsProgram: Address<TAccountFarmsProgram>;
316+
farmsProgram?: Address<TAccountFarmsProgram>;
312317
liquidityAmount: LiquidateObligationAndRedeemReserveCollateralV2InstructionDataArgs["liquidityAmount"];
313318
minAcceptableReceivedLiquidityAmount: LiquidateObligationAndRedeemReserveCollateralV2InstructionDataArgs["minAcceptableReceivedLiquidityAmount"];
314319
maxAllowedLtvOverridePercent: LiquidateObligationAndRedeemReserveCollateralV2InstructionDataArgs["maxAllowedLtvOverridePercent"];
@@ -516,6 +521,10 @@ export function getLiquidateObligationAndRedeemReserveCollateralV2Instruction<
516521
accounts.liquidationAccountsInstructionSysvarAccount.value =
517522
"Sysvar1nstructions1111111111111111111111111" as Address<"Sysvar1nstructions1111111111111111111111111">;
518523
}
524+
if (!accounts.farmsProgram.value) {
525+
accounts.farmsProgram.value = FARMS_PROGRAM_ADDRESS;
526+
accounts.farmsProgram.isWritable = false;
527+
}
519528

520529
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
521530
return Object.freeze({

clients/kamino-lending/src/generated/instructions/refreshObligationFarmsForReserve.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import {
3535
getU8Encoder,
3636
transformEncoder,
3737
} from "@solana/kit";
38-
import { KAMINO_LENDING_PROGRAM_ADDRESS } from "../programs/index.js";
38+
import {
39+
FARMS_PROGRAM_ADDRESS,
40+
KAMINO_LENDING_PROGRAM_ADDRESS,
41+
} from "../programs/index.js";
3942
import { getAccountMetaFactory } from "../shared/index.js";
4043

4144
export const REFRESH_OBLIGATION_FARMS_FOR_RESERVE_DISCRIMINATOR: ReadonlyUint8Array =
@@ -56,7 +59,9 @@ export type RefreshObligationFarmsForReserveInstruction<
5659
TAccountReserveFarmState extends string | AccountMeta = string,
5760
TAccountObligationFarmUserState extends string | AccountMeta = string,
5861
TAccountLendingMarket extends string | AccountMeta = string,
59-
TAccountFarmsProgram extends string | AccountMeta = string,
62+
TAccountFarmsProgram extends
63+
| string
64+
| AccountMeta = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr",
6065
TAccountRent extends
6166
| string
6267
| AccountMeta = "SysvarRent111111111111111111111111111111111",
@@ -161,7 +166,7 @@ export interface RefreshObligationFarmsForReserveInput<
161166
reserveFarmState: Address<TAccountReserveFarmState>;
162167
obligationFarmUserState: Address<TAccountObligationFarmUserState>;
163168
lendingMarket: Address<TAccountLendingMarket>;
164-
farmsProgram: Address<TAccountFarmsProgram>;
169+
farmsProgram?: Address<TAccountFarmsProgram>;
165170
rent?: Address<TAccountRent>;
166171
systemProgram?: Address<TAccountSystemProgram>;
167172
mode: RefreshObligationFarmsForReserveInstructionDataArgs["mode"];
@@ -241,6 +246,10 @@ export function getRefreshObligationFarmsForReserveInstruction<
241246
const args = { ...input };
242247

243248
// Resolve default values.
249+
if (!accounts.farmsProgram.value) {
250+
accounts.farmsProgram.value = FARMS_PROGRAM_ADDRESS;
251+
accounts.farmsProgram.isWritable = false;
252+
}
244253
if (!accounts.rent.value) {
245254
accounts.rent.value =
246255
"SysvarRent111111111111111111111111111111111" as Address<"SysvarRent111111111111111111111111111111111">;

0 commit comments

Comments
 (0)