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