@mihalex/farms-sdk-tests
Version:
293 lines • 10.4 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.serializeConfigValue = exports.depositToFarmVault = exports.withdrawFromFarmVault = exports.withdrawUnstakedDeposit = exports.refreshUserState = exports.withdrawTreasury = exports.harvestReward = exports.unstake = exports.stake = exports.transferOwnership = exports.initializeUser = exports.refreshFarm = exports.updateRewardConfig = exports.addReward = exports.initializeReward = exports.initializeFarm = exports.updateGlobalConfig = exports.initializeGlobalConfig = void 0;
const Instructions = __importStar(require("../rpc_client/instructions"));
const anchor = __importStar(require("@coral-xyz/anchor"));
const utils_1 = require("./utils");
const spl_token_1 = require("@solana/spl-token");
const programId_1 = require("../rpc_client/programId");
function initializeGlobalConfig(globalAdmin, globalConfig, treasuryVaultAuthority) {
let accounts = {
globalAdmin,
globalConfig: globalConfig,
treasuryVaultsAuthority: treasuryVaultAuthority,
systemProgram: anchor.web3.SystemProgram.programId,
};
let ix = Instructions.initializeGlobalConfig(accounts);
return ix;
}
exports.initializeGlobalConfig = initializeGlobalConfig;
function updateGlobalConfig(globalAdmin, globalConfig, mode, flagValue, flagValueType) {
let formattedValue = (0, utils_1.getGlobalConfigValue)(flagValueType, flagValue);
let accounts = {
globalAdmin,
globalConfig: globalConfig,
};
let args = {
mode: mode.discriminator,
value: formattedValue,
};
let ix = Instructions.updateGlobalConfig(args, accounts);
return ix;
}
exports.updateGlobalConfig = updateGlobalConfig;
function initializeFarm(globalConfig, farmAdmin, farmState, farmVault, farmVaultAuthority, tokenMint) {
let accounts = {
farmAdmin,
farmState: farmState,
globalConfig: globalConfig,
farmVault: farmVault,
farmVaultsAuthority: farmVaultAuthority,
tokenMint: tokenMint,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
systemProgram: anchor.web3.SystemProgram.programId,
rent: anchor.web3.SYSVAR_RENT_PUBKEY,
};
let ix = Instructions.initializeFarm(accounts);
return ix;
}
exports.initializeFarm = initializeFarm;
function initializeReward(globalConfig, treasuryVaultAuthority, treasuryVault, farmAdmin, farmState, rewardVault, farmVaultAuthority, rewardMint) {
let accounts = {
farmAdmin,
farmState: farmState,
globalConfig: globalConfig,
rewardVault: rewardVault,
farmVaultsAuthority: farmVaultAuthority,
treasuryVaultsAuthority: treasuryVaultAuthority,
rewardTreasuryVault: treasuryVault,
rewardMint: rewardMint,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
systemProgram: anchor.web3.SystemProgram.programId,
rent: anchor.web3.SYSVAR_RENT_PUBKEY,
};
let ix = Instructions.initializeReward(accounts);
return ix;
}
exports.initializeReward = initializeReward;
function addReward(farmAdmin, farmState, rewardVault, farmVaultAuthority, adminRewardAta, rewardMint, rewardIndex, amount) {
let accounts = {
farmAdmin,
farmState: farmState,
rewardVault: rewardVault,
farmVaultsAuthority: farmVaultAuthority,
rewardTokenAta: adminRewardAta,
rewardMint: rewardMint,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
scopePrices: programId_1.PROGRAM_ID,
};
let args = {
amount: amount,
rewardIndex: new anchor.BN(rewardIndex),
};
let ix = Instructions.addRewards(args, accounts);
return ix;
}
exports.addReward = addReward;
function updateRewardConfig(farmAdmin, farmState, rewardIndex, mode, value) {
let accounts = {
farmAdmin,
farmState: farmState,
scopePrices: programId_1.PROGRAM_ID,
};
let data = serializeConfigValue(BigInt(rewardIndex), BigInt(value));
let args = {
mode: mode.discriminator,
data,
};
let ix = Instructions.updateFarmConfig(args, accounts);
return ix;
}
exports.updateRewardConfig = updateRewardConfig;
function refreshFarm(farmState) {
let accounts = {
farmState: farmState,
scopePrices: programId_1.PROGRAM_ID,
};
let ix = Instructions.refreshFarm(accounts);
return ix;
}
exports.refreshFarm = refreshFarm;
function initializeUser(farmState, owner, userState) {
let accounts = {
authority: owner,
payer: owner,
delegatee: owner,
owner,
userState: userState,
farmState: farmState,
systemProgram: anchor.web3.SystemProgram.programId,
rent: anchor.web3.SYSVAR_RENT_PUBKEY,
};
let ix = Instructions.initializeUser(accounts);
return ix;
}
exports.initializeUser = initializeUser;
function transferOwnership(owner, userState, newOwner) {
let accounts = {
owner: owner,
userState: userState,
};
let args = {
newOwner,
};
let ix = Instructions.transferOwnership(args, accounts);
return ix;
}
exports.transferOwnership = transferOwnership;
function stake(owner, userState, ownerTokenAta, farmState, farmVault, tokenMint, amount) {
let accounts = {
owner: owner,
userState: userState,
farmState: farmState,
farmVault: farmVault,
userAta: ownerTokenAta,
tokenMint: tokenMint,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
scopePrices: programId_1.PROGRAM_ID,
};
let args = {
amount,
};
let ix = Instructions.stake(args, accounts);
return ix;
}
exports.stake = stake;
function unstake(owner, userState, farmState, amount) {
let accounts = {
owner: owner,
userState: userState,
farmState: farmState,
scopePrices: programId_1.PROGRAM_ID,
};
let args = {
stakeSharesScaled: amount,
};
let ix = Instructions.unstake(args, accounts);
return ix;
}
exports.unstake = unstake;
function harvestReward(owner, userState, userRewardAta, globalConfig, treasuryVault, farmState, rewardVault, farmVaultAuthority, rewardIndex) {
let accounts = {
owner: owner,
userState: userState,
farmState: farmState,
globalConfig: globalConfig,
rewardsVault: rewardVault,
rewardsTreasuryVault: treasuryVault,
userRewardAta: userRewardAta,
farmVaultsAuthority: farmVaultAuthority,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
scopePrices: programId_1.PROGRAM_ID,
};
let args = {
rewardIndex: new anchor.BN(rewardIndex),
};
let ix = Instructions.harvestReward(args, accounts);
return ix;
}
exports.harvestReward = harvestReward;
function withdrawTreasury(globalAdmin, globalConfig, treasuryVault, treasuryVaultAuthority, globalAdminWithdrawAta, amount, rewardMint) {
let accounts = {
globalAdmin,
globalConfig: globalConfig,
rewardTreasuryVault: treasuryVault,
treasuryVaultAuthority: treasuryVaultAuthority,
withdrawDestinationTokenAccount: globalAdminWithdrawAta,
rewardMint: rewardMint,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
};
let args = {
amount,
};
let ix = Instructions.withdrawTreasury(args, accounts);
return ix;
}
exports.withdrawTreasury = withdrawTreasury;
function refreshUserState(userState, farmState) {
let accounts = {
userState,
farmState,
scopePrices: programId_1.PROGRAM_ID,
};
let ix = Instructions.refreshUserState(accounts);
return ix;
}
exports.refreshUserState = refreshUserState;
function withdrawUnstakedDeposit(owner, userState, farmState, userAta, farmVault, farmVaultsAuthority) {
let accounts = {
owner,
userState,
farmState,
userAta,
farmVault,
farmVaultsAuthority,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
};
let ix = Instructions.withdrawUnstakedDeposits(accounts);
return ix;
}
exports.withdrawUnstakedDeposit = withdrawUnstakedDeposit;
function withdrawFromFarmVault(withdrawAuthority, farmState, withdrawerTokenAccount, farmVault, farmVaultsAuthority, amount) {
let accounts = {
farmState,
withdrawAuthority,
withdrawerTokenAccount,
farmVault,
farmVaultsAuthority,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
};
let args = {
amount,
};
let ix = Instructions.withdrawFromFarmVault(args, accounts);
return ix;
}
exports.withdrawFromFarmVault = withdrawFromFarmVault;
function depositToFarmVault(depositor, farmState, farmVault, depositorAta, amount) {
let accounts = {
depositor,
farmState,
farmVault,
depositorAta,
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
};
let args = {
amount,
};
let ix = Instructions.depositToFarmVault(args, accounts);
return ix;
}
exports.depositToFarmVault = depositToFarmVault;
function serializeConfigValue(reward_index, value) {
let buffer;
buffer = Buffer.alloc(32);
buffer.writeBigUint64LE(reward_index, 0);
buffer.writeBigUInt64LE(value, 8);
return [...buffer];
}
exports.serializeConfigValue = serializeConfigValue;
//# sourceMappingURL=operations.js.map