فهرست منبع

use 3.0 in spl-transfer-hook-interface (#78)

Use up-to-date 3.0.0 crates for the spl-transfer-hook-interface crate.
Peter Keay 2 ماه پیش
والد
کامیت
95c30d06ca
9فایلهای تغییر یافته به همراه252 افزوده شده و 247 حذف شده
  1. 223 187
      Cargo.lock
  2. 1 1
      Cargo.toml
  3. 1 1
      clients/cli/Cargo.toml
  4. 11 11
      interface/Cargo.toml
  5. 7 28
      interface/src/error.rs
  6. 6 6
      interface/src/instruction.rs
  7. 2 2
      interface/src/lib.rs
  8. 0 10
      interface/src/onchain.rs
  9. 1 1
      program/Cargo.toml

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 223 - 187
Cargo.lock


+ 1 - 1
Cargo.toml

@@ -21,7 +21,7 @@ check-cfg = [
 ]
 ]
 
 
 [workspace.metadata.cli]
 [workspace.metadata.cli]
-solana = "2.3.4"
+solana = "3.0.0"
 
 
 # Specify Rust toolchains for rustfmt, clippy, and build.
 # Specify Rust toolchains for rustfmt, clippy, and build.
 # Any unprovided toolchains default to stable.
 # Any unprovided toolchains default to stable.

+ 1 - 1
clients/cli/Cargo.toml

@@ -21,7 +21,7 @@ solana-sdk = "2.2.1"
 solana-sdk-ids = "2.2.1"
 solana-sdk-ids = "2.2.1"
 solana-system-interface = "1"
 solana-system-interface = "1"
 spl-tlv-account-resolution = { version = "0.10.0", features = ["serde-traits"] }
 spl-tlv-account-resolution = { version = "0.10.0", features = ["serde-traits"] }
-spl-transfer-hook-interface = { version = "0.10.0", path = "../../interface" }
+spl-transfer-hook-interface = "0.10.0"
 strum = "0.27"
 strum = "0.27"
 strum_macros = "0.27"
 strum_macros = "0.27"
 tokio = { version = "1", features = ["full"] }
 tokio = { version = "1", features = ["full"] }

+ 11 - 11
interface/Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 [package]
 name = "spl-transfer-hook-interface"
 name = "spl-transfer-hook-interface"
-version = "0.10.0"
+version = "1.0.0"
 description = "Solana Program Library Transfer Hook Interface"
 description = "Solana Program Library Transfer Hook Interface"
 documentation = "https://docs.rs/spl-transfer-hook-interface"
 documentation = "https://docs.rs/spl-transfer-hook-interface"
 authors = { workspace = true }
 authors = { workspace = true }
@@ -14,19 +14,19 @@ arrayref = "0.3.9"
 bytemuck = { version = "1.23.2", features = ["derive"] }
 bytemuck = { version = "1.23.2", features = ["derive"] }
 num-derive = "0.4"
 num-derive = "0.4"
 num-traits = "0.2"
 num-traits = "0.2"
-solana-account-info = "2.3.0"
-solana-cpi = "2.2.1"
-solana-decode-error = "2.2.1"
-solana-instruction = { version = "2.2.1", features = ["std"] }
+solana-account-info = "3.0.0"
+solana-cpi = "3.0.0"
+solana-instruction = { version = "3.0.0", features = ["std"] }
 solana-msg = "3.0.0"
 solana-msg = "3.0.0"
-solana-program-error = "2.2.1"
-solana-pubkey = { version = "2.2.1", features = ["curve25519"] }
-solana-sdk-ids = "2.2.1"
-spl-discriminator = "0.4.0"
+solana-program-error = "3.0.0"
+solana-pubkey = { version = "3.0.0", features = ["curve25519"] }
+solana-sdk-ids = "3.0.0"
+solana-system-interface = "2.0.0"
+spl-discriminator = "0.5.1"
 spl-program-error = "0.8.0"
 spl-program-error = "0.8.0"
-spl-tlv-account-resolution = "0.10.0"
+spl-tlv-account-resolution = "0.11.0"
 spl-type-length-value = "0.8.0"
 spl-type-length-value = "0.8.0"
-spl-pod = "0.5.0"
+spl-pod = "0.7.1"
 thiserror = "2.0"
 thiserror = "2.0"
 
 
 [lib]
 [lib]

+ 7 - 28
interface/src/error.rs

@@ -1,10 +1,6 @@
 //! Error types
 //! Error types
 
 
