@dropsy/airdrop 0.0.3 → 0.1.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/dist/index.d.mts +535 -152
- package/dist/index.d.ts +535 -152
- package/dist/index.js +1470 -570
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1610 -665
- package/dist/index.mjs.map +1 -0
- package/package.json +56 -52
- package/readme.md +105 -0
- package/README.md +0 -30
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/accounts/airdrop.ts","../src/accounts/bitmapAccount.ts","../src/accounts/controller.ts","../src/accounts/master.ts","../src/accounts/stats.ts","../src/errors/dropsy.ts","../src/programs/dropsy.ts","../src/instructions/claimTokens.ts","../src/shared/index.ts","../src/instructions/closeAirdrop.ts","../src/instructions/closeBitmap.ts","../src/instructions/depositTokens.ts","../src/instructions/initializeAirdrop.ts","../src/instructions/initializeBitmap.ts","../src/instructions/initializeController.ts","../src/instructions/initializeMaster.ts","../src/instructions/withdrawControllerFees.ts","../src/types/airdropClosed.ts","../src/types/airdropInitialized.ts","../src/types/bitmapClosed.ts","../src/types/bitmapInitialized.ts","../src/types/controllerInitialized.ts","../src/types/feesCollected.ts","../src/types/masterInitialized.ts","../src/types/tokensDeposited.ts","../src/utils/client.ts","../src/utils/derive.ts","../src/constants/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\nexport * from \"./accounts\";\nexport * from \"./errors\";\nexport * from \"./instructions\";\nexport * from \"./programs\";\nexport * from \"./types\";\nexport * from \"./utils\";\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 {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getArrayDecoder,\n getArrayEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getI64Decoder,\n getI64Encoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const AIRDROP_DISCRIMINATOR = new Uint8Array([\n 31, 112, 159, 158, 124, 237, 9, 241,\n]);\n\nexport function getAirdropDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(AIRDROP_DISCRIMINATOR);\n}\n\nexport type Airdrop = {\n discriminator: ReadonlyUint8Array;\n authority: Address;\n mint: Address;\n controller: Address;\n supply: bigint;\n merkleRoot: Array<number>;\n startsAt: bigint;\n endsAt: bigint;\n bitmapCount: number;\n version: number;\n bump: number;\n};\n\nexport type AirdropArgs = {\n authority: Address;\n mint: Address;\n controller: Address;\n supply: number | bigint;\n merkleRoot: Array<number>;\n startsAt: number | bigint;\n endsAt: number | bigint;\n bitmapCount: number;\n version: number;\n bump: number;\n};\n\nexport function getAirdropEncoder(): Encoder<AirdropArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['authority', getAddressEncoder()],\n ['mint', getAddressEncoder()],\n ['controller', getAddressEncoder()],\n ['supply', getU64Encoder()],\n ['merkleRoot', getArrayEncoder(getU8Encoder(), { size: 32 })],\n ['startsAt', getI64Encoder()],\n ['endsAt', getI64Encoder()],\n ['bitmapCount', getU8Encoder()],\n ['version', getU8Encoder()],\n ['bump', getU8Encoder()],\n ]),\n (value) => ({ ...value, discriminator: AIRDROP_DISCRIMINATOR })\n );\n}\n\nexport function getAirdropDecoder(): Decoder<Airdrop> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['authority', getAddressDecoder()],\n ['mint', getAddressDecoder()],\n ['controller', getAddressDecoder()],\n ['supply', getU64Decoder()],\n ['merkleRoot', getArrayDecoder(getU8Decoder(), { size: 32 })],\n ['startsAt', getI64Decoder()],\n ['endsAt', getI64Decoder()],\n ['bitmapCount', getU8Decoder()],\n ['version', getU8Decoder()],\n ['bump', getU8Decoder()],\n ]);\n}\n\nexport function getAirdropCodec(): Codec<AirdropArgs, Airdrop> {\n return combineCodec(getAirdropEncoder(), getAirdropDecoder());\n}\n\nexport function decodeAirdrop<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>\n): Account<Airdrop, TAddress>;\nexport function decodeAirdrop<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>\n): MaybeAccount<Airdrop, TAddress>;\nexport function decodeAirdrop<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>\n): Account<Airdrop, TAddress> | MaybeAccount<Airdrop, TAddress> {\n return decodeAccount(\n encodedAccount as MaybeEncodedAccount<TAddress>,\n getAirdropDecoder()\n );\n}\n\nexport async function fetchAirdrop<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<Account<Airdrop, TAddress>> {\n const maybeAccount = await fetchMaybeAirdrop(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeAirdrop<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<MaybeAccount<Airdrop, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeAirdrop(maybeAccount);\n}\n\nexport async function fetchAllAirdrop(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<Account<Airdrop>[]> {\n const maybeAccounts = await fetchAllMaybeAirdrop(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeAirdrop(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<MaybeAccount<Airdrop>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) => decodeAirdrop(maybeAccount));\n}\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 {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const BITMAP_ACCOUNT_DISCRIMINATOR = new Uint8Array([\n 152, 161, 147, 85, 213, 38, 59, 48,\n]);\n\nexport function getBitmapAccountDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n BITMAP_ACCOUNT_DISCRIMINATOR\n );\n}\n\nexport type BitmapAccount = {\n discriminator: ReadonlyUint8Array;\n authority: Address;\n airdrop: Address;\n claimedBitmap: ReadonlyUint8Array;\n id: number;\n version: number;\n bump: number;\n};\n\nexport type BitmapAccountArgs = {\n authority: Address;\n airdrop: Address;\n claimedBitmap: ReadonlyUint8Array;\n id: number;\n version: number;\n bump: number;\n};\n\nexport function getBitmapAccountEncoder(): Encoder<BitmapAccountArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['authority', getAddressEncoder()],\n ['airdrop', getAddressEncoder()],\n [\n 'claimedBitmap',\n addEncoderSizePrefix(getBytesEncoder(), getU32Encoder()),\n ],\n ['id', getU8Encoder()],\n ['version', getU8Encoder()],\n ['bump', getU8Encoder()],\n ]),\n (value) => ({ ...value, discriminator: BITMAP_ACCOUNT_DISCRIMINATOR })\n );\n}\n\nexport function getBitmapAccountDecoder(): Decoder<BitmapAccount> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['authority', getAddressDecoder()],\n ['airdrop', getAddressDecoder()],\n ['claimedBitmap', addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())],\n ['id', getU8Decoder()],\n ['version', getU8Decoder()],\n ['bump', getU8Decoder()],\n ]);\n}\n\nexport function getBitmapAccountCodec(): Codec<\n BitmapAccountArgs,\n BitmapAccount\n> {\n return combineCodec(getBitmapAccountEncoder(), getBitmapAccountDecoder());\n}\n\nexport function decodeBitmapAccount<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>\n): Account<BitmapAccount, TAddress>;\nexport function decodeBitmapAccount<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>\n): MaybeAccount<BitmapAccount, TAddress>;\nexport function decodeBitmapAccount<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>\n): Account<BitmapAccount, TAddress> | MaybeAccount<BitmapAccount, TAddress> {\n return decodeAccount(\n encodedAccount as MaybeEncodedAccount<TAddress>,\n getBitmapAccountDecoder()\n );\n}\n\nexport async function fetchBitmapAccount<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<Account<BitmapAccount, TAddress>> {\n const maybeAccount = await fetchMaybeBitmapAccount(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeBitmapAccount<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<MaybeAccount<BitmapAccount, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeBitmapAccount(maybeAccount);\n}\n\nexport async function fetchAllBitmapAccount(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<Account<BitmapAccount>[]> {\n const maybeAccounts = await fetchAllMaybeBitmapAccount(\n rpc,\n addresses,\n config\n );\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeBitmapAccount(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<MaybeAccount<BitmapAccount>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) => decodeBitmapAccount(maybeAccount));\n}\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 {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const CONTROLLER_DISCRIMINATOR = new Uint8Array([\n 184, 79, 171, 0, 183, 43, 113, 110,\n]);\n\nexport function getControllerDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(CONTROLLER_DISCRIMINATOR);\n}\n\nexport type Controller = {\n discriminator: ReadonlyUint8Array;\n /** the controller authority // 32 */\n authority: Address;\n /** Fee vault address derived from authority publicKey // 32 */\n feeVault: Address;\n /** Fee amount (in lamports) to create or close an airdrop using this controller //8 */\n feeLamports: bigint;\n /** version for a controller for upcoming upgrades // 1 */\n version: number;\n /** PDA bump seed // 1 */\n bump: number;\n /** fee vault bump seed // 1 */\n feeVaultBump: number;\n};\n\nexport type ControllerArgs = {\n /** the controller authority // 32 */\n authority: Address;\n /** Fee vault address derived from authority publicKey // 32 */\n feeVault: Address;\n /** Fee amount (in lamports) to create or close an airdrop using this controller //8 */\n feeLamports: number | bigint;\n /** version for a controller for upcoming upgrades // 1 */\n version: number;\n /** PDA bump seed // 1 */\n bump: number;\n /** fee vault bump seed // 1 */\n feeVaultBump: number;\n};\n\nexport function getControllerEncoder(): Encoder<ControllerArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['authority', getAddressEncoder()],\n ['feeVault', getAddressEncoder()],\n ['feeLamports', getU64Encoder()],\n ['version', getU8Encoder()],\n ['bump', getU8Encoder()],\n ['feeVaultBump', getU8Encoder()],\n ]),\n (value) => ({ ...value, discriminator: CONTROLLER_DISCRIMINATOR })\n );\n}\n\nexport function getControllerDecoder(): Decoder<Controller> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['authority', getAddressDecoder()],\n ['feeVault', getAddressDecoder()],\n ['feeLamports', getU64Decoder()],\n ['version', getU8Decoder()],\n ['bump', getU8Decoder()],\n ['feeVaultBump', getU8Decoder()],\n ]);\n}\n\nexport function getControllerCodec(): Codec<ControllerArgs, Controller> {\n return combineCodec(getControllerEncoder(), getControllerDecoder());\n}\n\nexport function decodeController<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>\n): Account<Controller, TAddress>;\nexport function decodeController<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>\n): MaybeAccount<Controller, TAddress>;\nexport function decodeController<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>\n): Account<Controller, TAddress> | MaybeAccount<Controller, TAddress> {\n return decodeAccount(\n encodedAccount as MaybeEncodedAccount<TAddress>,\n getControllerDecoder()\n );\n}\n\nexport async function fetchController<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<Account<Controller, TAddress>> {\n const maybeAccount = await fetchMaybeController(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeController<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<MaybeAccount<Controller, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeController(maybeAccount);\n}\n\nexport async function fetchAllController(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<Account<Controller>[]> {\n const maybeAccounts = await fetchAllMaybeController(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeController(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<MaybeAccount<Controller>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) => decodeController(maybeAccount));\n}\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 {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const MASTER_DISCRIMINATOR = new Uint8Array([\n 168, 213, 193, 12, 77, 162, 58, 235,\n]);\n\nexport function getMasterDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(MASTER_DISCRIMINATOR);\n}\n\nexport type Master = {\n discriminator: ReadonlyUint8Array;\n /** the controller authority // 32 */\n authority: Address;\n /** Fee vault pda address // 32 */\n feeVault: Address;\n /** Fee amount (in lamports) to create an airdrop using this controller // 8 */\n protocolFee: bigint;\n /** feebase for withdrawing fees earned from controller // 8 */\n withdrawFee: bigint;\n /** Fee amount (in lamports) to claim an airdrop created with this controller //8 */\n initControllerFee: bigint;\n /** version for later upgrades // 1 */\n version: number;\n /** PDA bump seed // 1 */\n bump: number;\n};\n\nexport type MasterArgs = {\n /** the controller authority // 32 */\n authority: Address;\n /** Fee vault pda address // 32 */\n feeVault: Address;\n /** Fee amount (in lamports) to create an airdrop using this controller // 8 */\n protocolFee: number | bigint;\n /** feebase for withdrawing fees earned from controller // 8 */\n withdrawFee: number | bigint;\n /** Fee amount (in lamports) to claim an airdrop created with this controller //8 */\n initControllerFee: number | bigint;\n /** version for later upgrades // 1 */\n version: number;\n /** PDA bump seed // 1 */\n bump: number;\n};\n\nexport function getMasterEncoder(): Encoder<MasterArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['authority', getAddressEncoder()],\n ['feeVault', getAddressEncoder()],\n ['protocolFee', getU64Encoder()],\n ['withdrawFee', getU64Encoder()],\n ['initControllerFee', getU64Encoder()],\n ['version', getU8Encoder()],\n ['bump', getU8Encoder()],\n ]),\n (value) => ({ ...value, discriminator: MASTER_DISCRIMINATOR })\n );\n}\n\nexport function getMasterDecoder(): Decoder<Master> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['authority', getAddressDecoder()],\n ['feeVault', getAddressDecoder()],\n ['protocolFee', getU64Decoder()],\n ['withdrawFee', getU64Decoder()],\n ['initControllerFee', getU64Decoder()],\n ['version', getU8Decoder()],\n ['bump', getU8Decoder()],\n ]);\n}\n\nexport function getMasterCodec(): Codec<MasterArgs, Master> {\n return combineCodec(getMasterEncoder(), getMasterDecoder());\n}\n\nexport function decodeMaster<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>\n): Account<Master, TAddress>;\nexport function decodeMaster<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>\n): MaybeAccount<Master, TAddress>;\nexport function decodeMaster<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>\n): Account<Master, TAddress> | MaybeAccount<Master, TAddress> {\n return decodeAccount(\n encodedAccount as MaybeEncodedAccount<TAddress>,\n getMasterDecoder()\n );\n}\n\nexport async function fetchMaster<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<Account<Master, TAddress>> {\n const maybeAccount = await fetchMaybeMaster(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeMaster<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<MaybeAccount<Master, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeMaster(maybeAccount);\n}\n\nexport async function fetchAllMaster(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<Account<Master>[]> {\n const maybeAccounts = await fetchAllMaybeMaster(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeMaster(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<MaybeAccount<Master>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) => decodeMaster(maybeAccount));\n}\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 {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const STATS_DISCRIMINATOR = new Uint8Array([\n 190, 125, 51, 63, 169, 197, 36, 238,\n]);\n\nexport function getStatsDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(STATS_DISCRIMINATOR);\n}\n\nexport type Stats = {\n discriminator: ReadonlyUint8Array;\n /** initialized controllers // 8 */\n initializedControllers: bigint;\n /** initialized airdrops // 8 */\n initializedAirdrops: bigint;\n /** initialized claim_maps // 8 */\n initializedClaimMaps: bigint;\n /** closed airdrops */\n closedAirdrops: bigint;\n /** closed claim map */\n closedClaimMap: bigint;\n /** PDA bump seed */\n bump: number;\n};\n\nexport type StatsArgs = {\n /** initialized controllers // 8 */\n initializedControllers: number | bigint;\n /** initialized airdrops // 8 */\n initializedAirdrops: number | bigint;\n /** initialized claim_maps // 8 */\n initializedClaimMaps: number | bigint;\n /** closed airdrops */\n closedAirdrops: number | bigint;\n /** closed claim map */\n closedClaimMap: number | bigint;\n /** PDA bump seed */\n bump: number;\n};\n\nexport function getStatsEncoder(): Encoder<StatsArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['initializedControllers', getU64Encoder()],\n ['initializedAirdrops', getU64Encoder()],\n ['initializedClaimMaps', getU64Encoder()],\n ['closedAirdrops', getU64Encoder()],\n ['closedClaimMap', getU64Encoder()],\n ['bump', getU8Encoder()],\n ]),\n (value) => ({ ...value, discriminator: STATS_DISCRIMINATOR })\n );\n}\n\nexport function getStatsDecoder(): Decoder<Stats> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['initializedControllers', getU64Decoder()],\n ['initializedAirdrops', getU64Decoder()],\n ['initializedClaimMaps', getU64Decoder()],\n ['closedAirdrops', getU64Decoder()],\n ['closedClaimMap', getU64Decoder()],\n ['bump', getU8Decoder()],\n ]);\n}\n\nexport function getStatsCodec(): Codec<StatsArgs, Stats> {\n return combineCodec(getStatsEncoder(), getStatsDecoder());\n}\n\nexport function decodeStats<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>\n): Account<Stats, TAddress>;\nexport function decodeStats<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>\n): MaybeAccount<Stats, TAddress>;\nexport function decodeStats<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>\n): Account<Stats, TAddress> | MaybeAccount<Stats, TAddress> {\n return decodeAccount(\n encodedAccount as MaybeEncodedAccount<TAddress>,\n getStatsDecoder()\n );\n}\n\nexport async function fetchStats<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<Account<Stats, TAddress>> {\n const maybeAccount = await fetchMaybeStats(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeStats<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<MaybeAccount<Stats, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeStats(maybeAccount);\n}\n\nexport async function fetchAllStats(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<Account<Stats>[]> {\n const maybeAccounts = await fetchAllMaybeStats(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeStats(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<MaybeAccount<Stats>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) => decodeStats(maybeAccount));\n}\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 {\n isProgramError,\n type Address,\n type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,\n type SolanaError,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\n\n/** AirdropNotStarted: Airdrop has not started yet */\nexport const DROPSY_ERROR__AIRDROP_NOT_STARTED = 0x17d4; // 6100\n/** AirdropEnded: Airdrop has already ended */\nexport const DROPSY_ERROR__AIRDROP_ENDED = 0x17d5; // 6101\n/** AirdropNotEnded: Airdrop not yet ended */\nexport const DROPSY_ERROR__AIRDROP_NOT_ENDED = 0x17d6; // 6102\n/** DurationTooShort: Airdrop duration must be at least 24 hours */\nexport const DROPSY_ERROR__DURATION_TOO_SHORT = 0x17d7; // 6103\n/** InvalidEndTime: Airdrop must end at least 24 hours in the future */\nexport const DROPSY_ERROR__INVALID_END_TIME = 0x17d8; // 6104\n/** InvalidOwner: Transaction sender is not the owner */\nexport const DROPSY_ERROR__INVALID_OWNER = 0x1838; // 6200\n/** OwnerMismatch: Airdrop owner mismatch */\nexport const DROPSY_ERROR__OWNER_MISMATCH = 0x1839; // 6201\n/** InvalidVaultAuthority: Invalid vault authority */\nexport const DROPSY_ERROR__INVALID_VAULT_AUTHORITY = 0x183a; // 6202\n/** InvalidDestinationOwner: Destination account owner is not the signer */\nexport const DROPSY_ERROR__INVALID_DESTINATION_OWNER = 0x183b; // 6203\n/** ControllerMismatch: Mismatched controller */\nexport const DROPSY_ERROR__CONTROLLER_MISMATCH = 0x183c; // 6204\n/** InvalidMint: Mint does not match stored state */\nexport const DROPSY_ERROR__INVALID_MINT = 0x189c; // 6300\n/** MintMismatch: Provided mint doesn't match airdrop's mint */\nexport const DROPSY_ERROR__MINT_MISMATCH = 0x189d; // 6301\n/** VaultMintMismatch: Vault mint doesn't match airdrop mint */\nexport const DROPSY_ERROR__VAULT_MINT_MISMATCH = 0x189e; // 6302\n/** DestinationMintMismatch: Destination mint doesn't match */\nexport const DROPSY_ERROR__DESTINATION_MINT_MISMATCH = 0x189f; // 6303\n/** MintIsFrozen: Mint is frozen */\nexport const DROPSY_ERROR__MINT_IS_FROZEN = 0x18a0; // 6304\n/** InvalidMintOwner: Invalid token program owner */\nexport const DROPSY_ERROR__INVALID_MINT_OWNER = 0x18a1; // 6305\n/** MintIsNotInitialized: Mint must be initialized */\nexport const DROPSY_ERROR__MINT_IS_NOT_INITIALIZED = 0x18a2; // 6306\n/** MintHasFreezeAuthority: Mint has freeze authority */\nexport const DROPSY_ERROR__MINT_HAS_FREEZE_AUTHORITY = 0x18a3; // 6307\n/** NftNotAllowed: Fungible tokens only (no NFTs) */\nexport const DROPSY_ERROR__NFT_NOT_ALLOWED = 0x18a4; // 6308\n/** VaultHasDelegate: Vault has delegate set */\nexport const DROPSY_ERROR__VAULT_HAS_DELEGATE = 0x1901; // 6401\n/** VaultFrozen: Vault is frozen */\nexport const DROPSY_ERROR__VAULT_FROZEN = 0x1902; // 6402\n/** VaultHasCloseAuthority: Vault has close authority */\nexport const DROPSY_ERROR__VAULT_HAS_CLOSE_AUTHORITY = 0x1903; // 6403\n/** InvalidAirdropPda: Invalid vault account */\nexport const DROPSY_ERROR__INVALID_AIRDROP_PDA = 0x1904; // 6404\n/** VaultNotInitialized: Vault not initialized */\nexport const DROPSY_ERROR__VAULT_NOT_INITIALIZED = 0x1905; // 6405\n/** InsufficientVaultFunds: Insufficient vault funds */\nexport const DROPSY_ERROR__INSUFFICIENT_VAULT_FUNDS = 0x1906; // 6406\n/** SourceHasDelegate: Source has delegate set */\nexport const DROPSY_ERROR__SOURCE_HAS_DELEGATE = 0x1932; // 6450\n/** SourceAccountFrozen: Source account is frozen */\nexport const DROPSY_ERROR__SOURCE_ACCOUNT_FROZEN = 0x1933; // 6451\n/** SourceHasCloseAuthority: Source has close authority */\nexport const DROPSY_ERROR__SOURCE_HAS_CLOSE_AUTHORITY = 0x1934; // 6452\n/** InvalidProof: Invalid merkle proof */\nexport const DROPSY_ERROR__INVALID_PROOF = 0x1964; // 6500\n/** AlreadyClaimed: Tokens already claimed */\nexport const DROPSY_ERROR__ALREADY_CLAIMED = 0x1965; // 6501\n/** MissingBitmapPda: Missing bitmap PDA */\nexport const DROPSY_ERROR__MISSING_BITMAP_PDA = 0x1966; // 6502\n/** InvalidBitmapAccount: Invalid bitmap account */\nexport const DROPSY_ERROR__INVALID_BITMAP_ACCOUNT = 0x1967; // 6503\n/** InvalidBitmapIndex: Invalid bitmap index */\nexport const DROPSY_ERROR__INVALID_BITMAP_INDEX = 0x1968; // 6504\n/** TooManyBitmaps: Too many bitmap accounts */\nexport const DROPSY_ERROR__TOO_MANY_BITMAPS = 0x1969; // 6505\n/** BitmapTooLarge: Bitmap size exceeds limit */\nexport const DROPSY_ERROR__BITMAP_TOO_LARGE = 0x196a; // 6506\n/** InvalidTotal: Invalid total claimers */\nexport const DROPSY_ERROR__INVALID_TOTAL = 0x196b; // 6507\n/** BitmapAirdropMismatch: Bitmap/airdrop mismatch */\nexport const DROPSY_ERROR__BITMAP_AIRDROP_MISMATCH = 0x196c; // 6508\n/** ActiveBitmapsExist: Active bitmaps exist */\nexport const DROPSY_ERROR__ACTIVE_BITMAPS_EXIST = 0x196d; // 6509\n/** BitmapCountUnderflow: Bitmaps already closed */\nexport const DROPSY_ERROR__BITMAP_COUNT_UNDERFLOW = 0x196e; // 6510\n/** InsufficientDeposit: Insufficient SOL deposit */\nexport const DROPSY_ERROR__INSUFFICIENT_DEPOSIT = 0x19c8; // 6600\n/** CreateFeeTooHigh: Create fee too high (>0.05 SOL) */\nexport const DROPSY_ERROR__CREATE_FEE_TOO_HIGH = 0x19c9; // 6601\n/** ClaimFeeTooHigh: Claim fee too high (>0.005 SOL) */\nexport const DROPSY_ERROR__CLAIM_FEE_TOO_HIGH = 0x19ca; // 6602\n/** InsufficientFundsForFee: Insufficient funds for fee */\nexport const DROPSY_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 0x19cb; // 6603\n/** InvalidFeeVault: Invalid fee vault */\nexport const DROPSY_ERROR__INVALID_FEE_VAULT = 0x19cc; // 6604\n/** InvalidFeeVaultOwner: Invalid fee vault owner */\nexport const DROPSY_ERROR__INVALID_FEE_VAULT_OWNER = 0x19cd; // 6605\n/** InvalidFeeVaultCurve: Fee vault not in curve */\nexport const DROPSY_ERROR__INVALID_FEE_VAULT_CURVE = 0x19ce; // 6606\n/** InvalidPda: Invalid PDA account */\nexport const DROPSY_ERROR__INVALID_PDA = 0x1a2c; // 6700\n/** InvalidAmount: Invalid amount */\nexport const DROPSY_ERROR__INVALID_AMOUNT = 0x1a2d; // 6701\n/** Overflow: Arithmetic overflow */\nexport const DROPSY_ERROR__OVERFLOW = 0x1a2e; // 6702\n/** VaultNotRentExempt: Vault not rent exempt */\nexport const DROPSY_ERROR__VAULT_NOT_RENT_EXEMPT = 0x1a2f; // 6703\n/** InvalidTreasuryAccount: invalid treasury account */\nexport const DROPSY_ERROR__INVALID_TREASURY_ACCOUNT = 0x1a30; // 6704\n\nexport type DropsyError =\n | typeof DROPSY_ERROR__ACTIVE_BITMAPS_EXIST\n | typeof DROPSY_ERROR__AIRDROP_ENDED\n | typeof DROPSY_ERROR__AIRDROP_NOT_ENDED\n | typeof DROPSY_ERROR__AIRDROP_NOT_STARTED\n | typeof DROPSY_ERROR__ALREADY_CLAIMED\n | typeof DROPSY_ERROR__BITMAP_AIRDROP_MISMATCH\n | typeof DROPSY_ERROR__BITMAP_COUNT_UNDERFLOW\n | typeof DROPSY_ERROR__BITMAP_TOO_LARGE\n | typeof DROPSY_ERROR__CLAIM_FEE_TOO_HIGH\n | typeof DROPSY_ERROR__CONTROLLER_MISMATCH\n | typeof DROPSY_ERROR__CREATE_FEE_TOO_HIGH\n | typeof DROPSY_ERROR__DESTINATION_MINT_MISMATCH\n | typeof DROPSY_ERROR__DURATION_TOO_SHORT\n | typeof DROPSY_ERROR__INSUFFICIENT_DEPOSIT\n | typeof DROPSY_ERROR__INSUFFICIENT_FUNDS_FOR_FEE\n | typeof DROPSY_ERROR__INSUFFICIENT_VAULT_FUNDS\n | typeof DROPSY_ERROR__INVALID_AIRDROP_PDA\n | typeof DROPSY_ERROR__INVALID_AMOUNT\n | typeof DROPSY_ERROR__INVALID_BITMAP_ACCOUNT\n | typeof DROPSY_ERROR__INVALID_BITMAP_INDEX\n | typeof DROPSY_ERROR__INVALID_DESTINATION_OWNER\n | typeof DROPSY_ERROR__INVALID_END_TIME\n | typeof DROPSY_ERROR__INVALID_FEE_VAULT\n | typeof DROPSY_ERROR__INVALID_FEE_VAULT_CURVE\n | typeof DROPSY_ERROR__INVALID_FEE_VAULT_OWNER\n | typeof DROPSY_ERROR__INVALID_MINT\n | typeof DROPSY_ERROR__INVALID_MINT_OWNER\n | typeof DROPSY_ERROR__INVALID_OWNER\n | typeof DROPSY_ERROR__INVALID_PDA\n | typeof DROPSY_ERROR__INVALID_PROOF\n | typeof DROPSY_ERROR__INVALID_TOTAL\n | typeof DROPSY_ERROR__INVALID_TREASURY_ACCOUNT\n | typeof DROPSY_ERROR__INVALID_VAULT_AUTHORITY\n | typeof DROPSY_ERROR__MINT_HAS_FREEZE_AUTHORITY\n | typeof DROPSY_ERROR__MINT_IS_FROZEN\n | typeof DROPSY_ERROR__MINT_IS_NOT_INITIALIZED\n | typeof DROPSY_ERROR__MINT_MISMATCH\n | typeof DROPSY_ERROR__MISSING_BITMAP_PDA\n | typeof DROPSY_ERROR__NFT_NOT_ALLOWED\n | typeof DROPSY_ERROR__OVERFLOW\n | typeof DROPSY_ERROR__OWNER_MISMATCH\n | typeof DROPSY_ERROR__SOURCE_ACCOUNT_FROZEN\n | typeof DROPSY_ERROR__SOURCE_HAS_CLOSE_AUTHORITY\n | typeof DROPSY_ERROR__SOURCE_HAS_DELEGATE\n | typeof DROPSY_ERROR__TOO_MANY_BITMAPS\n | typeof DROPSY_ERROR__VAULT_FROZEN\n | typeof DROPSY_ERROR__VAULT_HAS_CLOSE_AUTHORITY\n | typeof DROPSY_ERROR__VAULT_HAS_DELEGATE\n | typeof DROPSY_ERROR__VAULT_MINT_MISMATCH\n | typeof DROPSY_ERROR__VAULT_NOT_INITIALIZED\n | typeof DROPSY_ERROR__VAULT_NOT_RENT_EXEMPT;\n\nlet dropsyErrorMessages: Record<DropsyError, string> | undefined;\nif (process.env.NODE_ENV !== 'production') {\n dropsyErrorMessages = {\n [DROPSY_ERROR__ACTIVE_BITMAPS_EXIST]: `Active bitmaps exist`,\n [DROPSY_ERROR__AIRDROP_ENDED]: `Airdrop has already ended`,\n [DROPSY_ERROR__AIRDROP_NOT_ENDED]: `Airdrop not yet ended`,\n [DROPSY_ERROR__AIRDROP_NOT_STARTED]: `Airdrop has not started yet`,\n [DROPSY_ERROR__ALREADY_CLAIMED]: `Tokens already claimed`,\n [DROPSY_ERROR__BITMAP_AIRDROP_MISMATCH]: `Bitmap/airdrop mismatch`,\n [DROPSY_ERROR__BITMAP_COUNT_UNDERFLOW]: `Bitmaps already closed`,\n [DROPSY_ERROR__BITMAP_TOO_LARGE]: `Bitmap size exceeds limit`,\n [DROPSY_ERROR__CLAIM_FEE_TOO_HIGH]: `Claim fee too high (>0.005 SOL)`,\n [DROPSY_ERROR__CONTROLLER_MISMATCH]: `Mismatched controller`,\n [DROPSY_ERROR__CREATE_FEE_TOO_HIGH]: `Create fee too high (>0.05 SOL)`,\n [DROPSY_ERROR__DESTINATION_MINT_MISMATCH]: `Destination mint doesn't match`,\n [DROPSY_ERROR__DURATION_TOO_SHORT]: `Airdrop duration must be at least 24 hours`,\n [DROPSY_ERROR__INSUFFICIENT_DEPOSIT]: `Insufficient SOL deposit`,\n [DROPSY_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: `Insufficient funds for fee`,\n [DROPSY_ERROR__INSUFFICIENT_VAULT_FUNDS]: `Insufficient vault funds`,\n [DROPSY_ERROR__INVALID_AIRDROP_PDA]: `Invalid vault account`,\n [DROPSY_ERROR__INVALID_AMOUNT]: `Invalid amount`,\n [DROPSY_ERROR__INVALID_BITMAP_ACCOUNT]: `Invalid bitmap account`,\n [DROPSY_ERROR__INVALID_BITMAP_INDEX]: `Invalid bitmap index`,\n [DROPSY_ERROR__INVALID_DESTINATION_OWNER]: `Destination account owner is not the signer`,\n [DROPSY_ERROR__INVALID_END_TIME]: `Airdrop must end at least 24 hours in the future`,\n [DROPSY_ERROR__INVALID_FEE_VAULT]: `Invalid fee vault`,\n [DROPSY_ERROR__INVALID_FEE_VAULT_CURVE]: `Fee vault not in curve`,\n [DROPSY_ERROR__INVALID_FEE_VAULT_OWNER]: `Invalid fee vault owner`,\n [DROPSY_ERROR__INVALID_MINT]: `Mint does not match stored state`,\n [DROPSY_ERROR__INVALID_MINT_OWNER]: `Invalid token program owner`,\n [DROPSY_ERROR__INVALID_OWNER]: `Transaction sender is not the owner`,\n [DROPSY_ERROR__INVALID_PDA]: `Invalid PDA account`,\n [DROPSY_ERROR__INVALID_PROOF]: `Invalid merkle proof`,\n [DROPSY_ERROR__INVALID_TOTAL]: `Invalid total claimers`,\n [DROPSY_ERROR__INVALID_TREASURY_ACCOUNT]: `invalid treasury account`,\n [DROPSY_ERROR__INVALID_VAULT_AUTHORITY]: `Invalid vault authority`,\n [DROPSY_ERROR__MINT_HAS_FREEZE_AUTHORITY]: `Mint has freeze authority`,\n [DROPSY_ERROR__MINT_IS_FROZEN]: `Mint is frozen`,\n [DROPSY_ERROR__MINT_IS_NOT_INITIALIZED]: `Mint must be initialized`,\n [DROPSY_ERROR__MINT_MISMATCH]: `Provided mint doesn't match airdrop's mint`,\n [DROPSY_ERROR__MISSING_BITMAP_PDA]: `Missing bitmap PDA`,\n [DROPSY_ERROR__NFT_NOT_ALLOWED]: `Fungible tokens only (no NFTs)`,\n [DROPSY_ERROR__OVERFLOW]: `Arithmetic overflow`,\n [DROPSY_ERROR__OWNER_MISMATCH]: `Airdrop owner mismatch`,\n [DROPSY_ERROR__SOURCE_ACCOUNT_FROZEN]: `Source account is frozen`,\n [DROPSY_ERROR__SOURCE_HAS_CLOSE_AUTHORITY]: `Source has close authority`,\n [DROPSY_ERROR__SOURCE_HAS_DELEGATE]: `Source has delegate set`,\n [DROPSY_ERROR__TOO_MANY_BITMAPS]: `Too many bitmap accounts`,\n [DROPSY_ERROR__VAULT_FROZEN]: `Vault is frozen`,\n [DROPSY_ERROR__VAULT_HAS_CLOSE_AUTHORITY]: `Vault has close authority`,\n [DROPSY_ERROR__VAULT_HAS_DELEGATE]: `Vault has delegate set`,\n [DROPSY_ERROR__VAULT_MINT_MISMATCH]: `Vault mint doesn't match airdrop mint`,\n [DROPSY_ERROR__VAULT_NOT_INITIALIZED]: `Vault not initialized`,\n [DROPSY_ERROR__VAULT_NOT_RENT_EXEMPT]: `Vault not rent exempt`,\n };\n}\n\nexport function getDropsyErrorMessage(code: DropsyError): string {\n if (process.env.NODE_ENV !== 'production') {\n return (dropsyErrorMessages as Record<DropsyError, string>)[code];\n }\n\n return 'Error message not available in production bundles.';\n}\n\nexport function isDropsyError<TProgramErrorCode extends DropsyError>(\n error: unknown,\n transactionMessage: {\n instructions: Record<number, { programAddress: Address }>;\n },\n code?: TProgramErrorCode\n): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> &\n Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {\n return isProgramError<TProgramErrorCode>(\n error,\n transactionMessage,\n DROPSY_PROGRAM_ADDRESS,\n code\n );\n}\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 {\n containsBytes,\n fixEncoderSize,\n getBytesEncoder,\n type Address,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n type ParsedClaimTokensInstruction,\n type ParsedCloseAirdropInstruction,\n type ParsedCloseBitmapInstruction,\n type ParsedDepositTokensInstruction,\n type ParsedInitializeAirdropInstruction,\n type ParsedInitializeBitmapInstruction,\n type ParsedInitializeControllerInstruction,\n type ParsedInitializeMasterInstruction,\n type ParsedWithdrawControllerFeesInstruction,\n} from '../instructions';\n\nexport const DROPSY_PROGRAM_ADDRESS =\n 'DropmEfonJRZyPaRQbPgn4nrt3cDi5678bLbzVQRvgLp' as Address<'DropmEfonJRZyPaRQbPgn4nrt3cDi5678bLbzVQRvgLp'>;\n\nexport enum DropsyAccount {\n Airdrop,\n BitmapAccount,\n Controller,\n Master,\n Stats,\n}\n\nexport function identifyDropsyAccount(\n account: { data: ReadonlyUint8Array } | ReadonlyUint8Array\n): DropsyAccount {\n const data = 'data' in account ? account.data : account;\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([31, 112, 159, 158, 124, 237, 9, 241])\n ),\n 0\n )\n ) {\n return DropsyAccount.Airdrop;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([152, 161, 147, 85, 213, 38, 59, 48])\n ),\n 0\n )\n ) {\n return DropsyAccount.BitmapAccount;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([184, 79, 171, 0, 183, 43, 113, 110])\n ),\n 0\n )\n ) {\n return DropsyAccount.Controller;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([168, 213, 193, 12, 77, 162, 58, 235])\n ),\n 0\n )\n ) {\n return DropsyAccount.Master;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([190, 125, 51, 63, 169, 197, 36, 238])\n ),\n 0\n )\n ) {\n return DropsyAccount.Stats;\n }\n throw new Error(\n 'The provided account could not be identified as a dropsy account.'\n );\n}\n\nexport enum DropsyInstruction {\n ClaimTokens,\n CloseAirdrop,\n CloseBitmap,\n DepositTokens,\n InitializeAirdrop,\n InitializeBitmap,\n InitializeController,\n InitializeMaster,\n WithdrawControllerFees,\n}\n\nexport function identifyDropsyInstruction(\n instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array\n): DropsyInstruction {\n const data = 'data' in instruction ? instruction.data : instruction;\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([108, 216, 210, 231, 0, 212, 42, 64])\n ),\n 0\n )\n ) {\n return DropsyInstruction.ClaimTokens;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([85, 138, 99, 129, 104, 203, 94, 4])\n ),\n 0\n )\n ) {\n return DropsyInstruction.CloseAirdrop;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([59, 123, 115, 204, 163, 227, 37, 118])\n ),\n 0\n )\n ) {\n return DropsyInstruction.CloseBitmap;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([176, 83, 229, 18, 191, 143, 176, 150])\n ),\n 0\n )\n ) {\n return DropsyInstruction.DepositTokens;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([96, 196, 74, 102, 61, 195, 48, 184])\n ),\n 0\n )\n ) {\n return DropsyInstruction.InitializeAirdrop;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([25, 109, 200, 45, 209, 118, 74, 69])\n ),\n 0\n )\n ) {\n return DropsyInstruction.InitializeBitmap;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([137, 255, 100, 190, 201, 247, 241, 81])\n ),\n 0\n )\n ) {\n return DropsyInstruction.InitializeController;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([206, 91, 246, 30, 216, 101, 134, 166])\n ),\n 0\n )\n ) {\n return DropsyInstruction.InitializeMaster;\n }\n if (\n containsBytes(\n data,\n fixEncoderSize(getBytesEncoder(), 8).encode(\n new Uint8Array([252, 199, 14, 46, 100, 156, 176, 230])\n ),\n 0\n )\n ) {\n return DropsyInstruction.WithdrawControllerFees;\n }\n throw new Error(\n 'The provided instruction could not be identified as a dropsy instruction.'\n );\n}\n\nexport type ParsedDropsyInstruction<\n TProgram extends string = 'DropmEfonJRZyPaRQbPgn4nrt3cDi5678bLbzVQRvgLp',\n> =\n | ({\n instructionType: DropsyInstruction.ClaimTokens;\n } & ParsedClaimTokensInstruction<TProgram>)\n | ({\n instructionType: DropsyInstruction.CloseAirdrop;\n } & ParsedCloseAirdropInstruction<TProgram>)\n | ({\n instructionType: DropsyInstruction.CloseBitmap;\n } & ParsedCloseBitmapInstruction<TProgram>)\n | ({\n instructionType: DropsyInstruction.DepositTokens;\n } & ParsedDepositTokensInstruction<TProgram>)\n | ({\n instructionType: DropsyInstruction.InitializeAirdrop;\n } & ParsedInitializeAirdropInstruction<TProgram>)\n | ({\n instructionType: DropsyInstruction.InitializeBitmap;\n } & ParsedInitializeBitmapInstruction<TProgram>)\n | ({\n instructionType: DropsyInstruction.InitializeController;\n } & ParsedInitializeControllerInstruction<TProgram>)\n | ({\n instructionType: DropsyInstruction.InitializeMaster;\n } & ParsedInitializeMasterInstruction<TProgram>)\n | ({\n instructionType: DropsyInstruction.WithdrawControllerFees;\n } & ParsedWithdrawControllerFeesInstruction<TProgram>);\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getArrayDecoder,\n getArrayEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport { getAccountMetaFactory, type ResolvedAccount } from '../shared';\n\nexport const CLAIM_TOKENS_DISCRIMINATOR = new Uint8Array([\n 108, 216, 210, 231, 0, 212, 42, 64,\n]);\n\nexport function getClaimTokensDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n CLAIM_TOKENS_DISCRIMINATOR\n );\n}\n\nexport type ClaimTokensInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountVault extends string | IAccountMeta<string> = string,\n TAccountDestinationTokenAccount extends\n | string\n | IAccountMeta<string> = string,\n TAccountAirdrop extends string | IAccountMeta<string> = string,\n TAccountBitmap extends string | IAccountMeta<string> = string,\n TAccountMint extends string | IAccountMeta<string> = string,\n TAccountClaimer extends string | IAccountMeta<string> = string,\n TAccountTreasury extends\n | string\n | IAccountMeta<string> = 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV',\n TAccountTokenProgram extends\n | string\n | IAccountMeta<string> = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',\n TAccountSystemProgram extends\n | string\n | IAccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountVault extends string\n ? WritableAccount<TAccountVault>\n : TAccountVault,\n TAccountDestinationTokenAccount extends string\n ? WritableAccount<TAccountDestinationTokenAccount>\n : TAccountDestinationTokenAccount,\n TAccountAirdrop extends string\n ? ReadonlyAccount<TAccountAirdrop>\n : TAccountAirdrop,\n TAccountBitmap extends string\n ? WritableAccount<TAccountBitmap>\n : TAccountBitmap,\n TAccountMint extends string\n ? ReadonlyAccount<TAccountMint>\n : TAccountMint,\n TAccountClaimer extends string\n ? WritableSignerAccount<TAccountClaimer> &\n IAccountSignerMeta<TAccountClaimer>\n : TAccountClaimer,\n TAccountTreasury extends string\n ? WritableAccount<TAccountTreasury>\n : TAccountTreasury,\n TAccountTokenProgram extends string\n ? ReadonlyAccount<TAccountTokenProgram>\n : TAccountTokenProgram,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type ClaimTokensInstructionData = {\n discriminator: ReadonlyUint8Array;\n index: bigint;\n proof: Array<Array<number>>;\n amount: bigint;\n};\n\nexport type ClaimTokensInstructionDataArgs = {\n index: number | bigint;\n proof: Array<Array<number>>;\n amount: number | bigint;\n};\n\nexport function getClaimTokensInstructionDataEncoder(): Encoder<ClaimTokensInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['index', getU64Encoder()],\n ['proof', getArrayEncoder(getArrayEncoder(getU8Encoder(), { size: 32 }))],\n ['amount', getU64Encoder()],\n ]),\n (value) => ({ ...value, discriminator: CLAIM_TOKENS_DISCRIMINATOR })\n );\n}\n\nexport function getClaimTokensInstructionDataDecoder(): Decoder<ClaimTokensInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['index', getU64Decoder()],\n ['proof', getArrayDecoder(getArrayDecoder(getU8Decoder(), { size: 32 }))],\n ['amount', getU64Decoder()],\n ]);\n}\n\nexport function getClaimTokensInstructionDataCodec(): Codec<\n ClaimTokensInstructionDataArgs,\n ClaimTokensInstructionData\n> {\n return combineCodec(\n getClaimTokensInstructionDataEncoder(),\n getClaimTokensInstructionDataDecoder()\n );\n}\n\nexport type ClaimTokensInput<\n TAccountVault extends string = string,\n TAccountDestinationTokenAccount extends string = string,\n TAccountAirdrop extends string = string,\n TAccountBitmap extends string = string,\n TAccountMint extends string = string,\n TAccountClaimer extends string = string,\n TAccountTreasury extends string = string,\n TAccountTokenProgram extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n vault: Address<TAccountVault>;\n destinationTokenAccount: Address<TAccountDestinationTokenAccount>;\n airdrop: Address<TAccountAirdrop>;\n bitmap: Address<TAccountBitmap>;\n mint: Address<TAccountMint>;\n claimer: TransactionSigner<TAccountClaimer>;\n treasury?: Address<TAccountTreasury>;\n tokenProgram?: Address<TAccountTokenProgram>;\n systemProgram?: Address<TAccountSystemProgram>;\n index: ClaimTokensInstructionDataArgs['index'];\n proof: ClaimTokensInstructionDataArgs['proof'];\n amount: ClaimTokensInstructionDataArgs['amount'];\n};\n\nexport function getClaimTokensInstruction<\n TAccountVault extends string,\n TAccountDestinationTokenAccount extends string,\n TAccountAirdrop extends string,\n TAccountBitmap extends string,\n TAccountMint extends string,\n TAccountClaimer extends string,\n TAccountTreasury extends string,\n TAccountTokenProgram extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: ClaimTokensInput<\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountMint,\n TAccountClaimer,\n TAccountTreasury,\n TAccountTokenProgram,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): ClaimTokensInstruction<\n TProgramAddress,\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountMint,\n TAccountClaimer,\n TAccountTreasury,\n TAccountTokenProgram,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n vault: { value: input.vault ?? null, isWritable: true },\n destinationTokenAccount: {\n value: input.destinationTokenAccount ?? null,\n isWritable: true,\n },\n airdrop: { value: input.airdrop ?? null, isWritable: false },\n bitmap: { value: input.bitmap ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: false },\n claimer: { value: input.claimer ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' as Address<'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.vault),\n getAccountMeta(accounts.destinationTokenAccount),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.bitmap),\n getAccountMeta(accounts.mint),\n getAccountMeta(accounts.claimer),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.tokenProgram),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getClaimTokensInstructionDataEncoder().encode(\n args as ClaimTokensInstructionDataArgs\n ),\n } as ClaimTokensInstruction<\n TProgramAddress,\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountMint,\n TAccountClaimer,\n TAccountTreasury,\n TAccountTokenProgram,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedClaimTokensInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n vault: TAccountMetas[0];\n destinationTokenAccount: TAccountMetas[1];\n airdrop: TAccountMetas[2];\n bitmap: TAccountMetas[3];\n mint: TAccountMetas[4];\n claimer: TAccountMetas[5];\n treasury: TAccountMetas[6];\n tokenProgram: TAccountMetas[7];\n systemProgram: TAccountMetas[8];\n };\n data: ClaimTokensInstructionData;\n};\n\nexport function parseClaimTokensInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedClaimTokensInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 9) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n vault: getNextAccount(),\n destinationTokenAccount: getNextAccount(),\n airdrop: getNextAccount(),\n bitmap: getNextAccount(),\n mint: getNextAccount(),\n claimer: getNextAccount(),\n treasury: getNextAccount(),\n tokenProgram: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getClaimTokensInstructionDataDecoder().decode(instruction.data),\n };\n}\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 {\n AccountRole,\n isProgramDerivedAddress,\n isTransactionSigner as kitIsTransactionSigner,\n type Address,\n type IAccountMeta,\n type IAccountSignerMeta,\n type ProgramDerivedAddress,\n type TransactionSigner,\n upgradeRoleToSigner,\n} from '@solana/kit';\n\n/**\n * Asserts that the given value is not null or undefined.\n * @internal\n */\nexport function expectSome<T>(value: T | null | undefined): T {\n if (value == null) {\n throw new Error('Expected a value but received null or undefined.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a PublicKey.\n * @internal\n */\nexport function expectAddress<T extends string = string>(\n value:\n | Address<T>\n | ProgramDerivedAddress<T>\n | TransactionSigner<T>\n | null\n | undefined\n): Address<T> {\n if (!value) {\n throw new Error('Expected a Address.');\n }\n if (typeof value === 'object' && 'address' in value) {\n return value.address;\n }\n if (Array.isArray(value)) {\n return value[0];\n }\n return value as Address<T>;\n}\n\n/**\n * Asserts that the given value is a PDA.\n * @internal\n */\nexport function expectProgramDerivedAddress<T extends string = string>(\n value:\n | Address<T>\n | ProgramDerivedAddress<T>\n | TransactionSigner<T>\n | null\n | undefined\n): ProgramDerivedAddress<T> {\n if (!value || !Array.isArray(value) || !isProgramDerivedAddress(value)) {\n throw new Error('Expected a ProgramDerivedAddress.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a TransactionSigner.\n * @internal\n */\nexport function expectTransactionSigner<T extends string = string>(\n value:\n | Address<T>\n | ProgramDerivedAddress<T>\n | TransactionSigner<T>\n | null\n | undefined\n): TransactionSigner<T> {\n if (!value || !isTransactionSigner(value)) {\n throw new Error('Expected a TransactionSigner.');\n }\n return value;\n}\n\n/**\n * Defines an instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccount<\n T extends string = string,\n U extends\n | Address<T>\n | ProgramDerivedAddress<T>\n | TransactionSigner<T>\n | null =\n | Address<T>\n | ProgramDerivedAddress<T>\n | TransactionSigner<T>\n | null,\n> = {\n isWritable: boolean;\n value: U;\n};\n\n/**\n * Defines an instruction that stores additional bytes on-chain.\n * @internal\n */\nexport type IInstructionWithByteDelta = {\n byteDelta: number;\n};\n\n/**\n * Get account metas and signers from resolved accounts.\n * @internal\n */\nexport function getAccountMetaFactory(\n programAddress: Address,\n optionalAccountStrategy: 'omitted' | 'programId'\n) {\n return (\n account: ResolvedAccount\n ): IAccountMeta | IAccountSignerMeta | undefined => {\n if (!account.value) {\n if (optionalAccountStrategy === 'omitted') return;\n return Object.freeze({\n address: programAddress,\n role: AccountRole.READONLY,\n });\n }\n\n const writableRole = account.isWritable\n ? AccountRole.WRITABLE\n : AccountRole.READONLY;\n return Object.freeze({\n address: expectAddress(account.value),\n role: isTransactionSigner(account.value)\n ? upgradeRoleToSigner(writableRole)\n : writableRole,\n ...(isTransactionSigner(account.value) ? { signer: account.value } : {}),\n });\n };\n}\n\nexport function isTransactionSigner<TAddress extends string = string>(\n value:\n | Address<TAddress>\n | ProgramDerivedAddress<TAddress>\n | TransactionSigner<TAddress>\n): value is TransactionSigner<TAddress> {\n return (\n !!value &&\n typeof value === 'object' &&\n 'address' in value &&\n kitIsTransactionSigner(value)\n );\n}\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport {\n expectAddress,\n getAccountMetaFactory,\n type ResolvedAccount,\n} from '../shared';\n\nexport const CLOSE_AIRDROP_DISCRIMINATOR = new Uint8Array([\n 85, 138, 99, 129, 104, 203, 94, 4,\n]);\n\nexport function getCloseAirdropDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n CLOSE_AIRDROP_DISCRIMINATOR\n );\n}\n\nexport type CloseAirdropInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountStats extends string | IAccountMeta<string> = string,\n TAccountController extends string | IAccountMeta<string> = string,\n TAccountFeeVault extends string | IAccountMeta<string> = string,\n TAccountAirdrop extends string | IAccountMeta<string> = string,\n TAccountVault extends string | IAccountMeta<string> = string,\n TAccountDestinationTokenAccount extends\n | string\n | IAccountMeta<string> = string,\n TAccountAuthority extends string | IAccountMeta<string> = string,\n TAccountMint extends string | IAccountMeta<string> = string,\n TAccountTokenProgram extends\n | string\n | IAccountMeta<string> = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',\n TAccountSystemProgram extends\n | string\n | IAccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountStats extends string\n ? WritableAccount<TAccountStats>\n : TAccountStats,\n TAccountController extends string\n ? WritableAccount<TAccountController>\n : TAccountController,\n TAccountFeeVault extends string\n ? WritableAccount<TAccountFeeVault>\n : TAccountFeeVault,\n TAccountAirdrop extends string\n ? WritableAccount<TAccountAirdrop>\n : TAccountAirdrop,\n TAccountVault extends string\n ? WritableAccount<TAccountVault>\n : TAccountVault,\n TAccountDestinationTokenAccount extends string\n ? WritableAccount<TAccountDestinationTokenAccount>\n : TAccountDestinationTokenAccount,\n TAccountAuthority extends string\n ? WritableSignerAccount<TAccountAuthority> &\n IAccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountMint extends string\n ? ReadonlyAccount<TAccountMint>\n : TAccountMint,\n TAccountTokenProgram extends string\n ? ReadonlyAccount<TAccountTokenProgram>\n : TAccountTokenProgram,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CloseAirdropInstructionData = { discriminator: ReadonlyUint8Array };\n\nexport type CloseAirdropInstructionDataArgs = {};\n\nexport function getCloseAirdropInstructionDataEncoder(): Encoder<CloseAirdropInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]),\n (value) => ({ ...value, discriminator: CLOSE_AIRDROP_DISCRIMINATOR })\n );\n}\n\nexport function getCloseAirdropInstructionDataDecoder(): Decoder<CloseAirdropInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ]);\n}\n\nexport function getCloseAirdropInstructionDataCodec(): Codec<\n CloseAirdropInstructionDataArgs,\n CloseAirdropInstructionData\n> {\n return combineCodec(\n getCloseAirdropInstructionDataEncoder(),\n getCloseAirdropInstructionDataDecoder()\n );\n}\n\nexport type CloseAirdropAsyncInput<\n TAccountStats extends string = string,\n TAccountController extends string = string,\n TAccountFeeVault extends string = string,\n TAccountAirdrop extends string = string,\n TAccountVault extends string = string,\n TAccountDestinationTokenAccount extends string = string,\n TAccountAuthority extends string = string,\n TAccountMint extends string = string,\n TAccountTokenProgram extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n stats?: Address<TAccountStats>;\n controller: Address<TAccountController>;\n feeVault?: Address<TAccountFeeVault>;\n airdrop: Address<TAccountAirdrop>;\n vault: Address<TAccountVault>;\n destinationTokenAccount: Address<TAccountDestinationTokenAccount>;\n authority: TransactionSigner<TAccountAuthority>;\n mint: Address<TAccountMint>;\n tokenProgram?: Address<TAccountTokenProgram>;\n systemProgram?: Address<TAccountSystemProgram>;\n};\n\nexport async function getCloseAirdropInstructionAsync<\n TAccountStats extends string,\n TAccountController extends string,\n TAccountFeeVault extends string,\n TAccountAirdrop extends string,\n TAccountVault extends string,\n TAccountDestinationTokenAccount extends string,\n TAccountAuthority extends string,\n TAccountMint extends string,\n TAccountTokenProgram extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: CloseAirdropAsyncInput<\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountAirdrop,\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAuthority,\n TAccountMint,\n TAccountTokenProgram,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): Promise<\n CloseAirdropInstruction<\n TProgramAddress,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountAirdrop,\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAuthority,\n TAccountMint,\n TAccountTokenProgram,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n stats: { value: input.stats ?? null, isWritable: true },\n controller: { value: input.controller ?? null, isWritable: true },\n feeVault: { value: input.feeVault ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n vault: { value: input.vault ?? null, isWritable: true },\n destinationTokenAccount: {\n value: input.destinationTokenAccount ?? null,\n isWritable: true,\n },\n authority: { value: input.authority ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: false },\n tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Resolve default values.\n if (!accounts.stats.value) {\n accounts.stats.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([115, 116, 97, 116, 115])),\n ],\n });\n }\n if (!accounts.feeVault.value) {\n accounts.feeVault.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([118, 97, 117, 108, 116])),\n getAddressEncoder().encode(expectAddress(accounts.controller.value)),\n ],\n });\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' as Address<'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.controller),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.vault),\n getAccountMeta(accounts.destinationTokenAccount),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.mint),\n getAccountMeta(accounts.tokenProgram),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getCloseAirdropInstructionDataEncoder().encode({}),\n } as CloseAirdropInstruction<\n TProgramAddress,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountAirdrop,\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAuthority,\n TAccountMint,\n TAccountTokenProgram,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type CloseAirdropInput<\n TAccountStats extends string = string,\n TAccountController extends string = string,\n TAccountFeeVault extends string = string,\n TAccountAirdrop extends string = string,\n TAccountVault extends string = string,\n TAccountDestinationTokenAccount extends string = string,\n TAccountAuthority extends string = string,\n TAccountMint extends string = string,\n TAccountTokenProgram extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n stats: Address<TAccountStats>;\n controller: Address<TAccountController>;\n feeVault: Address<TAccountFeeVault>;\n airdrop: Address<TAccountAirdrop>;\n vault: Address<TAccountVault>;\n destinationTokenAccount: Address<TAccountDestinationTokenAccount>;\n authority: TransactionSigner<TAccountAuthority>;\n mint: Address<TAccountMint>;\n tokenProgram?: Address<TAccountTokenProgram>;\n systemProgram?: Address<TAccountSystemProgram>;\n};\n\nexport function getCloseAirdropInstruction<\n TAccountStats extends string,\n TAccountController extends string,\n TAccountFeeVault extends string,\n TAccountAirdrop extends string,\n TAccountVault extends string,\n TAccountDestinationTokenAccount extends string,\n TAccountAuthority extends string,\n TAccountMint extends string,\n TAccountTokenProgram extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: CloseAirdropInput<\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountAirdrop,\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAuthority,\n TAccountMint,\n TAccountTokenProgram,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): CloseAirdropInstruction<\n TProgramAddress,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountAirdrop,\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAuthority,\n TAccountMint,\n TAccountTokenProgram,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n stats: { value: input.stats ?? null, isWritable: true },\n controller: { value: input.controller ?? null, isWritable: true },\n feeVault: { value: input.feeVault ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n vault: { value: input.vault ?? null, isWritable: true },\n destinationTokenAccount: {\n value: input.destinationTokenAccount ?? null,\n isWritable: true,\n },\n authority: { value: input.authority ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: false },\n tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Resolve default values.\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' as Address<'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.controller),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.vault),\n getAccountMeta(accounts.destinationTokenAccount),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.mint),\n getAccountMeta(accounts.tokenProgram),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getCloseAirdropInstructionDataEncoder().encode({}),\n } as CloseAirdropInstruction<\n TProgramAddress,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountAirdrop,\n TAccountVault,\n TAccountDestinationTokenAccount,\n TAccountAuthority,\n TAccountMint,\n TAccountTokenProgram,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedCloseAirdropInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n stats: TAccountMetas[0];\n controller: TAccountMetas[1];\n feeVault: TAccountMetas[2];\n airdrop: TAccountMetas[3];\n vault: TAccountMetas[4];\n destinationTokenAccount: TAccountMetas[5];\n authority: TAccountMetas[6];\n mint: TAccountMetas[7];\n tokenProgram: TAccountMetas[8];\n systemProgram: TAccountMetas[9];\n };\n data: CloseAirdropInstructionData;\n};\n\nexport function parseCloseAirdropInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedCloseAirdropInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 10) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n stats: getNextAccount(),\n controller: getNextAccount(),\n feeVault: getNextAccount(),\n airdrop: getNextAccount(),\n vault: getNextAccount(),\n destinationTokenAccount: getNextAccount(),\n authority: getNextAccount(),\n mint: getNextAccount(),\n tokenProgram: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getCloseAirdropInstructionDataDecoder().decode(instruction.data),\n };\n}\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport { getAccountMetaFactory, type ResolvedAccount } from '../shared';\n\nexport const CLOSE_BITMAP_DISCRIMINATOR = new Uint8Array([\n 59, 123, 115, 204, 163, 227, 37, 118,\n]);\n\nexport function getCloseBitmapDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n CLOSE_BITMAP_DISCRIMINATOR\n );\n}\n\nexport type CloseBitmapInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMaster extends string | IAccountMeta<string> = string,\n TAccountStats extends string | IAccountMeta<string> = string,\n TAccountAirdrop extends string | IAccountMeta<string> = string,\n TAccountBitmap extends string | IAccountMeta<string> = string,\n TAccountTreasury extends\n | string\n | IAccountMeta<string> = 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV',\n TAccountAuthority extends string | IAccountMeta<string> = string,\n TAccountSystemProgram extends\n | string\n | IAccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountMaster extends string\n ? ReadonlyAccount<TAccountMaster>\n : TAccountMaster,\n TAccountStats extends string\n ? WritableAccount<TAccountStats>\n : TAccountStats,\n TAccountAirdrop extends string\n ? WritableAccount<TAccountAirdrop>\n : TAccountAirdrop,\n TAccountBitmap extends string\n ? WritableAccount<TAccountBitmap>\n : TAccountBitmap,\n TAccountTreasury extends string\n ? WritableAccount<TAccountTreasury>\n : TAccountTreasury,\n TAccountAuthority extends string\n ? WritableSignerAccount<TAccountAuthority> &\n IAccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CloseBitmapInstructionData = { discriminator: ReadonlyUint8Array };\n\nexport type CloseBitmapInstructionDataArgs = {};\n\nexport function getCloseBitmapInstructionDataEncoder(): Encoder<CloseBitmapInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]),\n (value) => ({ ...value, discriminator: CLOSE_BITMAP_DISCRIMINATOR })\n );\n}\n\nexport function getCloseBitmapInstructionDataDecoder(): Decoder<CloseBitmapInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ]);\n}\n\nexport function getCloseBitmapInstructionDataCodec(): Codec<\n CloseBitmapInstructionDataArgs,\n CloseBitmapInstructionData\n> {\n return combineCodec(\n getCloseBitmapInstructionDataEncoder(),\n getCloseBitmapInstructionDataDecoder()\n );\n}\n\nexport type CloseBitmapAsyncInput<\n TAccountMaster extends string = string,\n TAccountStats extends string = string,\n TAccountAirdrop extends string = string,\n TAccountBitmap extends string = string,\n TAccountTreasury extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master?: Address<TAccountMaster>;\n stats?: Address<TAccountStats>;\n airdrop: Address<TAccountAirdrop>;\n bitmap: Address<TAccountBitmap>;\n treasury?: Address<TAccountTreasury>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n};\n\nexport async function getCloseBitmapInstructionAsync<\n TAccountMaster extends string,\n TAccountStats extends string,\n TAccountAirdrop extends string,\n TAccountBitmap extends string,\n TAccountTreasury extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: CloseBitmapAsyncInput<\n TAccountMaster,\n TAccountStats,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): Promise<\n CloseBitmapInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: false },\n stats: { value: input.stats ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n bitmap: { value: input.bitmap ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Resolve default values.\n if (!accounts.master.value) {\n accounts.master.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([109, 97, 115, 116, 101, 114, 51])\n ),\n ],\n });\n }\n if (!accounts.stats.value) {\n accounts.stats.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([115, 116, 97, 116, 115])),\n ],\n });\n }\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.bitmap),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getCloseBitmapInstructionDataEncoder().encode({}),\n } as CloseBitmapInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type CloseBitmapInput<\n TAccountMaster extends string = string,\n TAccountStats extends string = string,\n TAccountAirdrop extends string = string,\n TAccountBitmap extends string = string,\n TAccountTreasury extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master: Address<TAccountMaster>;\n stats: Address<TAccountStats>;\n airdrop: Address<TAccountAirdrop>;\n bitmap: Address<TAccountBitmap>;\n treasury?: Address<TAccountTreasury>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n};\n\nexport function getCloseBitmapInstruction<\n TAccountMaster extends string,\n TAccountStats extends string,\n TAccountAirdrop extends string,\n TAccountBitmap extends string,\n TAccountTreasury extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: CloseBitmapInput<\n TAccountMaster,\n TAccountStats,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): CloseBitmapInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: false },\n stats: { value: input.stats ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n bitmap: { value: input.bitmap ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Resolve default values.\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.bitmap),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getCloseBitmapInstructionDataEncoder().encode({}),\n } as CloseBitmapInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountAirdrop,\n TAccountBitmap,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedCloseBitmapInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n master: TAccountMetas[0];\n stats: TAccountMetas[1];\n airdrop: TAccountMetas[2];\n bitmap: TAccountMetas[3];\n treasury: TAccountMetas[4];\n authority: TAccountMetas[5];\n systemProgram: TAccountMetas[6];\n };\n data: CloseBitmapInstructionData;\n};\n\nexport function parseCloseBitmapInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedCloseBitmapInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 7) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n master: getNextAccount(),\n stats: getNextAccount(),\n airdrop: getNextAccount(),\n bitmap: getNextAccount(),\n treasury: getNextAccount(),\n authority: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getCloseBitmapInstructionDataDecoder().decode(instruction.data),\n };\n}\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport { getAccountMetaFactory, type ResolvedAccount } from '../shared';\n\nexport const DEPOSIT_TOKENS_DISCRIMINATOR = new Uint8Array([\n 176, 83, 229, 18, 191, 143, 176, 150,\n]);\n\nexport function getDepositTokensDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n DEPOSIT_TOKENS_DISCRIMINATOR\n );\n}\n\nexport type DepositTokensInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountSourceTokenAccount extends string | IAccountMeta<string> = string,\n TAccountVault extends string | IAccountMeta<string> = string,\n TAccountAirdrop extends string | IAccountMeta<string> = string,\n TAccountMint extends string | IAccountMeta<string> = string,\n TAccountAuthority extends string | IAccountMeta<string> = string,\n TAccountTokenProgram extends\n | string\n | IAccountMeta<string> = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountSourceTokenAccount extends string\n ? WritableAccount<TAccountSourceTokenAccount>\n : TAccountSourceTokenAccount,\n TAccountVault extends string\n ? WritableAccount<TAccountVault>\n : TAccountVault,\n TAccountAirdrop extends string\n ? WritableAccount<TAccountAirdrop>\n : TAccountAirdrop,\n TAccountMint extends string\n ? ReadonlyAccount<TAccountMint>\n : TAccountMint,\n TAccountAuthority extends string\n ? ReadonlySignerAccount<TAccountAuthority> &\n IAccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountTokenProgram extends string\n ? ReadonlyAccount<TAccountTokenProgram>\n : TAccountTokenProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type DepositTokensInstructionData = {\n discriminator: ReadonlyUint8Array;\n amount: bigint;\n};\n\nexport type DepositTokensInstructionDataArgs = { amount: number | bigint };\n\nexport function getDepositTokensInstructionDataEncoder(): Encoder<DepositTokensInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['amount', getU64Encoder()],\n ]),\n (value) => ({ ...value, discriminator: DEPOSIT_TOKENS_DISCRIMINATOR })\n );\n}\n\nexport function getDepositTokensInstructionDataDecoder(): Decoder<DepositTokensInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['amount', getU64Decoder()],\n ]);\n}\n\nexport function getDepositTokensInstructionDataCodec(): Codec<\n DepositTokensInstructionDataArgs,\n DepositTokensInstructionData\n> {\n return combineCodec(\n getDepositTokensInstructionDataEncoder(),\n getDepositTokensInstructionDataDecoder()\n );\n}\n\nexport type DepositTokensInput<\n TAccountSourceTokenAccount extends string = string,\n TAccountVault extends string = string,\n TAccountAirdrop extends string = string,\n TAccountMint extends string = string,\n TAccountAuthority extends string = string,\n TAccountTokenProgram extends string = string,\n> = {\n sourceTokenAccount: Address<TAccountSourceTokenAccount>;\n vault: Address<TAccountVault>;\n airdrop: Address<TAccountAirdrop>;\n mint: Address<TAccountMint>;\n authority: TransactionSigner<TAccountAuthority>;\n tokenProgram?: Address<TAccountTokenProgram>;\n amount: DepositTokensInstructionDataArgs['amount'];\n};\n\nexport function getDepositTokensInstruction<\n TAccountSourceTokenAccount extends string,\n TAccountVault extends string,\n TAccountAirdrop extends string,\n TAccountMint extends string,\n TAccountAuthority extends string,\n TAccountTokenProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: DepositTokensInput<\n TAccountSourceTokenAccount,\n TAccountVault,\n TAccountAirdrop,\n TAccountMint,\n TAccountAuthority,\n TAccountTokenProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): DepositTokensInstruction<\n TProgramAddress,\n TAccountSourceTokenAccount,\n TAccountVault,\n TAccountAirdrop,\n TAccountMint,\n TAccountAuthority,\n TAccountTokenProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n sourceTokenAccount: {\n value: input.sourceTokenAccount ?? null,\n isWritable: true,\n },\n vault: { value: input.vault ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: false },\n authority: { value: input.authority ?? null, isWritable: false },\n tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' as Address<'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.sourceTokenAccount),\n getAccountMeta(accounts.vault),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.mint),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.tokenProgram),\n ],\n programAddress,\n data: getDepositTokensInstructionDataEncoder().encode(\n args as DepositTokensInstructionDataArgs\n ),\n } as DepositTokensInstruction<\n TProgramAddress,\n TAccountSourceTokenAccount,\n TAccountVault,\n TAccountAirdrop,\n TAccountMint,\n TAccountAuthority,\n TAccountTokenProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedDepositTokensInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n sourceTokenAccount: TAccountMetas[0];\n vault: TAccountMetas[1];\n airdrop: TAccountMetas[2];\n mint: TAccountMetas[3];\n authority: TAccountMetas[4];\n tokenProgram: TAccountMetas[5];\n };\n data: DepositTokensInstructionData;\n};\n\nexport function parseDepositTokensInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedDepositTokensInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 6) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n sourceTokenAccount: getNextAccount(),\n vault: getNextAccount(),\n airdrop: getNextAccount(),\n mint: getNextAccount(),\n authority: getNextAccount(),\n tokenProgram: getNextAccount(),\n },\n data: getDepositTokensInstructionDataDecoder().decode(instruction.data),\n };\n}\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressEncoder,\n getArrayDecoder,\n getArrayEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getI64Decoder,\n getI64Encoder,\n getOptionDecoder,\n getOptionEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type Option,\n type OptionOrNullable,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport {\n expectAddress,\n getAccountMetaFactory,\n type ResolvedAccount,\n} from '../shared';\n\nexport const INITIALIZE_AIRDROP_DISCRIMINATOR = new Uint8Array([\n 96, 196, 74, 102, 61, 195, 48, 184,\n]);\n\nexport function getInitializeAirdropDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n INITIALIZE_AIRDROP_DISCRIMINATOR\n );\n}\n\nexport type InitializeAirdropInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountStats extends string | IAccountMeta<string> = string,\n TAccountController extends string | IAccountMeta<string> = string,\n TAccountAirdrop extends string | IAccountMeta<string> = string,\n TAccountFeeVault extends string | IAccountMeta<string> = string,\n TAccountMint extends string | IAccountMeta<string> = string,\n TAccountAuthority extends string | IAccountMeta<string> = string,\n TAccountSystemProgram extends\n | string\n | IAccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountStats extends string\n ? WritableAccount<TAccountStats>\n : TAccountStats,\n TAccountController extends string\n ? WritableAccount<TAccountController>\n : TAccountController,\n TAccountAirdrop extends string\n ? WritableAccount<TAccountAirdrop>\n : TAccountAirdrop,\n TAccountFeeVault extends string\n ? WritableAccount<TAccountFeeVault>\n : TAccountFeeVault,\n TAccountMint extends string\n ? ReadonlyAccount<TAccountMint>\n : TAccountMint,\n TAccountAuthority extends string\n ? WritableSignerAccount<TAccountAuthority> &\n IAccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type InitializeAirdropInstructionData = {\n discriminator: ReadonlyUint8Array;\n merkleRoot: Array<number>;\n startsTime: Option<bigint>;\n endTime: Option<bigint>;\n};\n\nexport type InitializeAirdropInstructionDataArgs = {\n merkleRoot: Array<number>;\n startsTime: OptionOrNullable<number | bigint>;\n endTime: OptionOrNullable<number | bigint>;\n};\n\nexport function getInitializeAirdropInstructionDataEncoder(): Encoder<InitializeAirdropInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['merkleRoot', getArrayEncoder(getU8Encoder(), { size: 32 })],\n ['startsTime', getOptionEncoder(getI64Encoder())],\n ['endTime', getOptionEncoder(getI64Encoder())],\n ]),\n (value) => ({ ...value, discriminator: INITIALIZE_AIRDROP_DISCRIMINATOR })\n );\n}\n\nexport function getInitializeAirdropInstructionDataDecoder(): Decoder<InitializeAirdropInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['merkleRoot', getArrayDecoder(getU8Decoder(), { size: 32 })],\n ['startsTime', getOptionDecoder(getI64Decoder())],\n ['endTime', getOptionDecoder(getI64Decoder())],\n ]);\n}\n\nexport function getInitializeAirdropInstructionDataCodec(): Codec<\n InitializeAirdropInstructionDataArgs,\n InitializeAirdropInstructionData\n> {\n return combineCodec(\n getInitializeAirdropInstructionDataEncoder(),\n getInitializeAirdropInstructionDataDecoder()\n );\n}\n\nexport type InitializeAirdropAsyncInput<\n TAccountStats extends string = string,\n TAccountController extends string = string,\n TAccountAirdrop extends string = string,\n TAccountFeeVault extends string = string,\n TAccountMint extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n stats?: Address<TAccountStats>;\n controller: Address<TAccountController>;\n airdrop?: Address<TAccountAirdrop>;\n feeVault?: Address<TAccountFeeVault>;\n mint: Address<TAccountMint>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n merkleRoot: InitializeAirdropInstructionDataArgs['merkleRoot'];\n startsTime: InitializeAirdropInstructionDataArgs['startsTime'];\n endTime: InitializeAirdropInstructionDataArgs['endTime'];\n};\n\nexport async function getInitializeAirdropInstructionAsync<\n TAccountStats extends string,\n TAccountController extends string,\n TAccountAirdrop extends string,\n TAccountFeeVault extends string,\n TAccountMint extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: InitializeAirdropAsyncInput<\n TAccountStats,\n TAccountController,\n TAccountAirdrop,\n TAccountFeeVault,\n TAccountMint,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): Promise<\n InitializeAirdropInstruction<\n TProgramAddress,\n TAccountStats,\n TAccountController,\n TAccountAirdrop,\n TAccountFeeVault,\n TAccountMint,\n TAccountAuthority,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n stats: { value: input.stats ?? null, isWritable: true },\n controller: { value: input.controller ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n feeVault: { value: input.feeVault ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: false },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.stats.value) {\n accounts.stats.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([115, 116, 97, 116, 115])),\n ],\n });\n }\n if (!accounts.airdrop.value) {\n accounts.airdrop.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([97, 105, 114, 100, 114, 111, 112])\n ),\n getAddressEncoder().encode(expectAddress(accounts.mint.value)),\n getAddressEncoder().encode(expectAddress(accounts.authority.value)),\n ],\n });\n }\n if (!accounts.feeVault.value) {\n accounts.feeVault.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([118, 97, 117, 108, 116])),\n getAddressEncoder().encode(expectAddress(accounts.controller.value)),\n ],\n });\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.controller),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.mint),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getInitializeAirdropInstructionDataEncoder().encode(\n args as InitializeAirdropInstructionDataArgs\n ),\n } as InitializeAirdropInstruction<\n TProgramAddress,\n TAccountStats,\n TAccountController,\n TAccountAirdrop,\n TAccountFeeVault,\n TAccountMint,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type InitializeAirdropInput<\n TAccountStats extends string = string,\n TAccountController extends string = string,\n TAccountAirdrop extends string = string,\n TAccountFeeVault extends string = string,\n TAccountMint extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n stats: Address<TAccountStats>;\n controller: Address<TAccountController>;\n airdrop: Address<TAccountAirdrop>;\n feeVault: Address<TAccountFeeVault>;\n mint: Address<TAccountMint>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n merkleRoot: InitializeAirdropInstructionDataArgs['merkleRoot'];\n startsTime: InitializeAirdropInstructionDataArgs['startsTime'];\n endTime: InitializeAirdropInstructionDataArgs['endTime'];\n};\n\nexport function getInitializeAirdropInstruction<\n TAccountStats extends string,\n TAccountController extends string,\n TAccountAirdrop extends string,\n TAccountFeeVault extends string,\n TAccountMint extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: InitializeAirdropInput<\n TAccountStats,\n TAccountController,\n TAccountAirdrop,\n TAccountFeeVault,\n TAccountMint,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): InitializeAirdropInstruction<\n TProgramAddress,\n TAccountStats,\n TAccountController,\n TAccountAirdrop,\n TAccountFeeVault,\n TAccountMint,\n TAccountAuthority,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n stats: { value: input.stats ?? null, isWritable: true },\n controller: { value: input.controller ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n feeVault: { value: input.feeVault ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: false },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.controller),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.mint),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getInitializeAirdropInstructionDataEncoder().encode(\n args as InitializeAirdropInstructionDataArgs\n ),\n } as InitializeAirdropInstruction<\n TProgramAddress,\n TAccountStats,\n TAccountController,\n TAccountAirdrop,\n TAccountFeeVault,\n TAccountMint,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedInitializeAirdropInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n stats: TAccountMetas[0];\n controller: TAccountMetas[1];\n airdrop: TAccountMetas[2];\n feeVault: TAccountMetas[3];\n mint: TAccountMetas[4];\n authority: TAccountMetas[5];\n systemProgram: TAccountMetas[6];\n };\n data: InitializeAirdropInstructionData;\n};\n\nexport function parseInitializeAirdropInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedInitializeAirdropInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 7) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n stats: getNextAccount(),\n controller: getNextAccount(),\n airdrop: getNextAccount(),\n feeVault: getNextAccount(),\n mint: getNextAccount(),\n authority: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getInitializeAirdropInstructionDataDecoder().decode(instruction.data),\n };\n}\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport {\n expectAddress,\n expectSome,\n getAccountMetaFactory,\n type ResolvedAccount,\n} from '../shared';\n\nexport const INITIALIZE_BITMAP_DISCRIMINATOR = new Uint8Array([\n 25, 109, 200, 45, 209, 118, 74, 69,\n]);\n\nexport function getInitializeBitmapDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n INITIALIZE_BITMAP_DISCRIMINATOR\n );\n}\n\nexport type InitializeBitmapInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMaster extends string | IAccountMeta<string> = string,\n TAccountStats extends string | IAccountMeta<string> = string,\n TAccountBitmap extends string | IAccountMeta<string> = string,\n TAccountAirdrop extends string | IAccountMeta<string> = string,\n TAccountTreasury extends\n | string\n | IAccountMeta<string> = 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV',\n TAccountAuthority extends string | IAccountMeta<string> = string,\n TAccountSystemProgram extends\n | string\n | IAccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountMaster extends string\n ? ReadonlyAccount<TAccountMaster>\n : TAccountMaster,\n TAccountStats extends string\n ? WritableAccount<TAccountStats>\n : TAccountStats,\n TAccountBitmap extends string\n ? WritableAccount<TAccountBitmap>\n : TAccountBitmap,\n TAccountAirdrop extends string\n ? WritableAccount<TAccountAirdrop>\n : TAccountAirdrop,\n TAccountTreasury extends string\n ? WritableAccount<TAccountTreasury>\n : TAccountTreasury,\n TAccountAuthority extends string\n ? WritableSignerAccount<TAccountAuthority> &\n IAccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type InitializeBitmapInstructionData = {\n discriminator: ReadonlyUint8Array;\n id: number;\n total: bigint;\n};\n\nexport type InitializeBitmapInstructionDataArgs = {\n id: number;\n total: number | bigint;\n};\n\nexport function getInitializeBitmapInstructionDataEncoder(): Encoder<InitializeBitmapInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['id', getU8Encoder()],\n ['total', getU64Encoder()],\n ]),\n (value) => ({ ...value, discriminator: INITIALIZE_BITMAP_DISCRIMINATOR })\n );\n}\n\nexport function getInitializeBitmapInstructionDataDecoder(): Decoder<InitializeBitmapInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['id', getU8Decoder()],\n ['total', getU64Decoder()],\n ]);\n}\n\nexport function getInitializeBitmapInstructionDataCodec(): Codec<\n InitializeBitmapInstructionDataArgs,\n InitializeBitmapInstructionData\n> {\n return combineCodec(\n getInitializeBitmapInstructionDataEncoder(),\n getInitializeBitmapInstructionDataDecoder()\n );\n}\n\nexport type InitializeBitmapAsyncInput<\n TAccountMaster extends string = string,\n TAccountStats extends string = string,\n TAccountBitmap extends string = string,\n TAccountAirdrop extends string = string,\n TAccountTreasury extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master?: Address<TAccountMaster>;\n stats?: Address<TAccountStats>;\n bitmap?: Address<TAccountBitmap>;\n airdrop: Address<TAccountAirdrop>;\n treasury?: Address<TAccountTreasury>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n id: InitializeBitmapInstructionDataArgs['id'];\n total: InitializeBitmapInstructionDataArgs['total'];\n};\n\nexport async function getInitializeBitmapInstructionAsync<\n TAccountMaster extends string,\n TAccountStats extends string,\n TAccountBitmap extends string,\n TAccountAirdrop extends string,\n TAccountTreasury extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: InitializeBitmapAsyncInput<\n TAccountMaster,\n TAccountStats,\n TAccountBitmap,\n TAccountAirdrop,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): Promise<\n InitializeBitmapInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountBitmap,\n TAccountAirdrop,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: false },\n stats: { value: input.stats ?? null, isWritable: true },\n bitmap: { value: input.bitmap ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.master.value) {\n accounts.master.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([109, 97, 115, 116, 101, 114, 51])\n ),\n ],\n });\n }\n if (!accounts.stats.value) {\n accounts.stats.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([115, 116, 97, 116, 115])),\n ],\n });\n }\n if (!accounts.bitmap.value) {\n accounts.bitmap.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([98, 105, 116, 109, 97, 112])),\n getAddressEncoder().encode(expectAddress(accounts.airdrop.value)),\n getU8Encoder().encode(expectSome(args.id)),\n ],\n });\n }\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.bitmap),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getInitializeBitmapInstructionDataEncoder().encode(\n args as InitializeBitmapInstructionDataArgs\n ),\n } as InitializeBitmapInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountBitmap,\n TAccountAirdrop,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type InitializeBitmapInput<\n TAccountMaster extends string = string,\n TAccountStats extends string = string,\n TAccountBitmap extends string = string,\n TAccountAirdrop extends string = string,\n TAccountTreasury extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master: Address<TAccountMaster>;\n stats: Address<TAccountStats>;\n bitmap: Address<TAccountBitmap>;\n airdrop: Address<TAccountAirdrop>;\n treasury?: Address<TAccountTreasury>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n id: InitializeBitmapInstructionDataArgs['id'];\n total: InitializeBitmapInstructionDataArgs['total'];\n};\n\nexport function getInitializeBitmapInstruction<\n TAccountMaster extends string,\n TAccountStats extends string,\n TAccountBitmap extends string,\n TAccountAirdrop extends string,\n TAccountTreasury extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: InitializeBitmapInput<\n TAccountMaster,\n TAccountStats,\n TAccountBitmap,\n TAccountAirdrop,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): InitializeBitmapInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountBitmap,\n TAccountAirdrop,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: false },\n stats: { value: input.stats ?? null, isWritable: true },\n bitmap: { value: input.bitmap ?? null, isWritable: true },\n airdrop: { value: input.airdrop ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.bitmap),\n getAccountMeta(accounts.airdrop),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getInitializeBitmapInstructionDataEncoder().encode(\n args as InitializeBitmapInstructionDataArgs\n ),\n } as InitializeBitmapInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountBitmap,\n TAccountAirdrop,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedInitializeBitmapInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n master: TAccountMetas[0];\n stats: TAccountMetas[1];\n bitmap: TAccountMetas[2];\n airdrop: TAccountMetas[3];\n treasury: TAccountMetas[4];\n authority: TAccountMetas[5];\n systemProgram: TAccountMetas[6];\n };\n data: InitializeBitmapInstructionData;\n};\n\nexport function parseInitializeBitmapInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedInitializeBitmapInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 7) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n master: getNextAccount(),\n stats: getNextAccount(),\n bitmap: getNextAccount(),\n airdrop: getNextAccount(),\n treasury: getNextAccount(),\n authority: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getInitializeBitmapInstructionDataDecoder().decode(instruction.data),\n };\n}\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport {\n expectAddress,\n getAccountMetaFactory,\n type ResolvedAccount,\n} from '../shared';\n\nexport const INITIALIZE_CONTROLLER_DISCRIMINATOR = new Uint8Array([\n 137, 255, 100, 190, 201, 247, 241, 81,\n]);\n\nexport function getInitializeControllerDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n INITIALIZE_CONTROLLER_DISCRIMINATOR\n );\n}\n\nexport type InitializeControllerInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMaster extends string | IAccountMeta<string> = string,\n TAccountStats extends string | IAccountMeta<string> = string,\n TAccountController extends string | IAccountMeta<string> = string,\n TAccountFeeVault extends string | IAccountMeta<string> = string,\n TAccountTreasury extends\n | string\n | IAccountMeta<string> = 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV',\n TAccountAuthority extends string | IAccountMeta<string> = string,\n TAccountSystemProgram extends\n | string\n | IAccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountMaster extends string\n ? ReadonlyAccount<TAccountMaster>\n : TAccountMaster,\n TAccountStats extends string\n ? WritableAccount<TAccountStats>\n : TAccountStats,\n TAccountController extends string\n ? WritableAccount<TAccountController>\n : TAccountController,\n TAccountFeeVault extends string\n ? WritableAccount<TAccountFeeVault>\n : TAccountFeeVault,\n TAccountTreasury extends string\n ? WritableAccount<TAccountTreasury>\n : TAccountTreasury,\n TAccountAuthority extends string\n ? WritableSignerAccount<TAccountAuthority> &\n IAccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type InitializeControllerInstructionData = {\n discriminator: ReadonlyUint8Array;\n feeLamports: bigint;\n};\n\nexport type InitializeControllerInstructionDataArgs = {\n feeLamports: number | bigint;\n};\n\nexport function getInitializeControllerInstructionDataEncoder(): Encoder<InitializeControllerInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['feeLamports', getU64Encoder()],\n ]),\n (value) => ({\n ...value,\n discriminator: INITIALIZE_CONTROLLER_DISCRIMINATOR,\n })\n );\n}\n\nexport function getInitializeControllerInstructionDataDecoder(): Decoder<InitializeControllerInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['feeLamports', getU64Decoder()],\n ]);\n}\n\nexport function getInitializeControllerInstructionDataCodec(): Codec<\n InitializeControllerInstructionDataArgs,\n InitializeControllerInstructionData\n> {\n return combineCodec(\n getInitializeControllerInstructionDataEncoder(),\n getInitializeControllerInstructionDataDecoder()\n );\n}\n\nexport type InitializeControllerAsyncInput<\n TAccountMaster extends string = string,\n TAccountStats extends string = string,\n TAccountController extends string = string,\n TAccountFeeVault extends string = string,\n TAccountTreasury extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master?: Address<TAccountMaster>;\n stats?: Address<TAccountStats>;\n controller?: Address<TAccountController>;\n feeVault?: Address<TAccountFeeVault>;\n treasury?: Address<TAccountTreasury>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n feeLamports: InitializeControllerInstructionDataArgs['feeLamports'];\n};\n\nexport async function getInitializeControllerInstructionAsync<\n TAccountMaster extends string,\n TAccountStats extends string,\n TAccountController extends string,\n TAccountFeeVault extends string,\n TAccountTreasury extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: InitializeControllerAsyncInput<\n TAccountMaster,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): Promise<\n InitializeControllerInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: false },\n stats: { value: input.stats ?? null, isWritable: true },\n controller: { value: input.controller ?? null, isWritable: true },\n feeVault: { value: input.feeVault ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.master.value) {\n accounts.master.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([109, 97, 115, 116, 101, 114, 51])\n ),\n ],\n });\n }\n if (!accounts.stats.value) {\n accounts.stats.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([115, 116, 97, 116, 115])),\n ],\n });\n }\n if (!accounts.controller.value) {\n accounts.controller.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([\n 99, 111, 110, 116, 114, 111, 108, 108, 101, 114, 45, 100, 114, 111,\n 112, 115, 121,\n ])\n ),\n getAddressEncoder().encode(expectAddress(accounts.authority.value)),\n ],\n });\n }\n if (!accounts.feeVault.value) {\n accounts.feeVault.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([118, 97, 117, 108, 116])),\n getAddressEncoder().encode(expectAddress(accounts.controller.value)),\n ],\n });\n }\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.controller),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getInitializeControllerInstructionDataEncoder().encode(\n args as InitializeControllerInstructionDataArgs\n ),\n } as InitializeControllerInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type InitializeControllerInput<\n TAccountMaster extends string = string,\n TAccountStats extends string = string,\n TAccountController extends string = string,\n TAccountFeeVault extends string = string,\n TAccountTreasury extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master: Address<TAccountMaster>;\n stats: Address<TAccountStats>;\n controller: Address<TAccountController>;\n feeVault: Address<TAccountFeeVault>;\n treasury?: Address<TAccountTreasury>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n feeLamports: InitializeControllerInstructionDataArgs['feeLamports'];\n};\n\nexport function getInitializeControllerInstruction<\n TAccountMaster extends string,\n TAccountStats extends string,\n TAccountController extends string,\n TAccountFeeVault extends string,\n TAccountTreasury extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: InitializeControllerInput<\n TAccountMaster,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): InitializeControllerInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: false },\n stats: { value: input.stats ?? null, isWritable: true },\n controller: { value: input.controller ?? null, isWritable: true },\n feeVault: { value: input.feeVault ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.controller),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getInitializeControllerInstructionDataEncoder().encode(\n args as InitializeControllerInstructionDataArgs\n ),\n } as InitializeControllerInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountController,\n TAccountFeeVault,\n TAccountTreasury,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedInitializeControllerInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n master: TAccountMetas[0];\n stats: TAccountMetas[1];\n controller: TAccountMetas[2];\n feeVault: TAccountMetas[3];\n treasury: TAccountMetas[4];\n authority: TAccountMetas[5];\n systemProgram: TAccountMetas[6];\n };\n data: InitializeControllerInstructionData;\n};\n\nexport function parseInitializeControllerInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedInitializeControllerInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 7) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n master: getNextAccount(),\n stats: getNextAccount(),\n controller: getNextAccount(),\n feeVault: getNextAccount(),\n treasury: getNextAccount(),\n authority: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getInitializeControllerInstructionDataDecoder().decode(\n instruction.data\n ),\n };\n}\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport { getAccountMetaFactory, type ResolvedAccount } from '../shared';\n\nexport const INITIALIZE_MASTER_DISCRIMINATOR = new Uint8Array([\n 206, 91, 246, 30, 216, 101, 134, 166,\n]);\n\nexport function getInitializeMasterDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n INITIALIZE_MASTER_DISCRIMINATOR\n );\n}\n\nexport type InitializeMasterInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMaster extends string | IAccountMeta<string> = string,\n TAccountStats extends string | IAccountMeta<string> = string,\n TAccountFeeVault extends\n | string\n | IAccountMeta<string> = 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV',\n TAccountAuthority extends string | IAccountMeta<string> = string,\n TAccountSystemProgram extends\n | string\n | IAccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountMaster extends string\n ? WritableAccount<TAccountMaster>\n : TAccountMaster,\n TAccountStats extends string\n ? WritableAccount<TAccountStats>\n : TAccountStats,\n TAccountFeeVault extends string\n ? ReadonlyAccount<TAccountFeeVault>\n : TAccountFeeVault,\n TAccountAuthority extends string\n ? WritableSignerAccount<TAccountAuthority> &\n IAccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type InitializeMasterInstructionData = {\n discriminator: ReadonlyUint8Array;\n protocolFee: bigint;\n initControllerFee: bigint;\n withdrawFee: bigint;\n};\n\nexport type InitializeMasterInstructionDataArgs = {\n protocolFee: number | bigint;\n initControllerFee: number | bigint;\n withdrawFee: number | bigint;\n};\n\nexport function getInitializeMasterInstructionDataEncoder(): Encoder<InitializeMasterInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['protocolFee', getU64Encoder()],\n ['initControllerFee', getU64Encoder()],\n ['withdrawFee', getU64Encoder()],\n ]),\n (value) => ({ ...value, discriminator: INITIALIZE_MASTER_DISCRIMINATOR })\n );\n}\n\nexport function getInitializeMasterInstructionDataDecoder(): Decoder<InitializeMasterInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['protocolFee', getU64Decoder()],\n ['initControllerFee', getU64Decoder()],\n ['withdrawFee', getU64Decoder()],\n ]);\n}\n\nexport function getInitializeMasterInstructionDataCodec(): Codec<\n InitializeMasterInstructionDataArgs,\n InitializeMasterInstructionData\n> {\n return combineCodec(\n getInitializeMasterInstructionDataEncoder(),\n getInitializeMasterInstructionDataDecoder()\n );\n}\n\nexport type InitializeMasterAsyncInput<\n TAccountMaster extends string = string,\n TAccountStats extends string = string,\n TAccountFeeVault extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master?: Address<TAccountMaster>;\n stats?: Address<TAccountStats>;\n feeVault?: Address<TAccountFeeVault>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n protocolFee: InitializeMasterInstructionDataArgs['protocolFee'];\n initControllerFee: InitializeMasterInstructionDataArgs['initControllerFee'];\n withdrawFee: InitializeMasterInstructionDataArgs['withdrawFee'];\n};\n\nexport async function getInitializeMasterInstructionAsync<\n TAccountMaster extends string,\n TAccountStats extends string,\n TAccountFeeVault extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: InitializeMasterAsyncInput<\n TAccountMaster,\n TAccountStats,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): Promise<\n InitializeMasterInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: true },\n stats: { value: input.stats ?? null, isWritable: true },\n feeVault: { value: input.feeVault ?? null, isWritable: false },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.master.value) {\n accounts.master.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([109, 97, 115, 116, 101, 114, 51])\n ),\n ],\n });\n }\n if (!accounts.stats.value) {\n accounts.stats.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([115, 116, 97, 116, 115])),\n ],\n });\n }\n if (!accounts.feeVault.value) {\n accounts.feeVault.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getInitializeMasterInstructionDataEncoder().encode(\n args as InitializeMasterInstructionDataArgs\n ),\n } as InitializeMasterInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type InitializeMasterInput<\n TAccountMaster extends string = string,\n TAccountStats extends string = string,\n TAccountFeeVault extends string = string,\n TAccountAuthority extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master: Address<TAccountMaster>;\n stats: Address<TAccountStats>;\n feeVault?: Address<TAccountFeeVault>;\n authority: TransactionSigner<TAccountAuthority>;\n systemProgram?: Address<TAccountSystemProgram>;\n protocolFee: InitializeMasterInstructionDataArgs['protocolFee'];\n initControllerFee: InitializeMasterInstructionDataArgs['initControllerFee'];\n withdrawFee: InitializeMasterInstructionDataArgs['withdrawFee'];\n};\n\nexport function getInitializeMasterInstruction<\n TAccountMaster extends string,\n TAccountStats extends string,\n TAccountFeeVault extends string,\n TAccountAuthority extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: InitializeMasterInput<\n TAccountMaster,\n TAccountStats,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): InitializeMasterInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: true },\n stats: { value: input.stats ?? null, isWritable: true },\n feeVault: { value: input.feeVault ?? null, isWritable: false },\n authority: { value: input.authority ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.feeVault.value) {\n accounts.feeVault.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.stats),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getInitializeMasterInstructionDataEncoder().encode(\n args as InitializeMasterInstructionDataArgs\n ),\n } as InitializeMasterInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountStats,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedInitializeMasterInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n master: TAccountMetas[0];\n stats: TAccountMetas[1];\n feeVault: TAccountMetas[2];\n authority: TAccountMetas[3];\n systemProgram: TAccountMetas[4];\n };\n data: InitializeMasterInstructionData;\n};\n\nexport function parseInitializeMasterInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedInitializeMasterInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 5) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n master: getNextAccount(),\n stats: getNextAccount(),\n feeVault: getNextAccount(),\n authority: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getInitializeMasterInstructionDataDecoder().decode(instruction.data),\n };\n}\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 {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n transformEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type IAccountMeta,\n type IAccountSignerMeta,\n type IInstruction,\n type IInstructionWithAccounts,\n type IInstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport { DROPSY_PROGRAM_ADDRESS } from '../programs';\nimport {\n expectAddress,\n getAccountMetaFactory,\n type ResolvedAccount,\n} from '../shared';\n\nexport const WITHDRAW_CONTROLLER_FEES_DISCRIMINATOR = new Uint8Array([\n 252, 199, 14, 46, 100, 156, 176, 230,\n]);\n\nexport function getWithdrawControllerFeesDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n WITHDRAW_CONTROLLER_FEES_DISCRIMINATOR\n );\n}\n\nexport type WithdrawControllerFeesInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMaster extends string | IAccountMeta<string> = string,\n TAccountController extends string | IAccountMeta<string> = string,\n TAccountFeeVault extends string | IAccountMeta<string> = string,\n TAccountAuthority extends string | IAccountMeta<string> = string,\n TAccountTreasury extends\n | string\n | IAccountMeta<string> = 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV',\n TAccountSystemProgram extends\n | string\n | IAccountMeta<string> = '11111111111111111111111111111111',\n TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n IInstructionWithData<Uint8Array> &\n IInstructionWithAccounts<\n [\n TAccountMaster extends string\n ? ReadonlyAccount<TAccountMaster>\n : TAccountMaster,\n TAccountController extends string\n ? ReadonlyAccount<TAccountController>\n : TAccountController,\n TAccountFeeVault extends string\n ? WritableAccount<TAccountFeeVault>\n : TAccountFeeVault,\n TAccountAuthority extends string\n ? WritableSignerAccount<TAccountAuthority> &\n IAccountSignerMeta<TAccountAuthority>\n : TAccountAuthority,\n TAccountTreasury extends string\n ? WritableAccount<TAccountTreasury>\n : TAccountTreasury,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type WithdrawControllerFeesInstructionData = {\n discriminator: ReadonlyUint8Array;\n amount: bigint;\n};\n\nexport type WithdrawControllerFeesInstructionDataArgs = {\n amount: number | bigint;\n};\n\nexport function getWithdrawControllerFeesInstructionDataEncoder(): Encoder<WithdrawControllerFeesInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['amount', getU64Encoder()],\n ]),\n (value) => ({\n ...value,\n discriminator: WITHDRAW_CONTROLLER_FEES_DISCRIMINATOR,\n })\n );\n}\n\nexport function getWithdrawControllerFeesInstructionDataDecoder(): Decoder<WithdrawControllerFeesInstructionData> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['amount', getU64Decoder()],\n ]);\n}\n\nexport function getWithdrawControllerFeesInstructionDataCodec(): Codec<\n WithdrawControllerFeesInstructionDataArgs,\n WithdrawControllerFeesInstructionData\n> {\n return combineCodec(\n getWithdrawControllerFeesInstructionDataEncoder(),\n getWithdrawControllerFeesInstructionDataDecoder()\n );\n}\n\nexport type WithdrawControllerFeesAsyncInput<\n TAccountMaster extends string = string,\n TAccountController extends string = string,\n TAccountFeeVault extends string = string,\n TAccountAuthority extends string = string,\n TAccountTreasury extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master?: Address<TAccountMaster>;\n controller?: Address<TAccountController>;\n feeVault?: Address<TAccountFeeVault>;\n authority: TransactionSigner<TAccountAuthority>;\n treasury?: Address<TAccountTreasury>;\n systemProgram?: Address<TAccountSystemProgram>;\n amount: WithdrawControllerFeesInstructionDataArgs['amount'];\n};\n\nexport async function getWithdrawControllerFeesInstructionAsync<\n TAccountMaster extends string,\n TAccountController extends string,\n TAccountFeeVault extends string,\n TAccountAuthority extends string,\n TAccountTreasury extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: WithdrawControllerFeesAsyncInput<\n TAccountMaster,\n TAccountController,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountTreasury,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): Promise<\n WithdrawControllerFeesInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountController,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountTreasury,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: false },\n controller: { value: input.controller ?? null, isWritable: false },\n feeVault: { value: input.feeVault ?? null, isWritable: true },\n authority: { value: input.authority ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.master.value) {\n accounts.master.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([109, 97, 115, 116, 101, 114, 51])\n ),\n ],\n });\n }\n if (!accounts.controller.value) {\n accounts.controller.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(\n new Uint8Array([\n 99, 111, 110, 116, 114, 111, 108, 108, 101, 114, 45, 100, 114, 111,\n 112, 115, 121,\n ])\n ),\n getAddressEncoder().encode(expectAddress(accounts.authority.value)),\n ],\n });\n }\n if (!accounts.feeVault.value) {\n accounts.feeVault.value = await getProgramDerivedAddress({\n programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([118, 97, 117, 108, 116])),\n getAddressEncoder().encode(expectAddress(accounts.controller.value)),\n ],\n });\n }\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.controller),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getWithdrawControllerFeesInstructionDataEncoder().encode(\n args as WithdrawControllerFeesInstructionDataArgs\n ),\n } as WithdrawControllerFeesInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountController,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountTreasury,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type WithdrawControllerFeesInput<\n TAccountMaster extends string = string,\n TAccountController extends string = string,\n TAccountFeeVault extends string = string,\n TAccountAuthority extends string = string,\n TAccountTreasury extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n master: Address<TAccountMaster>;\n controller: Address<TAccountController>;\n feeVault: Address<TAccountFeeVault>;\n authority: TransactionSigner<TAccountAuthority>;\n treasury?: Address<TAccountTreasury>;\n systemProgram?: Address<TAccountSystemProgram>;\n amount: WithdrawControllerFeesInstructionDataArgs['amount'];\n};\n\nexport function getWithdrawControllerFeesInstruction<\n TAccountMaster extends string,\n TAccountController extends string,\n TAccountFeeVault extends string,\n TAccountAuthority extends string,\n TAccountTreasury extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof DROPSY_PROGRAM_ADDRESS,\n>(\n input: WithdrawControllerFeesInput<\n TAccountMaster,\n TAccountController,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountTreasury,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress }\n): WithdrawControllerFeesInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountController,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountTreasury,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? DROPSY_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n master: { value: input.master ?? null, isWritable: false },\n controller: { value: input.controller ?? null, isWritable: false },\n feeVault: { value: input.feeVault ?? null, isWritable: true },\n authority: { value: input.authority ?? null, isWritable: true },\n treasury: { value: input.treasury ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.treasury.value) {\n accounts.treasury.value =\n 'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV' as Address<'DHffy4rNMtuL8VKgyBEay4jcq8AYHyoAzxLKU6aEijUV'>;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');\n const instruction = {\n accounts: [\n getAccountMeta(accounts.master),\n getAccountMeta(accounts.controller),\n getAccountMeta(accounts.feeVault),\n getAccountMeta(accounts.authority),\n getAccountMeta(accounts.treasury),\n getAccountMeta(accounts.systemProgram),\n ],\n programAddress,\n data: getWithdrawControllerFeesInstructionDataEncoder().encode(\n args as WithdrawControllerFeesInstructionDataArgs\n ),\n } as WithdrawControllerFeesInstruction<\n TProgramAddress,\n TAccountMaster,\n TAccountController,\n TAccountFeeVault,\n TAccountAuthority,\n TAccountTreasury,\n TAccountSystemProgram\n >;\n\n return instruction;\n}\n\nexport type ParsedWithdrawControllerFeesInstruction<\n TProgram extends string = typeof DROPSY_PROGRAM_ADDRESS,\n TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n master: TAccountMetas[0];\n controller: TAccountMetas[1];\n feeVault: TAccountMetas[2];\n authority: TAccountMetas[3];\n treasury: TAccountMetas[4];\n systemProgram: TAccountMetas[5];\n };\n data: WithdrawControllerFeesInstructionData;\n};\n\nexport function parseWithdrawControllerFeesInstruction<\n TProgram extends string,\n TAccountMetas extends readonly IAccountMeta[],\n>(\n instruction: IInstruction<TProgram> &\n IInstructionWithAccounts<TAccountMetas> &\n IInstructionWithData<Uint8Array>\n): ParsedWithdrawControllerFeesInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 6) {\n // TODO: Coded error.\n throw new Error('Not enough accounts');\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = instruction.accounts![accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n master: getNextAccount(),\n controller: getNextAccount(),\n feeVault: getNextAccount(),\n authority: getNextAccount(),\n treasury: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getWithdrawControllerFeesInstructionDataDecoder().decode(\n instruction.data\n ),\n };\n}\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 {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getI64Decoder,\n getI64Encoder,\n getStructDecoder,\n getStructEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\nexport type AirdropClosed = {\n airdrop: Address;\n authority: Address;\n timestamp: bigint;\n};\n\nexport type AirdropClosedArgs = {\n airdrop: Address;\n authority: Address;\n timestamp: number | bigint;\n};\n\nexport function getAirdropClosedEncoder(): Encoder<AirdropClosedArgs> {\n return getStructEncoder([\n ['airdrop', getAddressEncoder()],\n ['authority', getAddressEncoder()],\n ['timestamp', getI64Encoder()],\n ]);\n}\n\nexport function getAirdropClosedDecoder(): Decoder<AirdropClosed> {\n return getStructDecoder([\n ['airdrop', getAddressDecoder()],\n ['authority', getAddressDecoder()],\n ['timestamp', getI64Decoder()],\n ]);\n}\n\nexport function getAirdropClosedCodec(): Codec<\n AirdropClosedArgs,\n AirdropClosed\n> {\n return combineCodec(getAirdropClosedEncoder(), getAirdropClosedDecoder());\n}\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 {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getArrayDecoder,\n getArrayEncoder,\n getI64Decoder,\n getI64Encoder,\n getStructDecoder,\n getStructEncoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\nexport type AirdropInitialized = {\n airdrop: Address;\n mint: Address;\n authority: Address;\n controller: Address;\n controllerFeeVault: Address;\n merkleRoot: Array<number>;\n startTime: bigint;\n endTime: bigint;\n timestamp: bigint;\n};\n\nexport type AirdropInitializedArgs = {\n airdrop: Address;\n mint: Address;\n authority: Address;\n controller: Address;\n controllerFeeVault: Address;\n merkleRoot: Array<number>;\n startTime: number | bigint;\n endTime: number | bigint;\n timestamp: number | bigint;\n};\n\nexport function getAirdropInitializedEncoder(): Encoder<AirdropInitializedArgs> {\n return getStructEncoder([\n ['airdrop', getAddressEncoder()],\n ['mint', getAddressEncoder()],\n ['authority', getAddressEncoder()],\n ['controller', getAddressEncoder()],\n ['controllerFeeVault', getAddressEncoder()],\n ['merkleRoot', getArrayEncoder(getU8Encoder(), { size: 32 })],\n ['startTime', getI64Encoder()],\n ['endTime', getI64Encoder()],\n ['timestamp', getI64Encoder()],\n ]);\n}\n\nexport function getAirdropInitializedDecoder(): Decoder<AirdropInitialized> {\n return getStructDecoder([\n ['airdrop', getAddressDecoder()],\n ['mint', getAddressDecoder()],\n ['authority', getAddressDecoder()],\n ['controller', getAddressDecoder()],\n ['controllerFeeVault', getAddressDecoder()],\n ['merkleRoot', getArrayDecoder(getU8Decoder(), { size: 32 })],\n ['startTime', getI64Decoder()],\n ['endTime', getI64Decoder()],\n ['timestamp', getI64Decoder()],\n ]);\n}\n\nexport function getAirdropInitializedCodec(): Codec<\n AirdropInitializedArgs,\n AirdropInitialized\n> {\n return combineCodec(\n getAirdropInitializedEncoder(),\n getAirdropInitializedDecoder()\n );\n}\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 {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\nexport type BitmapClosed = {\n airdrop: Address;\n bitmap: Address;\n authority: Address;\n};\n\nexport type BitmapClosedArgs = BitmapClosed;\n\nexport function getBitmapClosedEncoder(): Encoder<BitmapClosedArgs> {\n return getStructEncoder([\n ['airdrop', getAddressEncoder()],\n ['bitmap', getAddressEncoder()],\n ['authority', getAddressEncoder()],\n ]);\n}\n\nexport function getBitmapClosedDecoder(): Decoder<BitmapClosed> {\n return getStructDecoder([\n ['airdrop', getAddressDecoder()],\n ['bitmap', getAddressDecoder()],\n ['authority', getAddressDecoder()],\n ]);\n}\n\nexport function getBitmapClosedCodec(): Codec<BitmapClosedArgs, BitmapClosed> {\n return combineCodec(getBitmapClosedEncoder(), getBitmapClosedDecoder());\n}\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 {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\nexport type BitmapInitialized = {\n airdrop: Address;\n bitmap: Address;\n bitmapId: number;\n totalClaims: bigint;\n};\n\nexport type BitmapInitializedArgs = {\n airdrop: Address;\n bitmap: Address;\n bitmapId: number;\n totalClaims: number | bigint;\n};\n\nexport function getBitmapInitializedEncoder(): Encoder<BitmapInitializedArgs> {\n return getStructEncoder([\n ['airdrop', getAddressEncoder()],\n ['bitmap', getAddressEncoder()],\n ['bitmapId', getU8Encoder()],\n ['totalClaims', getU64Encoder()],\n ]);\n}\n\nexport function getBitmapInitializedDecoder(): Decoder<BitmapInitialized> {\n return getStructDecoder([\n ['airdrop', getAddressDecoder()],\n ['bitmap', getAddressDecoder()],\n ['bitmapId', getU8Decoder()],\n ['totalClaims', getU64Decoder()],\n ]);\n}\n\nexport function getBitmapInitializedCodec(): Codec<\n BitmapInitializedArgs,\n BitmapInitialized\n> {\n return combineCodec(\n getBitmapInitializedEncoder(),\n getBitmapInitializedDecoder()\n );\n}\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 {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getI64Decoder,\n getI64Encoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\nexport type ControllerInitialized = {\n masterVault: Address;\n authority: Address;\n feeVault: Address;\n feeLamports: bigint;\n bump: number;\n timestamp: bigint;\n};\n\nexport type ControllerInitializedArgs = {\n masterVault: Address;\n authority: Address;\n feeVault: Address;\n feeLamports: number | bigint;\n bump: number;\n timestamp: number | bigint;\n};\n\nexport function getControllerInitializedEncoder(): Encoder<ControllerInitializedArgs> {\n return getStructEncoder([\n ['masterVault', getAddressEncoder()],\n ['authority', getAddressEncoder()],\n ['feeVault', getAddressEncoder()],\n ['feeLamports', getU64Encoder()],\n ['bump', getU8Encoder()],\n ['timestamp', getI64Encoder()],\n ]);\n}\n\nexport function getControllerInitializedDecoder(): Decoder<ControllerInitialized> {\n return getStructDecoder([\n ['masterVault', getAddressDecoder()],\n ['authority', getAddressDecoder()],\n ['feeVault', getAddressDecoder()],\n ['feeLamports', getU64Decoder()],\n ['bump', getU8Decoder()],\n ['timestamp', getI64Decoder()],\n ]);\n}\n\nexport function getControllerInitializedCodec(): Codec<\n ControllerInitializedArgs,\n ControllerInitialized\n> {\n return combineCodec(\n getControllerInitializedEncoder(),\n getControllerInitializedDecoder()\n );\n}\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 {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getI64Decoder,\n getI64Encoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\nexport type FeesCollected = {\n controller: Address;\n authority: Address;\n feeVault: Address;\n amount: bigint;\n timestamp: bigint;\n};\n\nexport type FeesCollectedArgs = {\n controller: Address;\n authority: Address;\n feeVault: Address;\n amount: number | bigint;\n timestamp: number | bigint;\n};\n\nexport function getFeesCollectedEncoder(): Encoder<FeesCollectedArgs> {\n return getStructEncoder([\n ['controller', getAddressEncoder()],\n ['authority', getAddressEncoder()],\n ['feeVault', getAddressEncoder()],\n ['amount', getU64Encoder()],\n ['timestamp', getI64Encoder()],\n ]);\n}\n\nexport function getFeesCollectedDecoder(): Decoder<FeesCollected> {\n return getStructDecoder([\n ['controller', getAddressDecoder()],\n ['authority', getAddressDecoder()],\n ['feeVault', getAddressDecoder()],\n ['amount', getU64Decoder()],\n ['timestamp', getI64Decoder()],\n ]);\n}\n\nexport function getFeesCollectedCodec(): Codec<\n FeesCollectedArgs,\n FeesCollected\n> {\n return combineCodec(getFeesCollectedEncoder(), getFeesCollectedDecoder());\n}\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 {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getI64Decoder,\n getI64Encoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\nexport type MasterInitialized = {\n authority: Address;\n feeVault: Address;\n protocolFee: bigint;\n initControllerFee: bigint;\n withdrawFee: bigint;\n bump: number;\n timestamp: bigint;\n};\n\nexport type MasterInitializedArgs = {\n authority: Address;\n feeVault: Address;\n protocolFee: number | bigint;\n initControllerFee: number | bigint;\n withdrawFee: number | bigint;\n bump: number;\n timestamp: number | bigint;\n};\n\nexport function getMasterInitializedEncoder(): Encoder<MasterInitializedArgs> {\n return getStructEncoder([\n ['authority', getAddressEncoder()],\n ['feeVault', getAddressEncoder()],\n ['protocolFee', getU64Encoder()],\n ['initControllerFee', getU64Encoder()],\n ['withdrawFee', getU64Encoder()],\n ['bump', getU8Encoder()],\n ['timestamp', getI64Encoder()],\n ]);\n}\n\nexport function getMasterInitializedDecoder(): Decoder<MasterInitialized> {\n return getStructDecoder([\n ['authority', getAddressDecoder()],\n ['feeVault', getAddressDecoder()],\n ['protocolFee', getU64Decoder()],\n ['initControllerFee', getU64Decoder()],\n ['withdrawFee', getU64Decoder()],\n ['bump', getU8Decoder()],\n ['timestamp', getI64Decoder()],\n ]);\n}\n\nexport function getMasterInitializedCodec(): Codec<\n MasterInitializedArgs,\n MasterInitialized\n> {\n return combineCodec(\n getMasterInitializedEncoder(),\n getMasterInitializedDecoder()\n );\n}\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 {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getI64Decoder,\n getI64Encoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\n\nexport type TokensDeposited = {\n airdrop: Address;\n amount: bigint;\n newSupply: bigint;\n depositor: Address;\n timestamp: bigint;\n};\n\nexport type TokensDepositedArgs = {\n airdrop: Address;\n amount: number | bigint;\n newSupply: number | bigint;\n depositor: Address;\n timestamp: number | bigint;\n};\n\nexport function getTokensDepositedEncoder(): Encoder<TokensDepositedArgs> {\n return getStructEncoder([\n ['airdrop', getAddressEncoder()],\n ['amount', getU64Encoder()],\n ['newSupply', getU64Encoder()],\n ['depositor', getAddressEncoder()],\n ['timestamp', getI64Encoder()],\n ]);\n}\n\nexport function getTokensDepositedDecoder(): Decoder<TokensDeposited> {\n return getStructDecoder([\n ['airdrop', getAddressDecoder()],\n ['amount', getU64Decoder()],\n ['newSupply', getU64Decoder()],\n ['depositor', getAddressDecoder()],\n ['timestamp', getI64Decoder()],\n ]);\n}\n\nexport function getTokensDepositedCodec(): Codec<\n TokensDepositedArgs,\n TokensDeposited\n> {\n return combineCodec(getTokensDepositedEncoder(), getTokensDepositedDecoder());\n}\n","import {\r\n airdropFactory,\r\n appendTransactionMessageInstruction,\r\n appendTransactionMessageInstructions,\r\n createSolanaRpc,\r\n createSolanaRpcSubscriptions,\r\n createTransactionMessage,\r\n generateKeyPairSigner,\r\n IInstruction,\r\n lamports,\r\n pipe,\r\n Rpc,\r\n RpcSubscriptions,\r\n setTransactionMessageFeePayerSigner,\r\n setTransactionMessageLifetimeUsingBlockhash,\r\n SolanaRpcApi,\r\n SolanaRpcSubscriptionsApi,\r\n TransactionSigner,\r\n} from \"@solana/kit\";\r\n\r\ntype RpcClient = {\r\n rpc: Rpc<SolanaRpcApi>;\r\n rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>;\r\n};\r\n\r\nexport const generateKeyPairSignerWithSol = async (\r\n rpcClient: RpcClient,\r\n putativeLamports: bigint = 1_000_000_000n\r\n) => {\r\n const signer = await generateKeyPairSigner();\r\n await airdropFactory(rpcClient)({\r\n recipientAddress: signer.address,\r\n lamports: lamports(putativeLamports),\r\n commitment: \"confirmed\",\r\n });\r\n return signer;\r\n};\r\n\r\nexport const createDefaultSolanaClient = (): RpcClient => {\r\n const rpc = createSolanaRpc(\"https://api.devnet.solana.com\");\r\n const rpcSubscriptions = createSolanaRpcSubscriptions(\r\n \"wss://api.devnet.solana.com\"\r\n );\r\n return { rpc, rpcSubscriptions };\r\n};\r\n\r\nexport const createTransactionMessageFromInstruction = async (\r\n rpc: Rpc<SolanaRpcApi>,\r\n signer: TransactionSigner,\r\n instruction: IInstruction[]\r\n) => {\r\n const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();\r\n\r\n return pipe(\r\n createTransactionMessage({ version: 0 }),\r\n (tx) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx),\r\n (tx) => setTransactionMessageFeePayerSigner(signer, tx),\r\n (tx) => appendTransactionMessageInstructions(instruction, tx)\r\n );\r\n};\r\n","import {\r\n Address,\r\n getAddressEncoder,\r\n getProgramDerivedAddress,\r\n ProgramDerivedAddressBump,\r\n ReadonlyUint8Array,\r\n} from \"@solana/kit\";\r\nimport { DROPSY_PROGRAM_ADDRESS } from \"../programs\";\r\nimport { airdropSeed, claimMapSeed, controllerSeed, feeVaultSeed, masterSeed, statsSeed } from \"../constants\";\r\n\r\nexport type DropsyPda = readonly [Address<string>, ProgramDerivedAddressBump];\r\ntype Seed = ReadonlyUint8Array | string;\r\n\r\nexport async function getDropsyDerivedAddress(\r\n seeds: Seed[]\r\n): Promise<DropsyPda> {\r\n return await getProgramDerivedAddress({\r\n seeds,\r\n programAddress: DROPSY_PROGRAM_ADDRESS,\r\n });\r\n}\r\n\r\nexport async function getMasterDerivedAddress(): Promise<DropsyPda> {\r\n return await getDropsyDerivedAddress([Buffer.from(masterSeed)]);\r\n}\r\n\r\nexport async function getStatsDerivedAddress(): Promise<DropsyPda> {\r\n return await getDropsyDerivedAddress([Buffer.from(statsSeed)]);\r\n}\r\n\r\nexport async function getControllerDerivedAddress(\r\n authority: Address\r\n): Promise<DropsyPda> {\r\n const seeds = [\r\n Buffer.from(controllerSeed),\r\n getAddressEncoder().encode(authority),\r\n ];\r\n return await getDropsyDerivedAddress(seeds);\r\n}\r\n\r\nexport async function getAirdropDerivedAddress(\r\n authority: Address,\r\n mint: Address\r\n): Promise<DropsyPda> {\r\n const seeds = [\r\n Buffer.from(airdropSeed),\r\n getAddressEncoder().encode(mint),\r\n getAddressEncoder().encode(authority),\r\n ];\r\n return await getDropsyDerivedAddress(seeds);\r\n}\r\n\r\nexport async function getControllerVaultAddress(\r\n controller: Address\r\n): Promise<DropsyPda> {\r\n const seeds = [Buffer.from(feeVaultSeed), getAddressEncoder().encode(controller)];\r\n return await getDropsyDerivedAddress(seeds);\r\n}\r\n\r\nexport async function getClaimMapAddress(\r\n airdrop: Address,\r\n id: number\r\n): Promise<DropsyPda> {\r\n const seeds = [\r\n Buffer.from(claimMapSeed),\r\n getAddressEncoder().encode(airdrop),\r\n Buffer.from([id]),\r\n ];\r\n return await getDropsyDerivedAddress(seeds);\r\n}\r\n","export const masterSeed = \"master3\";\r\nexport const statsSeed = \"stats\";\r\nexport const controllerSeed = \"controller-dropsy\";\r\nexport const feeVaultSeed = \"vault\";\r\nexport const airdropSeed = \"airdrop\";\r\nexport const claimMapSeed = \"bitmap\";\r\n"],"mappings":"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","names":["import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","DropsyAccount","DropsyInstruction","import_kit","import_kit","kitIsTransactionSigner","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit","import_kit"]}
|