/** * 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, getArrayDecoder, getArrayEncoder, getI64Decoder, getI64Encoder, getStructDecoder, getStructEncoder, getU16Decoder, getU16Encoder, getU32Decoder, getU32Encoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, type Codec, type Decoder, type Encoder, } from '@solana/kit'; import { getResearchTagDecoder, getResearchTagEncoder, getScanPatternStatusDecoder, getScanPatternStatusEncoder, getScanRarityDecoder, getScanRarityEncoder, getScanStrategyDecoder, getScanStrategyEncoder, type ResearchTag, type ResearchTagArgs, type ScanPatternStatus, type ScanPatternStatusArgs, type ScanRarity, type ScanRarityArgs, type ScanStrategy, type ScanStrategyArgs, } from '.'; export type ScanPatternPolicyValues = { status: ScanPatternStatus; strategy: ScanStrategy; contactChanceBps: number; maxRarity: ScanRarity; requiredResearchTags: Array; targetRadius: bigint; signalTtlSecs: number; noContactXp: bigint; recoveryXp: bigint; exhaustionPerRecoveryBps: number; maxExhaustionBps: number; exhaustionDecaySecs: number; valueBudget: bigint; allowedFocusCategoryMask: number; }; export type ScanPatternPolicyValuesArgs = { status: ScanPatternStatusArgs; strategy: ScanStrategyArgs; contactChanceBps: number; maxRarity: ScanRarityArgs; requiredResearchTags: Array; targetRadius: number | bigint; signalTtlSecs: number; noContactXp: number | bigint; recoveryXp: number | bigint; exhaustionPerRecoveryBps: number; maxExhaustionBps: number; exhaustionDecaySecs: number; valueBudget: number | bigint; allowedFocusCategoryMask: number; }; export function getScanPatternPolicyValuesEncoder(): Encoder { return getStructEncoder([ ['status', getScanPatternStatusEncoder()], ['strategy', getScanStrategyEncoder()], ['contactChanceBps', getU16Encoder()], ['maxRarity', getScanRarityEncoder()], ['requiredResearchTags', getArrayEncoder(getResearchTagEncoder())], ['targetRadius', getI64Encoder()], ['signalTtlSecs', getU32Encoder()], ['noContactXp', getU64Encoder()], ['recoveryXp', getU64Encoder()], ['exhaustionPerRecoveryBps', getU16Encoder()], ['maxExhaustionBps', getU16Encoder()], ['exhaustionDecaySecs', getU32Encoder()], ['valueBudget', getU64Encoder()], ['allowedFocusCategoryMask', getU8Encoder()], ]); } export function getScanPatternPolicyValuesDecoder(): Decoder { return getStructDecoder([ ['status', getScanPatternStatusDecoder()], ['strategy', getScanStrategyDecoder()], ['contactChanceBps', getU16Decoder()], ['maxRarity', getScanRarityDecoder()], ['requiredResearchTags', getArrayDecoder(getResearchTagDecoder())], ['targetRadius', getI64Decoder()], ['signalTtlSecs', getU32Decoder()], ['noContactXp', getU64Decoder()], ['recoveryXp', getU64Decoder()], ['exhaustionPerRecoveryBps', getU16Decoder()], ['maxExhaustionBps', getU16Decoder()], ['exhaustionDecaySecs', getU32Decoder()], ['valueBudget', getU64Decoder()], ['allowedFocusCategoryMask', getU8Decoder()], ]); } export function getScanPatternPolicyValuesCodec(): Codec< ScanPatternPolicyValuesArgs, ScanPatternPolicyValues > { return combineCodec( getScanPatternPolicyValuesEncoder(), getScanPatternPolicyValuesDecoder(), ); }