Skip to content

Commit

Permalink
try to get leaf from tx
Browse files Browse the repository at this point in the history
  • Loading branch information
enzotar committed Feb 9, 2024
1 parent fbd01a5 commit 1f9d0d3
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 2 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions crates/cmds-solana/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ solana-sdk = "=1.16.14"
solana-client = "=1.16.14"
solana-program = "=1.16.14"
solana-account-decoder = "=1.16.14"
solana-transaction-status = '=1.16.14'
spl-token = { version = "=4.0.0", features = ["no-entrypoint"] }
spl-memo = { version = "=4.0.0", features = ["no-entrypoint"] }
spl-associated-token-account = { version = "=2.2.0", features = [
Expand Down
58 changes: 56 additions & 2 deletions crates/cmds-solana/src/compression/mint_to_collection_v1.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
use crate::prelude::*;
use mpl_bubblegum::instructions::MintToCollectionV1Builder;
use solana_sdk::pubkey::Pubkey;
use anchor_lang::AnchorDeserialize;

Check warning on line 2 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `anchor_lang::AnchorDeserialize`

warning: unused import: `anchor_lang::AnchorDeserialize` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:2:5 | 2 | use anchor_lang::AnchorDeserialize; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default

Check warning on line 2 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `anchor_lang::AnchorDeserialize`

warning: unused import: `anchor_lang::AnchorDeserialize` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:2:5 | 2 | use anchor_lang::AnchorDeserialize; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
use mpl_bubblegum::{instructions::MintToCollectionV1Builder, types::LeafSchema};

Check warning on line 3 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `types::LeafSchema`

warning: unused import: `types::LeafSchema` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:3:62 | 3 | use mpl_bubblegum::{instructions::MintToCollectionV1Builder, types::LeafSchema}; | ^^^^^^^^^^^^^^^^^

Check warning on line 3 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `types::LeafSchema`

warning: unused import: `types::LeafSchema` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:3:62 | 3 | use mpl_bubblegum::{instructions::MintToCollectionV1Builder, types::LeafSchema}; | ^^^^^^^^^^^^^^^^^
use solana_client::rpc_config::RpcTransactionConfig;

Check warning on line 4 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `solana_client::rpc_config::RpcTransactionConfig`

warning: unused import: `solana_client::rpc_config::RpcTransactionConfig` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:4:5 | 4 | use solana_client::rpc_config::RpcTransactionConfig; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Check warning on line 4 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `solana_client::rpc_config::RpcTransactionConfig`

warning: unused import: `solana_client::rpc_config::RpcTransactionConfig` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:4:5 | 4 | use solana_client::rpc_config::RpcTransactionConfig; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
use solana_sdk::{commitment_config::CommitmentConfig, pubkey::Pubkey};

Check warning on line 5 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `commitment_config::CommitmentConfig`

warning: unused import: `commitment_config::CommitmentConfig` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:5:18 | 5 | use solana_sdk::{commitment_config::CommitmentConfig, pubkey::Pubkey}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Check warning on line 5 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused import: `commitment_config::CommitmentConfig`

warning: unused import: `commitment_config::CommitmentConfig` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:5:18 | 5 | use solana_sdk::{commitment_config::CommitmentConfig, pubkey::Pubkey}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
use solana_transaction_status::{
option_serializer::OptionSerializer, parse_instruction::ParsedInstruction,

Check warning on line 7 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused imports: `TransactionStatusMeta`, `UiInstruction`, `UiTransactionEncoding`, `UiTransactionStatusMeta`, `option_serializer::OptionSerializer`, `parse_instruction::ParsedInstruction`

warning: unused imports: `TransactionStatusMeta`, `UiInstruction`, `UiTransactionEncoding`, `UiTransactionStatusMeta`, `option_serializer::OptionSerializer`, `parse_instruction::ParsedInstruction` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:7:5 | 7 | option_serializer::OptionSerializer, parse_instruction::ParsedInstruction, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 8 | TransactionStatusMeta, UiInstruction, UiTransactionEncoding, UiTransactionStatusMeta, | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^

Check warning on line 7 in crates/cmds-solana/src/compression/mint_to_collection_v1.rs

View workflow job for this annotation

GitHub Actions / clippy

unused imports: `TransactionStatusMeta`, `UiInstruction`, `UiTransactionEncoding`, `UiTransactionStatusMeta`, `option_serializer::OptionSerializer`, `parse_instruction::ParsedInstruction`

warning: unused imports: `TransactionStatusMeta`, `UiInstruction`, `UiTransactionEncoding`, `UiTransactionStatusMeta`, `option_serializer::OptionSerializer`, `parse_instruction::ParsedInstruction` --> crates/cmds-solana/src/compression/mint_to_collection_v1.rs:7:5 | 7 | option_serializer::OptionSerializer, parse_instruction::ParsedInstruction, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 8 | TransactionStatusMeta, UiInstruction, UiTransactionEncoding, UiTransactionStatusMeta, | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
TransactionStatusMeta, UiInstruction, UiTransactionEncoding, UiTransactionStatusMeta,
};
use tracing::info;

use super::MetadataBubblegum;
Expand Down Expand Up @@ -116,5 +122,53 @@ async fn run(mut ctx: Context, input: Input) -> Result<Output, CommandError> {

let signature = ctx.execute(ins, <_>::default()).await?.signature;

// if let Some(signature) = signature {
// let config = RpcTransactionConfig {
// encoding: Some(UiTransactionEncoding::JsonParsed),
// commitment: Some(CommitmentConfig::confirmed()),
// max_supported_transaction_version: Some(0),
// };
// let tx_meta = ctx
// .solana_client
// .get_transaction_with_config(&signature, config)
// .await?
// .transaction
// .meta
// .and_then(|meta| Some(meta.inner_instructions));

// let tx_meta = match tx_meta.unwrap() {
// OptionSerializer::None => None,
// OptionSerializer::Some(m) => Some(m),
// OptionSerializer::Skip => None,
// };

// let inner_instruction = tx_meta
// .as_ref()
// .unwrap()
// .get(0)
// .unwrap()
// .instructions
// .clone();

// info!("inner_instruction: {:?}", inner_instruction);

// let data = match inner_instruction {
// UiInstruction::Parsed(instruction) => match instruction {
// solana_transaction_status::UiParsedInstruction::PartiallyDecoded(instruction) => {
// instruction.data.clone()
// }
// solana_transaction_status::UiParsedInstruction::Parsed(_) => {
// return Err(CommandError::msg("Failed to parse instruction data"))
// }
// },
// _ => return Err(CommandError::msg("Failed to parse instruction data")),
// };

// let leaf_schema: LeafSchema = LeafSchema::try_from_slice(&data.as_bytes()).unwrap();

// deserialize the transaction and get the instruction
// info!("tx: {:?}", leaf_schema);
// }

Ok(Output { signature })
}

0 comments on commit 1f9d0d3

Please sign in to comment.