carbon_virtuals_decoder/instructions/
launch.rs1use carbon_core::{borsh, CarbonDeserialize};
2
3#[derive(
4 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0x99f15de116454a3d")]
7pub struct Launch {
8 pub symbol: String,
9 pub name: String,
10 pub uri: String,
11}
12
13pub struct LaunchInstructionAccounts {
14 pub creator: solana_sdk::pubkey::Pubkey,
15 pub creator_virtuals_ata: solana_sdk::pubkey::Pubkey,
16 pub token_mint: solana_sdk::pubkey::Pubkey,
17 pub platform_prototype: solana_sdk::pubkey::Pubkey,
18 pub platform_prototype_virtuals_ata: solana_sdk::pubkey::Pubkey,
19 pub vpool: solana_sdk::pubkey::Pubkey,
20 pub token_metadata: solana_sdk::pubkey::Pubkey,
21 pub metadata_program: solana_sdk::pubkey::Pubkey,
22 pub token_program: solana_sdk::pubkey::Pubkey,
23 pub associated_token_program: solana_sdk::pubkey::Pubkey,
24 pub system_program: solana_sdk::pubkey::Pubkey,
25 pub rent: solana_sdk::pubkey::Pubkey,
26}
27
28impl carbon_core::deserialize::ArrangeAccounts for Launch {
29 type ArrangedAccounts = LaunchInstructionAccounts;
30
31 fn arrange_accounts(
32 accounts: &[solana_sdk::instruction::AccountMeta],
33 ) -> Option<Self::ArrangedAccounts> {
34 let [creator, creator_virtuals_ata, token_mint, platform_prototype, platform_prototype_virtuals_ata, vpool, token_metadata, metadata_program, token_program, associated_token_program, system_program, rent, _remaining @ ..] =
35 accounts
36 else {
37 return None;
38 };
39
40 Some(LaunchInstructionAccounts {
41 creator: creator.pubkey,
42 creator_virtuals_ata: creator_virtuals_ata.pubkey,
43 token_mint: token_mint.pubkey,
44 platform_prototype: platform_prototype.pubkey,
45 platform_prototype_virtuals_ata: platform_prototype_virtuals_ata.pubkey,
46 vpool: vpool.pubkey,
47 token_metadata: token_metadata.pubkey,
48 metadata_program: metadata_program.pubkey,
49 token_program: token_program.pubkey,
50 associated_token_program: associated_token_program.pubkey,
51 system_program: system_program.pubkey,
52 rent: rent.pubkey,
53 })
54 }
55}