UNPKG

@robertprp/intents-sdk

Version:

Shogun Network Intent-based cross-chain swaps SDK

236 lines 9.98 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, transformEncoder, } from '@solana/kit'; import {} from '@solana/kit'; import {} from '@solana/kit'; import { SOURCE_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()], ]), (value) => ({ ...value, discriminator: CREATE_GUARD_DISCRIMINATOR })); } export function getCreateGuardInstructionDataDecoder() { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['auctioneerPubKey', getAddressDecoder()], ]); } export function getCreateGuardInstructionDataCodec() { return combineCodec(getCreateGuardInstructionDataEncoder(), getCreateGuardInstructionDataDecoder()); } export async function getCreateGuardInstructionAsync(input, config) { // Program address. const programAddress = config?.programAddress ?? SOURCE_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, }, collateralTokenMint: { value: input.collateralTokenMint ?? null, isWritable: false, }, collateralTokenAccount: { value: input.collateralTokenAccount ?? null, isWritable: true, }, collateralTokenProgram: { value: input.collateralTokenProgram ?? null, isWritable: false, }, stablecoinTokenMint: { value: input.stablecoinTokenMint ?? null, isWritable: false, }, stablecoinTokenAccount: { value: input.stablecoinTokenAccount ?? null, isWritable: true, }, stablecoinTokenProgram: { value: input.stablecoinTokenProgram ?? null, isWritable: false, }, }; const accounts = originalAccounts; // Original args. const args = { ...input }; // Resolve default values. if (!accounts.guard.value) { accounts.guard.value = await getProgramDerivedAddress({ programAddress, seeds: [ getBytesEncoder().encode(new Uint8Array([103, 117, 97, 114, 100])), getAddressEncoder().encode(expectAddress(accounts.collateralTokenMint.value)), getAddressEncoder().encode(expectAddress(accounts.stablecoinTokenMint.value)), ], }); } 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.collateralTokenAccount.value) { accounts.collateralTokenAccount.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', seeds: [ getAddressEncoder().encode(expectAddress(accounts.guard.value)), getAddressEncoder().encode(expectAddress(accounts.collateralTokenProgram.value)), getAddressEncoder().encode(expectAddress(accounts.collateralTokenMint.value)), ], }); } if (!accounts.stablecoinTokenAccount.value) { accounts.stablecoinTokenAccount.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', seeds: [ getAddressEncoder().encode(expectAddress(accounts.guard.value)), getAddressEncoder().encode(expectAddress(accounts.stablecoinTokenProgram.value)), getAddressEncoder().encode(expectAddress(accounts.stablecoinTokenMint.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.collateralTokenMint), getAccountMeta(accounts.collateralTokenAccount), getAccountMeta(accounts.collateralTokenProgram), getAccountMeta(accounts.stablecoinTokenMint), getAccountMeta(accounts.stablecoinTokenAccount), getAccountMeta(accounts.stablecoinTokenProgram), ], programAddress, data: getCreateGuardInstructionDataEncoder().encode(args), }; return instruction; } export function getCreateGuardInstruction(input, config) { // Program address. const programAddress = config?.programAddress ?? SOURCE_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, }, collateralTokenMint: { value: input.collateralTokenMint ?? null, isWritable: false, }, collateralTokenAccount: { value: input.collateralTokenAccount ?? null, isWritable: true, }, collateralTokenProgram: { value: input.collateralTokenProgram ?? null, isWritable: false, }, stablecoinTokenMint: { value: input.stablecoinTokenMint ?? null, isWritable: false, }, stablecoinTokenAccount: { value: input.stablecoinTokenAccount ?? null, isWritable: true, }, stablecoinTokenProgram: { value: input.stablecoinTokenProgram ?? 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.collateralTokenMint), getAccountMeta(accounts.collateralTokenAccount), getAccountMeta(accounts.collateralTokenProgram), getAccountMeta(accounts.stablecoinTokenMint), getAccountMeta(accounts.stablecoinTokenAccount), getAccountMeta(accounts.stablecoinTokenProgram), ], programAddress, data: getCreateGuardInstructionDataEncoder().encode(args), }; return instruction; } export function parseCreateGuardInstruction(instruction) { if (instruction.accounts.length < 11) { // 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(), collateralTokenMint: getNextAccount(), collateralTokenAccount: getNextAccount(), collateralTokenProgram: getNextAccount(), stablecoinTokenMint: getNextAccount(), stablecoinTokenAccount: getNextAccount(), stablecoinTokenProgram: getNextAccount(), }, data: getCreateGuardInstructionDataDecoder().decode(instruction.data), }; } //# sourceMappingURL=createGuard.js.map