carbon_virtual_curve_decoder/instructions/
create_partner_metadata.rs1use super::super::types::*;
2
3use carbon_core::{borsh, CarbonDeserialize};
4
5#[derive(
6 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
7)]
8#[carbon(discriminator = "0xc0a8eabfbce2e3ff")]
9pub struct CreatePartnerMetadata {
10 pub metadata: CreatePartnerMetadataParameters,
11}
12
13#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
14pub struct CreatePartnerMetadataInstructionAccounts {
15 pub partner_metadata: solana_pubkey::Pubkey,
16 pub payer: solana_pubkey::Pubkey,
17 pub fee_claimer: solana_pubkey::Pubkey,
18 pub system_program: solana_pubkey::Pubkey,
19 pub event_authority: solana_pubkey::Pubkey,
20 pub program: solana_pubkey::Pubkey,
21}
22
23impl carbon_core::deserialize::ArrangeAccounts for CreatePartnerMetadata {
24 type ArrangedAccounts = CreatePartnerMetadataInstructionAccounts;
25
26 fn arrange_accounts(
27 accounts: &[solana_instruction::AccountMeta],
28 ) -> Option<Self::ArrangedAccounts> {
29 let [partner_metadata, payer, fee_claimer, system_program, event_authority, program, _remaining @ ..] =
30 accounts
31 else {
32 return None;
33 };
34
35 Some(CreatePartnerMetadataInstructionAccounts {
36 partner_metadata: partner_metadata.pubkey,
37 payer: payer.pubkey,
38 fee_claimer: fee_claimer.pubkey,
39 system_program: system_program.pubkey,
40 event_authority: event_authority.pubkey,
41 program: program.pubkey,
42 })
43 }
44}