-use {
-    solana_decode_error::DecodeError,
-    solana_msg::msg,
-    solana_program_error::{PrintProgramError, ProgramError},
-};
+use solana_program_error::{ProgramError, ToStr};
 
 
 /// Errors that may be returned by the interface.
 /// Errors that may be returned by the interface.
 #[repr(u32)]
 #[repr(u32)]
@@ -30,33 +26,16 @@ impl From<TransferHookError> for ProgramError {
     }
     }
 }
 }
 
 
-impl<T> DecodeError<T> for TransferHookError {
-    fn type_of() -> &'static str {
-        "TransferHookError"
-    }
-}
-
-impl PrintProgramError for TransferHookError {
-    fn print<E>(&self)
-    where
-        E: 'static
-            + std::error::Error
-            + DecodeError<E>
-            + PrintProgramError
-            + num_traits::FromPrimitive,
-    {
+impl ToStr for TransferHookError {
+    fn to_str(&self) -> &'static str {
         match self {
         match self {
-            TransferHookError::IncorrectAccount => {
-                msg!("Incorrect account provided")
-            }
-            TransferHookError::MintHasNoMintAuthority => {
-                msg!("Mint has no mint authority")
-            }
+            TransferHookError::IncorrectAccount => "Incorrect account provided",
+            TransferHookError::MintHasNoMintAuthority => "Mint has no mint authority",
             TransferHookError::IncorrectMintAuthority => {
             TransferHookError::IncorrectMintAuthority => {
-                msg!("Incorrect mint authority has signed the instruction")
+                "Incorrect mint authority has signed the instruction"
             }
             }
             TransferHookError::ProgramCalledOutsideOfTransfer => {
             TransferHookError::ProgramCalledOutsideOfTransfer => {
-                msg!("Program called outside of a token transfer")
+                "Program called outside of a token transfer"
             }
             }
         }
         }
     }
     }

+ 6 - 6
interface/src/instruction.rs

@@ -5,7 +5,7 @@ use {
     solana_program_error::ProgramError,
     solana_program_error::ProgramError,
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,
     spl_discriminator::{ArrayDiscriminator, SplDiscriminate},
     spl_discriminator::{ArrayDiscriminator, SplDiscriminate},
-    spl_pod::{bytemuck::pod_slice_to_bytes, slice::PodSlice},
+    spl_pod::{bytemuck::pod_slice_to_bytes, list::ListView},
     spl_tlv_account_resolution::account::ExtraAccountMeta,
     spl_tlv_account_resolution::account::ExtraAccountMeta,
     std::convert::TryInto,
     std::convert::TryInto,
 };
 };
@@ -96,15 +96,15 @@ impl TransferHookInstruction {
                 Self::Execute { amount }
                 Self::Execute { amount }
             }
             }
             InitializeExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE => {
             InitializeExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE => {
-                let pod_slice = PodSlice::<ExtraAccountMeta>::unpack(rest)?;
-                let extra_account_metas = pod_slice.data().to_vec();
+                let list_view = ListView::<ExtraAccountMeta>::unpack(rest)?;
+                let extra_account_metas = list_view.to_vec();
                 Self::InitializeExtraAccountMetaList {
                 Self::InitializeExtraAccountMetaList {
                     extra_account_metas,
                     extra_account_metas,
                 }
                 }
             }
             }
             UpdateExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE => {
             UpdateExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE => {
-                let pod_slice = PodSlice::<ExtraAccountMeta>::unpack(rest)?;
-                let extra_account_metas = pod_slice.data().to_vec();
+                let list_view = ListView::<ExtraAccountMeta>::unpack(rest)?;
+                let extra_account_metas = list_view.to_vec();
                 Self::UpdateExtraAccountMetaList {
                 Self::UpdateExtraAccountMetaList {
                     extra_account_metas,
                     extra_account_metas,
                 }
                 }
@@ -256,7 +256,7 @@ mod test {
 
 
     #[test]
     #[test]
     fn system_program_id() {
     fn system_program_id() {
-        assert_eq!(solana_program::system_program::id(), SYSTEM_PROGRAM_ID);
+        assert_eq!(solana_system_interface::program::id(), SYSTEM_PROGRAM_ID);
     }
     }
 
 
     #[test]
     #[test]

+ 2 - 2
interface/src/lib.rs

@@ -16,8 +16,8 @@ pub mod onchain;
 // version
 // version
 use solana_pubkey::Pubkey;
 use solana_pubkey::Pubkey;
 pub use {
 pub use {
-    solana_account_info, solana_cpi, solana_decode_error, solana_instruction, solana_msg,
-    solana_program_error, solana_pubkey,
+    solana_account_info, solana_cpi, solana_instruction, solana_msg, solana_program_error,
+    solana_pubkey,
 };
 };
 
 
 /// Namespace for all programs implementing transfer-hook
 /// Namespace for all programs implementing transfer-hook

+ 0 - 10
interface/src/onchain.rs

@@ -201,7 +201,6 @@ mod tests {
             &mut source_data,
             &mut source_data,
             &spl_token_2022_program_id,
             &spl_token_2022_program_id,
             false,
             false,
-            0,
         );
         );
 
 
         let mint_pubkey = Pubkey::new_unique();
         let mint_pubkey = Pubkey::new_unique();
@@ -215,7 +214,6 @@ mod tests {
             &mut mint_data,
             &mut mint_data,
             &spl_token_2022_program_id,
             &spl_token_2022_program_id,
             false,
             false,
-            0,
         );
         );
 
 
         let destination_pubkey = Pubkey::new_unique();
         let destination_pubkey = Pubkey::new_unique();
@@ -229,7 +227,6 @@ mod tests {
             &mut destination_data,
             &mut destination_data,
             &spl_token_2022_program_id,
             &spl_token_2022_program_id,
             false,
             false,
-            0,
         );
         );
 
 
         let authority_pubkey = Pubkey::new_unique();
         let authority_pubkey = Pubkey::new_unique();
