@symmetry-hq/agents-sdk
Version:
Symmetry Agents SDK
38 lines (31 loc) • 1.16 kB
text/typescript
// Core dependencies
import { Program } from "@coral-xyz/anchor";
import { PublicKey, SystemProgram, SYSVAR_RENT_PUBKEY, TransactionInstruction } from "@solana/web3.js";
// Local imports
import { AgentsProgram } from "../idl/types";
import { getEventAuthority, getFeesVault } from "../utils/programAccounts";
export async function createAgentIx(params: {
payer: PublicKey,
program: Program<AgentsProgram>,
agentUuid: number[],
agentAddress: PublicKey,
agentState: PublicKey,
}): Promise<TransactionInstruction> {
const { program, agentUuid, agentAddress, agentState, payer } = params;
let feesVault = getFeesVault(program);
let eventAuthority = getEventAuthority(program);
const ix = program.methods.createAgent(agentUuid)
.accountsStrict({
creator: payer,
agent: agentAddress,
agentState,
feesVault,
authority: PublicKey.default,
rent: SYSVAR_RENT_PUBKEY,
systemProgram: SystemProgram.programId,
eventAuthority,
program: program.programId,
})
.instruction();
return ix;
}