From e232b102b78cd4a077029302ba9bef0df20b4904 Mon Sep 17 00:00:00 2001 From: kevinheavey Date: Mon, 28 Oct 2024 14:42:22 +0400 Subject: [PATCH] fix imports and deps --- Cargo.lock | 7 +++++++ programs/sbf/Cargo.lock | 14 ++++++++++++++ sdk/Cargo.toml | 2 ++ sdk/ed25519-instructions/Cargo.toml | 12 ++++++++++-- sdk/ed25519-instructions/src/lib.rs | 23 +++++++++++++++-------- 5 files changed, 48 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c40c1352542141..ed71e9b0ef7787 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6806,9 +6806,15 @@ dependencies = [ "bytemuck", "bytemuck_derive", "ed25519-dalek", + "hex", + "rand 0.7.3", "solana-feature-set", + "solana-hash", "solana-instruction", + "solana-logger", "solana-precompile-error", + "solana-pubkey", + "solana-sdk", ] [[package]] @@ -8294,6 +8300,7 @@ dependencies = [ "solana-commitment-config", "solana-decode-error", "solana-derivation-path", + "solana-ed25519-instructions", "solana-feature-set", "solana-fee-structure", "solana-frozen-abi", diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 498441efb8766f..569666c17137ee 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -5450,6 +5450,19 @@ dependencies = [ "solana-sdk", ] +[[package]] +name = "solana-ed25519-instructions" +version = "2.1.0" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "ed25519-dalek", + "solana-feature-set", + "solana-instruction", + "solana-precompile-error", + "solana-pubkey", +] + [[package]] name = "solana-entry" version = "2.2.0" @@ -7021,6 +7034,7 @@ dependencies = [ "solana-commitment-config", "solana-decode-error", "solana-derivation-path", + "solana-ed25519-instructions", "solana-feature-set", "solana-fee-structure", "solana-inflation", diff --git a/sdk/Cargo.toml b/sdk/Cargo.toml index 4dd91e2277a944..83b83d89e2c465 100644 --- a/sdk/Cargo.toml +++ b/sdk/Cargo.toml @@ -34,6 +34,7 @@ full = [ "solana-commitment-config", "digest", "solana-pubkey/rand", + "dep:solana-ed25519-instructions", "dep:solana-keypair", "dep:solana-precompile-error", "dep:solana-presigner", @@ -98,6 +99,7 @@ solana-bn254 = { workspace = true } solana-commitment-config = { workspace = true, optional = true, features = ["serde"] } solana-decode-error = { workspace = true } solana-derivation-path = { workspace = true } +solana-ed25519-instructions = { workspace = true, optional = true } solana-feature-set = { workspace = true } solana-fee-structure = { workspace = true, features = ["serde"] } solana-frozen-abi = { workspace = true, optional = true, features = [ diff --git a/sdk/ed25519-instructions/Cargo.toml b/sdk/ed25519-instructions/Cargo.toml index 312b197d270ea0..d628183664e9fe 100644 --- a/sdk/ed25519-instructions/Cargo.toml +++ b/sdk/ed25519-instructions/Cargo.toml @@ -1,7 +1,7 @@ [package] -name = "solana-ed25519-instruction" +name = "solana-ed25519-instructions" description = "Instructions for the Solana ed25519 native program" -documentation = "https://docs.rs/solana-ed25519-instruction" +documentation = "https://docs.rs/solana-ed25519-instructions" version = { workspace = true } authors = { workspace = true } repository = { workspace = true } @@ -16,6 +16,14 @@ ed25519-dalek = { workspace = true } solana-feature-set = { workspace = true } solana-instruction = { workspace = true, features = ["std"] } solana-precompile-error = { workspace = true } +solana-pubkey = { workspace = true } + +[dev-dependencies] +hex = { workspace = true } +rand0-7 = { workspace = true } +solana-hash = { workspace = true } +solana-logger = { workspace = true } +solana-sdk = { path = ".." } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/sdk/ed25519-instructions/src/lib.rs b/sdk/ed25519-instructions/src/lib.rs index 85a691a7755e4f..0c8bedb071cfd6 100644 --- a/sdk/ed25519-instructions/src/lib.rs +++ b/sdk/ed25519-instructions/src/lib.rs @@ -9,6 +9,7 @@ use { solana_feature_set::{ed25519_precompile_verify_strict, FeatureSet}, solana_instruction::Instruction, solana_precompile_error::PrecompileError, + solana_pubkey::{pubkey, Pubkey}, }; pub const PUBKEY_SERIALIZED_SIZE: usize = 32; @@ -17,6 +18,8 @@ pub const SIGNATURE_OFFSETS_SERIALIZED_SIZE: usize = 14; // bytemuck requires structures to be aligned pub const SIGNATURE_OFFSETS_START: usize = 2; pub const DATA_START: usize = SIGNATURE_OFFSETS_SERIALIZED_SIZE + SIGNATURE_OFFSETS_START; +// copied from solana_sdk::ed25519_program to avoid solana_sdk dependency +const ED25519_PROGRAM_ID: Pubkey = pubkey!("Ed25519SigVerify111111111111111111111111111"); #[derive(Default, Debug, Copy, Clone, Zeroable, Pod, Eq, PartialEq)] #[repr(C)] @@ -77,7 +80,7 @@ pub fn new_ed25519_instruction(keypair: &ed25519_dalek::Keypair, message: &[u8]) instruction_data.extend_from_slice(message); Instruction { - program_id: solana_sdk::ed25519_program::id(), + program_id: ED25519_PROGRAM_ID, accounts: vec![], data: instruction_data, } @@ -188,15 +191,14 @@ fn get_data_slice<'a>( pub mod test { use { super::*, - crate::{ - ed25519_instruction::new_ed25519_instruction, - hash::Hash, - signature::{Keypair, Signer}, - transaction::Transaction, - }, hex, rand0_7::{thread_rng, Rng}, solana_feature_set::FeatureSet, + solana_hash::Hash, + solana_sdk::{ + signer::{keypair::Keypair, Signer}, + transaction::Transaction, + }, }; pub fn new_ed25519_instruction_raw( @@ -247,7 +249,7 @@ pub mod test { instruction_data.extend_from_slice(message); Instruction { - program_id: solana_sdk::ed25519_program::id(), + program_id: ED25519_PROGRAM_ID, accounts: vec![], data: instruction_data, } @@ -487,4 +489,9 @@ pub mod test { let feature_set = FeatureSet::all_enabled(); assert!(tx.verify_precompiles(&feature_set).is_err()); // verify_strict does NOT pass } + + #[test] + fn test_inlined_program_id() { + assert_eq!(ED25519_PROGRAM_ID, solana_sdk::ed25519_program::id()) + } }