Ver código fonte

build(deps): bump solana-ed25519-program from 2.2.2 to 2.2.3 (#6315)

* build(deps): bump solana-ed25519-program from 2.2.2 to 2.2.3

Bumps [solana-ed25519-program](https://github.com/anza-xyz/solana-sdk) from 2.2.2 to 2.2.3.
- [Release notes](https://github.com/anza-xyz/solana-sdk/releases)
- [Commits](https://github.com/anza-xyz/solana-sdk/compare/sdk@v2.2.2...feature-set@v2.2.3)

---
updated-dependencies:
- dependency-name: solana-ed25519-program
  dependency-version: 2.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update all Cargo files

* new_ed25519_instruction -> new_ed25519_instruction_with_signature

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yihau <yihau.chen@icloud.com>
dependabot[bot] 5 meses atrás
pai
commit
c16dcb3f0a

+ 2 - 2
Cargo.lock

@@ -8016,9 +8016,9 @@ dependencies = [
 
 [[package]]
 name = "solana-ed25519-program"
-version = "2.2.2"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0fc717048fdbe5d2ee7d673d73e6a30a094002f4a29ca7630ac01b6bddec04"
+checksum = "a1feafa1691ea3ae588f99056f4bdd1293212c7ece28243d7da257c443e84753"
 dependencies = [
  "bytemuck",
  "bytemuck_derive",

+ 1 - 1
Cargo.toml

@@ -426,7 +426,7 @@ solana-decode-error = "2.2.1"
 solana-define-syscall = "2.3.0"
 solana-derivation-path = "2.2.1"
 solana-download-utils = { path = "download-utils", version = "=2.3.0" }
-solana-ed25519-program = "2.2.2"
+solana-ed25519-program = "2.2.3"
 solana-entry = { path = "entry", version = "=2.3.0" }
 solana-program-entrypoint = "2.2.1"
 solana-epoch-info = "2.2.1"

+ 5 - 2
precompiles/benches/ed25519_instructions.rs

@@ -4,8 +4,9 @@ extern crate test;
 use {
     agave_feature_set::FeatureSet,
     agave_precompiles::ed25519::verify,
+    ed25519_dalek::ed25519::signature::Signer,
     rand0_7::{thread_rng, Rng},
-    solana_ed25519_program::new_ed25519_instruction,
+    solana_ed25519_program::new_ed25519_instruction_with_signature,
     solana_instruction::Instruction,
     test::Bencher,
 };
@@ -20,7 +21,9 @@ fn create_test_instructions(message_length: u16) -> Vec<Instruction> {
             let mut rng = thread_rng();
             let privkey = ed25519_dalek::Keypair::generate(&mut rng);
             let message: Vec<u8> = (0..message_length).map(|_| rng.gen_range(0, 255)).collect();
-            new_ed25519_instruction(&privkey, &message)
+            let signature = privkey.sign(&message).to_bytes();
+            let pubkey = privkey.public.to_bytes();
+            new_ed25519_instruction_with_signature(&message, &signature, &pubkey)
         })
         .collect()
 }

+ 8 - 3
precompiles/src/ed25519.rs

@@ -121,7 +121,7 @@ pub mod tests {
         hex,
         rand0_7::{thread_rng, Rng},
         solana_ed25519_program::{
-            new_ed25519_instruction, offsets_to_ed25519_instruction, DATA_START,
+            new_ed25519_instruction_with_signature, offsets_to_ed25519_instruction, DATA_START,
         },
         solana_instruction::Instruction,
         std::vec,
@@ -341,7 +341,10 @@ pub mod tests {
 
         let privkey = ed25519_dalek::Keypair::generate(&mut thread_rng());
         let message_arr = b"hello";
-        let mut instruction = new_ed25519_instruction(&privkey, message_arr);
+        let signature = privkey.sign(message_arr).to_bytes();
+        let pubkey = privkey.public.to_bytes();
+        let mut instruction =
+            new_ed25519_instruction_with_signature(message_arr, &signature, &pubkey);
         let feature_set = FeatureSet::all_enabled();
 
         assert!(test_verify_with_alignment(
@@ -446,7 +449,9 @@ pub mod tests {
         // sig created via ed25519_dalek: both pass
         let privkey = ed25519_dalek::Keypair::generate(&mut thread_rng());
         let message_arr = b"hello";
-        let instruction = new_ed25519_instruction(&privkey, message_arr);
+        let signature = privkey.sign(message_arr).to_bytes();
+        let pubkey = privkey.public.to_bytes();
+        let instruction = new_ed25519_instruction_with_signature(message_arr, &signature, &pubkey);
 
         let feature_set = FeatureSet::default();
         assert!(test_verify_with_alignment(

+ 8 - 3
programs/ed25519-tests/tests/process_transaction.rs

@@ -1,5 +1,6 @@
 use {
-    assert_matches::assert_matches, solana_ed25519_program::new_ed25519_instruction,
+    assert_matches::assert_matches, ed25519_dalek::ed25519::signature::Signer as EdSigner,
+    solana_ed25519_program::new_ed25519_instruction_with_signature,
     solana_instruction::error::InstructionError, solana_precompile_error::PrecompileError,
     solana_program_test::*, solana_signer::Signer, solana_transaction::Transaction,
     solana_transaction_error::TransactionError,
@@ -29,7 +30,9 @@ async fn test_success() {
 
     let privkey = generate_keypair();
     let message_arr = b"hello";
-    let instruction = new_ed25519_instruction(&privkey, message_arr);
+    let signature = privkey.sign(message_arr).to_bytes();
+    let pubkey = privkey.public.to_bytes();
+    let instruction = new_ed25519_instruction_with_signature(message_arr, &signature, &pubkey);
 
     let transaction = Transaction::new_signed_with_payer(
         &[instruction],
@@ -51,7 +54,9 @@ async fn test_failure() {
 
     let privkey = generate_keypair();
     let message_arr = b"hello";
-    let mut instruction = new_ed25519_instruction(&privkey, message_arr);
+    let signature = privkey.sign(message_arr).to_bytes();
+    let pubkey = privkey.public.to_bytes();
+    let mut instruction = new_ed25519_instruction_with_signature(message_arr, &signature, &pubkey);
 
     instruction.data[0] += 1;
 

+ 2 - 2
programs/sbf/Cargo.lock

@@ -6206,9 +6206,9 @@ dependencies = [
 
 [[package]]
 name = "solana-ed25519-program"
-version = "2.2.2"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0fc717048fdbe5d2ee7d673d73e6a30a094002f4a29ca7630ac01b6bddec04"
+checksum = "a1feafa1691ea3ae588f99056f4bdd1293212c7ece28243d7da257c443e84753"
 dependencies = [
  "bytemuck",
  "bytemuck_derive",

+ 8 - 1
runtime/src/bank/tests.rs

@@ -24,6 +24,7 @@ use {
     agave_transaction_view::static_account_keys_frame::MAX_STATIC_ACCOUNTS_PER_PACKET,
     assert_matches::assert_matches,
     crossbeam_channel::{bounded, unbounded},
+    ed25519_dalek::ed25519::signature::Signer as EdSigner,
     itertools::Itertools,
     rand::Rng,
     rayon::{ThreadPool, ThreadPoolBuilder},
@@ -10342,7 +10343,13 @@ fn test_call_precomiled_program() {
         ed25519_dalek::Keypair { secret, public }
     };
     let message_arr = b"hello";
-    let instruction = solana_ed25519_program::new_ed25519_instruction(&privkey, message_arr);
+    let signature = privkey.sign(message_arr).to_bytes();
+    let pubkey = privkey.public.to_bytes();
+    let instruction = solana_ed25519_program::new_ed25519_instruction_with_signature(
+        message_arr,
+        &signature,
+        &pubkey,
+    );
     let tx = Transaction::new_signed_with_payer(
         &[instruction],
         Some(&mint_keypair.pubkey()),

+ 2 - 2
svm/examples/Cargo.lock

@@ -6042,9 +6042,9 @@ dependencies = [
 
 [[package]]
 name = "solana-ed25519-program"
-version = "2.2.2"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0fc717048fdbe5d2ee7d673d73e6a30a094002f4a29ca7630ac01b6bddec04"
+checksum = "a1feafa1691ea3ae588f99056f4bdd1293212c7ece28243d7da257c443e84753"
 dependencies = [
  "bytemuck",
  "bytemuck_derive",

+ 5 - 2
svm/src/message_processor.rs

@@ -101,6 +101,7 @@ mod tests {
     use {
         super::*,
         agave_reserved_account_keys::ReservedAccountKeys,
+        ed25519_dalek::ed25519::signature::Signer,
         openssl::{
             ec::{EcGroup, EcKey},
             nid::Nid,
@@ -110,7 +111,7 @@ mod tests {
             Account, AccountSharedData, ReadableAccount, WritableAccount,
             DUMMY_INHERITABLE_ACCOUNT_FIELDS,
         },
-        solana_ed25519_program::new_ed25519_instruction,
+        solana_ed25519_program::new_ed25519_instruction_with_signature,
         solana_hash::Hash,
         solana_instruction::{error::InstructionError, AccountMeta, Instruction},
         solana_message::{AccountKeys, Message, SanitizedMessage},
@@ -603,7 +604,9 @@ mod tests {
 
     fn ed25519_instruction_for_test() -> Instruction {
         let secret_key = ed25519_dalek::Keypair::generate(&mut thread_rng());
-        new_ed25519_instruction(&secret_key, b"hello")
+        let signature = secret_key.sign(b"hello").to_bytes();
+        let pubkey = secret_key.public.to_bytes();
+        new_ed25519_instruction_with_signature(b"hello", &signature, &pubkey)
     }
 
     fn secp256r1_instruction_for_test() -> Instruction {