/** * 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, getStructDecoder, getStructEncoder, getU16Decoder, getU16Encoder, getU32Decoder, getU32Encoder, getU8Decoder, getU8Encoder, type Codec, type Decoder, type Encoder, } from '@solana/kit'; import { getPoolOfferEntryDecoder, getPoolOfferEntryEncoder, type PoolOfferEntry, type PoolOfferEntryArgs, } from '.'; export type RegisterEncounterPoolArgs = { /** Ultra-rare candidacy chance numerator; the probability is `trigger_weight / trigger_total`. */ triggerWeight: number; triggerTotal: number; /** Market lifetime once revealed, in seconds (e.g. 300). */ marketTtlSecs: number; /** ATLAS-burn sink on the faucet leg, in basis points (`0` = off until econ enables). */ atlasBurnBps: number; /** `0` = faucet (NPC buys from the player) disabled ⇒ the market is sell-only. */ faucetEnabled: number; /** `0` = no catalog rotation. */ rotationEnabled: number; rotationPeriodSecs: number; /** The allowed offer set (buy/sell per `side_flags`). Must be non-empty. */ offers: Array; }; export type RegisterEncounterPoolArgsArgs = { /** Ultra-rare candidacy chance numerator; the probability is `trigger_weight / trigger_total`. */ triggerWeight: number; triggerTotal: number; /** Market lifetime once revealed, in seconds (e.g. 300). */ marketTtlSecs: number; /** ATLAS-burn sink on the faucet leg, in basis points (`0` = off until econ enables). */ atlasBurnBps: number; /** `0` = faucet (NPC buys from the player) disabled ⇒ the market is sell-only. */ faucetEnabled: number; /** `0` = no catalog rotation. */ rotationEnabled: number; rotationPeriodSecs: number; /** The allowed offer set (buy/sell per `side_flags`). Must be non-empty. */ offers: Array; }; export function getRegisterEncounterPoolArgsEncoder(): Encoder { return getStructEncoder([ ['triggerWeight', getU32Encoder()], ['triggerTotal', getU32Encoder()], ['marketTtlSecs', getU32Encoder()], ['atlasBurnBps', getU16Encoder()], ['faucetEnabled', getU8Encoder()], ['rotationEnabled', getU8Encoder()], ['rotationPeriodSecs', getU32Encoder()], ['offers', getArrayEncoder(getPoolOfferEntryEncoder())], ]); } export function getRegisterEncounterPoolArgsDecoder(): Decoder { return getStructDecoder([ ['triggerWeight', getU32Decoder()], ['triggerTotal', getU32Decoder()], ['marketTtlSecs', getU32Decoder()], ['atlasBurnBps', getU16Decoder()], ['faucetEnabled', getU8Decoder()], ['rotationEnabled', getU8Decoder()], ['rotationPeriodSecs', getU32Decoder()], ['offers', getArrayDecoder(getPoolOfferEntryDecoder())], ]); } export function getRegisterEncounterPoolArgsCodec(): Codec< RegisterEncounterPoolArgsArgs, RegisterEncounterPoolArgs > { return combineCodec( getRegisterEncounterPoolArgsEncoder(), getRegisterEncounterPoolArgsDecoder(), ); }