UNPKG

@robertprp/intents-sdk

Version:

Shogun Network Intent-based cross-chain swaps SDK

143 lines (128 loc) 4.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 { assertAccountExists, assertAccountsExist, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, type Account, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type MaybeAccount, type MaybeEncodedAccount, } from '@solana/kit'; import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/kit'; import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU8Decoder, getU8Encoder, transformEncoder, type Codec, type Decoder, type Encoder, type ReadonlyUint8Array, } from '@solana/kit'; export const ADMIN_SINGLETON_DISCRIMINATOR = new Uint8Array([179, 22, 254, 245, 204, 230, 222, 194]); export function getAdminSingletonDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(ADMIN_SINGLETON_DISCRIMINATOR); } export type AdminSingleton = { discriminator: ReadonlyUint8Array; /** Guard admin */ admin: Address; /** Pending guard admin */ pendingAdmin: Address; /** PDA bump */ bump: number; }; export type AdminSingletonArgs = { /** Guard admin */ admin: Address; /** Pending guard admin */ pendingAdmin: Address; /** PDA bump */ bump: number; }; export function getAdminSingletonEncoder(): Encoder<AdminSingletonArgs> { return transformEncoder( getStructEncoder([ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['admin', getAddressEncoder()], ['pendingAdmin', getAddressEncoder()], ['bump', getU8Encoder()], ]), (value) => ({ ...value, discriminator: ADMIN_SINGLETON_DISCRIMINATOR }), ); } export function getAdminSingletonDecoder(): Decoder<AdminSingleton> { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['admin', getAddressDecoder()], ['pendingAdmin', getAddressDecoder()], ['bump', getU8Decoder()], ]); } export function getAdminSingletonCodec(): Codec<AdminSingletonArgs, AdminSingleton> { return combineCodec(getAdminSingletonEncoder(), getAdminSingletonDecoder()); } export function decodeAdminSingleton<TAddress extends string = string>( encodedAccount: EncodedAccount<TAddress>, ): Account<AdminSingleton, TAddress>; export function decodeAdminSingleton<TAddress extends string = string>( encodedAccount: MaybeEncodedAccount<TAddress>, ): MaybeAccount<AdminSingleton, TAddress>; export function decodeAdminSingleton<TAddress extends string = string>( encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>, ): Account<AdminSingleton, TAddress> | MaybeAccount<AdminSingleton, TAddress> { return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getAdminSingletonDecoder()); } export async function fetchAdminSingleton<TAddress extends string = string>( rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig, ): Promise<Account<AdminSingleton, TAddress>> { const maybeAccount = await fetchMaybeAdminSingleton(rpc, address, config); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeAdminSingleton<TAddress extends string = string>( rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig, ): Promise<MaybeAccount<AdminSingleton, TAddress>> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeAdminSingleton(maybeAccount); } export async function fetchAllAdminSingleton( rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig, ): Promise<Account<AdminSingleton>[]> { const maybeAccounts = await fetchAllMaybeAdminSingleton(rpc, addresses, config); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeAdminSingleton( rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig, ): Promise<MaybeAccount<AdminSingleton>[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeAdminSingleton(maybeAccount)); } export function getAdminSingletonSize(): number { return 73; }