@symmetry-hq/baskets-v2-sdk
Version:
Symmetry Baskets V2 SDK
42 lines (37 loc) • 1.35 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 { BasketsProgram } from "../../idl/types";
import { PYTH_SPONSORED_FEEDS_STATE_SIZE } from "../../state/oracle";
export async function createPythSponsoredFeedsIxs(params: {
program: Program<BasketsProgram>;
payer: PublicKey;
pythSponsoredFeeds: PublicKey;
}): Promise<TransactionInstruction[]> {
// Destructure all params
const {
program,
payer,
pythSponsoredFeeds,
} = params;
// Build and return instruction
return [
SystemProgram.createAccount({
fromPubkey: payer,
newAccountPubkey: pythSponsoredFeeds,
space: 8 + PYTH_SPONSORED_FEEDS_STATE_SIZE,
lamports: await program.provider.connection.getMinimumBalanceForRentExemption(8 + PYTH_SPONSORED_FEEDS_STATE_SIZE),
programId: program.programId,
}),
await program.methods
.createPythSponsoredFeeds()
.accountsStrict({
authority: payer,
pythSponsoredFeeds,
systemProgram: SystemProgram.programId,
rent: SYSVAR_RENT_PUBKEY,
})
.instruction(),
];
}