@gabox-labs/sdk 0.2.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +226 -0
- package/README.md +116 -460
- package/dist/generated/index.d.ts +334 -755
- package/dist/generated/index.js +2403 -338
- package/dist/generated/index.js.map +1 -1
- package/dist/index-BDfGvmgF.d.ts +934 -0
- package/dist/index.d.ts +191 -448
- package/dist/index.js +468 -1034
- package/dist/index.js.map +1 -1
- package/dist/raydium/index.d.ts +2 -0
- package/dist/raydium/index.js +2 -0
- package/dist/raydium-B-l9V3O-.js +2604 -0
- package/dist/raydium-B-l9V3O-.js.map +1 -0
- package/llms.txt +4 -2
- package/package.json +11 -16
- package/skills/gabox-sdk/SKILL.md +40 -142
- package/skills/gabox-sdk/references/api.md +103 -145
- package/dist/gaboxV2-CV2XltqC.js +0 -3347
- package/dist/gaboxV2-CV2XltqC.js.map +0 -1
- package/dist/index-BxvSkzCO.d.ts +0 -471
- package/dist/pump/index.d.ts +0 -2
- package/dist/pump/index.js +0 -2
- package/dist/pump-D0K_0uiC.js +0 -1531
- package/dist/pump-D0K_0uiC.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/generated/events/drawResolved.ts","../../src/generated/events/packBought.ts","../../src/generated/events/poolCreated.ts","../../src/generated/events/prizeRedeemed.ts","../../src/generated/events/prizesFunded.ts","../../src/generated/events/randomnessRetried.ts","../../src/generated/events/tokensSold.ts","../../src/generated/errors/gaboxV2.ts","../../src/generated/events/referralBound.ts","../../src/generated/events/referralClaimed.ts","../../src/generated/index.ts"],"sourcesContent":["/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBooleanDecoder, getBooleanEncoder, getBytesDecoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const DRAW_RESOLVED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([127, 177, 62, 146, 164, 90, 185, 218]);\n\nexport function getDrawResolvedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(DRAW_RESOLVED_EVENT_DISCRIMINATOR); }\n\nexport type DrawResolvedEvent = { pool: Address; seq: bigint; purchaser: Address; amount: bigint; randomness: ReadonlyUint8Array; timedOut: boolean; };\n\nexport type DrawResolvedEventArgs = { pool: Address; seq: number | bigint; purchaser: Address; amount: number | bigint; randomness: ReadonlyUint8Array; timedOut: boolean; };\n\n/** Gets the encoder for {@link DrawResolvedEventArgs} event data. */\nexport function getDrawResolvedEventEncoder(): FixedSizeEncoder<DrawResolvedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seq', getU64Encoder()], ['purchaser', getAddressEncoder()], ['amount', getU64Encoder()], ['randomness', fixEncoderSize(getBytesEncoder(), 32)], ['timedOut', getBooleanEncoder()]]), [getConstantEncoder(DRAW_RESOLVED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link DrawResolvedEvent} event data. */\nexport function getDrawResolvedEventDecoder(): FixedSizeDecoder<DrawResolvedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seq', getU64Decoder()], ['purchaser', getAddressDecoder()], ['amount', getU64Decoder()], ['randomness', fixDecoderSize(getBytesDecoder(), 32)], ['timedOut', getBooleanDecoder()]]), [getConstantDecoder(DRAW_RESOLVED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link DrawResolvedEvent} event data. */\nexport function getDrawResolvedEventCodec(): FixedSizeCodec<DrawResolvedEventArgs, DrawResolvedEvent> {\n return combineCodec(getDrawResolvedEventEncoder(), getDrawResolvedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link DrawResolvedEvent} event data. */\nexport function parseDrawResolvedEvent(data: ReadonlyUint8Array | Uint8Array): DrawResolvedEvent {\n if (containsBytes(data, DRAW_RESOLVED_EVENT_DISCRIMINATOR, 0)) { return getDrawResolvedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"DrawResolvedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\nimport { getPrizeDecoder, getPrizeEncoder, type Prize, type PrizeArgs } from '../types';\n\nexport const PACK_BOUGHT_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([220, 208, 74, 75, 42, 144, 231, 69]);\n\nexport function getPackBoughtEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(PACK_BOUGHT_EVENT_DISCRIMINATOR); }\n\nexport type PackBoughtEvent = { pool: Address; seq: bigint; purchaser: Address; venue: Address;\n/** Always `pool.pack_tokens`. The trade is exact-tokens-out. */\ntokensBought: bigint;\n/**\n * What the pack cost: venue quote spend plus venue account rent; SOL + WSOL,\n * without double counting. Both fees below are a share of this number.\n */\nvenueDebit: bigint;\n/** The creator's `fee_bps` share of `venue_debit`, paid on top of it. */\nfeeLamports: bigint;\n/** The referrer's share of `fee_lamports`, deducted from the creator fee. */\nreferralLamports: bigint;\n/** The protocol's 1% of `venue_debit`, paid on top of it. */\nprotocolLamports: bigint; vrfDebit: bigint; prizes: Array<Prize>; };\n\nexport type PackBoughtEventArgs = { pool: Address; seq: number | bigint; purchaser: Address; venue: Address;\n/** Always `pool.pack_tokens`. The trade is exact-tokens-out. */\ntokensBought: number | bigint;\n/**\n * What the pack cost: venue quote spend plus venue account rent; SOL + WSOL,\n * without double counting. Both fees below are a share of this number.\n */\nvenueDebit: number | bigint;\n/** The creator's `fee_bps` share of `venue_debit`, paid on top of it. */\nfeeLamports: number | bigint;\n/** The referrer's share of `fee_lamports`, deducted from the creator fee. */\nreferralLamports: number | bigint;\n/** The protocol's 1% of `venue_debit`, paid on top of it. */\nprotocolLamports: number | bigint; vrfDebit: number | bigint; prizes: Array<PrizeArgs>; };\n\n/** Gets the encoder for {@link PackBoughtEventArgs} event data. */\nexport function getPackBoughtEventEncoder(): FixedSizeEncoder<PackBoughtEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seq', getU64Encoder()], ['purchaser', getAddressEncoder()], ['venue', getAddressEncoder()], ['tokensBought', getU64Encoder()], ['venueDebit', getU64Encoder()], ['feeLamports', getU64Encoder()], ['referralLamports', getU64Encoder()], ['protocolLamports', getU64Encoder()], ['vrfDebit', getU64Encoder()], ['prizes', getArrayEncoder(getPrizeEncoder(), { size: 8 })]]), [getConstantEncoder(PACK_BOUGHT_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link PackBoughtEvent} event data. */\nexport function getPackBoughtEventDecoder(): FixedSizeDecoder<PackBoughtEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seq', getU64Decoder()], ['purchaser', getAddressDecoder()], ['venue', getAddressDecoder()], ['tokensBought', getU64Decoder()], ['venueDebit', getU64Decoder()], ['feeLamports', getU64Decoder()], ['referralLamports', getU64Decoder()], ['protocolLamports', getU64Decoder()], ['vrfDebit', getU64Decoder()], ['prizes', getArrayDecoder(getPrizeDecoder(), { size: 8 })]]), [getConstantDecoder(PACK_BOUGHT_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link PackBoughtEvent} event data. */\nexport function getPackBoughtEventCodec(): FixedSizeCodec<PackBoughtEventArgs, PackBoughtEvent> {\n return combineCodec(getPackBoughtEventEncoder(), getPackBoughtEventDecoder());\n}\n\n/** Parses the provided bytes into {@link PackBoughtEvent} event data. */\nexport function parsePackBoughtEvent(data: ReadonlyUint8Array | Uint8Array): PackBoughtEvent {\n if (containsBytes(data, PACK_BOUGHT_EVENT_DISCRIMINATOR, 0)) { return getPackBoughtEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"PackBoughtEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU16Decoder, getU16Encoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\nimport { getTierDecoder, getTierEncoder, type Tier, type TierArgs } from '../types';\n\nexport const POOL_CREATED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([202, 44, 41, 88, 104, 220, 157, 82]);\n\nexport function getPoolCreatedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(POOL_CREATED_EVENT_DISCRIMINATOR); }\n\nexport type PoolCreatedEvent = { pool: Address; mint: Address; creator: Address; packTokens: bigint; feeBps: number; tiers: Array<Tier>;\n/** Tokens the creator donated at creation. Nobody can withdraw them. */\nseedTokens: bigint;\n/** Lamports the creator spent on the curve to buy that seed. */\nseedLamports: bigint; };\n\nexport type PoolCreatedEventArgs = { pool: Address; mint: Address; creator: Address; packTokens: number | bigint; feeBps: number; tiers: Array<TierArgs>;\n/** Tokens the creator donated at creation. Nobody can withdraw them. */\nseedTokens: number | bigint;\n/** Lamports the creator spent on the curve to buy that seed. */\nseedLamports: number | bigint; };\n\n/** Gets the encoder for {@link PoolCreatedEventArgs} event data. */\nexport function getPoolCreatedEventEncoder(): FixedSizeEncoder<PoolCreatedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['mint', getAddressEncoder()], ['creator', getAddressEncoder()], ['packTokens', getU64Encoder()], ['feeBps', getU16Encoder()], ['tiers', getArrayEncoder(getTierEncoder(), { size: 8 })], ['seedTokens', getU64Encoder()], ['seedLamports', getU64Encoder()]]), [getConstantEncoder(POOL_CREATED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link PoolCreatedEvent} event data. */\nexport function getPoolCreatedEventDecoder(): FixedSizeDecoder<PoolCreatedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['mint', getAddressDecoder()], ['creator', getAddressDecoder()], ['packTokens', getU64Decoder()], ['feeBps', getU16Decoder()], ['tiers', getArrayDecoder(getTierDecoder(), { size: 8 })], ['seedTokens', getU64Decoder()], ['seedLamports', getU64Decoder()]]), [getConstantDecoder(POOL_CREATED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link PoolCreatedEvent} event data. */\nexport function getPoolCreatedEventCodec(): FixedSizeCodec<PoolCreatedEventArgs, PoolCreatedEvent> {\n return combineCodec(getPoolCreatedEventEncoder(), getPoolCreatedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link PoolCreatedEvent} event data. */\nexport function parsePoolCreatedEvent(data: ReadonlyUint8Array | Uint8Array): PoolCreatedEvent {\n if (containsBytes(data, POOL_CREATED_EVENT_DISCRIMINATOR, 0)) { return getPoolCreatedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"PoolCreatedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBooleanDecoder, getBooleanEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const PRIZE_REDEEMED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([243, 193, 245, 166, 160, 101, 182, 207]);\n\nexport function getPrizeRedeemedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(PRIZE_REDEEMED_EVENT_DISCRIMINATOR); }\n\nexport type PrizeRedeemedEvent = { pool: Address; seq: bigint; purchaser: Address; amount: bigint; sold: boolean; };\n\nexport type PrizeRedeemedEventArgs = { pool: Address; seq: number | bigint; purchaser: Address; amount: number | bigint; sold: boolean; };\n\n/** Gets the encoder for {@link PrizeRedeemedEventArgs} event data. */\nexport function getPrizeRedeemedEventEncoder(): FixedSizeEncoder<PrizeRedeemedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seq', getU64Encoder()], ['purchaser', getAddressEncoder()], ['amount', getU64Encoder()], ['sold', getBooleanEncoder()]]), [getConstantEncoder(PRIZE_REDEEMED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link PrizeRedeemedEvent} event data. */\nexport function getPrizeRedeemedEventDecoder(): FixedSizeDecoder<PrizeRedeemedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seq', getU64Decoder()], ['purchaser', getAddressDecoder()], ['amount', getU64Decoder()], ['sold', getBooleanDecoder()]]), [getConstantDecoder(PRIZE_REDEEMED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link PrizeRedeemedEvent} event data. */\nexport function getPrizeRedeemedEventCodec(): FixedSizeCodec<PrizeRedeemedEventArgs, PrizeRedeemedEvent> {\n return combineCodec(getPrizeRedeemedEventEncoder(), getPrizeRedeemedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link PrizeRedeemedEvent} event data. */\nexport function parsePrizeRedeemedEvent(data: ReadonlyUint8Array | Uint8Array): PrizeRedeemedEvent {\n if (containsBytes(data, PRIZE_REDEEMED_EVENT_DISCRIMINATOR, 0)) { return getPrizeRedeemedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"PrizeRedeemedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const PRIZES_FUNDED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([188, 129, 185, 44, 234, 71, 53, 60]);\n\nexport function getPrizesFundedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(PRIZES_FUNDED_EVENT_DISCRIMINATOR); }\n\nexport type PrizesFundedEvent = { pool: Address; funder: Address; amount: bigint; };\n\nexport type PrizesFundedEventArgs = { pool: Address; funder: Address; amount: number | bigint; };\n\n/** Gets the encoder for {@link PrizesFundedEventArgs} event data. */\nexport function getPrizesFundedEventEncoder(): FixedSizeEncoder<PrizesFundedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['funder', getAddressEncoder()], ['amount', getU64Encoder()]]), [getConstantEncoder(PRIZES_FUNDED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link PrizesFundedEvent} event data. */\nexport function getPrizesFundedEventDecoder(): FixedSizeDecoder<PrizesFundedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['funder', getAddressDecoder()], ['amount', getU64Decoder()]]), [getConstantDecoder(PRIZES_FUNDED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link PrizesFundedEvent} event data. */\nexport function getPrizesFundedEventCodec(): FixedSizeCodec<PrizesFundedEventArgs, PrizesFundedEvent> {\n return combineCodec(getPrizesFundedEventEncoder(), getPrizesFundedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link PrizesFundedEvent} event data. */\nexport function parsePrizesFundedEvent(data: ReadonlyUint8Array | Uint8Array): PrizesFundedEvent {\n if (containsBytes(data, PRIZES_FUNDED_EVENT_DISCRIMINATOR, 0)) { return getPrizesFundedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"PrizesFundedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([243, 30, 148, 22, 14, 127, 52, 140]);\n\nexport function getRandomnessRetriedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR); }\n\nexport type RandomnessRetriedEvent = { pool: Address; seq: bigint; attempt: number; };\n\nexport type RandomnessRetriedEventArgs = { pool: Address; seq: number | bigint; attempt: number; };\n\n/** Gets the encoder for {@link RandomnessRetriedEventArgs} event data. */\nexport function getRandomnessRetriedEventEncoder(): FixedSizeEncoder<RandomnessRetriedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seq', getU64Encoder()], ['attempt', getU8Encoder()]]), [getConstantEncoder(RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link RandomnessRetriedEvent} event data. */\nexport function getRandomnessRetriedEventDecoder(): FixedSizeDecoder<RandomnessRetriedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seq', getU64Decoder()], ['attempt', getU8Decoder()]]), [getConstantDecoder(RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link RandomnessRetriedEvent} event data. */\nexport function getRandomnessRetriedEventCodec(): FixedSizeCodec<RandomnessRetriedEventArgs, RandomnessRetriedEvent> {\n return combineCodec(getRandomnessRetriedEventEncoder(), getRandomnessRetriedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link RandomnessRetriedEvent} event data. */\nexport function parseRandomnessRetriedEvent(data: ReadonlyUint8Array | Uint8Array): RandomnessRetriedEvent {\n if (containsBytes(data, RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR, 0)) { return getRandomnessRetriedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"RandomnessRetriedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const TOKENS_SOLD_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([217, 83, 68, 137, 134, 225, 94, 45]);\n\nexport function getTokensSoldEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(TOKENS_SOLD_EVENT_DISCRIMINATOR); }\n\nexport type TokensSoldEvent = { pool: Address; seller: Address; venue: Address; amount: bigint;\n/** SOL plus WSOL the venue paid the seller, before the protocol fee. */\nproceeds: bigint;\n/** The protocol's 1% of `proceeds`, SOL plus WSOL. */\nprotocolFee: bigint; };\n\nexport type TokensSoldEventArgs = { pool: Address; seller: Address; venue: Address; amount: number | bigint;\n/** SOL plus WSOL the venue paid the seller, before the protocol fee. */\nproceeds: number | bigint;\n/** The protocol's 1% of `proceeds`, SOL plus WSOL. */\nprotocolFee: number | bigint; };\n\n/** Gets the encoder for {@link TokensSoldEventArgs} event data. */\nexport function getTokensSoldEventEncoder(): FixedSizeEncoder<TokensSoldEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seller', getAddressEncoder()], ['venue', getAddressEncoder()], ['amount', getU64Encoder()], ['proceeds', getU64Encoder()], ['protocolFee', getU64Encoder()]]), [getConstantEncoder(TOKENS_SOLD_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link TokensSoldEvent} event data. */\nexport function getTokensSoldEventDecoder(): FixedSizeDecoder<TokensSoldEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seller', getAddressDecoder()], ['venue', getAddressDecoder()], ['amount', getU64Decoder()], ['proceeds', getU64Decoder()], ['protocolFee', getU64Decoder()]]), [getConstantDecoder(TOKENS_SOLD_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link TokensSoldEvent} event data. */\nexport function getTokensSoldEventCodec(): FixedSizeCodec<TokensSoldEventArgs, TokensSoldEvent> {\n return combineCodec(getTokensSoldEventEncoder(), getTokensSoldEventDecoder());\n}\n\n/** Parses the provided bytes into {@link TokensSoldEvent} event data. */\nexport function parseTokensSoldEvent(data: ReadonlyUint8Array | Uint8Array): TokensSoldEvent {\n if (containsBytes(data, TOKENS_SOLD_EVENT_DISCRIMINATOR, 0)) { return getTokensSoldEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"TokensSoldEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { isProgramError, type Address, type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM, type SolanaError } from '@solana/kit';\nimport { GABOX_V2_PROGRAM_ADDRESS } from '../programs';\n\n/** Arithmetic: Arithmetic overflow or inconsistent accounting */\nexport const GABOX_V2_ERROR__ARITHMETIC = 0x1770; // 6000\n/** InvalidDistribution: Invalid prize distribution */\nexport const GABOX_V2_ERROR__INVALID_DISTRIBUTION = 0x1771; // 6001\n/** UnfundedExpectation: Expected token award exceeds tokens purchased */\nexport const GABOX_V2_ERROR__UNFUNDED_EXPECTATION = 0x1772; // 6002\n/** UnsupportedMint: Mint must have no mint/freeze authority and only supported extensions */\nexport const GABOX_V2_ERROR__UNSUPPORTED_MINT = 0x1773; // 6003\n/** InsolventInventory: Prize inventory does not cover reservations */\nexport const GABOX_V2_ERROR__INSOLVENT_INVENTORY = 0x1774; // 6004\n/** PrizeCapChanged: Top prize is below the signed minimum; refresh the offer */\nexport const GABOX_V2_ERROR__PRIZE_CAP_CHANGED = 0x1775; // 6005\n/** PackTooSmall: A pack pays zero tokens on some tier */\nexport const GABOX_V2_ERROR__PACK_TOO_SMALL = 0x1776; // 6006\n/** JackpotBelowOnePack: The largest tier must pay at least one pack */\nexport const GABOX_V2_ERROR__JACKPOT_BELOW_ONE_PACK = 0x1777; // 6007\n/** InvalidVenue: Incorrect trade program, account order, or token binding */\nexport const GABOX_V2_ERROR__INVALID_VENUE = 0x1778; // 6008\n/** IncorrectTokenDelta: Trade did not move the exact token amount */\nexport const GABOX_V2_ERROR__INCORRECT_TOKEN_DELTA = 0x1779; // 6009\n/** SlippageExceeded: Spend exceeds the signed limit */\nexport const GABOX_V2_ERROR__SLIPPAGE_EXCEEDED = 0x177a; // 6010\n/** NotPending: Draw is not awaiting randomness */\nexport const GABOX_V2_ERROR__NOT_PENDING = 0x177b; // 6011\n/** NotReady: Draw has not resolved */\nexport const GABOX_V2_ERROR__NOT_READY = 0x177c; // 6012\n/** RetryTooSoon: Retry interval has not elapsed */\nexport const GABOX_V2_ERROR__RETRY_TOO_SOON = 0x177d; // 6013\n/** RetryUnavailable: Retry limit reached or draw expired */\nexport const GABOX_V2_ERROR__RETRY_UNAVAILABLE = 0x177e; // 6014\n/** NotExpired: Oracle timeout has not elapsed */\nexport const GABOX_V2_ERROR__NOT_EXPIRED = 0x177f; // 6015\n/** ZeroAmount: Amount must be positive */\nexport const GABOX_V2_ERROR__ZERO_AMOUNT = 0x1780; // 6016\n/** InvalidFee: Creator fee exceeds the limit */\nexport const GABOX_V2_ERROR__INVALID_FEE = 0x1781; // 6017\n/** CoinNotCreatedHere: A pool must be created in the same transaction that creates the coin */\nexport const GABOX_V2_ERROR__COIN_NOT_CREATED_HERE = 0x1782; // 6018\n/** InvalidReferral: Referral account is missing or inconsistent */\nexport const GABOX_V2_ERROR__INVALID_REFERRAL = 0x1783; // 6019\n/** NothingOwedToReferrer: No referral revenue is owed */\nexport const GABOX_V2_ERROR__NOTHING_OWED_TO_REFERRER = 0x1784; // 6020\n/** InvalidFeeCollector: Fee account is not the protocol fee collector's */\nexport const GABOX_V2_ERROR__INVALID_FEE_COLLECTOR = 0x1785; // 6021\n\nexport type GaboxV2Error = typeof GABOX_V2_ERROR__ARITHMETIC | typeof GABOX_V2_ERROR__COIN_NOT_CREATED_HERE | typeof GABOX_V2_ERROR__INCORRECT_TOKEN_DELTA | typeof GABOX_V2_ERROR__INSOLVENT_INVENTORY | typeof GABOX_V2_ERROR__INVALID_DISTRIBUTION | typeof GABOX_V2_ERROR__INVALID_FEE | typeof GABOX_V2_ERROR__INVALID_FEE_COLLECTOR | typeof GABOX_V2_ERROR__INVALID_REFERRAL | typeof GABOX_V2_ERROR__INVALID_VENUE | typeof GABOX_V2_ERROR__JACKPOT_BELOW_ONE_PACK | typeof GABOX_V2_ERROR__NOT_EXPIRED | typeof GABOX_V2_ERROR__NOTHING_OWED_TO_REFERRER | typeof GABOX_V2_ERROR__NOT_PENDING | typeof GABOX_V2_ERROR__NOT_READY | typeof GABOX_V2_ERROR__PACK_TOO_SMALL | typeof GABOX_V2_ERROR__PRIZE_CAP_CHANGED | typeof GABOX_V2_ERROR__RETRY_TOO_SOON | typeof GABOX_V2_ERROR__RETRY_UNAVAILABLE | typeof GABOX_V2_ERROR__SLIPPAGE_EXCEEDED | typeof GABOX_V2_ERROR__UNFUNDED_EXPECTATION | typeof GABOX_V2_ERROR__UNSUPPORTED_MINT | typeof GABOX_V2_ERROR__ZERO_AMOUNT;\n\nlet gaboxV2ErrorMessages: Record<GaboxV2Error, string> | undefined;\nif (process.env['NODE_ENV'] !== 'production') {\n gaboxV2ErrorMessages = { [GABOX_V2_ERROR__ARITHMETIC]: `Arithmetic overflow or inconsistent accounting`, [GABOX_V2_ERROR__COIN_NOT_CREATED_HERE]: `A pool must be created in the same transaction that creates the coin`, [GABOX_V2_ERROR__INCORRECT_TOKEN_DELTA]: `Trade did not move the exact token amount`, [GABOX_V2_ERROR__INSOLVENT_INVENTORY]: `Prize inventory does not cover reservations`, [GABOX_V2_ERROR__INVALID_DISTRIBUTION]: `Invalid prize distribution`, [GABOX_V2_ERROR__INVALID_FEE]: `Creator fee exceeds the limit`, [GABOX_V2_ERROR__INVALID_FEE_COLLECTOR]: `Fee account is not the protocol fee collector's`, [GABOX_V2_ERROR__INVALID_REFERRAL]: `Referral account is missing or inconsistent`, [GABOX_V2_ERROR__INVALID_VENUE]: `Incorrect trade program, account order, or token binding`, [GABOX_V2_ERROR__JACKPOT_BELOW_ONE_PACK]: `The largest tier must pay at least one pack`, [GABOX_V2_ERROR__NOT_EXPIRED]: `Oracle timeout has not elapsed`, [GABOX_V2_ERROR__NOTHING_OWED_TO_REFERRER]: `No referral revenue is owed`, [GABOX_V2_ERROR__NOT_PENDING]: `Draw is not awaiting randomness`, [GABOX_V2_ERROR__NOT_READY]: `Draw has not resolved`, [GABOX_V2_ERROR__PACK_TOO_SMALL]: `A pack pays zero tokens on some tier`, [GABOX_V2_ERROR__PRIZE_CAP_CHANGED]: `Top prize is below the signed minimum; refresh the offer`, [GABOX_V2_ERROR__RETRY_TOO_SOON]: `Retry interval has not elapsed`, [GABOX_V2_ERROR__RETRY_UNAVAILABLE]: `Retry limit reached or draw expired`, [GABOX_V2_ERROR__SLIPPAGE_EXCEEDED]: `Spend exceeds the signed limit`, [GABOX_V2_ERROR__UNFUNDED_EXPECTATION]: `Expected token award exceeds tokens purchased`, [GABOX_V2_ERROR__UNSUPPORTED_MINT]: `Mint must have no mint/freeze authority and only supported extensions`, [GABOX_V2_ERROR__ZERO_AMOUNT]: `Amount must be positive` };\n}\n\nexport function getGaboxV2ErrorMessage(code: GaboxV2Error): string {\n if (process.env['NODE_ENV'] !== 'production') {\n return (gaboxV2ErrorMessages as Record<GaboxV2Error, string>)[code];\n }\n\n return 'Error message not available in production bundles.';\n}\n\nexport function isGaboxV2Error<TProgramErrorCode extends GaboxV2Error>(\n error: unknown,\n transactionMessage: { instructions: Record<number, { programAddress: Address }> },\n code?: TProgramErrorCode,\n): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> & Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {\n return isProgramError<TProgramErrorCode>(error, transactionMessage, GABOX_V2_PROGRAM_ADDRESS, code);\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const REFERRAL_BOUND_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([12, 28, 152, 148, 55, 210, 102, 190]);\n\nexport function getReferralBoundEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(REFERRAL_BOUND_EVENT_DISCRIMINATOR); }\n\nexport type ReferralBoundEvent = { referee: Address; referrer: Address; };\n\nexport type ReferralBoundEventArgs = ReferralBoundEvent;\n\n/** Gets the encoder for {@link ReferralBoundEventArgs} event data. */\nexport function getReferralBoundEventEncoder(): FixedSizeEncoder<ReferralBoundEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['referee', getAddressEncoder()], ['referrer', getAddressEncoder()]]), [getConstantEncoder(REFERRAL_BOUND_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link ReferralBoundEvent} event data. */\nexport function getReferralBoundEventDecoder(): FixedSizeDecoder<ReferralBoundEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['referee', getAddressDecoder()], ['referrer', getAddressDecoder()]]), [getConstantDecoder(REFERRAL_BOUND_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link ReferralBoundEvent} event data. */\nexport function getReferralBoundEventCodec(): FixedSizeCodec<ReferralBoundEventArgs, ReferralBoundEvent> {\n return combineCodec(getReferralBoundEventEncoder(), getReferralBoundEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ReferralBoundEvent} event data. */\nexport function parseReferralBoundEvent(data: ReadonlyUint8Array | Uint8Array): ReferralBoundEvent {\n if (containsBytes(data, REFERRAL_BOUND_EVENT_DISCRIMINATOR, 0)) { return getReferralBoundEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"ReferralBoundEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const REFERRAL_CLAIMED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([195, 109, 77, 196, 134, 226, 78, 108]);\n\nexport function getReferralClaimedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(REFERRAL_CLAIMED_EVENT_DISCRIMINATOR); }\n\nexport type ReferralClaimedEvent = { pool: Address; referrer: Address; amount: bigint; };\n\nexport type ReferralClaimedEventArgs = { pool: Address; referrer: Address; amount: number | bigint; };\n\n/** Gets the encoder for {@link ReferralClaimedEventArgs} event data. */\nexport function getReferralClaimedEventEncoder(): FixedSizeEncoder<ReferralClaimedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['referrer', getAddressEncoder()], ['amount', getU64Encoder()]]), [getConstantEncoder(REFERRAL_CLAIMED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link ReferralClaimedEvent} event data. */\nexport function getReferralClaimedEventDecoder(): FixedSizeDecoder<ReferralClaimedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['referrer', getAddressDecoder()], ['amount', getU64Decoder()]]), [getConstantDecoder(REFERRAL_CLAIMED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link ReferralClaimedEvent} event data. */\nexport function getReferralClaimedEventCodec(): FixedSizeCodec<ReferralClaimedEventArgs, ReferralClaimedEvent> {\n return combineCodec(getReferralClaimedEventEncoder(), getReferralClaimedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link ReferralClaimedEvent} event data. */\nexport function parseReferralClaimedEvent(data: ReadonlyUint8Array | Uint8Array): ReferralClaimedEvent {\n if (containsBytes(data, REFERRAL_CLAIMED_EVENT_DISCRIMINATOR, 0)) { return getReferralClaimedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"ReferralClaimedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nexport * from './accounts';\nexport * from './errors';\nexport * from './events';\nexport * from './instructions';\nexport * from './pdas';\nexport * from './programs';\nexport * from './types';"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/generated/types/prize.ts","../../src/generated/types/tier.ts","../../src/generated/accounts/draw.ts","../../src/generated/accounts/pool.ts","../../src/generated/accounts/walletActivity.ts","../../src/generated/pdas/activity.ts","../../src/generated/pdas/draw.ts","../../src/generated/pdas/identity.ts","../../src/generated/pdas/pool.ts","../../src/generated/instructions/buyPack.ts","../../src/generated/instructions/deliverDraw.ts","../../src/generated/instructions/expireDraw.ts","../../src/generated/instructions/fundPrizes.ts","../../src/generated/instructions/initializePool.ts","../../src/generated/instructions/retryDraw.ts","../../src/generated/instructions/sellTokens.ts","../../src/generated/programs/gabox.ts","../../src/generated/events/drawResolved.ts","../../src/generated/events/packBought.ts","../../src/generated/events/poolCreated.ts","../../src/generated/events/prizesFunded.ts","../../src/generated/events/randomnessRetried.ts","../../src/generated/events/tokensSold.ts","../../src/generated/errors/gabox.ts","../../src/generated/index.ts"],"sourcesContent":["/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU64Decoder, getU64Encoder, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder } from '@solana/kit';\n\nexport type Prize = { amount: bigint; tickets: number; };\n\nexport type PrizeArgs = { amount: number | bigint; tickets: number; };\n\nexport function getPrizeEncoder(): FixedSizeEncoder<PrizeArgs> {\n return getStructEncoder([['amount', getU64Encoder()], ['tickets', getU32Encoder()]]);\n}\n\nexport function getPrizeDecoder(): FixedSizeDecoder<Prize> {\n return getStructDecoder([['amount', getU64Decoder()], ['tickets', getU32Decoder()]]);\n}\n\nexport function getPrizeCodec(): FixedSizeCodec<PrizeArgs, Prize> {\n return combineCodec(getPrizeEncoder(), getPrizeDecoder());\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder } from '@solana/kit';\n\n/** Counts, not cumulative thresholds. Zero-ticket entries must be all zero. */\nexport type Tier = { multiplierBps: number; tickets: number; };\n\nexport type TierArgs = Tier;\n\nexport function getTierEncoder(): FixedSizeEncoder<TierArgs> {\n return getStructEncoder([['multiplierBps', getU32Encoder()], ['tickets', getU32Encoder()]]);\n}\n\nexport function getTierDecoder(): FixedSizeDecoder<Tier> {\n return getStructDecoder([['multiplierBps', getU32Decoder()], ['tickets', getU32Decoder()]]);\n}\n\nexport function getTierCodec(): FixedSizeCodec<TierArgs, Tier> {\n return combineCodec(getTierEncoder(), getTierDecoder());\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array } from '@solana/kit';\nimport { getPrizeDecoder, getPrizeEncoder, type Prize, type PrizeArgs } from '../types';\n\nexport const DRAW_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([101, 31, 52, 179, 121, 78, 252, 89]);\n\nexport function getDrawDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(DRAW_DISCRIMINATOR); }\n\nexport type Draw = { discriminator: ReadonlyUint8Array; pool: Address; purchaser: Address; seq: bigint; bump: number; requestSlot: bigint; lastAttemptSlot: bigint; attempts: number; maximum: bigint; minimum: bigint; prizes: Array<Prize>; };\n\nexport type DrawArgs = { pool: Address; purchaser: Address; seq: number | bigint; bump: number; requestSlot: number | bigint; lastAttemptSlot: number | bigint; attempts: number; maximum: number | bigint; minimum: number | bigint; prizes: Array<PrizeArgs>; };\n\n/** Gets the encoder for {@link DrawArgs} account data. */\nexport function getDrawEncoder(): FixedSizeEncoder<DrawArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['pool', getAddressEncoder()], ['purchaser', getAddressEncoder()], ['seq', getU64Encoder()], ['bump', getU8Encoder()], ['requestSlot', getU64Encoder()], ['lastAttemptSlot', getU64Encoder()], ['attempts', getU8Encoder()], ['maximum', getU64Encoder()], ['minimum', getU64Encoder()], ['prizes', getArrayEncoder(getPrizeEncoder(), { size: 8 })]]), (value) => ({ ...value, discriminator: DRAW_DISCRIMINATOR }));\n}\n\n/** Gets the decoder for {@link Draw} account data. */\nexport function getDrawDecoder(): FixedSizeDecoder<Draw> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['pool', getAddressDecoder()], ['purchaser', getAddressDecoder()], ['seq', getU64Decoder()], ['bump', getU8Decoder()], ['requestSlot', getU64Decoder()], ['lastAttemptSlot', getU64Decoder()], ['attempts', getU8Decoder()], ['maximum', getU64Decoder()], ['minimum', getU64Decoder()], ['prizes', getArrayDecoder(getPrizeDecoder(), { size: 8 })]]);\n}\n\n/** Gets the codec for {@link Draw} account data. */\nexport function getDrawCodec(): FixedSizeCodec<DrawArgs, Draw> {\n return combineCodec(getDrawEncoder(), getDrawDecoder());\n}\n\nexport function decodeDraw<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<Draw, TAddress>;\nexport function decodeDraw<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<Draw, TAddress>;\nexport function decodeDraw<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>): Account<Draw, TAddress> | MaybeAccount<Draw, TAddress> {\n return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getDrawDecoder());\n}\n\nexport async function fetchDraw<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig,\n): Promise<Account<Draw, TAddress>> {\n const maybeAccount = await fetchMaybeDraw(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeDraw<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig,\n): Promise<MaybeAccount<Draw, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeDraw(maybeAccount);\n}\n\nexport async function fetchAllDraw(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig,\n): Promise<Account<Draw>[]> {\n const maybeAccounts = await fetchAllMaybeDraw(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeDraw(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig,\n): Promise<MaybeAccount<Draw>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) => decodeDraw(maybeAccount));\n}\n\nexport function getDrawSize(): number {\n return 210;\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array } from '@solana/kit';\nimport { getTierDecoder, getTierEncoder, type Tier, type TierArgs } from '../types';\n\nexport const POOL_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([140, 230, 142, 167, 14, 202, 43, 254]);\n\nexport function getPoolDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(POOL_DISCRIMINATOR); }\n\nexport type Pool = { discriminator: ReadonlyUint8Array;\n/**\n * The coin creator. LaunchLab pays its creator fee to this wallet, and\n * the CPMM pool created at graduation names the same wallet.\n */\ncreator: Address; mint: Address; vault: Address;\n/** The quote asset of both venues. Always WSOL today. */\nquoteMint: Address; bump: number;\n/**\n * Fixed token count of one pack, in base units. Always `PACK_TOKENS`.\n * The venue decides what that costs in WSOL.\n */\npackTokens: bigint;\n/** Raw quote token spent in the seed purchase. */\nseedQuoteAmount: bigint; tiers: Array<Tier>; nextSeq: bigint;\n/** Maximum awards reserved by pending draws. Never creator revenue. */\nreserved: bigint; };\n\nexport type PoolArgs = {\n/**\n * The coin creator. LaunchLab pays its creator fee to this wallet, and\n * the CPMM pool created at graduation names the same wallet.\n */\ncreator: Address; mint: Address; vault: Address;\n/** The quote asset of both venues. Always WSOL today. */\nquoteMint: Address; bump: number;\n/**\n * Fixed token count of one pack, in base units. Always `PACK_TOKENS`.\n * The venue decides what that costs in WSOL.\n */\npackTokens: number | bigint;\n/** Raw quote token spent in the seed purchase. */\nseedQuoteAmount: number | bigint; tiers: Array<TierArgs>; nextSeq: number | bigint;\n/** Maximum awards reserved by pending draws. Never creator revenue. */\nreserved: number | bigint; };\n\n/** Gets the encoder for {@link PoolArgs} account data. */\nexport function getPoolEncoder(): FixedSizeEncoder<PoolArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['creator', getAddressEncoder()], ['mint', getAddressEncoder()], ['vault', getAddressEncoder()], ['quoteMint', getAddressEncoder()], ['bump', getU8Encoder()], ['packTokens', getU64Encoder()], ['seedQuoteAmount', getU64Encoder()], ['tiers', getArrayEncoder(getTierEncoder(), { size: 8 })], ['nextSeq', getU64Encoder()], ['reserved', getU64Encoder()]]), (value) => ({ ...value, discriminator: POOL_DISCRIMINATOR }));\n}\n\n/** Gets the decoder for {@link Pool} account data. */\nexport function getPoolDecoder(): FixedSizeDecoder<Pool> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['creator', getAddressDecoder()], ['mint', getAddressDecoder()], ['vault', getAddressDecoder()], ['quoteMint', getAddressDecoder()], ['bump', getU8Decoder()], ['packTokens', getU64Decoder()], ['seedQuoteAmount', getU64Decoder()], ['tiers', getArrayDecoder(getTierDecoder(), { size: 8 })], ['nextSeq', getU64Decoder()], ['reserved', getU64Decoder()]]);\n}\n\n/** Gets the codec for {@link Pool} account data. */\nexport function getPoolCodec(): FixedSizeCodec<PoolArgs, Pool> {\n return combineCodec(getPoolEncoder(), getPoolDecoder());\n}\n\nexport function decodePool<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<Pool, TAddress>;\nexport function decodePool<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<Pool, TAddress>;\nexport function decodePool<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>): Account<Pool, TAddress> | MaybeAccount<Pool, TAddress> {\n return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getPoolDecoder());\n}\n\nexport async function fetchPool<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig,\n): Promise<Account<Pool, TAddress>> {\n const maybeAccount = await fetchMaybePool(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybePool<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig,\n): Promise<MaybeAccount<Pool, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodePool(maybeAccount);\n}\n\nexport async function fetchAllPool(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig,\n): Promise<Account<Pool>[]> {\n const maybeAccounts = await fetchAllMaybePool(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybePool(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig,\n): Promise<MaybeAccount<Pool>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) => decodePool(maybeAccount));\n}\n\nexport function getPoolSize(): number {\n return 233;\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const WALLET_ACTIVITY_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([212, 80, 180, 131, 173, 1, 252, 141]);\n\nexport function getWalletActivityDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(WALLET_ACTIVITY_DISCRIMINATOR); }\n\nexport type WalletActivity = { discriminator: ReadonlyUint8Array; wallet: Address; bump: number;\n/** Packs this wallet bought, across every pool. */\npacksBought: bigint;\n/**\n * Lamports this wallet paid for packs in SOL-quoted pools: what the\n * venue charged in WSOL, which is SOL. Gabox charges no fee. Gabox's own\n * rent (draw, activity, the token ATA), VRF fees, and buys in a non-SOL\n * quote asset add nothing here.\n */\nnativeSpent: bigint;\n/**\n * Reserved for future fields. A layout change that needs more than\n * this still needs a new seed prefix, since this account has no\n * close instruction and old accounts cannot be dropped.\n */\nreserved: ReadonlyUint8Array; };\n\nexport type WalletActivityArgs = { wallet: Address; bump: number;\n/** Packs this wallet bought, across every pool. */\npacksBought: number | bigint;\n/**\n * Lamports this wallet paid for packs in SOL-quoted pools: what the\n * venue charged in WSOL, which is SOL. Gabox charges no fee. Gabox's own\n * rent (draw, activity, the token ATA), VRF fees, and buys in a non-SOL\n * quote asset add nothing here.\n */\nnativeSpent: number | bigint;\n/**\n * Reserved for future fields. A layout change that needs more than\n * this still needs a new seed prefix, since this account has no\n * close instruction and old accounts cannot be dropped.\n */\nreserved: ReadonlyUint8Array; };\n\n/** Gets the encoder for {@link WalletActivityArgs} account data. */\nexport function getWalletActivityEncoder(): FixedSizeEncoder<WalletActivityArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['wallet', getAddressEncoder()], ['bump', getU8Encoder()], ['packsBought', getU64Encoder()], ['nativeSpent', getU64Encoder()], ['reserved', fixEncoderSize(getBytesEncoder(), 64)]]), (value) => ({ ...value, discriminator: WALLET_ACTIVITY_DISCRIMINATOR }));\n}\n\n/** Gets the decoder for {@link WalletActivity} account data. */\nexport function getWalletActivityDecoder(): FixedSizeDecoder<WalletActivity> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['wallet', getAddressDecoder()], ['bump', getU8Decoder()], ['packsBought', getU64Decoder()], ['nativeSpent', getU64Decoder()], ['reserved', fixDecoderSize(getBytesDecoder(), 64)]]);\n}\n\n/** Gets the codec for {@link WalletActivity} account data. */\nexport function getWalletActivityCodec(): FixedSizeCodec<WalletActivityArgs, WalletActivity> {\n return combineCodec(getWalletActivityEncoder(), getWalletActivityDecoder());\n}\n\nexport function decodeWalletActivity<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<WalletActivity, TAddress>;\nexport function decodeWalletActivity<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<WalletActivity, TAddress>;\nexport function decodeWalletActivity<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>): Account<WalletActivity, TAddress> | MaybeAccount<WalletActivity, TAddress> {\n return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getWalletActivityDecoder());\n}\n\nexport async function fetchWalletActivity<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig,\n): Promise<Account<WalletActivity, TAddress>> {\n const maybeAccount = await fetchMaybeWalletActivity(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeWalletActivity<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig,\n): Promise<MaybeAccount<WalletActivity, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeWalletActivity(maybeAccount);\n}\n\nexport async function fetchAllWalletActivity(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig,\n): Promise<Account<WalletActivity>[]> {\n const maybeAccounts = await fetchAllMaybeWalletActivity(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeWalletActivity(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig,\n): Promise<MaybeAccount<WalletActivity>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) => decodeWalletActivity(maybeAccount));\n}\n\nexport function getWalletActivitySize(): number {\n return 121;\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { getAddressEncoder, getBytesEncoder, getProgramDerivedAddress, type Address, type ProgramDerivedAddress } from '@solana/kit';\n\nexport type ActivitySeeds = {\npurchaser: Address;\n};\n\nexport async function findActivityPda(seeds: ActivitySeeds, config: { programAddress?: Address | undefined } = {}): Promise<ProgramDerivedAddress> {\n const { programAddress = 'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA' as Address<'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA'> } = config;\n return await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([97, 99, 116, 105, 118, 105, 116, 121])), getAddressEncoder().encode(seeds.purchaser)]});\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { getAddressEncoder, getBytesEncoder, getProgramDerivedAddress, getU64Encoder, type Address, type ProgramDerivedAddress } from '@solana/kit';\n\nexport type DrawSeeds = {\npool: Address;\nseq: number | bigint;\n};\n\nexport async function findDrawPda(seeds: DrawSeeds, config: { programAddress?: Address | undefined } = {}): Promise<ProgramDerivedAddress> {\n const { programAddress = 'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA' as Address<'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA'> } = config;\n return await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([100, 114, 97, 119])), getAddressEncoder().encode(seeds.pool), getU64Encoder().encode(seeds.seq)]});\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { getBytesEncoder, getProgramDerivedAddress, type Address, type ProgramDerivedAddress } from '@solana/kit';\n\nexport async function findIdentityPda(config: { programAddress?: Address | undefined } = {}): Promise<ProgramDerivedAddress> {\n const { programAddress = 'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA' as Address<'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA'> } = config;\n return await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([105, 100, 101, 110, 116, 105, 116, 121]))]});\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { getAddressEncoder, getBytesEncoder, getProgramDerivedAddress, type Address, type ProgramDerivedAddress } from '@solana/kit';\n\nexport type PoolSeeds = {\nmint: Address;\n};\n\nexport async function findPoolPda(seeds: PoolSeeds, config: { programAddress?: Address | undefined } = {}): Promise<ProgramDerivedAddress> {\n const { programAddress = 'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA' as Address<'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA'> } = config;\n return await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([112, 111, 111, 108])), getAddressEncoder().encode(seeds.mint)]});\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';\nimport { getAccountMetaFactory, getAddressFromResolvedInstructionAccount, type ResolvedInstructionAccount } from '@solana/program-client-core';\nimport { findActivityPda, findIdentityPda, findPoolPda } from '../pdas';\nimport { GABOX_PROGRAM_ADDRESS } from '../programs';\n\nexport const BUY_PACK_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([151, 46, 141, 93, 174, 5, 49, 173]);\n\nexport function getBuyPackDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(BUY_PACK_DISCRIMINATOR); }\n\nexport type BuyPackInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountPurchaser extends string | AccountMeta<string> = string, TAccountPool extends string | AccountMeta<string> = string, TAccountDraw extends string | AccountMeta<string> = string, TAccountActivity extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountQuoteMint extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountUserTokens extends string | AccountMeta<string> = string, TAccountVenue extends string | AccountMeta<string> = string, TAccountIdentity extends string | AccountMeta<string> = string, TAccountQueue extends string | AccountMeta<string> = \"Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh\", TAccountProgram extends string | AccountMeta<string> = \"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz\", TAccountSlotHashes extends string | AccountMeta<string> = \"SysvarS1otHashes111111111111111111111111111\", TAccountTokenProgram extends string | AccountMeta<string> = \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\", TAccountAssociatedTokenProgram extends string | AccountMeta<string> = \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\", TAccountSystemProgram extends string | AccountMeta<string> = \"11111111111111111111111111111111\", TRemainingAccounts extends readonly AccountMeta<string>[] = []> =\nInstruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountPurchaser extends string ? WritableSignerAccount<TAccountPurchaser> & AccountSignerMeta<TAccountPurchaser> : TAccountPurchaser, TAccountPool extends string ? WritableAccount<TAccountPool> : TAccountPool, TAccountDraw extends string ? WritableAccount<TAccountDraw> : TAccountDraw, TAccountActivity extends string ? WritableAccount<TAccountActivity> : TAccountActivity, TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint, TAccountQuoteMint extends string ? ReadonlyAccount<TAccountQuoteMint> : TAccountQuoteMint, TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault, TAccountUserTokens extends string ? WritableAccount<TAccountUserTokens> : TAccountUserTokens, TAccountVenue extends string ? ReadonlyAccount<TAccountVenue> : TAccountVenue, TAccountIdentity extends string ? ReadonlyAccount<TAccountIdentity> : TAccountIdentity, TAccountQueue extends string ? WritableAccount<TAccountQueue> : TAccountQueue, TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram, TAccountSlotHashes extends string ? ReadonlyAccount<TAccountSlotHashes> : TAccountSlotHashes, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, TAccountAssociatedTokenProgram extends string ? ReadonlyAccount<TAccountAssociatedTokenProgram> : TAccountAssociatedTokenProgram, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;\n\nexport type BuyPackInstructionData = { discriminator: ReadonlyUint8Array; maxQuoteIn: bigint; minMaximum: bigint; maxNativeDebit: bigint; };\n\nexport type BuyPackInstructionDataArgs = { maxQuoteIn: number | bigint; minMaximum: number | bigint; maxNativeDebit: number | bigint; };\n\nexport function getBuyPackInstructionDataEncoder(): FixedSizeEncoder<BuyPackInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['maxQuoteIn', getU64Encoder()], ['minMaximum', getU64Encoder()], ['maxNativeDebit', getU64Encoder()]]), (value) => ({ ...value, discriminator: BUY_PACK_DISCRIMINATOR }));\n}\n\nexport function getBuyPackInstructionDataDecoder(): FixedSizeDecoder<BuyPackInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['maxQuoteIn', getU64Decoder()], ['minMaximum', getU64Decoder()], ['maxNativeDebit', getU64Decoder()]]);\n}\n\nexport function getBuyPackInstructionDataCodec(): FixedSizeCodec<BuyPackInstructionDataArgs, BuyPackInstructionData> {\n return combineCodec(getBuyPackInstructionDataEncoder(), getBuyPackInstructionDataDecoder());\n}\n\nexport type BuyPackAsyncInput<TAccountPurchaser extends string = string, TAccountPool extends string = string, TAccountDraw extends string = string, TAccountActivity extends string = string, TAccountMint extends string = string, TAccountQuoteMint extends string = string, TAccountVault extends string = string, TAccountUserTokens extends string = string, TAccountVenue extends string = string, TAccountIdentity extends string = string, TAccountQueue extends string = string, TAccountProgram extends string = string, TAccountSlotHashes extends string = string, TAccountTokenProgram extends string = string, TAccountAssociatedTokenProgram extends string = string, TAccountSystemProgram extends string = string> = {\n purchaser: TransactionSigner<TAccountPurchaser>;\npool?: Address<TAccountPool>;\ndraw: Address<TAccountDraw>;\n/**\n * Rent for this account (when it is first created) is outside\n * `total_native_debit`, the same as `draw`'s rent: Anchor's `init_if_needed`\n * runs before the handler body executes, so `before_native` is already\n * sampled after this account exists.\n */\nactivity?: Address<TAccountActivity>;\nmint: Address<TAccountMint>;\nquoteMint: Address<TAccountQuoteMint>;\nvault: Address<TAccountVault>;\nuserTokens?: Address<TAccountUserTokens>;\n/** LaunchLab before graduation, CPMM after it. */\nvenue: Address<TAccountVenue>;\nidentity?: Address<TAccountIdentity>;\nqueue?: Address<TAccountQueue>;\nprogram?: Address<TAccountProgram>;\nslotHashes?: Address<TAccountSlotHashes>;\ntokenProgram?: Address<TAccountTokenProgram>;\nassociatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;\nsystemProgram?: Address<TAccountSystemProgram>;\nmaxQuoteIn: BuyPackInstructionDataArgs[\"maxQuoteIn\"];\nminMaximum: BuyPackInstructionDataArgs[\"minMaximum\"];\nmaxNativeDebit: BuyPackInstructionDataArgs[\"maxNativeDebit\"];\n}\n\nexport async function getBuyPackInstructionAsync<TAccountPurchaser extends string, TAccountPool extends string, TAccountDraw extends string, TAccountActivity extends string, TAccountMint extends string, TAccountQuoteMint extends string, TAccountVault extends string, TAccountUserTokens extends string, TAccountVenue extends string, TAccountIdentity extends string, TAccountQueue extends string, TAccountProgram extends string, TAccountSlotHashes extends string, TAccountTokenProgram extends string, TAccountAssociatedTokenProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: BuyPackAsyncInput<TAccountPurchaser, TAccountPool, TAccountDraw, TAccountActivity, TAccountMint, TAccountQuoteMint, TAccountVault, TAccountUserTokens, TAccountVenue, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>, config?: { programAddress?: TProgramAddress } ): Promise<BuyPackInstruction<TProgramAddress, TAccountPurchaser, TAccountPool, TAccountDraw, TAccountActivity, TAccountMint, TAccountQuoteMint, TAccountVault, TAccountUserTokens, TAccountVenue, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { purchaser: { value: input.purchaser ?? null, isWritable: true }, pool: { value: input.pool ?? null, isWritable: true }, draw: { value: input.draw ?? null, isWritable: true }, activity: { value: input.activity ?? null, isWritable: true }, mint: { value: input.mint ?? null, isWritable: false }, quoteMint: { value: input.quoteMint ?? null, isWritable: false }, vault: { value: input.vault ?? null, isWritable: true }, userTokens: { value: input.userTokens ?? null, isWritable: true }, venue: { value: input.venue ?? null, isWritable: false }, identity: { value: input.identity ?? null, isWritable: false }, queue: { value: input.queue ?? null, isWritable: true }, program: { value: input.program ?? null, isWritable: false }, slotHashes: { value: input.slotHashes ?? null, isWritable: false }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false }, associatedTokenProgram: { value: input.associatedTokenProgram ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.pool.value) {\naccounts.pool.value = await findPoolPda({ mint: getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value) }, { programAddress });\n}\nif (!accounts.activity.value) {\naccounts.activity.value = await findActivityPda({ purchaser: getAddressFromResolvedInstructionAccount(\"purchaser\", accounts.purchaser.value) }, { programAddress });\n}\nif (!accounts.userTokens.value) {\naccounts.userTokens.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>, seeds: [getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"purchaser\", accounts.purchaser.value)), getBytesEncoder().encode(new Uint8Array([6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value))] });\n}\nif (!accounts.identity.value) {\naccounts.identity.value = await findIdentityPda({ programAddress });\n}\nif (!accounts.queue.value) {\naccounts.queue.value = 'Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh' as Address<'Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh'>;\n}\nif (!accounts.program.value) {\naccounts.program.value = 'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz' as Address<'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz'>;\n}\nif (!accounts.slotHashes.value) {\naccounts.slotHashes.value = 'SysvarS1otHashes111111111111111111111111111' as Address<'SysvarS1otHashes111111111111111111111111111'>;\n}\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\nif (!accounts.associatedTokenProgram.value) {\naccounts.associatedTokenProgram.value = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;\n}\nif (!accounts.systemProgram.value) {\naccounts.systemProgram.value = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"purchaser\", accounts.purchaser), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"draw\", accounts.draw), getAccountMeta(\"activity\", accounts.activity), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"quoteMint\", accounts.quoteMint), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"userTokens\", accounts.userTokens), getAccountMeta(\"venue\", accounts.venue), getAccountMeta(\"identity\", accounts.identity), getAccountMeta(\"queue\", accounts.queue), getAccountMeta(\"program\", accounts.program), getAccountMeta(\"slotHashes\", accounts.slotHashes), getAccountMeta(\"tokenProgram\", accounts.tokenProgram), getAccountMeta(\"associatedTokenProgram\", accounts.associatedTokenProgram), getAccountMeta(\"systemProgram\", accounts.systemProgram)], data: getBuyPackInstructionDataEncoder().encode(args as BuyPackInstructionDataArgs), programAddress } as BuyPackInstruction<TProgramAddress, TAccountPurchaser, TAccountPool, TAccountDraw, TAccountActivity, TAccountMint, TAccountQuoteMint, TAccountVault, TAccountUserTokens, TAccountVenue, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>);\n}\n\nexport type BuyPackInput<TAccountPurchaser extends string = string, TAccountPool extends string = string, TAccountDraw extends string = string, TAccountActivity extends string = string, TAccountMint extends string = string, TAccountQuoteMint extends string = string, TAccountVault extends string = string, TAccountUserTokens extends string = string, TAccountVenue extends string = string, TAccountIdentity extends string = string, TAccountQueue extends string = string, TAccountProgram extends string = string, TAccountSlotHashes extends string = string, TAccountTokenProgram extends string = string, TAccountAssociatedTokenProgram extends string = string, TAccountSystemProgram extends string = string> = {\n purchaser: TransactionSigner<TAccountPurchaser>;\npool: Address<TAccountPool>;\ndraw: Address<TAccountDraw>;\n/**\n * Rent for this account (when it is first created) is outside\n * `total_native_debit`, the same as `draw`'s rent: Anchor's `init_if_needed`\n * runs before the handler body executes, so `before_native` is already\n * sampled after this account exists.\n */\nactivity: Address<TAccountActivity>;\nmint: Address<TAccountMint>;\nquoteMint: Address<TAccountQuoteMint>;\nvault: Address<TAccountVault>;\nuserTokens: Address<TAccountUserTokens>;\n/** LaunchLab before graduation, CPMM after it. */\nvenue: Address<TAccountVenue>;\nidentity: Address<TAccountIdentity>;\nqueue?: Address<TAccountQueue>;\nprogram?: Address<TAccountProgram>;\nslotHashes?: Address<TAccountSlotHashes>;\ntokenProgram?: Address<TAccountTokenProgram>;\nassociatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;\nsystemProgram?: Address<TAccountSystemProgram>;\nmaxQuoteIn: BuyPackInstructionDataArgs[\"maxQuoteIn\"];\nminMaximum: BuyPackInstructionDataArgs[\"minMaximum\"];\nmaxNativeDebit: BuyPackInstructionDataArgs[\"maxNativeDebit\"];\n}\n\nexport function getBuyPackInstruction<TAccountPurchaser extends string, TAccountPool extends string, TAccountDraw extends string, TAccountActivity extends string, TAccountMint extends string, TAccountQuoteMint extends string, TAccountVault extends string, TAccountUserTokens extends string, TAccountVenue extends string, TAccountIdentity extends string, TAccountQueue extends string, TAccountProgram extends string, TAccountSlotHashes extends string, TAccountTokenProgram extends string, TAccountAssociatedTokenProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: BuyPackInput<TAccountPurchaser, TAccountPool, TAccountDraw, TAccountActivity, TAccountMint, TAccountQuoteMint, TAccountVault, TAccountUserTokens, TAccountVenue, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>, config?: { programAddress?: TProgramAddress } ): BuyPackInstruction<TProgramAddress, TAccountPurchaser, TAccountPool, TAccountDraw, TAccountActivity, TAccountMint, TAccountQuoteMint, TAccountVault, TAccountUserTokens, TAccountVenue, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { purchaser: { value: input.purchaser ?? null, isWritable: true }, pool: { value: input.pool ?? null, isWritable: true }, draw: { value: input.draw ?? null, isWritable: true }, activity: { value: input.activity ?? null, isWritable: true }, mint: { value: input.mint ?? null, isWritable: false }, quoteMint: { value: input.quoteMint ?? null, isWritable: false }, vault: { value: input.vault ?? null, isWritable: true }, userTokens: { value: input.userTokens ?? null, isWritable: true }, venue: { value: input.venue ?? null, isWritable: false }, identity: { value: input.identity ?? null, isWritable: false }, queue: { value: input.queue ?? null, isWritable: true }, program: { value: input.program ?? null, isWritable: false }, slotHashes: { value: input.slotHashes ?? null, isWritable: false }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false }, associatedTokenProgram: { value: input.associatedTokenProgram ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.queue.value) {\naccounts.queue.value = 'Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh' as Address<'Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh'>;\n}\nif (!accounts.program.value) {\naccounts.program.value = 'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz' as Address<'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz'>;\n}\nif (!accounts.slotHashes.value) {\naccounts.slotHashes.value = 'SysvarS1otHashes111111111111111111111111111' as Address<'SysvarS1otHashes111111111111111111111111111'>;\n}\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\nif (!accounts.associatedTokenProgram.value) {\naccounts.associatedTokenProgram.value = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;\n}\nif (!accounts.systemProgram.value) {\naccounts.systemProgram.value = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"purchaser\", accounts.purchaser), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"draw\", accounts.draw), getAccountMeta(\"activity\", accounts.activity), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"quoteMint\", accounts.quoteMint), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"userTokens\", accounts.userTokens), getAccountMeta(\"venue\", accounts.venue), getAccountMeta(\"identity\", accounts.identity), getAccountMeta(\"queue\", accounts.queue), getAccountMeta(\"program\", accounts.program), getAccountMeta(\"slotHashes\", accounts.slotHashes), getAccountMeta(\"tokenProgram\", accounts.tokenProgram), getAccountMeta(\"associatedTokenProgram\", accounts.associatedTokenProgram), getAccountMeta(\"systemProgram\", accounts.systemProgram)], data: getBuyPackInstructionDataEncoder().encode(args as BuyPackInstructionDataArgs), programAddress } as BuyPackInstruction<TProgramAddress, TAccountPurchaser, TAccountPool, TAccountDraw, TAccountActivity, TAccountMint, TAccountQuoteMint, TAccountVault, TAccountUserTokens, TAccountVenue, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>);\n}\n\nexport type ParsedBuyPackInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = { programAddress: Address<TProgram>;\naccounts: {\npurchaser: TAccountMetas[0];\npool: TAccountMetas[1];\ndraw: TAccountMetas[2];\n/**\n * Rent for this account (when it is first created) is outside\n * `total_native_debit`, the same as `draw`'s rent: Anchor's `init_if_needed`\n * runs before the handler body executes, so `before_native` is already\n * sampled after this account exists.\n */\nactivity: TAccountMetas[3];\nmint: TAccountMetas[4];\nquoteMint: TAccountMetas[5];\nvault: TAccountMetas[6];\nuserTokens: TAccountMetas[7];\n/** LaunchLab before graduation, CPMM after it. */\nvenue: TAccountMetas[8];\nidentity: TAccountMetas[9];\nqueue: TAccountMetas[10];\nprogram: TAccountMetas[11];\nslotHashes: TAccountMetas[12];\ntokenProgram: TAccountMetas[13];\nassociatedTokenProgram: TAccountMetas[14];\nsystemProgram: TAccountMetas[15];\n};\ndata: BuyPackInstructionData; };\n\nexport function parseBuyPackInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedBuyPackInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 16) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 16 });\n}\nlet accountIndex = 0;\nconst getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n}\n return { programAddress: instruction.programAddress, accounts: { purchaser: getNextAccount(), pool: getNextAccount(), draw: getNextAccount(), activity: getNextAccount(), mint: getNextAccount(), quoteMint: getNextAccount(), vault: getNextAccount(), userTokens: getNextAccount(), venue: getNextAccount(), identity: getNextAccount(), queue: getNextAccount(), program: getNextAccount(), slotHashes: getNextAccount(), tokenProgram: getNextAccount(), associatedTokenProgram: getNextAccount(), systemProgram: getNextAccount() }, data: getBuyPackInstructionDataDecoder().decode(instruction.data) };\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from '@solana/kit';\nimport { getAccountMetaFactory, getAddressFromResolvedInstructionAccount, getNonNullResolvedInstructionInput, type ResolvedInstructionAccount } from '@solana/program-client-core';\nimport { findDrawPda, findPoolPda } from '../pdas';\nimport { GABOX_PROGRAM_ADDRESS } from '../programs';\n\nexport const DELIVER_DRAW_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([113, 181, 226, 173, 237, 138, 199, 51]);\n\nexport function getDeliverDrawDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(DELIVER_DRAW_DISCRIMINATOR); }\n\nexport type DeliverDrawInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountOracleIdentity extends string | AccountMeta<string> = string, TAccountPool extends string | AccountMeta<string> = string, TAccountDraw extends string | AccountMeta<string> = string, TAccountPurchaser extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountUserTokens extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\", TRemainingAccounts extends readonly AccountMeta<string>[] = []> =\nInstruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountOracleIdentity extends string ? ReadonlySignerAccount<TAccountOracleIdentity> & AccountSignerMeta<TAccountOracleIdentity> : TAccountOracleIdentity, TAccountPool extends string ? WritableAccount<TAccountPool> : TAccountPool, TAccountDraw extends string ? WritableAccount<TAccountDraw> : TAccountDraw, TAccountPurchaser extends string ? WritableAccount<TAccountPurchaser> : TAccountPurchaser, TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint, TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault, TAccountUserTokens extends string ? WritableAccount<TAccountUserTokens> : TAccountUserTokens, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, ...TRemainingAccounts]>;\n\nexport type DeliverDrawInstructionData = { discriminator: ReadonlyUint8Array; randomness: ReadonlyUint8Array; seq: bigint; };\n\nexport type DeliverDrawInstructionDataArgs = { randomness: ReadonlyUint8Array; seq: number | bigint; };\n\nexport function getDeliverDrawInstructionDataEncoder(): FixedSizeEncoder<DeliverDrawInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['randomness', fixEncoderSize(getBytesEncoder(), 32)], ['seq', getU64Encoder()]]), (value) => ({ ...value, discriminator: DELIVER_DRAW_DISCRIMINATOR }));\n}\n\nexport function getDeliverDrawInstructionDataDecoder(): FixedSizeDecoder<DeliverDrawInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['randomness', fixDecoderSize(getBytesDecoder(), 32)], ['seq', getU64Decoder()]]);\n}\n\nexport function getDeliverDrawInstructionDataCodec(): FixedSizeCodec<DeliverDrawInstructionDataArgs, DeliverDrawInstructionData> {\n return combineCodec(getDeliverDrawInstructionDataEncoder(), getDeliverDrawInstructionDataDecoder());\n}\n\nexport type DeliverDrawAsyncInput<TAccountOracleIdentity extends string = string, TAccountPool extends string = string, TAccountDraw extends string = string, TAccountPurchaser extends string = string, TAccountMint extends string = string, TAccountVault extends string = string, TAccountUserTokens extends string = string, TAccountTokenProgram extends string = string> = {\n oracleIdentity?: TransactionSigner<TAccountOracleIdentity>;\npool?: Address<TAccountPool>;\ndraw?: Address<TAccountDraw>;\npurchaser: Address<TAccountPurchaser>;\nmint: Address<TAccountMint>;\nvault: Address<TAccountVault>;\nuserTokens?: Address<TAccountUserTokens>;\ntokenProgram?: Address<TAccountTokenProgram>;\nrandomness: DeliverDrawInstructionDataArgs[\"randomness\"];\nseq: DeliverDrawInstructionDataArgs[\"seq\"];\n}\n\nexport async function getDeliverDrawInstructionAsync<TAccountOracleIdentity extends string, TAccountPool extends string, TAccountDraw extends string, TAccountPurchaser extends string, TAccountMint extends string, TAccountVault extends string, TAccountUserTokens extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: DeliverDrawAsyncInput<TAccountOracleIdentity, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>, config?: { programAddress?: TProgramAddress } ): Promise<DeliverDrawInstruction<TProgramAddress, TAccountOracleIdentity, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { oracleIdentity: { value: input.oracleIdentity ?? null, isWritable: false }, pool: { value: input.pool ?? null, isWritable: true }, draw: { value: input.draw ?? null, isWritable: true }, purchaser: { value: input.purchaser ?? null, isWritable: true }, mint: { value: input.mint ?? null, isWritable: false }, vault: { value: input.vault ?? null, isWritable: true }, userTokens: { value: input.userTokens ?? null, isWritable: true }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.oracleIdentity.value) {\naccounts.oracleIdentity.value = await getProgramDerivedAddress({ programAddress: 'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz' as Address<'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz'>, seeds: [getBytesEncoder().encode(new Uint8Array([105, 100, 101, 110, 116, 105, 116, 121])), getBytesEncoder().encode(new Uint8Array([231, 95, 177, 105, 231, 174, 80, 36, 228, 6, 241, 195, 89, 243, 52, 57, 128, 219, 206, 84, 115, 45, 3, 217, 77, 35, 38, 40, 214, 248, 69, 83]))] });\n}\nif (!accounts.pool.value) {\naccounts.pool.value = await findPoolPda({ mint: getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value) }, { programAddress });\n}\nif (!accounts.draw.value) {\naccounts.draw.value = await findDrawPda({ pool: getAddressFromResolvedInstructionAccount(\"pool\", accounts.pool.value), seq: getNonNullResolvedInstructionInput(\"seq\", args.seq) }, { programAddress });\n}\nif (!accounts.userTokens.value) {\naccounts.userTokens.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>, seeds: [getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"purchaser\", accounts.purchaser.value)), getBytesEncoder().encode(new Uint8Array([6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value))] });\n}\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"oracleIdentity\", accounts.oracleIdentity), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"draw\", accounts.draw), getAccountMeta(\"purchaser\", accounts.purchaser), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"userTokens\", accounts.userTokens), getAccountMeta(\"tokenProgram\", accounts.tokenProgram)], data: getDeliverDrawInstructionDataEncoder().encode(args as DeliverDrawInstructionDataArgs), programAddress } as DeliverDrawInstruction<TProgramAddress, TAccountOracleIdentity, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>);\n}\n\nexport type DeliverDrawInput<TAccountOracleIdentity extends string = string, TAccountPool extends string = string, TAccountDraw extends string = string, TAccountPurchaser extends string = string, TAccountMint extends string = string, TAccountVault extends string = string, TAccountUserTokens extends string = string, TAccountTokenProgram extends string = string> = {\n oracleIdentity: TransactionSigner<TAccountOracleIdentity>;\npool: Address<TAccountPool>;\ndraw: Address<TAccountDraw>;\npurchaser: Address<TAccountPurchaser>;\nmint: Address<TAccountMint>;\nvault: Address<TAccountVault>;\nuserTokens: Address<TAccountUserTokens>;\ntokenProgram?: Address<TAccountTokenProgram>;\nrandomness: DeliverDrawInstructionDataArgs[\"randomness\"];\nseq: DeliverDrawInstructionDataArgs[\"seq\"];\n}\n\nexport function getDeliverDrawInstruction<TAccountOracleIdentity extends string, TAccountPool extends string, TAccountDraw extends string, TAccountPurchaser extends string, TAccountMint extends string, TAccountVault extends string, TAccountUserTokens extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: DeliverDrawInput<TAccountOracleIdentity, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>, config?: { programAddress?: TProgramAddress } ): DeliverDrawInstruction<TProgramAddress, TAccountOracleIdentity, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { oracleIdentity: { value: input.oracleIdentity ?? null, isWritable: false }, pool: { value: input.pool ?? null, isWritable: true }, draw: { value: input.draw ?? null, isWritable: true }, purchaser: { value: input.purchaser ?? null, isWritable: true }, mint: { value: input.mint ?? null, isWritable: false }, vault: { value: input.vault ?? null, isWritable: true }, userTokens: { value: input.userTokens ?? null, isWritable: true }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"oracleIdentity\", accounts.oracleIdentity), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"draw\", accounts.draw), getAccountMeta(\"purchaser\", accounts.purchaser), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"userTokens\", accounts.userTokens), getAccountMeta(\"tokenProgram\", accounts.tokenProgram)], data: getDeliverDrawInstructionDataEncoder().encode(args as DeliverDrawInstructionDataArgs), programAddress } as DeliverDrawInstruction<TProgramAddress, TAccountOracleIdentity, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>);\n}\n\nexport type ParsedDeliverDrawInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = { programAddress: Address<TProgram>;\naccounts: {\noracleIdentity: TAccountMetas[0];\npool: TAccountMetas[1];\ndraw: TAccountMetas[2];\npurchaser: TAccountMetas[3];\nmint: TAccountMetas[4];\nvault: TAccountMetas[5];\nuserTokens: TAccountMetas[6];\ntokenProgram: TAccountMetas[7];\n};\ndata: DeliverDrawInstructionData; };\n\nexport function parseDeliverDrawInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedDeliverDrawInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 8) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 8 });\n}\nlet accountIndex = 0;\nconst getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n}\n return { programAddress: instruction.programAddress, accounts: { oracleIdentity: getNextAccount(), pool: getNextAccount(), draw: getNextAccount(), purchaser: getNextAccount(), mint: getNextAccount(), vault: getNextAccount(), userTokens: getNextAccount(), tokenProgram: getNextAccount() }, data: getDeliverDrawInstructionDataDecoder().decode(instruction.data) };\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, type AccountMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type WritableAccount } from '@solana/kit';\nimport { getAccountMetaFactory, getAddressFromResolvedInstructionAccount, type ResolvedInstructionAccount } from '@solana/program-client-core';\nimport { findPoolPda } from '../pdas';\nimport { GABOX_PROGRAM_ADDRESS } from '../programs';\n\nexport const EXPIRE_DRAW_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([100, 119, 235, 75, 8, 25, 252, 255]);\n\nexport function getExpireDrawDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(EXPIRE_DRAW_DISCRIMINATOR); }\n\nexport type ExpireDrawInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountPool extends string | AccountMeta<string> = string, TAccountDraw extends string | AccountMeta<string> = string, TAccountPurchaser extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountUserTokens extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\", TRemainingAccounts extends readonly AccountMeta<string>[] = []> =\nInstruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountPool extends string ? WritableAccount<TAccountPool> : TAccountPool, TAccountDraw extends string ? WritableAccount<TAccountDraw> : TAccountDraw, TAccountPurchaser extends string ? WritableAccount<TAccountPurchaser> : TAccountPurchaser, TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint, TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault, TAccountUserTokens extends string ? WritableAccount<TAccountUserTokens> : TAccountUserTokens, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, ...TRemainingAccounts]>;\n\nexport type ExpireDrawInstructionData = { discriminator: ReadonlyUint8Array; };\n\nexport type ExpireDrawInstructionDataArgs = { };\n\nexport function getExpireDrawInstructionDataEncoder(): FixedSizeEncoder<ExpireDrawInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), (value) => ({ ...value, discriminator: EXPIRE_DRAW_DISCRIMINATOR }));\n}\n\nexport function getExpireDrawInstructionDataDecoder(): FixedSizeDecoder<ExpireDrawInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);\n}\n\nexport function getExpireDrawInstructionDataCodec(): FixedSizeCodec<ExpireDrawInstructionDataArgs, ExpireDrawInstructionData> {\n return combineCodec(getExpireDrawInstructionDataEncoder(), getExpireDrawInstructionDataDecoder());\n}\n\nexport type ExpireDrawAsyncInput<TAccountPool extends string = string, TAccountDraw extends string = string, TAccountPurchaser extends string = string, TAccountMint extends string = string, TAccountVault extends string = string, TAccountUserTokens extends string = string, TAccountTokenProgram extends string = string> = {\n pool?: Address<TAccountPool>;\ndraw: Address<TAccountDraw>;\npurchaser: Address<TAccountPurchaser>;\nmint: Address<TAccountMint>;\nvault: Address<TAccountVault>;\nuserTokens?: Address<TAccountUserTokens>;\ntokenProgram?: Address<TAccountTokenProgram>;\n}\n\nexport async function getExpireDrawInstructionAsync<TAccountPool extends string, TAccountDraw extends string, TAccountPurchaser extends string, TAccountMint extends string, TAccountVault extends string, TAccountUserTokens extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: ExpireDrawAsyncInput<TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>, config?: { programAddress?: TProgramAddress } ): Promise<ExpireDrawInstruction<TProgramAddress, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { pool: { value: input.pool ?? null, isWritable: true }, draw: { value: input.draw ?? null, isWritable: true }, purchaser: { value: input.purchaser ?? null, isWritable: true }, mint: { value: input.mint ?? null, isWritable: false }, vault: { value: input.vault ?? null, isWritable: true }, userTokens: { value: input.userTokens ?? null, isWritable: true }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Resolve default values.\nif (!accounts.pool.value) {\naccounts.pool.value = await findPoolPda({ mint: getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value) }, { programAddress });\n}\nif (!accounts.userTokens.value) {\naccounts.userTokens.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>, seeds: [getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"purchaser\", accounts.purchaser.value)), getBytesEncoder().encode(new Uint8Array([6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value))] });\n}\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"draw\", accounts.draw), getAccountMeta(\"purchaser\", accounts.purchaser), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"userTokens\", accounts.userTokens), getAccountMeta(\"tokenProgram\", accounts.tokenProgram)], data: getExpireDrawInstructionDataEncoder().encode({}), programAddress } as ExpireDrawInstruction<TProgramAddress, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>);\n}\n\nexport type ExpireDrawInput<TAccountPool extends string = string, TAccountDraw extends string = string, TAccountPurchaser extends string = string, TAccountMint extends string = string, TAccountVault extends string = string, TAccountUserTokens extends string = string, TAccountTokenProgram extends string = string> = {\n pool: Address<TAccountPool>;\ndraw: Address<TAccountDraw>;\npurchaser: Address<TAccountPurchaser>;\nmint: Address<TAccountMint>;\nvault: Address<TAccountVault>;\nuserTokens: Address<TAccountUserTokens>;\ntokenProgram?: Address<TAccountTokenProgram>;\n}\n\nexport function getExpireDrawInstruction<TAccountPool extends string, TAccountDraw extends string, TAccountPurchaser extends string, TAccountMint extends string, TAccountVault extends string, TAccountUserTokens extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: ExpireDrawInput<TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>, config?: { programAddress?: TProgramAddress } ): ExpireDrawInstruction<TProgramAddress, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { pool: { value: input.pool ?? null, isWritable: true }, draw: { value: input.draw ?? null, isWritable: true }, purchaser: { value: input.purchaser ?? null, isWritable: true }, mint: { value: input.mint ?? null, isWritable: false }, vault: { value: input.vault ?? null, isWritable: true }, userTokens: { value: input.userTokens ?? null, isWritable: true }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Resolve default values.\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"draw\", accounts.draw), getAccountMeta(\"purchaser\", accounts.purchaser), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"userTokens\", accounts.userTokens), getAccountMeta(\"tokenProgram\", accounts.tokenProgram)], data: getExpireDrawInstructionDataEncoder().encode({}), programAddress } as ExpireDrawInstruction<TProgramAddress, TAccountPool, TAccountDraw, TAccountPurchaser, TAccountMint, TAccountVault, TAccountUserTokens, TAccountTokenProgram>);\n}\n\nexport type ParsedExpireDrawInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = { programAddress: Address<TProgram>;\naccounts: {\npool: TAccountMetas[0];\ndraw: TAccountMetas[1];\npurchaser: TAccountMetas[2];\nmint: TAccountMetas[3];\nvault: TAccountMetas[4];\nuserTokens: TAccountMetas[5];\ntokenProgram: TAccountMetas[6];\n};\ndata: ExpireDrawInstructionData; };\n\nexport function parseExpireDrawInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedExpireDrawInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 7) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 7 });\n}\nlet accountIndex = 0;\nconst getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n}\n return { programAddress: instruction.programAddress, accounts: { pool: getNextAccount(), draw: getNextAccount(), purchaser: getNextAccount(), mint: getNextAccount(), vault: getNextAccount(), userTokens: getNextAccount(), tokenProgram: getNextAccount() }, data: getExpireDrawInstructionDataDecoder().decode(instruction.data) };\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from '@solana/kit';\nimport { getAccountMetaFactory, getAddressFromResolvedInstructionAccount, type ResolvedInstructionAccount } from '@solana/program-client-core';\nimport { findPoolPda } from '../pdas';\nimport { GABOX_PROGRAM_ADDRESS } from '../programs';\n\nexport const FUND_PRIZES_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([163, 225, 193, 125, 144, 171, 29, 241]);\n\nexport function getFundPrizesDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(FUND_PRIZES_DISCRIMINATOR); }\n\nexport type FundPrizesInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountFunder extends string | AccountMeta<string> = string, TAccountPool extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountSource extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\", TRemainingAccounts extends readonly AccountMeta<string>[] = []> =\nInstruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountFunder extends string ? ReadonlySignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder> : TAccountFunder, TAccountPool extends string ? ReadonlyAccount<TAccountPool> : TAccountPool, TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint, TAccountSource extends string ? WritableAccount<TAccountSource> : TAccountSource, TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, ...TRemainingAccounts]>;\n\nexport type FundPrizesInstructionData = { discriminator: ReadonlyUint8Array; amount: bigint; };\n\nexport type FundPrizesInstructionDataArgs = { amount: number | bigint; };\n\nexport function getFundPrizesInstructionDataEncoder(): FixedSizeEncoder<FundPrizesInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['amount', getU64Encoder()]]), (value) => ({ ...value, discriminator: FUND_PRIZES_DISCRIMINATOR }));\n}\n\nexport function getFundPrizesInstructionDataDecoder(): FixedSizeDecoder<FundPrizesInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['amount', getU64Decoder()]]);\n}\n\nexport function getFundPrizesInstructionDataCodec(): FixedSizeCodec<FundPrizesInstructionDataArgs, FundPrizesInstructionData> {\n return combineCodec(getFundPrizesInstructionDataEncoder(), getFundPrizesInstructionDataDecoder());\n}\n\nexport type FundPrizesAsyncInput<TAccountFunder extends string = string, TAccountPool extends string = string, TAccountMint extends string = string, TAccountSource extends string = string, TAccountVault extends string = string, TAccountTokenProgram extends string = string> = {\n funder: TransactionSigner<TAccountFunder>;\npool?: Address<TAccountPool>;\nmint: Address<TAccountMint>;\nsource: Address<TAccountSource>;\nvault: Address<TAccountVault>;\ntokenProgram?: Address<TAccountTokenProgram>;\namount: FundPrizesInstructionDataArgs[\"amount\"];\n}\n\nexport async function getFundPrizesInstructionAsync<TAccountFunder extends string, TAccountPool extends string, TAccountMint extends string, TAccountSource extends string, TAccountVault extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: FundPrizesAsyncInput<TAccountFunder, TAccountPool, TAccountMint, TAccountSource, TAccountVault, TAccountTokenProgram>, config?: { programAddress?: TProgramAddress } ): Promise<FundPrizesInstruction<TProgramAddress, TAccountFunder, TAccountPool, TAccountMint, TAccountSource, TAccountVault, TAccountTokenProgram>> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { funder: { value: input.funder ?? null, isWritable: false }, pool: { value: input.pool ?? null, isWritable: false }, mint: { value: input.mint ?? null, isWritable: false }, source: { value: input.source ?? null, isWritable: true }, vault: { value: input.vault ?? null, isWritable: true }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.pool.value) {\naccounts.pool.value = await findPoolPda({ mint: getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value) }, { programAddress });\n}\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"funder\", accounts.funder), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"source\", accounts.source), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"tokenProgram\", accounts.tokenProgram)], data: getFundPrizesInstructionDataEncoder().encode(args as FundPrizesInstructionDataArgs), programAddress } as FundPrizesInstruction<TProgramAddress, TAccountFunder, TAccountPool, TAccountMint, TAccountSource, TAccountVault, TAccountTokenProgram>);\n}\n\nexport type FundPrizesInput<TAccountFunder extends string = string, TAccountPool extends string = string, TAccountMint extends string = string, TAccountSource extends string = string, TAccountVault extends string = string, TAccountTokenProgram extends string = string> = {\n funder: TransactionSigner<TAccountFunder>;\npool: Address<TAccountPool>;\nmint: Address<TAccountMint>;\nsource: Address<TAccountSource>;\nvault: Address<TAccountVault>;\ntokenProgram?: Address<TAccountTokenProgram>;\namount: FundPrizesInstructionDataArgs[\"amount\"];\n}\n\nexport function getFundPrizesInstruction<TAccountFunder extends string, TAccountPool extends string, TAccountMint extends string, TAccountSource extends string, TAccountVault extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: FundPrizesInput<TAccountFunder, TAccountPool, TAccountMint, TAccountSource, TAccountVault, TAccountTokenProgram>, config?: { programAddress?: TProgramAddress } ): FundPrizesInstruction<TProgramAddress, TAccountFunder, TAccountPool, TAccountMint, TAccountSource, TAccountVault, TAccountTokenProgram> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { funder: { value: input.funder ?? null, isWritable: false }, pool: { value: input.pool ?? null, isWritable: false }, mint: { value: input.mint ?? null, isWritable: false }, source: { value: input.source ?? null, isWritable: true }, vault: { value: input.vault ?? null, isWritable: true }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"funder\", accounts.funder), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"source\", accounts.source), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"tokenProgram\", accounts.tokenProgram)], data: getFundPrizesInstructionDataEncoder().encode(args as FundPrizesInstructionDataArgs), programAddress } as FundPrizesInstruction<TProgramAddress, TAccountFunder, TAccountPool, TAccountMint, TAccountSource, TAccountVault, TAccountTokenProgram>);\n}\n\nexport type ParsedFundPrizesInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = { programAddress: Address<TProgram>;\naccounts: {\nfunder: TAccountMetas[0];\npool: TAccountMetas[1];\nmint: TAccountMetas[2];\nsource: TAccountMetas[3];\nvault: TAccountMetas[4];\ntokenProgram: TAccountMetas[5];\n};\ndata: FundPrizesInstructionData; };\n\nexport function parseFundPrizesInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedFundPrizesInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 6) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 6 });\n}\nlet accountIndex = 0;\nconst getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n}\n return { programAddress: instruction.programAddress, accounts: { funder: getNextAccount(), pool: getNextAccount(), mint: getNextAccount(), source: getNextAccount(), vault: getNextAccount(), tokenProgram: getNextAccount() }, data: getFundPrizesInstructionDataDecoder().decode(instruction.data) };\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';\nimport { getAccountMetaFactory, getAddressFromResolvedInstructionAccount, type ResolvedInstructionAccount } from '@solana/program-client-core';\nimport { findPoolPda } from '../pdas';\nimport { GABOX_PROGRAM_ADDRESS } from '../programs';\nimport { getTierDecoder, getTierEncoder, type Tier, type TierArgs } from '../types';\n\nexport const INITIALIZE_POOL_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([95, 180, 10, 172, 84, 174, 232, 40]);\n\nexport function getInitializePoolDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(INITIALIZE_POOL_DISCRIMINATOR); }\n\nexport type InitializePoolInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountCreator extends string | AccountMeta<string> = string, TAccountPool extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountQuoteMint extends string | AccountMeta<string> = string, TAccountCreatorTokens extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountVenue extends string | AccountMeta<string> = \"DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6\", TAccountInstructions extends string | AccountMeta<string> = \"Sysvar1nstructions1111111111111111111111111\", TAccountTokenProgram extends string | AccountMeta<string> = \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\", TAccountAssociatedTokenProgram extends string | AccountMeta<string> = \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\", TAccountSystemProgram extends string | AccountMeta<string> = \"11111111111111111111111111111111\", TRemainingAccounts extends readonly AccountMeta<string>[] = []> =\nInstruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountCreator extends string ? WritableSignerAccount<TAccountCreator> & AccountSignerMeta<TAccountCreator> : TAccountCreator, TAccountPool extends string ? WritableAccount<TAccountPool> : TAccountPool, TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint, TAccountQuoteMint extends string ? ReadonlyAccount<TAccountQuoteMint> : TAccountQuoteMint, TAccountCreatorTokens extends string ? WritableAccount<TAccountCreatorTokens> : TAccountCreatorTokens, TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault, TAccountVenue extends string ? ReadonlyAccount<TAccountVenue> : TAccountVenue, TAccountInstructions extends string ? ReadonlyAccount<TAccountInstructions> : TAccountInstructions, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, TAccountAssociatedTokenProgram extends string ? ReadonlyAccount<TAccountAssociatedTokenProgram> : TAccountAssociatedTokenProgram, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;\n\nexport type InitializePoolInstructionData = { discriminator: ReadonlyUint8Array; tiers: Array<Tier>; maxSeedQuoteIn: bigint; maxSeedNativeDebit: bigint; extraSeedTokens: bigint; };\n\nexport type InitializePoolInstructionDataArgs = { tiers: Array<TierArgs>; maxSeedQuoteIn: number | bigint; maxSeedNativeDebit: number | bigint; extraSeedTokens: number | bigint; };\n\nexport function getInitializePoolInstructionDataEncoder(): FixedSizeEncoder<InitializePoolInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['tiers', getArrayEncoder(getTierEncoder(), { size: 8 })], ['maxSeedQuoteIn', getU64Encoder()], ['maxSeedNativeDebit', getU64Encoder()], ['extraSeedTokens', getU64Encoder()]]), (value) => ({ ...value, discriminator: INITIALIZE_POOL_DISCRIMINATOR }));\n}\n\nexport function getInitializePoolInstructionDataDecoder(): FixedSizeDecoder<InitializePoolInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['tiers', getArrayDecoder(getTierDecoder(), { size: 8 })], ['maxSeedQuoteIn', getU64Decoder()], ['maxSeedNativeDebit', getU64Decoder()], ['extraSeedTokens', getU64Decoder()]]);\n}\n\nexport function getInitializePoolInstructionDataCodec(): FixedSizeCodec<InitializePoolInstructionDataArgs, InitializePoolInstructionData> {\n return combineCodec(getInitializePoolInstructionDataEncoder(), getInitializePoolInstructionDataDecoder());\n}\n\nexport type InitializePoolAsyncInput<TAccountCreator extends string = string, TAccountPool extends string = string, TAccountMint extends string = string, TAccountQuoteMint extends string = string, TAccountCreatorTokens extends string = string, TAccountVault extends string = string, TAccountVenue extends string = string, TAccountInstructions extends string = string, TAccountTokenProgram extends string = string, TAccountAssociatedTokenProgram extends string = string, TAccountSystemProgram extends string = string> = {\n creator: TransactionSigner<TAccountCreator>;\npool?: Address<TAccountPool>;\nmint: Address<TAccountMint>;\nquoteMint: Address<TAccountQuoteMint>;\ncreatorTokens?: Address<TAccountCreatorTokens>;\nvault?: Address<TAccountVault>;\n/** introspected. A new coin is always on the curve, so CPMM is refused. */\nvenue?: Address<TAccountVenue>;\ninstructions?: Address<TAccountInstructions>;\ntokenProgram?: Address<TAccountTokenProgram>;\nassociatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;\nsystemProgram?: Address<TAccountSystemProgram>;\ntiers: InitializePoolInstructionDataArgs[\"tiers\"];\nmaxSeedQuoteIn: InitializePoolInstructionDataArgs[\"maxSeedQuoteIn\"];\nmaxSeedNativeDebit: InitializePoolInstructionDataArgs[\"maxSeedNativeDebit\"];\nextraSeedTokens: InitializePoolInstructionDataArgs[\"extraSeedTokens\"];\n}\n\nexport async function getInitializePoolInstructionAsync<TAccountCreator extends string, TAccountPool extends string, TAccountMint extends string, TAccountQuoteMint extends string, TAccountCreatorTokens extends string, TAccountVault extends string, TAccountVenue extends string, TAccountInstructions extends string, TAccountTokenProgram extends string, TAccountAssociatedTokenProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: InitializePoolAsyncInput<TAccountCreator, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountCreatorTokens, TAccountVault, TAccountVenue, TAccountInstructions, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>, config?: { programAddress?: TProgramAddress } ): Promise<InitializePoolInstruction<TProgramAddress, TAccountCreator, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountCreatorTokens, TAccountVault, TAccountVenue, TAccountInstructions, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { creator: { value: input.creator ?? null, isWritable: true }, pool: { value: input.pool ?? null, isWritable: true }, mint: { value: input.mint ?? null, isWritable: false }, quoteMint: { value: input.quoteMint ?? null, isWritable: false }, creatorTokens: { value: input.creatorTokens ?? null, isWritable: true }, vault: { value: input.vault ?? null, isWritable: true }, venue: { value: input.venue ?? null, isWritable: false }, instructions: { value: input.instructions ?? null, isWritable: false }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false }, associatedTokenProgram: { value: input.associatedTokenProgram ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.pool.value) {\naccounts.pool.value = await findPoolPda({ mint: getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value) }, { programAddress });\n}\nif (!accounts.creatorTokens.value) {\naccounts.creatorTokens.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>, seeds: [getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"creator\", accounts.creator.value)), getBytesEncoder().encode(new Uint8Array([6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value))] });\n}\nif (!accounts.vault.value) {\naccounts.vault.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>, seeds: [getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"pool\", accounts.pool.value)), getBytesEncoder().encode(new Uint8Array([6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value))] });\n}\nif (!accounts.venue.value) {\naccounts.venue.value = 'DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6' as Address<'DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6'>;\n}\nif (!accounts.instructions.value) {\naccounts.instructions.value = 'Sysvar1nstructions1111111111111111111111111' as Address<'Sysvar1nstructions1111111111111111111111111'>;\n}\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\nif (!accounts.associatedTokenProgram.value) {\naccounts.associatedTokenProgram.value = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;\n}\nif (!accounts.systemProgram.value) {\naccounts.systemProgram.value = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"creator\", accounts.creator), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"quoteMint\", accounts.quoteMint), getAccountMeta(\"creatorTokens\", accounts.creatorTokens), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"venue\", accounts.venue), getAccountMeta(\"instructions\", accounts.instructions), getAccountMeta(\"tokenProgram\", accounts.tokenProgram), getAccountMeta(\"associatedTokenProgram\", accounts.associatedTokenProgram), getAccountMeta(\"systemProgram\", accounts.systemProgram)], data: getInitializePoolInstructionDataEncoder().encode(args as InitializePoolInstructionDataArgs), programAddress } as InitializePoolInstruction<TProgramAddress, TAccountCreator, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountCreatorTokens, TAccountVault, TAccountVenue, TAccountInstructions, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>);\n}\n\nexport type InitializePoolInput<TAccountCreator extends string = string, TAccountPool extends string = string, TAccountMint extends string = string, TAccountQuoteMint extends string = string, TAccountCreatorTokens extends string = string, TAccountVault extends string = string, TAccountVenue extends string = string, TAccountInstructions extends string = string, TAccountTokenProgram extends string = string, TAccountAssociatedTokenProgram extends string = string, TAccountSystemProgram extends string = string> = {\n creator: TransactionSigner<TAccountCreator>;\npool: Address<TAccountPool>;\nmint: Address<TAccountMint>;\nquoteMint: Address<TAccountQuoteMint>;\ncreatorTokens: Address<TAccountCreatorTokens>;\nvault: Address<TAccountVault>;\n/** introspected. A new coin is always on the curve, so CPMM is refused. */\nvenue?: Address<TAccountVenue>;\ninstructions?: Address<TAccountInstructions>;\ntokenProgram?: Address<TAccountTokenProgram>;\nassociatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;\nsystemProgram?: Address<TAccountSystemProgram>;\ntiers: InitializePoolInstructionDataArgs[\"tiers\"];\nmaxSeedQuoteIn: InitializePoolInstructionDataArgs[\"maxSeedQuoteIn\"];\nmaxSeedNativeDebit: InitializePoolInstructionDataArgs[\"maxSeedNativeDebit\"];\nextraSeedTokens: InitializePoolInstructionDataArgs[\"extraSeedTokens\"];\n}\n\nexport function getInitializePoolInstruction<TAccountCreator extends string, TAccountPool extends string, TAccountMint extends string, TAccountQuoteMint extends string, TAccountCreatorTokens extends string, TAccountVault extends string, TAccountVenue extends string, TAccountInstructions extends string, TAccountTokenProgram extends string, TAccountAssociatedTokenProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: InitializePoolInput<TAccountCreator, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountCreatorTokens, TAccountVault, TAccountVenue, TAccountInstructions, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>, config?: { programAddress?: TProgramAddress } ): InitializePoolInstruction<TProgramAddress, TAccountCreator, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountCreatorTokens, TAccountVault, TAccountVenue, TAccountInstructions, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { creator: { value: input.creator ?? null, isWritable: true }, pool: { value: input.pool ?? null, isWritable: true }, mint: { value: input.mint ?? null, isWritable: false }, quoteMint: { value: input.quoteMint ?? null, isWritable: false }, creatorTokens: { value: input.creatorTokens ?? null, isWritable: true }, vault: { value: input.vault ?? null, isWritable: true }, venue: { value: input.venue ?? null, isWritable: false }, instructions: { value: input.instructions ?? null, isWritable: false }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false }, associatedTokenProgram: { value: input.associatedTokenProgram ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.venue.value) {\naccounts.venue.value = 'DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6' as Address<'DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6'>;\n}\nif (!accounts.instructions.value) {\naccounts.instructions.value = 'Sysvar1nstructions1111111111111111111111111' as Address<'Sysvar1nstructions1111111111111111111111111'>;\n}\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\nif (!accounts.associatedTokenProgram.value) {\naccounts.associatedTokenProgram.value = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;\n}\nif (!accounts.systemProgram.value) {\naccounts.systemProgram.value = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"creator\", accounts.creator), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"quoteMint\", accounts.quoteMint), getAccountMeta(\"creatorTokens\", accounts.creatorTokens), getAccountMeta(\"vault\", accounts.vault), getAccountMeta(\"venue\", accounts.venue), getAccountMeta(\"instructions\", accounts.instructions), getAccountMeta(\"tokenProgram\", accounts.tokenProgram), getAccountMeta(\"associatedTokenProgram\", accounts.associatedTokenProgram), getAccountMeta(\"systemProgram\", accounts.systemProgram)], data: getInitializePoolInstructionDataEncoder().encode(args as InitializePoolInstructionDataArgs), programAddress } as InitializePoolInstruction<TProgramAddress, TAccountCreator, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountCreatorTokens, TAccountVault, TAccountVenue, TAccountInstructions, TAccountTokenProgram, TAccountAssociatedTokenProgram, TAccountSystemProgram>);\n}\n\nexport type ParsedInitializePoolInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = { programAddress: Address<TProgram>;\naccounts: {\ncreator: TAccountMetas[0];\npool: TAccountMetas[1];\nmint: TAccountMetas[2];\nquoteMint: TAccountMetas[3];\ncreatorTokens: TAccountMetas[4];\nvault: TAccountMetas[5];\n/** introspected. A new coin is always on the curve, so CPMM is refused. */\nvenue: TAccountMetas[6];\ninstructions: TAccountMetas[7];\ntokenProgram: TAccountMetas[8];\nassociatedTokenProgram: TAccountMetas[9];\nsystemProgram: TAccountMetas[10];\n};\ndata: InitializePoolInstructionData; };\n\nexport function parseInitializePoolInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedInitializePoolInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 11) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 11 });\n}\nlet accountIndex = 0;\nconst getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n}\n return { programAddress: instruction.programAddress, accounts: { creator: getNextAccount(), pool: getNextAccount(), mint: getNextAccount(), quoteMint: getNextAccount(), creatorTokens: getNextAccount(), vault: getNextAccount(), venue: getNextAccount(), instructions: getNextAccount(), tokenProgram: getNextAccount(), associatedTokenProgram: getNextAccount(), systemProgram: getNextAccount() }, data: getInitializePoolInstructionDataDecoder().decode(instruction.data) };\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';\nimport { getAccountMetaFactory, type ResolvedInstructionAccount } from '@solana/program-client-core';\nimport { findIdentityPda } from '../pdas';\nimport { GABOX_PROGRAM_ADDRESS } from '../programs';\n\nexport const RETRY_DRAW_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([112, 118, 137, 120, 211, 39, 196, 96]);\n\nexport function getRetryDrawDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(RETRY_DRAW_DISCRIMINATOR); }\n\nexport type RetryDrawInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountPayer extends string | AccountMeta<string> = string, TAccountPool extends string | AccountMeta<string> = string, TAccountDraw extends string | AccountMeta<string> = string, TAccountIdentity extends string | AccountMeta<string> = string, TAccountQueue extends string | AccountMeta<string> = \"Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh\", TAccountProgram extends string | AccountMeta<string> = \"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz\", TAccountSlotHashes extends string | AccountMeta<string> = \"SysvarS1otHashes111111111111111111111111111\", TAccountSystemProgram extends string | AccountMeta<string> = \"11111111111111111111111111111111\", TRemainingAccounts extends readonly AccountMeta<string>[] = []> =\nInstruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountPayer extends string ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer> : TAccountPayer, TAccountPool extends string ? ReadonlyAccount<TAccountPool> : TAccountPool, TAccountDraw extends string ? WritableAccount<TAccountDraw> : TAccountDraw, TAccountIdentity extends string ? ReadonlyAccount<TAccountIdentity> : TAccountIdentity, TAccountQueue extends string ? WritableAccount<TAccountQueue> : TAccountQueue, TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram, TAccountSlotHashes extends string ? ReadonlyAccount<TAccountSlotHashes> : TAccountSlotHashes, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;\n\nexport type RetryDrawInstructionData = { discriminator: ReadonlyUint8Array; maxVrfDebit: bigint; };\n\nexport type RetryDrawInstructionDataArgs = { maxVrfDebit: number | bigint; };\n\nexport function getRetryDrawInstructionDataEncoder(): FixedSizeEncoder<RetryDrawInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['maxVrfDebit', getU64Encoder()]]), (value) => ({ ...value, discriminator: RETRY_DRAW_DISCRIMINATOR }));\n}\n\nexport function getRetryDrawInstructionDataDecoder(): FixedSizeDecoder<RetryDrawInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['maxVrfDebit', getU64Decoder()]]);\n}\n\nexport function getRetryDrawInstructionDataCodec(): FixedSizeCodec<RetryDrawInstructionDataArgs, RetryDrawInstructionData> {\n return combineCodec(getRetryDrawInstructionDataEncoder(), getRetryDrawInstructionDataDecoder());\n}\n\nexport type RetryDrawAsyncInput<TAccountPayer extends string = string, TAccountPool extends string = string, TAccountDraw extends string = string, TAccountIdentity extends string = string, TAccountQueue extends string = string, TAccountProgram extends string = string, TAccountSlotHashes extends string = string, TAccountSystemProgram extends string = string> = {\n payer: TransactionSigner<TAccountPayer>;\n/**\n * This account carries no `seeds` constraint, unlike every other\n * instruction. There is no `mint` account here to build the seed from,\n * and none is needed: `draw` names this pool with `has_one`, so the draw\n * always belongs to it, and the account type already proves the Gabox\n * program owns it. A retry only pays for another randomness request. The\n * callback lands in `deliver_draw`, which checks the full pool seeds\n * before any tokens move.\n */\npool: Address<TAccountPool>;\ndraw: Address<TAccountDraw>;\nidentity?: Address<TAccountIdentity>;\nqueue?: Address<TAccountQueue>;\nprogram?: Address<TAccountProgram>;\nslotHashes?: Address<TAccountSlotHashes>;\nsystemProgram?: Address<TAccountSystemProgram>;\nmaxVrfDebit: RetryDrawInstructionDataArgs[\"maxVrfDebit\"];\n}\n\nexport async function getRetryDrawInstructionAsync<TAccountPayer extends string, TAccountPool extends string, TAccountDraw extends string, TAccountIdentity extends string, TAccountQueue extends string, TAccountProgram extends string, TAccountSlotHashes extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: RetryDrawAsyncInput<TAccountPayer, TAccountPool, TAccountDraw, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountSystemProgram>, config?: { programAddress?: TProgramAddress } ): Promise<RetryDrawInstruction<TProgramAddress, TAccountPayer, TAccountPool, TAccountDraw, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountSystemProgram>> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { payer: { value: input.payer ?? null, isWritable: true }, pool: { value: input.pool ?? null, isWritable: false }, draw: { value: input.draw ?? null, isWritable: true }, identity: { value: input.identity ?? null, isWritable: false }, queue: { value: input.queue ?? null, isWritable: true }, program: { value: input.program ?? null, isWritable: false }, slotHashes: { value: input.slotHashes ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.identity.value) {\naccounts.identity.value = await findIdentityPda({ programAddress });\n}\nif (!accounts.queue.value) {\naccounts.queue.value = 'Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh' as Address<'Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh'>;\n}\nif (!accounts.program.value) {\naccounts.program.value = 'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz' as Address<'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz'>;\n}\nif (!accounts.slotHashes.value) {\naccounts.slotHashes.value = 'SysvarS1otHashes111111111111111111111111111' as Address<'SysvarS1otHashes111111111111111111111111111'>;\n}\nif (!accounts.systemProgram.value) {\naccounts.systemProgram.value = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"payer\", accounts.payer), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"draw\", accounts.draw), getAccountMeta(\"identity\", accounts.identity), getAccountMeta(\"queue\", accounts.queue), getAccountMeta(\"program\", accounts.program), getAccountMeta(\"slotHashes\", accounts.slotHashes), getAccountMeta(\"systemProgram\", accounts.systemProgram)], data: getRetryDrawInstructionDataEncoder().encode(args as RetryDrawInstructionDataArgs), programAddress } as RetryDrawInstruction<TProgramAddress, TAccountPayer, TAccountPool, TAccountDraw, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountSystemProgram>);\n}\n\nexport type RetryDrawInput<TAccountPayer extends string = string, TAccountPool extends string = string, TAccountDraw extends string = string, TAccountIdentity extends string = string, TAccountQueue extends string = string, TAccountProgram extends string = string, TAccountSlotHashes extends string = string, TAccountSystemProgram extends string = string> = {\n payer: TransactionSigner<TAccountPayer>;\n/**\n * This account carries no `seeds` constraint, unlike every other\n * instruction. There is no `mint` account here to build the seed from,\n * and none is needed: `draw` names this pool with `has_one`, so the draw\n * always belongs to it, and the account type already proves the Gabox\n * program owns it. A retry only pays for another randomness request. The\n * callback lands in `deliver_draw`, which checks the full pool seeds\n * before any tokens move.\n */\npool: Address<TAccountPool>;\ndraw: Address<TAccountDraw>;\nidentity: Address<TAccountIdentity>;\nqueue?: Address<TAccountQueue>;\nprogram?: Address<TAccountProgram>;\nslotHashes?: Address<TAccountSlotHashes>;\nsystemProgram?: Address<TAccountSystemProgram>;\nmaxVrfDebit: RetryDrawInstructionDataArgs[\"maxVrfDebit\"];\n}\n\nexport function getRetryDrawInstruction<TAccountPayer extends string, TAccountPool extends string, TAccountDraw extends string, TAccountIdentity extends string, TAccountQueue extends string, TAccountProgram extends string, TAccountSlotHashes extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: RetryDrawInput<TAccountPayer, TAccountPool, TAccountDraw, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountSystemProgram>, config?: { programAddress?: TProgramAddress } ): RetryDrawInstruction<TProgramAddress, TAccountPayer, TAccountPool, TAccountDraw, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountSystemProgram> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { payer: { value: input.payer ?? null, isWritable: true }, pool: { value: input.pool ?? null, isWritable: false }, draw: { value: input.draw ?? null, isWritable: true }, identity: { value: input.identity ?? null, isWritable: false }, queue: { value: input.queue ?? null, isWritable: true }, program: { value: input.program ?? null, isWritable: false }, slotHashes: { value: input.slotHashes ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.queue.value) {\naccounts.queue.value = 'Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh' as Address<'Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh'>;\n}\nif (!accounts.program.value) {\naccounts.program.value = 'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz' as Address<'Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz'>;\n}\nif (!accounts.slotHashes.value) {\naccounts.slotHashes.value = 'SysvarS1otHashes111111111111111111111111111' as Address<'SysvarS1otHashes111111111111111111111111111'>;\n}\nif (!accounts.systemProgram.value) {\naccounts.systemProgram.value = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"payer\", accounts.payer), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"draw\", accounts.draw), getAccountMeta(\"identity\", accounts.identity), getAccountMeta(\"queue\", accounts.queue), getAccountMeta(\"program\", accounts.program), getAccountMeta(\"slotHashes\", accounts.slotHashes), getAccountMeta(\"systemProgram\", accounts.systemProgram)], data: getRetryDrawInstructionDataEncoder().encode(args as RetryDrawInstructionDataArgs), programAddress } as RetryDrawInstruction<TProgramAddress, TAccountPayer, TAccountPool, TAccountDraw, TAccountIdentity, TAccountQueue, TAccountProgram, TAccountSlotHashes, TAccountSystemProgram>);\n}\n\nexport type ParsedRetryDrawInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = { programAddress: Address<TProgram>;\naccounts: {\npayer: TAccountMetas[0];\n/**\n * This account carries no `seeds` constraint, unlike every other\n * instruction. There is no `mint` account here to build the seed from,\n * and none is needed: `draw` names this pool with `has_one`, so the draw\n * always belongs to it, and the account type already proves the Gabox\n * program owns it. A retry only pays for another randomness request. The\n * callback lands in `deliver_draw`, which checks the full pool seeds\n * before any tokens move.\n */\npool: TAccountMetas[1];\ndraw: TAccountMetas[2];\nidentity: TAccountMetas[3];\nqueue: TAccountMetas[4];\nprogram: TAccountMetas[5];\nslotHashes: TAccountMetas[6];\nsystemProgram: TAccountMetas[7];\n};\ndata: RetryDrawInstructionData; };\n\nexport function parseRetryDrawInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedRetryDrawInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 8) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 8 });\n}\nlet accountIndex = 0;\nconst getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n}\n return { programAddress: instruction.programAddress, accounts: { payer: getNextAccount(), pool: getNextAccount(), draw: getNextAccount(), identity: getNextAccount(), queue: getNextAccount(), program: getNextAccount(), slotHashes: getNextAccount(), systemProgram: getNextAccount() }, data: getRetryDrawInstructionDataDecoder().decode(instruction.data) };\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';\nimport { getAccountMetaFactory, getAddressFromResolvedInstructionAccount, type ResolvedInstructionAccount } from '@solana/program-client-core';\nimport { findPoolPda } from '../pdas';\nimport { GABOX_PROGRAM_ADDRESS } from '../programs';\n\nexport const SELL_TOKENS_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([114, 242, 25, 12, 62, 126, 92, 2]);\n\nexport function getSellTokensDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(SELL_TOKENS_DISCRIMINATOR); }\n\nexport type SellTokensInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountSeller extends string | AccountMeta<string> = string, TAccountPool extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountQuoteMint extends string | AccountMeta<string> = string, TAccountUserTokens extends string | AccountMeta<string> = string, TAccountVenue extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\", TRemainingAccounts extends readonly AccountMeta<string>[] = []> =\nInstruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountSeller extends string ? WritableSignerAccount<TAccountSeller> & AccountSignerMeta<TAccountSeller> : TAccountSeller, TAccountPool extends string ? ReadonlyAccount<TAccountPool> : TAccountPool, TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint, TAccountQuoteMint extends string ? ReadonlyAccount<TAccountQuoteMint> : TAccountQuoteMint, TAccountUserTokens extends string ? WritableAccount<TAccountUserTokens> : TAccountUserTokens, TAccountVenue extends string ? ReadonlyAccount<TAccountVenue> : TAccountVenue, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, ...TRemainingAccounts]>;\n\nexport type SellTokensInstructionData = { discriminator: ReadonlyUint8Array; amount: bigint; minQuoteOutput: bigint; maxNativeDebit: bigint; };\n\nexport type SellTokensInstructionDataArgs = { amount: number | bigint; minQuoteOutput: number | bigint; maxNativeDebit: number | bigint; };\n\nexport function getSellTokensInstructionDataEncoder(): FixedSizeEncoder<SellTokensInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['amount', getU64Encoder()], ['minQuoteOutput', getU64Encoder()], ['maxNativeDebit', getU64Encoder()]]), (value) => ({ ...value, discriminator: SELL_TOKENS_DISCRIMINATOR }));\n}\n\nexport function getSellTokensInstructionDataDecoder(): FixedSizeDecoder<SellTokensInstructionData> {\n return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['amount', getU64Decoder()], ['minQuoteOutput', getU64Decoder()], ['maxNativeDebit', getU64Decoder()]]);\n}\n\nexport function getSellTokensInstructionDataCodec(): FixedSizeCodec<SellTokensInstructionDataArgs, SellTokensInstructionData> {\n return combineCodec(getSellTokensInstructionDataEncoder(), getSellTokensInstructionDataDecoder());\n}\n\nexport type SellTokensAsyncInput<TAccountSeller extends string = string, TAccountPool extends string = string, TAccountMint extends string = string, TAccountQuoteMint extends string = string, TAccountUserTokens extends string = string, TAccountVenue extends string = string, TAccountTokenProgram extends string = string> = {\n seller: TransactionSigner<TAccountSeller>;\npool?: Address<TAccountPool>;\nmint: Address<TAccountMint>;\nquoteMint: Address<TAccountQuoteMint>;\nuserTokens?: Address<TAccountUserTokens>;\n/** LaunchLab before graduation, CPMM after it. */\nvenue: Address<TAccountVenue>;\ntokenProgram?: Address<TAccountTokenProgram>;\namount: SellTokensInstructionDataArgs[\"amount\"];\nminQuoteOutput: SellTokensInstructionDataArgs[\"minQuoteOutput\"];\nmaxNativeDebit: SellTokensInstructionDataArgs[\"maxNativeDebit\"];\n}\n\nexport async function getSellTokensInstructionAsync<TAccountSeller extends string, TAccountPool extends string, TAccountMint extends string, TAccountQuoteMint extends string, TAccountUserTokens extends string, TAccountVenue extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: SellTokensAsyncInput<TAccountSeller, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountUserTokens, TAccountVenue, TAccountTokenProgram>, config?: { programAddress?: TProgramAddress } ): Promise<SellTokensInstruction<TProgramAddress, TAccountSeller, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountUserTokens, TAccountVenue, TAccountTokenProgram>> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { seller: { value: input.seller ?? null, isWritable: true }, pool: { value: input.pool ?? null, isWritable: false }, mint: { value: input.mint ?? null, isWritable: false }, quoteMint: { value: input.quoteMint ?? null, isWritable: false }, userTokens: { value: input.userTokens ?? null, isWritable: true }, venue: { value: input.venue ?? null, isWritable: false }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.pool.value) {\naccounts.pool.value = await findPoolPda({ mint: getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value) }, { programAddress });\n}\nif (!accounts.userTokens.value) {\naccounts.userTokens.value = await getProgramDerivedAddress({ programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>, seeds: [getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"seller\", accounts.seller.value)), getBytesEncoder().encode(new Uint8Array([6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value))] });\n}\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"seller\", accounts.seller), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"quoteMint\", accounts.quoteMint), getAccountMeta(\"userTokens\", accounts.userTokens), getAccountMeta(\"venue\", accounts.venue), getAccountMeta(\"tokenProgram\", accounts.tokenProgram)], data: getSellTokensInstructionDataEncoder().encode(args as SellTokensInstructionDataArgs), programAddress } as SellTokensInstruction<TProgramAddress, TAccountSeller, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountUserTokens, TAccountVenue, TAccountTokenProgram>);\n}\n\nexport type SellTokensInput<TAccountSeller extends string = string, TAccountPool extends string = string, TAccountMint extends string = string, TAccountQuoteMint extends string = string, TAccountUserTokens extends string = string, TAccountVenue extends string = string, TAccountTokenProgram extends string = string> = {\n seller: TransactionSigner<TAccountSeller>;\npool: Address<TAccountPool>;\nmint: Address<TAccountMint>;\nquoteMint: Address<TAccountQuoteMint>;\nuserTokens: Address<TAccountUserTokens>;\n/** LaunchLab before graduation, CPMM after it. */\nvenue: Address<TAccountVenue>;\ntokenProgram?: Address<TAccountTokenProgram>;\namount: SellTokensInstructionDataArgs[\"amount\"];\nminQuoteOutput: SellTokensInstructionDataArgs[\"minQuoteOutput\"];\nmaxNativeDebit: SellTokensInstructionDataArgs[\"maxNativeDebit\"];\n}\n\nexport function getSellTokensInstruction<TAccountSeller extends string, TAccountPool extends string, TAccountMint extends string, TAccountQuoteMint extends string, TAccountUserTokens extends string, TAccountVenue extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof GABOX_PROGRAM_ADDRESS>(input: SellTokensInput<TAccountSeller, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountUserTokens, TAccountVenue, TAccountTokenProgram>, config?: { programAddress?: TProgramAddress } ): SellTokensInstruction<TProgramAddress, TAccountSeller, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountUserTokens, TAccountVenue, TAccountTokenProgram> {\n // Program address.\nconst programAddress = config?.programAddress ?? GABOX_PROGRAM_ADDRESS;\n\n // Original accounts.\nconst originalAccounts = { seller: { value: input.seller ?? null, isWritable: true }, pool: { value: input.pool ?? null, isWritable: false }, mint: { value: input.mint ?? null, isWritable: false }, quoteMint: { value: input.quoteMint ?? null, isWritable: false }, userTokens: { value: input.userTokens ?? null, isWritable: true }, venue: { value: input.venue ?? null, isWritable: false }, tokenProgram: { value: input.tokenProgram ?? null, isWritable: false } }\nconst accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n\n// Original args.\nconst args = { ...input, };\n\n\n// Resolve default values.\nif (!accounts.tokenProgram.value) {\naccounts.tokenProgram.value = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;\n}\n\nconst getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\nreturn Object.freeze({ accounts: [getAccountMeta(\"seller\", accounts.seller), getAccountMeta(\"pool\", accounts.pool), getAccountMeta(\"mint\", accounts.mint), getAccountMeta(\"quoteMint\", accounts.quoteMint), getAccountMeta(\"userTokens\", accounts.userTokens), getAccountMeta(\"venue\", accounts.venue), getAccountMeta(\"tokenProgram\", accounts.tokenProgram)], data: getSellTokensInstructionDataEncoder().encode(args as SellTokensInstructionDataArgs), programAddress } as SellTokensInstruction<TProgramAddress, TAccountSeller, TAccountPool, TAccountMint, TAccountQuoteMint, TAccountUserTokens, TAccountVenue, TAccountTokenProgram>);\n}\n\nexport type ParsedSellTokensInstruction<TProgram extends string = typeof GABOX_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = { programAddress: Address<TProgram>;\naccounts: {\nseller: TAccountMetas[0];\npool: TAccountMetas[1];\nmint: TAccountMetas[2];\nquoteMint: TAccountMetas[3];\nuserTokens: TAccountMetas[4];\n/** LaunchLab before graduation, CPMM after it. */\nvenue: TAccountMetas[5];\ntokenProgram: TAccountMetas[6];\n};\ndata: SellTokensInstructionData; };\n\nexport function parseSellTokensInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedSellTokensInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 7) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 7 });\n}\nlet accountIndex = 0;\nconst getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n}\n return { programAddress: instruction.programAddress, accounts: { seller: getNextAccount(), pool: getNextAccount(), mint: getNextAccount(), quoteMint: getNextAccount(), userTokens: getNextAccount(), venue: getNextAccount(), tokenProgram: getNextAccount() }, data: getSellTokensInstructionDataDecoder().decode(instruction.data) };\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { assertIsInstructionWithAccounts, containsBytes, extendClient, fixEncoderSize, getBytesEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT, SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, SolanaError, type Address, type ClientWithPayer, type ClientWithRpc, type ClientWithTransactionPlanning, type ClientWithTransactionSending, type ExtendedClient, type GetAccountInfoApi, type GetMultipleAccountsApi, type Instruction, type InstructionWithData, type ReadonlyUint8Array } from '@solana/kit';\nimport { addSelfFetchFunctions, addSelfPlanAndSendFunctions, type SelfFetchFunctions, type SelfPlanAndSendFunctions } from '@solana/program-client-core';\nimport { getDrawCodec, getPoolCodec, getWalletActivityCodec, type Draw, type DrawArgs, type Pool, type PoolArgs, type WalletActivity, type WalletActivityArgs } from '../accounts';\nimport { getBuyPackInstructionAsync, getDeliverDrawInstructionAsync, getExpireDrawInstructionAsync, getFundPrizesInstructionAsync, getInitializePoolInstructionAsync, getRetryDrawInstructionAsync, getSellTokensInstructionAsync, parseBuyPackInstruction, parseDeliverDrawInstruction, parseExpireDrawInstruction, parseFundPrizesInstruction, parseInitializePoolInstruction, parseRetryDrawInstruction, parseSellTokensInstruction, type BuyPackAsyncInput, type DeliverDrawAsyncInput, type ExpireDrawAsyncInput, type FundPrizesAsyncInput, type InitializePoolAsyncInput, type ParsedBuyPackInstruction, type ParsedDeliverDrawInstruction, type ParsedExpireDrawInstruction, type ParsedFundPrizesInstruction, type ParsedInitializePoolInstruction, type ParsedRetryDrawInstruction, type ParsedSellTokensInstruction, type RetryDrawAsyncInput, type SellTokensAsyncInput } from '../instructions';\nimport { findActivityPda, findDrawPda, findIdentityPda, findPoolPda } from '../pdas';\n\nexport const GABOX_PROGRAM_ADDRESS = 'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA' as Address<'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA'>;\n\nexport enum GaboxAccount { Draw, Pool, WalletActivity }\n\nexport function identifyGaboxAccount(account: { data: ReadonlyUint8Array } | ReadonlyUint8Array): GaboxAccount {\n const data = 'data' in account ? account.data : account;\n if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([101, 31, 52, 179, 121, 78, 252, 89])), 0)) { return GaboxAccount.Draw; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([140, 230, 142, 167, 14, 202, 43, 254])), 0)) { return GaboxAccount.Pool; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([212, 80, 180, 131, 173, 1, 252, 141])), 0)) { return GaboxAccount.WalletActivity; }\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT, { accountData: data, programName: \"gabox\" });\n}\n\nexport enum GaboxEvent { DrawResolved, PackBought, PoolCreated, PrizesFunded, RandomnessRetried, TokensSold }\n\nexport function identifyGaboxEvent(event: { data: ReadonlyUint8Array } | ReadonlyUint8Array): GaboxEvent {\n const data = 'data' in event ? event.data : event;\n if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([127, 177, 62, 146, 164, 90, 185, 218])), 0)) { return GaboxEvent.DrawResolved; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([220, 208, 74, 75, 42, 144, 231, 69])), 0)) { return GaboxEvent.PackBought; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([202, 44, 41, 88, 104, 220, 157, 82])), 0)) { return GaboxEvent.PoolCreated; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([188, 129, 185, 44, 234, 71, 53, 60])), 0)) { return GaboxEvent.PrizesFunded; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([243, 30, 148, 22, 14, 127, 52, 140])), 0)) { return GaboxEvent.RandomnessRetried; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([217, 83, 68, 137, 134, 225, 94, 45])), 0)) { return GaboxEvent.TokensSold; }\n throw new Error('The provided event could not be identified as a gabox event.');\n}\n\nexport enum GaboxInstruction { BuyPack, DeliverDraw, ExpireDraw, FundPrizes, InitializePool, RetryDraw, SellTokens }\n\nexport function identifyGaboxInstruction(instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array): GaboxInstruction {\n const data = 'data' in instruction ? instruction.data : instruction;\n if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([151, 46, 141, 93, 174, 5, 49, 173])), 0)) { return GaboxInstruction.BuyPack; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([113, 181, 226, 173, 237, 138, 199, 51])), 0)) { return GaboxInstruction.DeliverDraw; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([100, 119, 235, 75, 8, 25, 252, 255])), 0)) { return GaboxInstruction.ExpireDraw; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([163, 225, 193, 125, 144, 171, 29, 241])), 0)) { return GaboxInstruction.FundPrizes; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([95, 180, 10, 172, 84, 174, 232, 40])), 0)) { return GaboxInstruction.InitializePool; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([112, 118, 137, 120, 211, 39, 196, 96])), 0)) { return GaboxInstruction.RetryDraw; }\nif (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([114, 242, 25, 12, 62, 126, 92, 2])), 0)) { return GaboxInstruction.SellTokens; }\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, { instructionData: data, programName: \"gabox\" });\n}\n\nexport type ParsedGaboxInstruction<TProgram extends string = 'GaBoxR9nYcK1zeu8EvSJVHV3SrYpCFmvbh2MLgobMcUA'> =\n| { instructionType: GaboxInstruction.BuyPack } & ParsedBuyPackInstruction<TProgram>\n| { instructionType: GaboxInstruction.DeliverDraw } & ParsedDeliverDrawInstruction<TProgram>\n| { instructionType: GaboxInstruction.ExpireDraw } & ParsedExpireDrawInstruction<TProgram>\n| { instructionType: GaboxInstruction.FundPrizes } & ParsedFundPrizesInstruction<TProgram>\n| { instructionType: GaboxInstruction.InitializePool } & ParsedInitializePoolInstruction<TProgram>\n| { instructionType: GaboxInstruction.RetryDraw } & ParsedRetryDrawInstruction<TProgram>\n| { instructionType: GaboxInstruction.SellTokens } & ParsedSellTokensInstruction<TProgram>\n\n\n export function parseGaboxInstruction<TProgram extends string>(\n instruction: Instruction<TProgram>\n & InstructionWithData<ReadonlyUint8Array>\n ): ParsedGaboxInstruction<TProgram> {\n const instructionType = identifyGaboxInstruction(instruction);\n switch (instructionType) {\n case GaboxInstruction.BuyPack: { assertIsInstructionWithAccounts(instruction);\nreturn { instructionType: GaboxInstruction.BuyPack, ...parseBuyPackInstruction(instruction) }; }\ncase GaboxInstruction.DeliverDraw: { assertIsInstructionWithAccounts(instruction);\nreturn { instructionType: GaboxInstruction.DeliverDraw, ...parseDeliverDrawInstruction(instruction) }; }\ncase GaboxInstruction.ExpireDraw: { assertIsInstructionWithAccounts(instruction);\nreturn { instructionType: GaboxInstruction.ExpireDraw, ...parseExpireDrawInstruction(instruction) }; }\ncase GaboxInstruction.FundPrizes: { assertIsInstructionWithAccounts(instruction);\nreturn { instructionType: GaboxInstruction.FundPrizes, ...parseFundPrizesInstruction(instruction) }; }\ncase GaboxInstruction.InitializePool: { assertIsInstructionWithAccounts(instruction);\nreturn { instructionType: GaboxInstruction.InitializePool, ...parseInitializePoolInstruction(instruction) }; }\ncase GaboxInstruction.RetryDraw: { assertIsInstructionWithAccounts(instruction);\nreturn { instructionType: GaboxInstruction.RetryDraw, ...parseRetryDrawInstruction(instruction) }; }\ncase GaboxInstruction.SellTokens: { assertIsInstructionWithAccounts(instruction);\nreturn { instructionType: GaboxInstruction.SellTokens, ...parseSellTokensInstruction(instruction) }; }\n default: throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, { instructionType: instructionType as string, programName: \"gabox\" });\n }\n }\n\nexport type GaboxPlugin = { accounts: GaboxPluginAccounts; instructions: GaboxPluginInstructions; pdas: GaboxPluginPdas; identifyAccount: typeof identifyGaboxAccount; identifyInstruction: typeof identifyGaboxInstruction; parseInstruction: typeof parseGaboxInstruction; }\n\nexport type GaboxPluginAccounts = { draw: ReturnType<typeof getDrawCodec> & SelfFetchFunctions<DrawArgs, Draw>; pool: ReturnType<typeof getPoolCodec> & SelfFetchFunctions<PoolArgs, Pool>; walletActivity: ReturnType<typeof getWalletActivityCodec> & SelfFetchFunctions<WalletActivityArgs, WalletActivity>; }\n\nexport type GaboxPluginInstructions = { buyPack: (input: BuyPackAsyncInput) => ReturnType<typeof getBuyPackInstructionAsync> & SelfPlanAndSendFunctions; deliverDraw: (input: DeliverDrawAsyncInput) => ReturnType<typeof getDeliverDrawInstructionAsync> & SelfPlanAndSendFunctions; expireDraw: (input: ExpireDrawAsyncInput) => ReturnType<typeof getExpireDrawInstructionAsync> & SelfPlanAndSendFunctions; fundPrizes: (input: FundPrizesAsyncInput) => ReturnType<typeof getFundPrizesInstructionAsync> & SelfPlanAndSendFunctions; initializePool: (input: InitializePoolAsyncInput) => ReturnType<typeof getInitializePoolInstructionAsync> & SelfPlanAndSendFunctions; retryDraw: (input: MakeOptional<RetryDrawAsyncInput, \"payer\">) => ReturnType<typeof getRetryDrawInstructionAsync> & SelfPlanAndSendFunctions; sellTokens: (input: SellTokensAsyncInput) => ReturnType<typeof getSellTokensInstructionAsync> & SelfPlanAndSendFunctions; }\n\nexport type GaboxPluginPdas = { pool: typeof findPoolPda; activity: typeof findActivityPda; identity: typeof findIdentityPda; draw: typeof findDrawPda; }\n\nexport type GaboxPluginRequirements = ClientWithRpc<GetAccountInfoApi & GetMultipleAccountsApi> & ClientWithPayer & ClientWithTransactionPlanning & ClientWithTransactionSending\n\nexport function gaboxProgram() {\n return <T extends GaboxPluginRequirements>(client: T): ExtendedClient<T, { gabox: GaboxPlugin }> => {\n return extendClient(client, { gabox: <GaboxPlugin>{ accounts: { draw: addSelfFetchFunctions(client, getDrawCodec()), pool: addSelfFetchFunctions(client, getPoolCodec()), walletActivity: addSelfFetchFunctions(client, getWalletActivityCodec()) }, instructions: { buyPack: input => addSelfPlanAndSendFunctions(client, getBuyPackInstructionAsync(input)), deliverDraw: input => addSelfPlanAndSendFunctions(client, getDeliverDrawInstructionAsync(input)), expireDraw: input => addSelfPlanAndSendFunctions(client, getExpireDrawInstructionAsync(input)), fundPrizes: input => addSelfPlanAndSendFunctions(client, getFundPrizesInstructionAsync(input)), initializePool: input => addSelfPlanAndSendFunctions(client, getInitializePoolInstructionAsync(input)), retryDraw: input => addSelfPlanAndSendFunctions(client, getRetryDrawInstructionAsync({ ...input, payer: input.payer ?? client.payer })), sellTokens: input => addSelfPlanAndSendFunctions(client, getSellTokensInstructionAsync(input)) }, pdas: { pool: findPoolPda, activity: findActivityPda, identity: findIdentityPda, draw: findDrawPda }, identifyAccount: identifyGaboxAccount, identifyInstruction: identifyGaboxInstruction, parseInstruction: parseGaboxInstruction } });\n };\n}\n\ntype MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBooleanDecoder, getBooleanEncoder, getBytesDecoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const DRAW_RESOLVED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([127, 177, 62, 146, 164, 90, 185, 218]);\n\nexport function getDrawResolvedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(DRAW_RESOLVED_EVENT_DISCRIMINATOR); }\n\nexport type DrawResolvedEvent = { pool: Address; seq: bigint; purchaser: Address; amount: bigint; randomness: ReadonlyUint8Array; timedOut: boolean; };\n\nexport type DrawResolvedEventArgs = { pool: Address; seq: number | bigint; purchaser: Address; amount: number | bigint; randomness: ReadonlyUint8Array; timedOut: boolean; };\n\n/** Gets the encoder for {@link DrawResolvedEventArgs} event data. */\nexport function getDrawResolvedEventEncoder(): FixedSizeEncoder<DrawResolvedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seq', getU64Encoder()], ['purchaser', getAddressEncoder()], ['amount', getU64Encoder()], ['randomness', fixEncoderSize(getBytesEncoder(), 32)], ['timedOut', getBooleanEncoder()]]), [getConstantEncoder(DRAW_RESOLVED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link DrawResolvedEvent} event data. */\nexport function getDrawResolvedEventDecoder(): FixedSizeDecoder<DrawResolvedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seq', getU64Decoder()], ['purchaser', getAddressDecoder()], ['amount', getU64Decoder()], ['randomness', fixDecoderSize(getBytesDecoder(), 32)], ['timedOut', getBooleanDecoder()]]), [getConstantDecoder(DRAW_RESOLVED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link DrawResolvedEvent} event data. */\nexport function getDrawResolvedEventCodec(): FixedSizeCodec<DrawResolvedEventArgs, DrawResolvedEvent> {\n return combineCodec(getDrawResolvedEventEncoder(), getDrawResolvedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link DrawResolvedEvent} event data. */\nexport function parseDrawResolvedEvent(data: ReadonlyUint8Array | Uint8Array): DrawResolvedEvent {\n if (containsBytes(data, DRAW_RESOLVED_EVENT_DISCRIMINATOR, 0)) { return getDrawResolvedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"DrawResolvedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\nimport { getPrizeDecoder, getPrizeEncoder, type Prize, type PrizeArgs } from '../types';\n\nexport const PACK_BOUGHT_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([220, 208, 74, 75, 42, 144, 231, 69]);\n\nexport function getPackBoughtEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(PACK_BOUGHT_EVENT_DISCRIMINATOR); }\n\nexport type PackBoughtEvent = { pool: Address; seq: bigint; purchaser: Address; venue: Address; quoteMint: Address; tokensBought: bigint;\n/** Quote token the venue charged for the pack. */\nquoteDebit: bigint;\n/** Lamports the venue call itself spent, which is venue account rent. */\nnativeDebit: bigint; vrfNativeDebit: bigint; totalNativeDebit: bigint; prizes: Array<Prize>; };\n\nexport type PackBoughtEventArgs = { pool: Address; seq: number | bigint; purchaser: Address; venue: Address; quoteMint: Address; tokensBought: number | bigint;\n/** Quote token the venue charged for the pack. */\nquoteDebit: number | bigint;\n/** Lamports the venue call itself spent, which is venue account rent. */\nnativeDebit: number | bigint; vrfNativeDebit: number | bigint; totalNativeDebit: number | bigint; prizes: Array<PrizeArgs>; };\n\n/** Gets the encoder for {@link PackBoughtEventArgs} event data. */\nexport function getPackBoughtEventEncoder(): FixedSizeEncoder<PackBoughtEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seq', getU64Encoder()], ['purchaser', getAddressEncoder()], ['venue', getAddressEncoder()], ['quoteMint', getAddressEncoder()], ['tokensBought', getU64Encoder()], ['quoteDebit', getU64Encoder()], ['nativeDebit', getU64Encoder()], ['vrfNativeDebit', getU64Encoder()], ['totalNativeDebit', getU64Encoder()], ['prizes', getArrayEncoder(getPrizeEncoder(), { size: 8 })]]), [getConstantEncoder(PACK_BOUGHT_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link PackBoughtEvent} event data. */\nexport function getPackBoughtEventDecoder(): FixedSizeDecoder<PackBoughtEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seq', getU64Decoder()], ['purchaser', getAddressDecoder()], ['venue', getAddressDecoder()], ['quoteMint', getAddressDecoder()], ['tokensBought', getU64Decoder()], ['quoteDebit', getU64Decoder()], ['nativeDebit', getU64Decoder()], ['vrfNativeDebit', getU64Decoder()], ['totalNativeDebit', getU64Decoder()], ['prizes', getArrayDecoder(getPrizeDecoder(), { size: 8 })]]), [getConstantDecoder(PACK_BOUGHT_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link PackBoughtEvent} event data. */\nexport function getPackBoughtEventCodec(): FixedSizeCodec<PackBoughtEventArgs, PackBoughtEvent> {\n return combineCodec(getPackBoughtEventEncoder(), getPackBoughtEventDecoder());\n}\n\n/** Parses the provided bytes into {@link PackBoughtEvent} event data. */\nexport function parsePackBoughtEvent(data: ReadonlyUint8Array | Uint8Array): PackBoughtEvent {\n if (containsBytes(data, PACK_BOUGHT_EVENT_DISCRIMINATOR, 0)) { return getPackBoughtEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"PackBoughtEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\nimport { getTierDecoder, getTierEncoder, type Tier, type TierArgs } from '../types';\n\nexport const POOL_CREATED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([202, 44, 41, 88, 104, 220, 157, 82]);\n\nexport function getPoolCreatedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(POOL_CREATED_EVENT_DISCRIMINATOR); }\n\nexport type PoolCreatedEvent = { pool: Address; mint: Address; creator: Address; packTokens: bigint; tiers: Array<Tier>; seedTokens: bigint; extraSeedTokens: bigint; quoteMint: Address;\n/** Quote token the seed buy spent. */\nseedQuoteAmount: bigint;\n/** Lamports the seed buy spent, which is venue account rent, not price. */\nseedNativeDebit: bigint; };\n\nexport type PoolCreatedEventArgs = { pool: Address; mint: Address; creator: Address; packTokens: number | bigint; tiers: Array<TierArgs>; seedTokens: number | bigint; extraSeedTokens: number | bigint; quoteMint: Address;\n/** Quote token the seed buy spent. */\nseedQuoteAmount: number | bigint;\n/** Lamports the seed buy spent, which is venue account rent, not price. */\nseedNativeDebit: number | bigint; };\n\n/** Gets the encoder for {@link PoolCreatedEventArgs} event data. */\nexport function getPoolCreatedEventEncoder(): FixedSizeEncoder<PoolCreatedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['mint', getAddressEncoder()], ['creator', getAddressEncoder()], ['packTokens', getU64Encoder()], ['tiers', getArrayEncoder(getTierEncoder(), { size: 8 })], ['seedTokens', getU64Encoder()], ['extraSeedTokens', getU64Encoder()], ['quoteMint', getAddressEncoder()], ['seedQuoteAmount', getU64Encoder()], ['seedNativeDebit', getU64Encoder()]]), [getConstantEncoder(POOL_CREATED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link PoolCreatedEvent} event data. */\nexport function getPoolCreatedEventDecoder(): FixedSizeDecoder<PoolCreatedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['mint', getAddressDecoder()], ['creator', getAddressDecoder()], ['packTokens', getU64Decoder()], ['tiers', getArrayDecoder(getTierDecoder(), { size: 8 })], ['seedTokens', getU64Decoder()], ['extraSeedTokens', getU64Decoder()], ['quoteMint', getAddressDecoder()], ['seedQuoteAmount', getU64Decoder()], ['seedNativeDebit', getU64Decoder()]]), [getConstantDecoder(POOL_CREATED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link PoolCreatedEvent} event data. */\nexport function getPoolCreatedEventCodec(): FixedSizeCodec<PoolCreatedEventArgs, PoolCreatedEvent> {\n return combineCodec(getPoolCreatedEventEncoder(), getPoolCreatedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link PoolCreatedEvent} event data. */\nexport function parsePoolCreatedEvent(data: ReadonlyUint8Array | Uint8Array): PoolCreatedEvent {\n if (containsBytes(data, POOL_CREATED_EVENT_DISCRIMINATOR, 0)) { return getPoolCreatedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"PoolCreatedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const PRIZES_FUNDED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([188, 129, 185, 44, 234, 71, 53, 60]);\n\nexport function getPrizesFundedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(PRIZES_FUNDED_EVENT_DISCRIMINATOR); }\n\nexport type PrizesFundedEvent = { pool: Address; funder: Address; amount: bigint; };\n\nexport type PrizesFundedEventArgs = { pool: Address; funder: Address; amount: number | bigint; };\n\n/** Gets the encoder for {@link PrizesFundedEventArgs} event data. */\nexport function getPrizesFundedEventEncoder(): FixedSizeEncoder<PrizesFundedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['funder', getAddressEncoder()], ['amount', getU64Encoder()]]), [getConstantEncoder(PRIZES_FUNDED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link PrizesFundedEvent} event data. */\nexport function getPrizesFundedEventDecoder(): FixedSizeDecoder<PrizesFundedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['funder', getAddressDecoder()], ['amount', getU64Decoder()]]), [getConstantDecoder(PRIZES_FUNDED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link PrizesFundedEvent} event data. */\nexport function getPrizesFundedEventCodec(): FixedSizeCodec<PrizesFundedEventArgs, PrizesFundedEvent> {\n return combineCodec(getPrizesFundedEventEncoder(), getPrizesFundedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link PrizesFundedEvent} event data. */\nexport function parsePrizesFundedEvent(data: ReadonlyUint8Array | Uint8Array): PrizesFundedEvent {\n if (containsBytes(data, PRIZES_FUNDED_EVENT_DISCRIMINATOR, 0)) { return getPrizesFundedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"PrizesFundedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([243, 30, 148, 22, 14, 127, 52, 140]);\n\nexport function getRandomnessRetriedEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR); }\n\nexport type RandomnessRetriedEvent = { pool: Address; seq: bigint; attempt: number; };\n\nexport type RandomnessRetriedEventArgs = { pool: Address; seq: number | bigint; attempt: number; };\n\n/** Gets the encoder for {@link RandomnessRetriedEventArgs} event data. */\nexport function getRandomnessRetriedEventEncoder(): FixedSizeEncoder<RandomnessRetriedEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seq', getU64Encoder()], ['attempt', getU8Encoder()]]), [getConstantEncoder(RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link RandomnessRetriedEvent} event data. */\nexport function getRandomnessRetriedEventDecoder(): FixedSizeDecoder<RandomnessRetriedEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seq', getU64Decoder()], ['attempt', getU8Decoder()]]), [getConstantDecoder(RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link RandomnessRetriedEvent} event data. */\nexport function getRandomnessRetriedEventCodec(): FixedSizeCodec<RandomnessRetriedEventArgs, RandomnessRetriedEvent> {\n return combineCodec(getRandomnessRetriedEventEncoder(), getRandomnessRetriedEventDecoder());\n}\n\n/** Parses the provided bytes into {@link RandomnessRetriedEvent} event data. */\nexport function parseRandomnessRetriedEvent(data: ReadonlyUint8Array | Uint8Array): RandomnessRetriedEvent {\n if (containsBytes(data, RANDOMNESS_RETRIED_EVENT_DISCRIMINATOR, 0)) { return getRandomnessRetriedEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"RandomnessRetriedEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, containsBytes, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesEncoder, getConstantDecoder, getConstantEncoder, getHiddenPrefixDecoder, getHiddenPrefixEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from '@solana/kit';\n\nexport const TOKENS_SOLD_EVENT_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([217, 83, 68, 137, 134, 225, 94, 45]);\n\nexport function getTokensSoldEventDiscriminatorBytes(): ReadonlyUint8Array { return fixEncoderSize(getBytesEncoder(), 8).encode(TOKENS_SOLD_EVENT_DISCRIMINATOR); }\n\nexport type TokensSoldEvent = { pool: Address; seller: Address; venue: Address; quoteMint: Address; amount: bigint; quoteProceeds: bigint; nativeDebit: bigint; };\n\nexport type TokensSoldEventArgs = { pool: Address; seller: Address; venue: Address; quoteMint: Address; amount: number | bigint; quoteProceeds: number | bigint; nativeDebit: number | bigint; };\n\n/** Gets the encoder for {@link TokensSoldEventArgs} event data. */\nexport function getTokensSoldEventEncoder(): FixedSizeEncoder<TokensSoldEventArgs> {\n return getHiddenPrefixEncoder(getStructEncoder([['pool', getAddressEncoder()], ['seller', getAddressEncoder()], ['venue', getAddressEncoder()], ['quoteMint', getAddressEncoder()], ['amount', getU64Encoder()], ['quoteProceeds', getU64Encoder()], ['nativeDebit', getU64Encoder()]]), [getConstantEncoder(TOKENS_SOLD_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the decoder for {@link TokensSoldEvent} event data. */\nexport function getTokensSoldEventDecoder(): FixedSizeDecoder<TokensSoldEvent> {\n return getHiddenPrefixDecoder(getStructDecoder([['pool', getAddressDecoder()], ['seller', getAddressDecoder()], ['venue', getAddressDecoder()], ['quoteMint', getAddressDecoder()], ['amount', getU64Decoder()], ['quoteProceeds', getU64Decoder()], ['nativeDebit', getU64Decoder()]]), [getConstantDecoder(TOKENS_SOLD_EVENT_DISCRIMINATOR)]);\n}\n\n/** Gets the codec for {@link TokensSoldEvent} event data. */\nexport function getTokensSoldEventCodec(): FixedSizeCodec<TokensSoldEventArgs, TokensSoldEvent> {\n return combineCodec(getTokensSoldEventEncoder(), getTokensSoldEventDecoder());\n}\n\n/** Parses the provided bytes into {@link TokensSoldEvent} event data. */\nexport function parseTokensSoldEvent(data: ReadonlyUint8Array | Uint8Array): TokensSoldEvent {\n if (containsBytes(data, TOKENS_SOLD_EVENT_DISCRIMINATOR, 0)) { return getTokensSoldEventDecoder().decode(data); }\n throw new Error('The provided data does not match the \"TokensSoldEvent\" event discriminators.');\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { isProgramError, type Address, type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM, type SolanaError } from '@solana/kit';\nimport { GABOX_PROGRAM_ADDRESS } from '../programs';\n\n/** Arithmetic: Arithmetic overflow or inconsistent accounting */\nexport const GABOX_ERROR__ARITHMETIC = 0x1770; // 6000\n/** InvalidDistribution: Invalid prize distribution */\nexport const GABOX_ERROR__INVALID_DISTRIBUTION = 0x1771; // 6001\n/** UnfundedExpectation: Expected token award exceeds tokens purchased */\nexport const GABOX_ERROR__UNFUNDED_EXPECTATION = 0x1772; // 6002\n/** UnsupportedMint: Mint must have 6 decimals and no mint or freeze authority */\nexport const GABOX_ERROR__UNSUPPORTED_MINT = 0x1773; // 6003\n/** InsolventInventory: Prize inventory does not cover reservations */\nexport const GABOX_ERROR__INSOLVENT_INVENTORY = 0x1774; // 6004\n/** PrizeCapChanged: Top prize is below the signed minimum; refresh the offer */\nexport const GABOX_ERROR__PRIZE_CAP_CHANGED = 0x1775; // 6005\n/** PackTooSmall: A pack pays zero tokens on some tier */\nexport const GABOX_ERROR__PACK_TOO_SMALL = 0x1776; // 6006\n/** JackpotBelowOnePack: The largest tier must pay at least one pack */\nexport const GABOX_ERROR__JACKPOT_BELOW_ONE_PACK = 0x1777; // 6007\n/** InvalidVenue: Incorrect trade program, account order, or token binding */\nexport const GABOX_ERROR__INVALID_VENUE = 0x1778; // 6008\n/** IncorrectTokenDelta: Trade did not move the exact token amount */\nexport const GABOX_ERROR__INCORRECT_TOKEN_DELTA = 0x1779; // 6009\n/** SlippageExceeded: Spend exceeds the signed limit */\nexport const GABOX_ERROR__SLIPPAGE_EXCEEDED = 0x177a; // 6010\n/** RetryTooSoon: Retry interval has not elapsed */\nexport const GABOX_ERROR__RETRY_TOO_SOON = 0x177b; // 6011\n/** RetryUnavailable: Retry limit reached or draw expired */\nexport const GABOX_ERROR__RETRY_UNAVAILABLE = 0x177c; // 6012\n/** NotExpired: Oracle timeout has not elapsed */\nexport const GABOX_ERROR__NOT_EXPIRED = 0x177d; // 6013\n/** ZeroAmount: Amount must be positive */\nexport const GABOX_ERROR__ZERO_AMOUNT = 0x177e; // 6014\n/** InvalidLaunch: LaunchLab create instruction is malformed or missing before this instruction */\nexport const GABOX_ERROR__INVALID_LAUNCH = 0x177f; // 6015\n/** InvalidQuote: Quote mint or quote token program is unsupported */\nexport const GABOX_ERROR__INVALID_QUOTE = 0x1780; // 6016\n/** WalletActivityMismatch: Wallet activity account belongs to a different wallet */\nexport const GABOX_ERROR__WALLET_ACTIVITY_MISMATCH = 0x1781; // 6017\n\nexport type GaboxError = typeof GABOX_ERROR__ARITHMETIC | typeof GABOX_ERROR__INCORRECT_TOKEN_DELTA | typeof GABOX_ERROR__INSOLVENT_INVENTORY | typeof GABOX_ERROR__INVALID_DISTRIBUTION | typeof GABOX_ERROR__INVALID_LAUNCH | typeof GABOX_ERROR__INVALID_QUOTE | typeof GABOX_ERROR__INVALID_VENUE | typeof GABOX_ERROR__JACKPOT_BELOW_ONE_PACK | typeof GABOX_ERROR__NOT_EXPIRED | typeof GABOX_ERROR__PACK_TOO_SMALL | typeof GABOX_ERROR__PRIZE_CAP_CHANGED | typeof GABOX_ERROR__RETRY_TOO_SOON | typeof GABOX_ERROR__RETRY_UNAVAILABLE | typeof GABOX_ERROR__SLIPPAGE_EXCEEDED | typeof GABOX_ERROR__UNFUNDED_EXPECTATION | typeof GABOX_ERROR__UNSUPPORTED_MINT | typeof GABOX_ERROR__WALLET_ACTIVITY_MISMATCH | typeof GABOX_ERROR__ZERO_AMOUNT;\n\nlet gaboxErrorMessages: Record<GaboxError, string> | undefined;\nif (process.env['NODE_ENV'] !== 'production') {\n gaboxErrorMessages = { [GABOX_ERROR__ARITHMETIC]: `Arithmetic overflow or inconsistent accounting`, [GABOX_ERROR__INCORRECT_TOKEN_DELTA]: `Trade did not move the exact token amount`, [GABOX_ERROR__INSOLVENT_INVENTORY]: `Prize inventory does not cover reservations`, [GABOX_ERROR__INVALID_DISTRIBUTION]: `Invalid prize distribution`, [GABOX_ERROR__INVALID_LAUNCH]: `LaunchLab create instruction is malformed or missing before this instruction`, [GABOX_ERROR__INVALID_QUOTE]: `Quote mint or quote token program is unsupported`, [GABOX_ERROR__INVALID_VENUE]: `Incorrect trade program, account order, or token binding`, [GABOX_ERROR__JACKPOT_BELOW_ONE_PACK]: `The largest tier must pay at least one pack`, [GABOX_ERROR__NOT_EXPIRED]: `Oracle timeout has not elapsed`, [GABOX_ERROR__PACK_TOO_SMALL]: `A pack pays zero tokens on some tier`, [GABOX_ERROR__PRIZE_CAP_CHANGED]: `Top prize is below the signed minimum; refresh the offer`, [GABOX_ERROR__RETRY_TOO_SOON]: `Retry interval has not elapsed`, [GABOX_ERROR__RETRY_UNAVAILABLE]: `Retry limit reached or draw expired`, [GABOX_ERROR__SLIPPAGE_EXCEEDED]: `Spend exceeds the signed limit`, [GABOX_ERROR__UNFUNDED_EXPECTATION]: `Expected token award exceeds tokens purchased`, [GABOX_ERROR__UNSUPPORTED_MINT]: `Mint must have 6 decimals and no mint or freeze authority`, [GABOX_ERROR__WALLET_ACTIVITY_MISMATCH]: `Wallet activity account belongs to a different wallet`, [GABOX_ERROR__ZERO_AMOUNT]: `Amount must be positive` };\n}\n\nexport function getGaboxErrorMessage(code: GaboxError): string {\n if (process.env['NODE_ENV'] !== 'production') {\n return (gaboxErrorMessages as Record<GaboxError, string>)[code];\n }\n\n return 'Error message not available in production bundles.';\n}\n\nexport function isGaboxError<TProgramErrorCode extends GaboxError>(\n error: unknown,\n transactionMessage: { instructions: Record<number, { programAddress: Address }> },\n code?: TProgramErrorCode,\n): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> & Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {\n return isProgramError<TProgramErrorCode>(error, transactionMessage, GABOX_PROGRAM_ADDRESS, code);\n}","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nexport * from './accounts';\nexport * from './errors';\nexport * from './events';\nexport * from './instructions';\nexport * from './pdas';\nexport * from './programs';\nexport * from './types';"],"mappings":"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"}
|