/** * 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, getMapDecoder, getMapEncoder, getSetDecoder, getSetEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU8Decoder, getU8Encoder, type Codec, type Decoder, type Encoder, } from '@solana/kit'; import { getBuildingTagDecoder, getBuildingTagEncoder, getCargoIdDecoder, getCargoIdEncoder, getClaimStakesInfoDecoder, getClaimStakesInfoEncoder, type BuildingTag, type BuildingTagArgs, type CargoId, type CargoIdArgs, type ClaimStakesInfo, type ClaimStakesInfoArgs, } from '.'; import { getU16F48Decoder, getU16F48Encoder, getU32F32Decoder, getU32F32Encoder, type U16F48, type U16F48Args, type U32F32, type U32F32Args, } from '../../fixed/codecs'; export type Planet = { /** Claim stake plots on the planet. 5x7 grid where rows are corresponding starbase level and columns are claim stake tier */ claimStakePlots: Array>; /** Base rent rate for claim stakes on the planet. 5x7 grid where rows are corresponding starbase level and columns are claim stake tier */ baseClaimStakeRentRate: Array>; /** Base placement fee for claim stakes on the planet. 5x7 grid where rows are corresponding starbase level and columns are claim stake tier */ baseClaimStakePlacementFee: Array>; /** Resources available at the planet */ resources: Map; /** The tags that this `CelestialBody` provides, used to validate claim stakes */ providedTags: Set; /** The claim stakes placed on the planet */ claimedPlots: { /** The total size of the unsized bytes in the list */ unsizedLen: number; /** The list of items containing offsets, and potentially extra metadata, for the start of each element in the unsized list */ offsetList: Array<{ offset: number; key: number }>; /** The list of byte offsets for the start of each element in the unsized list */ unsizedList: Array; }; }; export type PlanetArgs = { /** Claim stake plots on the planet. 5x7 grid where rows are corresponding starbase level and columns are claim stake tier */ claimStakePlots: Array>; /** Base rent rate for claim stakes on the planet. 5x7 grid where rows are corresponding starbase level and columns are claim stake tier */ baseClaimStakeRentRate: Array>; /** Base placement fee for claim stakes on the planet. 5x7 grid where rows are corresponding starbase level and columns are claim stake tier */ baseClaimStakePlacementFee: Array>; /** Resources available at the planet */ resources: Map; /** The tags that this `CelestialBody` provides, used to validate claim stakes */ providedTags: Set; /** The claim stakes placed on the planet */ claimedPlots: { /** The total size of the unsized bytes in the list */ unsizedLen: number; /** The list of items containing offsets, and potentially extra metadata, for the start of each element in the unsized list */ offsetList: Array<{ offset: number; key: number }>; /** The list of byte offsets for the start of each element in the unsized list */ unsizedList: Array; }; }; export function getPlanetEncoder(): Encoder { return getStructEncoder([ [ 'claimStakePlots', getArrayEncoder(getArrayEncoder(getU32Encoder(), { size: 5 }), { size: 7, }), ], [ 'baseClaimStakeRentRate', getArrayEncoder(getArrayEncoder(getU32F32Encoder(), { size: 5 }), { size: 7, }), ], [ 'baseClaimStakePlacementFee', getArrayEncoder(getArrayEncoder(getU32F32Encoder(), { size: 5 }), { size: 7, }), ], ['resources', getMapEncoder(getCargoIdEncoder(), getU16F48Encoder())], ['providedTags', getSetEncoder(getBuildingTagEncoder())], [ 'claimedPlots', getStructEncoder([ ['unsizedLen', getU32Encoder()], [ 'offsetList', getArrayEncoder( getStructEncoder([ ['offset', getU32Encoder()], ['key', getU8Encoder()], ]), ), ], ['unsizedList', getArrayEncoder(getClaimStakesInfoEncoder())], ]), ], ]); } export function getPlanetDecoder(): Decoder { return getStructDecoder([ [ 'claimStakePlots', getArrayDecoder(getArrayDecoder(getU32Decoder(), { size: 5 }), { size: 7, }), ], [ 'baseClaimStakeRentRate', getArrayDecoder(getArrayDecoder(getU32F32Decoder(), { size: 5 }), { size: 7, }), ], [ 'baseClaimStakePlacementFee', getArrayDecoder(getArrayDecoder(getU32F32Decoder(), { size: 5 }), { size: 7, }), ], ['resources', getMapDecoder(getCargoIdDecoder(), getU16F48Decoder())], ['providedTags', getSetDecoder(getBuildingTagDecoder())], [ 'claimedPlots', getStructDecoder([ ['unsizedLen', getU32Decoder()], [ 'offsetList', getArrayDecoder( getStructDecoder([ ['offset', getU32Decoder()], ['key', getU8Decoder()], ]), ), ], ['unsizedList', getArrayDecoder(getClaimStakesInfoDecoder())], ]), ], ]); } export function getPlanetCodec(): Codec { return combineCodec(getPlanetEncoder(), getPlanetDecoder()); }