@@ -243,7 +240,6 @@ mod tests {
             &mut authority_data,
             &mut authority_data,
             &system_program::ID,
             &system_program::ID,
             false,
             false,
-            0,
         );
         );
 
 
         let validate_state_pubkey =
         let validate_state_pubkey =
@@ -260,7 +256,6 @@ mod tests {
             &mut extra_meta_1_data,
             &mut extra_meta_1_data,
             &system_program::ID,
             &system_program::ID,
             false,
             false,
-            0,
         );
         );
 
 
         let extra_meta_2_pubkey = EXTRA_META_2;
         let extra_meta_2_pubkey = EXTRA_META_2;
@@ -274,7 +269,6 @@ mod tests {
             &mut extra_meta_2_data,
             &mut extra_meta_2_data,
             &system_program::ID,
             &system_program::ID,
             false,
             false,
-            0,
         );
         );
 
 
         let extra_meta_3_pubkey = Pubkey::find_program_address(
         let extra_meta_3_pubkey = Pubkey::find_program_address(
@@ -296,7 +290,6 @@ mod tests {
             &mut extra_meta_3_data,
             &mut extra_meta_3_data,
             &transfer_hook_program_id,
             &transfer_hook_program_id,
             false,
             false,
-            0,
         );
         );
 
 
         let extra_meta_4_pubkey = Pubkey::find_program_address(
         let extra_meta_4_pubkey = Pubkey::find_program_address(
@@ -319,7 +312,6 @@ mod tests {
             &mut extra_meta_4_data,
             &mut extra_meta_4_data,
             &transfer_hook_program_id,
             &transfer_hook_program_id,
             false,
             false,
-            0,
         );
         );
 
 
         let mut validate_state_data = setup_validation_data();
         let mut validate_state_data = setup_validation_data();
@@ -332,7 +324,6 @@ mod tests {
             &mut validate_state_data,
             &mut validate_state_data,
             &transfer_hook_program_id,
             &transfer_hook_program_id,
             false,
             false,
-            0,
         );
         );
 
 
         let mut transfer_hook_program_data = vec![]; // Mock
         let mut transfer_hook_program_data = vec![]; // Mock
@@ -345,7 +336,6 @@ mod tests {
             &mut transfer_hook_program_data,
             &mut transfer_hook_program_data,
             &bpf_loader_upgradeable::ID,
             &bpf_loader_upgradeable::ID,
             false,
             false,
-            0,
         );
         );
 
 
         let mut cpi_instruction = Instruction::new_with_bytes(
         let mut cpi_instruction = Instruction::new_with_bytes(

+ 1 - 1
program/Cargo.toml

@@ -21,7 +21,7 @@ solana-program = "2.3.0"
 solana-system-interface = "1"
 solana-system-interface = "1"
 spl-tlv-account-resolution = "0.10.0"
 spl-tlv-account-resolution = "0.10.0"
 spl-token-2022 = { version = "9.0.0", features = ["no-entrypoint"] }
 spl-token-2022 = { version = "9.0.0", features = ["no-entrypoint"] }
-spl-transfer-hook-interface = { version = "0.10.0", path = "../interface" }
+spl-transfer-hook-interface = "0.10.0"
 spl-type-length-value = "0.8.0"
 spl-type-length-value = "0.8.0"
 
 
 [dev-dependencies]
 [dev-dependencies]

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است