/** * 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, getOptionDecoder, getOptionEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, type Codec, type Decoder, type Encoder, type Option, type OptionOrNullable, } from '@solana/kit'; import { getNameDecoder, getNameEncoder, getRegionIdDecoder, getRegionIdEncoder, getResearchTagDecoder, getResearchTagEncoder, getRiskZoneBorshDecoder, getRiskZoneBorshEncoder, type Name, type NameArgs, type RegionId, type RegionIdArgs, type ResearchTag, type ResearchTagArgs, type RiskZoneBorsh, type RiskZoneBorshArgs, } from '.'; import { getI8F56Decoder, getI8F56Encoder, type I8F56, type I8F56Args, } from '../../fixed/codecs'; export type UpdateRegionArgs = { /** New region name */ name: Option; /** New risk zone */ riskZone: Option; /** New set of region IDs connected by at least one cross-region system warp lane */ connections: Option>; /** New coordinate points defining the region's border */ border: Option>>; /** New technology IDs required for scanning in this region */ scanningResearchRequirements: Option>; /** New technology IDs required for mining in this region */ miningResearchRequirements: Option>; /** New XP modifier for this region */ xpModifier: Option; }; export type UpdateRegionArgsArgs = { /** New region name */ name: OptionOrNullable; /** New risk zone */ riskZone: OptionOrNullable; /** New set of region IDs connected by at least one cross-region system warp lane */ connections: OptionOrNullable>; /** New coordinate points defining the region's border */ border: OptionOrNullable>>; /** New technology IDs required for scanning in this region */ scanningResearchRequirements: OptionOrNullable>; /** New technology IDs required for mining in this region */ miningResearchRequirements: OptionOrNullable>; /** New XP modifier for this region */ xpModifier: OptionOrNullable; }; export function getUpdateRegionArgsEncoder(): Encoder { return getStructEncoder([ ['name', getOptionEncoder(getNameEncoder())], ['riskZone', getOptionEncoder(getRiskZoneBorshEncoder())], ['connections', getOptionEncoder(getArrayEncoder(getRegionIdEncoder()))], [ 'border', getOptionEncoder( getArrayEncoder(getArrayEncoder(getI8F56Encoder(), { size: 2 })), ), ], [ 'scanningResearchRequirements', getOptionEncoder(getArrayEncoder(getResearchTagEncoder())), ], [ 'miningResearchRequirements', getOptionEncoder(getArrayEncoder(getResearchTagEncoder())), ], ['xpModifier', getOptionEncoder(getU32Encoder())], ]); } export function getUpdateRegionArgsDecoder(): Decoder { return getStructDecoder([ ['name', getOptionDecoder(getNameDecoder())], ['riskZone', getOptionDecoder(getRiskZoneBorshDecoder())], ['connections', getOptionDecoder(getArrayDecoder(getRegionIdDecoder()))], [ 'border', getOptionDecoder( getArrayDecoder(getArrayDecoder(getI8F56Decoder(), { size: 2 })), ), ], [ 'scanningResearchRequirements', getOptionDecoder(getArrayDecoder(getResearchTagDecoder())), ], [ 'miningResearchRequirements', getOptionDecoder(getArrayDecoder(getResearchTagDecoder())), ], ['xpModifier', getOptionDecoder(getU32Decoder())], ]); } export function getUpdateRegionArgsCodec(): Codec< UpdateRegionArgsArgs, UpdateRegionArgs > { return combineCodec( getUpdateRegionArgsEncoder(), getUpdateRegionArgsDecoder(), ); }