UNPKG

@robertprp/intents-sdk

Version:

Shogun Network Intent-based cross-chain swaps SDK

173 lines 7.5 kB
/** * This code was AUTOGENERATED using the codama library. * Please DO NOT EDIT THIS FILE, instead use visitors * to add features, then rerun codama to update it. * * @see https://github.com/codama-idl/codama */ import { getAddressDecoder, getAddressEncoder, getProgramDerivedAddress } from '@solana/kit'; import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU8Decoder, getU8Encoder, transformEncoder, } from '@solana/kit'; import {} from '@solana/kit'; import {} from '@solana/kit'; import { SINGLE_CHAIN_GUARD_PROGRAM_ADDRESS } from '../programs/index.js'; import { expectAddress, getAccountMetaFactory } from '../shared/index.js'; export const CREATE_GUARD_DISCRIMINATOR = new Uint8Array([251, 254, 17, 198, 219, 218, 154, 99]); export function getCreateGuardDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(CREATE_GUARD_DISCRIMINATOR); } export function getCreateGuardInstructionDataEncoder() { return transformEncoder(getStructEncoder([ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['auctioneerPubKey', getAddressEncoder()], ['guardVersion', getU8Encoder()], ]), (value) => ({ ...value, discriminator: CREATE_GUARD_DISCRIMINATOR })); } export function getCreateGuardInstructionDataDecoder() { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['auctioneerPubKey', getAddressDecoder()], ['guardVersion', getU8Decoder()], ]); } export function getCreateGuardInstructionDataCodec() { return combineCodec(getCreateGuardInstructionDataEncoder(), getCreateGuardInstructionDataDecoder()); } export async function getCreateGuardInstructionAsync(input, config) { // Program address. const programAddress = config?.programAddress ?? SINGLE_CHAIN_GUARD_PROGRAM_ADDRESS; // Original accounts. const originalAccounts = { admin: { value: input.admin ?? null, isWritable: true }, guard: { value: input.guard ?? null, isWritable: true }, adminSingleton: { value: input.adminSingleton ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false }, associatedTokenProgram: { value: input.associatedTokenProgram ?? null, isWritable: false, }, feeTokenMint: { value: input.feeTokenMint ?? null, isWritable: false }, feeTokenAccount: { value: input.feeTokenAccount ?? null, isWritable: true }, feeTokenProgram: { value: input.feeTokenProgram ?? null, isWritable: false, }, }; const accounts = originalAccounts; // Original args. const args = { ...input }; // Resolve default values. if (!accounts.adminSingleton.value) { accounts.adminSingleton.value = await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([97, 100, 109, 105, 110]))], }); } if (!accounts.systemProgram.value) { accounts.systemProgram.value = '11111111111111111111111111111111'; } if (!accounts.associatedTokenProgram.value) { accounts.associatedTokenProgram.value = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'; } if (!accounts.feeTokenAccount.value) { accounts.feeTokenAccount.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', seeds: [ getAddressEncoder().encode(expectAddress(accounts.guard.value)), getAddressEncoder().encode(expectAddress(accounts.feeTokenProgram.value)), getAddressEncoder().encode(expectAddress(accounts.feeTokenMint.value)), ], }); } const getAccountMeta = getAccountMetaFactory(programAddress, 'programId'); const instruction = { accounts: [ getAccountMeta(accounts.admin), getAccountMeta(accounts.guard), getAccountMeta(accounts.adminSingleton), getAccountMeta(accounts.systemProgram), getAccountMeta(accounts.associatedTokenProgram), getAccountMeta(accounts.feeTokenMint), getAccountMeta(accounts.feeTokenAccount), getAccountMeta(accounts.feeTokenProgram), ], programAddress, data: getCreateGuardInstructionDataEncoder().encode(args), }; return instruction; } export function getCreateGuardInstruction(input, config) { // Program address. const programAddress = config?.programAddress ?? SINGLE_CHAIN_GUARD_PROGRAM_ADDRESS; // Original accounts. const originalAccounts = { admin: { value: input.admin ?? null, isWritable: true }, guard: { value: input.guard ?? null, isWritable: true }, adminSingleton: { value: input.adminSingleton ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false }, associatedTokenProgram: { value: input.associatedTokenProgram ?? null, isWritable: false, }, feeTokenMint: { value: input.feeTokenMint ?? null, isWritable: false }, feeTokenAccount: { value: input.feeTokenAccount ?? null, isWritable: true }, feeTokenProgram: { value: input.feeTokenProgram ?? null, isWritable: false, }, }; const accounts = originalAccounts; // Original args. const args = { ...input }; // Resolve default values. if (!accounts.systemProgram.value) { accounts.systemProgram.value = '11111111111111111111111111111111'; } if (!accounts.associatedTokenProgram.value) { accounts.associatedTokenProgram.value = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'; } const getAccountMeta = getAccountMetaFactory(programAddress, 'programId'); const instruction = { accounts: [ getAccountMeta(accounts.admin), getAccountMeta(accounts.guard), getAccountMeta(accounts.adminSingleton), getAccountMeta(accounts.systemProgram), getAccountMeta(accounts.associatedTokenProgram), getAccountMeta(accounts.feeTokenMint), getAccountMeta(accounts.feeTokenAccount), getAccountMeta(accounts.feeTokenProgram), ], programAddress, data: getCreateGuardInstructionDataEncoder().encode(args), }; return instruction; } export function parseCreateGuardInstruction(instruction) { if (instruction.accounts.length < 8) { // TODO: Coded error. throw new Error('Not enough accounts'); } let accountIndex = 0; const getNextAccount = () => { const accountMeta = instruction.accounts[accountIndex]; accountIndex += 1; return accountMeta; }; return { programAddress: instruction.programAddress, accounts: { admin: getNextAccount(), guard: getNextAccount(), adminSingleton: getNextAccount(), systemProgram: getNextAccount(), associatedTokenProgram: getNextAccount(), feeTokenMint: getNextAccount(), feeTokenAccount: getNextAccount(), feeTokenProgram: getNextAccount(), }, data: getCreateGuardInstructionDataDecoder().decode(instruction.data), }; } //# sourceMappingURL=createGuard.js.map