/** * 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 { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU128Decoder, getU128Encoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array, } from "@solana/kit"; export const REQUEST_WITHDRAW_VAULT_RECEIPT_DISCRIMINATOR = new Uint8Array([ 203, 81, 223, 141, 175, 108, 101, 114, ]); export function getRequestWithdrawVaultReceiptDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode( REQUEST_WITHDRAW_VAULT_RECEIPT_DISCRIMINATOR, ); } export type RequestWithdrawVaultReceipt = { discriminator: ReadonlyUint8Array; vault: Address; user: Address; amountLpEscrowed: bigint; amountAssetToWithdrawDecimalBits: bigint; withdrawableFromTs: bigint; bump: number; version: number; }; export type RequestWithdrawVaultReceiptArgs = { vault: Address; user: Address; amountLpEscrowed: number | bigint; amountAssetToWithdrawDecimalBits: number | bigint; withdrawableFromTs: number | bigint; bump: number; version: number; }; /** Gets the encoder for {@link RequestWithdrawVaultReceiptArgs} account data. */ export function getRequestWithdrawVaultReceiptEncoder(): FixedSizeEncoder { return transformEncoder( getStructEncoder([ ["discriminator", fixEncoderSize(getBytesEncoder(), 8)], ["vault", getAddressEncoder()], ["user", getAddressEncoder()], ["amountLpEscrowed", getU64Encoder()], ["amountAssetToWithdrawDecimalBits", getU128Encoder()], ["withdrawableFromTs", getU64Encoder()], ["bump", getU8Encoder()], ["version", getU8Encoder()], ]), (value) => ({ ...value, discriminator: REQUEST_WITHDRAW_VAULT_RECEIPT_DISCRIMINATOR, }), ); } /** Gets the decoder for {@link RequestWithdrawVaultReceipt} account data. */ export function getRequestWithdrawVaultReceiptDecoder(): FixedSizeDecoder { return getStructDecoder([ ["discriminator", fixDecoderSize(getBytesDecoder(), 8)], ["vault", getAddressDecoder()], ["user", getAddressDecoder()], ["amountLpEscrowed", getU64Decoder()], ["amountAssetToWithdrawDecimalBits", getU128Decoder()], ["withdrawableFromTs", getU64Decoder()], ["bump", getU8Decoder()], ["version", getU8Decoder()], ]); } /** Gets the codec for {@link RequestWithdrawVaultReceipt} account data. */ export function getRequestWithdrawVaultReceiptCodec(): FixedSizeCodec< RequestWithdrawVaultReceiptArgs, RequestWithdrawVaultReceipt > { return combineCodec( getRequestWithdrawVaultReceiptEncoder(), getRequestWithdrawVaultReceiptDecoder(), ); } export function decodeRequestWithdrawVaultReceipt< TAddress extends string = string, >( encodedAccount: EncodedAccount, ): Account; export function decodeRequestWithdrawVaultReceipt< TAddress extends string = string, >( encodedAccount: MaybeEncodedAccount, ): MaybeAccount; export function decodeRequestWithdrawVaultReceipt< TAddress extends string = string, >( encodedAccount: EncodedAccount | MaybeEncodedAccount, ): | Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getRequestWithdrawVaultReceiptDecoder(), ); } export async function fetchRequestWithdrawVaultReceipt< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchMaybeRequestWithdrawVaultReceipt( rpc, address, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeRequestWithdrawVaultReceipt< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeRequestWithdrawVaultReceipt(maybeAccount); } export async function fetchAllRequestWithdrawVaultReceipt( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchAllMaybeRequestWithdrawVaultReceipt( rpc, addresses, config, ); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeRequestWithdrawVaultReceipt( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeRequestWithdrawVaultReceipt(maybeAccount), ); } export function getRequestWithdrawVaultReceiptSize(): number { return 106; }