/** * This code was AUTOGENERATED using the kinobi library. * Please DO NOT EDIT THIS FILE, instead use visitors * to add features, then rerun kinobi to update it. * * @see https://github.com/kinobi-so/kinobi */ import { Account, Context, Pda, PublicKey, RpcAccount, RpcGetAccountOptions, RpcGetAccountsOptions, assertAccountExists, deserializeAccount, gpaBuilder, publicKey as toPublicKey, } from '@metaplex-foundation/umi'; import { Serializer, bytes, mapSerializer, publicKey as publicKeySerializer, struct, u32, u64, u8, } from '@metaplex-foundation/umi/serializers'; export type MessageLib = Account; export type MessageLibAccountData = { discriminator: Uint8Array; eid: number; endpoint: PublicKey; endpointProgram: PublicKey; bump: number; admin: PublicKey; fee: bigint; lzTokenFee: bigint; wlCaller: PublicKey; }; export type MessageLibAccountDataArgs = { eid: number; endpoint: PublicKey; endpointProgram: PublicKey; bump: number; admin: PublicKey; fee: number | bigint; lzTokenFee: number | bigint; wlCaller: PublicKey; }; export function getMessageLibAccountDataSerializer(): Serializer< MessageLibAccountDataArgs, MessageLibAccountData > { return mapSerializer( struct( [ ['discriminator', bytes({ size: 8 })], ['eid', u32()], ['endpoint', publicKeySerializer()], ['endpointProgram', publicKeySerializer()], ['bump', u8()], ['admin', publicKeySerializer()], ['fee', u64()], ['lzTokenFee', u64()], ['wlCaller', publicKeySerializer()], ], { description: 'MessageLibAccountData' } ), (value) => ({ ...value, discriminator: new Uint8Array([141, 191, 244, 48, 52, 174, 199, 209]), }) ) as Serializer; } export function deserializeMessageLib(rawAccount: RpcAccount): MessageLib { return deserializeAccount(rawAccount, getMessageLibAccountDataSerializer()); } export async function fetchMessageLib( context: Pick, publicKey: PublicKey | Pda, options?: RpcGetAccountOptions ): Promise { const maybeAccount = await context.rpc.getAccount( toPublicKey(publicKey, false), options ); assertAccountExists(maybeAccount, 'MessageLib'); return deserializeMessageLib(maybeAccount); } export async function safeFetchMessageLib( context: Pick, publicKey: PublicKey | Pda, options?: RpcGetAccountOptions ): Promise { const maybeAccount = await context.rpc.getAccount( toPublicKey(publicKey, false), options ); return maybeAccount.exists ? deserializeMessageLib(maybeAccount) : null; } export async function fetchAllMessageLib( context: Pick, publicKeys: Array, options?: RpcGetAccountsOptions ): Promise { const maybeAccounts = await context.rpc.getAccounts( publicKeys.map((key) => toPublicKey(key, false)), options ); return maybeAccounts.map((maybeAccount) => { assertAccountExists(maybeAccount, 'MessageLib'); return deserializeMessageLib(maybeAccount); }); } export async function safeFetchAllMessageLib( context: Pick, publicKeys: Array, options?: RpcGetAccountsOptions ): Promise { const maybeAccounts = await context.rpc.getAccounts( publicKeys.map((key) => toPublicKey(key, false)), options ); return maybeAccounts .filter((maybeAccount) => maybeAccount.exists) .map((maybeAccount) => deserializeMessageLib(maybeAccount as RpcAccount)); } export function getMessageLibGpaBuilder( context: Pick ) { const programId = context.programs.getPublicKey( 'simpleMessagelib', '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy' ); return gpaBuilder(context, programId) .registerFields<{ discriminator: Uint8Array; eid: number; endpoint: PublicKey; endpointProgram: PublicKey; bump: number; admin: PublicKey; fee: number | bigint; lzTokenFee: number | bigint; wlCaller: PublicKey; }>({ discriminator: [0, bytes({ size: 8 })], eid: [8, u32()], endpoint: [12, publicKeySerializer()], endpointProgram: [44, publicKeySerializer()], bump: [76, u8()], admin: [77, publicKeySerializer()], fee: [109, u64()], lzTokenFee: [117, u64()], wlCaller: [125, publicKeySerializer()], }) .deserializeUsing((account) => deserializeMessageLib(account)) .whereField( 'discriminator', new Uint8Array([141, 191, 244, 48, 52, 174, 199, 209]) ); } export function getMessageLibSize(): number { return 157; }