/** * 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 { combineCodec, getStructDecoder, getStructEncoder, getU16Decoder, getU16Encoder, getU8Decoder, getU8Encoder, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, } from '@solana/kit'; /** * One unlocked perk slot (master §3.1: `[PerkSlot; 4]`). `perk_id == 0` ⇒ empty * (sentinel, same rationale as `GearRef`; reference-impl `PerkSlot`, record_rs:304-315). * * Byte-exact to `layout.PerkSlotPod` (record_rs:508-516): * `perk_id(2) + tier(1) + _pad(1) = 4 B`. */ export type PerkSlot = { /** On-chain perk definition id. `0` ⇒ empty slot (the sentinel). */ perkId: number; /** Perk tier. */ tier: number; /** Padding to the 4-byte slot (`layout.PerkSlotPod._pad`). */ pad: number; }; export type PerkSlotArgs = PerkSlot; export function getPerkSlotEncoder(): FixedSizeEncoder { return getStructEncoder([ ['perkId', getU16Encoder()], ['tier', getU8Encoder()], ['pad', getU8Encoder()], ]); } export function getPerkSlotDecoder(): FixedSizeDecoder { return getStructDecoder([ ['perkId', getU16Decoder()], ['tier', getU8Decoder()], ['pad', getU8Decoder()], ]); } export function getPerkSlotCodec(): FixedSizeCodec { return combineCodec(getPerkSlotEncoder(), getPerkSlotDecoder()); }