/** * 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, getAddressDecoder, getAddressEncoder, getStructDecoder, getStructEncoder, getU16Decoder, getU16Encoder, getU32Decoder, getU32Encoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, } from '@solana/kit'; import { getFeeTypeDecoder, getFeeTypeEncoder, type FeeType, type FeeTypeArgs, } from '../types'; export type MerchantOperatorConfig = { discriminator: number; version: number; bump: number; merchant: Address; operator: Address; operatorFee: bigint; feeType: FeeType; currentOrderId: number; daysToClose: number; numPolicies: number; numAcceptedCurrencies: number; }; export type MerchantOperatorConfigArgs = { discriminator: number; version: number; bump: number; merchant: Address; operator: Address; operatorFee: number | bigint; feeType: FeeTypeArgs; currentOrderId: number; daysToClose: number; numPolicies: number; numAcceptedCurrencies: number; }; export function getMerchantOperatorConfigEncoder(): FixedSizeEncoder { return getStructEncoder([ ['discriminator', getU8Encoder()], ['version', getU32Encoder()], ['bump', getU8Encoder()], ['merchant', getAddressEncoder()], ['operator', getAddressEncoder()], ['operatorFee', getU64Encoder()], ['feeType', getFeeTypeEncoder()], ['currentOrderId', getU32Encoder()], ['daysToClose', getU16Encoder()], ['numPolicies', getU32Encoder()], ['numAcceptedCurrencies', getU32Encoder()], ]); } export function getMerchantOperatorConfigDecoder(): FixedSizeDecoder { return getStructDecoder([ ['discriminator', getU8Decoder()], ['version', getU32Decoder()], ['bump', getU8Decoder()], ['merchant', getAddressDecoder()], ['operator', getAddressDecoder()], ['operatorFee', getU64Decoder()], ['feeType', getFeeTypeDecoder()], ['currentOrderId', getU32Decoder()], ['daysToClose', getU16Decoder()], ['numPolicies', getU32Decoder()], ['numAcceptedCurrencies', getU32Decoder()], ]); } export function getMerchantOperatorConfigCodec(): FixedSizeCodec< MerchantOperatorConfigArgs, MerchantOperatorConfig > { return combineCodec( getMerchantOperatorConfigEncoder(), getMerchantOperatorConfigDecoder() ); } export function decodeMerchantOperatorConfig( encodedAccount: EncodedAccount ): Account; export function decodeMerchantOperatorConfig( encodedAccount: MaybeEncodedAccount ): MaybeAccount; export function decodeMerchantOperatorConfig( encodedAccount: EncodedAccount | MaybeEncodedAccount ): | Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getMerchantOperatorConfigDecoder() ); } export async function fetchMerchantOperatorConfig< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig ): Promise> { const maybeAccount = await fetchMaybeMerchantOperatorConfig( rpc, address, config ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeMerchantOperatorConfig< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeMerchantOperatorConfig(maybeAccount); } export async function fetchAllMerchantOperatorConfig( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig ): Promise[]> { const maybeAccounts = await fetchAllMaybeMerchantOperatorConfig( rpc, addresses, config ); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeMerchantOperatorConfig( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeMerchantOperatorConfig(maybeAccount) ); } export function getMerchantOperatorConfigSize(): number { return 93; }