@hubbleprotocol/farms-sdk
Version:
49 lines (43 loc) • 1.22 kB
text/typescript
import { rpc } from "@coral-xyz/anchor/dist/cjs/utils";
import { PublicKey } from "@solana/web3.js";
import { Farms } from "../Farms";
import { FarmState } from "../rpc_client/accounts";
import { getFarmsProgramId } from "../utils";
import { initializeClient } from "./utils";
export async function initRewardCommand(
farm: string,
rewardMint: string,
mode: string,
priorityFeeMultiplier: number,
) {
const admin = process.env.ADMIN!;
const rpc = process.env.RPC!;
const env = initializeClient(
rpc,
admin,
getFarmsProgramId(rpc),
mode === "multisig",
);
const farmState = await FarmState.fetch(
env.provider.connection,
new PublicKey(farm),
);
if (!farmState) {
throw new Error("Farm not found");
}
const farmsClient = new Farms(env.provider.connection);
const mint = new PublicKey(rewardMint);
const tokenProgram = (await env.provider.connection.getAccountInfo(mint))
?.owner!;
const sig = await farmsClient.addRewardToFarm(
env.initialOwner,
farmState.globalConfig,
new PublicKey(farm),
mint,
tokenProgram,
mode,
priorityFeeMultiplier,
env.web3Client,
);
mode !== "multisig" && console.log("Signature", sig);
}