diff --git a/programs/bpf/Cargo.lock b/programs/bpf/Cargo.lock index dc8c682937..551f9822c4 100644 --- a/programs/bpf/Cargo.lock +++ b/programs/bpf/Cargo.lock @@ -1926,165 +1926,165 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "solana-bpf-loader-program" -version = "0.23.0" +version = "0.24.0" dependencies = [ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-logger 0.23.0", - "solana-sdk 0.23.0", + "solana-logger 0.24.0", + "solana-sdk 0.24.0", "solana_rbpf 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "solana-bpf-programs" -version = "0.23.0" +version = "0.24.0" dependencies = [ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "elf 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-bpf-loader-program 0.23.0", - "solana-logger 0.23.0", - "solana-runtime 0.23.0", - "solana-sdk 0.23.0", + "solana-bpf-loader-program 0.24.0", + "solana-logger 0.24.0", + "solana-runtime 0.24.0", + "solana-sdk 0.24.0", "solana_rbpf 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "solana-bpf-rust-128bit" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-bpf-rust-128bit-dep 0.23.0", - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-bpf-rust-128bit-dep 0.24.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-128bit-dep" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-alloc" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-dep-crate" -version = "0.23.0" +version = "0.24.0" dependencies = [ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-dup-accounts" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-external-spend" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-iter" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-many-args" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-bpf-rust-many-args-dep 0.23.0", - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-bpf-rust-many-args-dep 0.24.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-many-args-dep" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-noop" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-panic" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-param-passing" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-bpf-rust-param-passing-dep 0.23.0", - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-bpf-rust-param-passing-dep 0.24.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-param-passing-dep" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-bpf-rust-sysval" -version = "0.23.0" +version = "0.24.0" dependencies = [ - "solana-sdk 0.23.0", - "solana-sdk-bpf-test 0.23.0", + "solana-sdk 0.24.0", + "solana-sdk-bpf-test 0.24.0", ] [[package]] name = "solana-config-program" -version = "0.23.0" +version = "0.24.0" dependencies = [ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-logger 0.23.0", - "solana-sdk 0.23.0", + "solana-logger 0.24.0", + "solana-sdk 0.24.0", ] [[package]] name = "solana-crate-features" -version = "0.23.0" +version = "0.24.0" dependencies = [ "backtrace 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2107,7 +2107,7 @@ dependencies = [ [[package]] name = "solana-logger" -version = "0.23.0" +version = "0.24.0" dependencies = [ "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2116,30 +2116,30 @@ dependencies = [ [[package]] name = "solana-measure" -version = "0.23.0" +version = "0.24.0" dependencies = [ "jemalloc-ctl 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "jemallocator 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-metrics 0.23.0", - "solana-sdk 0.23.0", + "solana-metrics 0.24.0", + "solana-sdk 0.24.0", ] [[package]] name = "solana-metrics" -version = "0.23.0" +version = "0.24.0" dependencies = [ "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-sdk 0.23.0", + "solana-sdk 0.24.0", "sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "solana-rayon-threadlimit" -version = "0.23.0" +version = "0.24.0" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2147,7 +2147,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "0.23.0" +version = "0.24.0" dependencies = [ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "bv 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2164,22 +2164,22 @@ dependencies = [ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-bpf-loader-program 0.23.0", - "solana-logger 0.23.0", - "solana-measure 0.23.0", - "solana-metrics 0.23.0", - "solana-rayon-threadlimit 0.23.0", - "solana-sdk 0.23.0", - "solana-stake-program 0.23.0", - "solana-storage-program 0.23.0", - "solana-vote-program 0.23.0", + "solana-bpf-loader-program 0.24.0", + "solana-logger 0.24.0", + "solana-measure 0.24.0", + "solana-metrics 0.24.0", + "solana-rayon-threadlimit 0.24.0", + "solana-sdk 0.24.0", + "solana-stake-program 0.24.0", + "solana-storage-program 0.24.0", + "solana-vote-program 0.24.0", "sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "solana-sdk" -version = "0.23.0" +version = "0.24.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2203,19 +2203,19 @@ dependencies = [ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-crate-features 0.23.0", - "solana-logger 0.23.0", - "solana-sdk-macro 0.23.0", + "solana-crate-features 0.24.0", + "solana-logger 0.24.0", + "solana-sdk-macro 0.24.0", "thiserror 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "solana-sdk-bpf-test" -version = "0.23.0" +version = "0.24.0" [[package]] name = "solana-sdk-macro" -version = "0.23.0" +version = "0.24.0" dependencies = [ "bs58 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2225,7 +2225,7 @@ dependencies = [ [[package]] name = "solana-stake-program" -version = "0.23.0" +version = "0.24.0" dependencies = [ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2234,17 +2234,17 @@ dependencies = [ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-config-program 0.23.0", - "solana-logger 0.23.0", - "solana-metrics 0.23.0", - "solana-sdk 0.23.0", - "solana-vote-program 0.23.0", + "solana-config-program 0.24.0", + "solana-logger 0.24.0", + "solana-metrics 0.24.0", + "solana-sdk 0.24.0", + "solana-vote-program 0.24.0", "thiserror 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "solana-storage-program" -version = "0.23.0" +version = "0.24.0" dependencies = [ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2253,13 +2253,13 @@ dependencies = [ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-logger 0.23.0", - "solana-sdk 0.23.0", + "solana-logger 0.24.0", + "solana-sdk 0.24.0", ] [[package]] name = "solana-vote-program" -version = "0.23.0" +version = "0.24.0" dependencies = [ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2267,9 +2267,9 @@ dependencies = [ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "solana-logger 0.23.0", - "solana-metrics 0.23.0", - "solana-sdk 0.23.0", + "solana-logger 0.24.0", + "solana-metrics 0.24.0", + "solana-sdk 0.24.0", "thiserror 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] diff --git a/programs/bpf/rust/alloc/src/lib.rs b/programs/bpf/rust/alloc/src/lib.rs index 85e90f16ea..4d01f35e22 100644 --- a/programs/bpf/rust/alloc/src/lib.rs +++ b/programs/bpf/rust/alloc/src/lib.rs @@ -3,10 +3,8 @@ #[macro_use] extern crate alloc; extern crate solana_sdk; -use solana_sdk::entrypoint::SUCCESS; -use solana_sdk::info; -use std::alloc::Layout; -use std::mem; +use solana_sdk::{entrypoint::SUCCESS, info}; +use std::{alloc::Layout, mem}; #[no_mangle] pub extern "C" fn entrypoint(_input: *mut u8) -> u32 { @@ -22,7 +20,7 @@ pub extern "C" fn entrypoint(_input: *mut u8) -> u32 { } unsafe { - // Test modest allocation and deallocation + // Test modest allocation and de-allocation let layout = Layout::from_size_align(100, mem::align_of::()).unwrap(); let ptr = alloc::alloc::alloc(layout); diff --git a/programs/bpf/rust/dup_accounts/src/lib.rs b/programs/bpf/rust/dup_accounts/src/lib.rs index 23848d865d..635a6a3ad0 100644 --- a/programs/bpf/rust/dup_accounts/src/lib.rs +++ b/programs/bpf/rust/dup_accounts/src/lib.rs @@ -8,7 +8,7 @@ use solana_sdk::{ entrypoint!(process_instruction); fn process_instruction( _program_id: &Pubkey, - accounts: &mut [AccountInfo], + accounts: &[AccountInfo], instruction_data: &[u8], ) -> u32 { const FAILURE: u32 = 1; diff --git a/programs/bpf/rust/external_spend/src/lib.rs b/programs/bpf/rust/external_spend/src/lib.rs index 16301148fc..445a0354a0 100644 --- a/programs/bpf/rust/external_spend/src/lib.rs +++ b/programs/bpf/rust/external_spend/src/lib.rs @@ -6,7 +6,7 @@ use solana_sdk::{account_info::AccountInfo, entrypoint, entrypoint::SUCCESS, pub entrypoint!(process_instruction); fn process_instruction( _program_id: &Pubkey, - accounts: &mut [AccountInfo], + accounts: &[AccountInfo], _instruction_data: &[u8], ) -> u32 { // account 0 is the mint and not owned by this program, any debit of its lamports diff --git a/programs/bpf/rust/iter/src/lib.rs b/programs/bpf/rust/iter/src/lib.rs index 94f9ae835a..f2961a71a9 100644 --- a/programs/bpf/rust/iter/src/lib.rs +++ b/programs/bpf/rust/iter/src/lib.rs @@ -1,8 +1,7 @@ //! @brief Example Rust-based BPF program tests loop iteration extern crate solana_sdk; -use solana_sdk::entrypoint::SUCCESS; -use solana_sdk::info; +use solana_sdk::{entrypoint::SUCCESS, info}; #[no_mangle] pub extern "C" fn entrypoint(_input: *mut u8) -> u32 { @@ -22,7 +21,7 @@ pub extern "C" fn entrypoint(_input: *mut u8) -> u32 { #[cfg(test)] mod test { use super::*; - // Pulls in the stubs requried for `info!()` + // Pulls in the stubs required for `info!()` solana_sdk_bpf_test::stubs!(); #[test] diff --git a/programs/bpf/rust/many_args/src/lib.rs b/programs/bpf/rust/many_args/src/lib.rs index 51322bc3d7..0c797dedaa 100644 --- a/programs/bpf/rust/many_args/src/lib.rs +++ b/programs/bpf/rust/many_args/src/lib.rs @@ -2,8 +2,7 @@ mod helper; extern crate solana_sdk; -use solana_sdk::entrypoint::SUCCESS; -use solana_sdk::info; +use solana_sdk::{entrypoint::SUCCESS, info}; #[no_mangle] pub extern "C" fn entrypoint(_input: *mut u8) -> u32 { @@ -30,7 +29,7 @@ pub extern "C" fn entrypoint(_input: *mut u8) -> u32 { #[cfg(test)] mod test { use super::*; - // Pulls in the stubs requried for `info!()` + // Pulls in the stubs required for `info!()` solana_sdk_bpf_test::stubs!(); #[test] diff --git a/programs/bpf/rust/many_args_dep/src/lib.rs b/programs/bpf/rust/many_args_dep/src/lib.rs index 199584b4fc..5556a5de2d 100644 --- a/programs/bpf/rust/many_args_dep/src/lib.rs +++ b/programs/bpf/rust/many_args_dep/src/lib.rs @@ -51,7 +51,7 @@ pub fn many_args_sret( #[cfg(test)] mod test { use super::*; - // Pulls in the stubs requried for `info!()` + // Pulls in the stubs required for `info!()` solana_sdk_bpf_test::stubs!(); #[test] diff --git a/programs/bpf/rust/noop/src/lib.rs b/programs/bpf/rust/noop/src/lib.rs index 000d5ea833..c5898e80ae 100644 --- a/programs/bpf/rust/noop/src/lib.rs +++ b/programs/bpf/rust/noop/src/lib.rs @@ -22,7 +22,7 @@ fn return_sstruct() -> SStruct { entrypoint!(process_instruction); fn process_instruction( program_id: &Pubkey, - accounts: &mut [AccountInfo], + accounts: &[AccountInfo], instruction_data: &[u8], ) -> u32 { info!("Program identifier:"); diff --git a/programs/bpf/rust/param_passing/src/lib.rs b/programs/bpf/rust/param_passing/src/lib.rs index 5e550d1aa3..7ddf93aaa3 100644 --- a/programs/bpf/rust/param_passing/src/lib.rs +++ b/programs/bpf/rust/param_passing/src/lib.rs @@ -2,8 +2,7 @@ extern crate solana_sdk; use solana_bpf_rust_param_passing_dep::{Data, TestDep}; -use solana_sdk::entrypoint::SUCCESS; -use solana_sdk::info; +use solana_sdk::{entrypoint::SUCCESS, info}; #[no_mangle] pub extern "C" fn entrypoint(_input: *mut u8) -> u32 { @@ -27,7 +26,7 @@ pub extern "C" fn entrypoint(_input: *mut u8) -> u32 { #[cfg(test)] mod test { use super::*; - // Pulls in the stubs requried for `info!()` + // Pulls in the stubs required for `info!()` solana_sdk_bpf_test::stubs!(); #[test] diff --git a/programs/bpf/rust/param_passing_dep/src/lib.rs b/programs/bpf/rust/param_passing_dep/src/lib.rs index 14665a9f6c..722db53df4 100644 --- a/programs/bpf/rust/param_passing_dep/src/lib.rs +++ b/programs/bpf/rust/param_passing_dep/src/lib.rs @@ -27,7 +27,7 @@ impl<'a> TestDep { #[cfg(test)] mod test { use super::*; - // Pulls in the stubs requried for `info!()` + // Pulls in the stubs required for `info!()` solana_sdk_bpf_test::stubs!(); #[test] diff --git a/programs/bpf/rust/sysval/src/lib.rs b/programs/bpf/rust/sysval/src/lib.rs index dbb4278d3e..57c8802261 100644 --- a/programs/bpf/rust/sysval/src/lib.rs +++ b/programs/bpf/rust/sysval/src/lib.rs @@ -19,7 +19,7 @@ use solana_sdk::{ entrypoint!(process_instruction); fn process_instruction( _program_id: &Pubkey, - accounts: &mut [AccountInfo], + accounts: &[AccountInfo], _instruction_data: &[u8], ) -> u32 { // Clock diff --git a/sdk/src/entrypoint.rs b/sdk/src/entrypoint.rs index ab8c91e64b..925fe2cf1b 100644 --- a/sdk/src/entrypoint.rs +++ b/sdk/src/entrypoint.rs @@ -1,4 +1,4 @@ -//! @brief Solana Rust-based BPF program entrypoint and its parameter types +//! @brief Solana Rust-based BPF program entry point and its parameter types #![cfg(feature = "program")] @@ -16,22 +16,22 @@ use std::{ slice::{from_raw_parts, from_raw_parts_mut}, }; -/// User implemented program entrypoint +/// User implemented function to process an instruction /// /// program_id: Program ID of the currently executing program /// accounts: Accounts passed as part of the instruction -/// data: Instruction data +/// instruction_data: Instruction data pub type ProcessInstruction = - fn(program_id: &Pubkey, accounts: &mut [AccountInfo], instruction_data: &[u8]) -> u32; + fn(program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8]) -> u32; /// Programs indicate success with a return value of 0 pub const SUCCESS: u32 = 0; -/// Declare entrypoint of the program. +/// Declare the entry point of the program. /// -/// Deserialize the program input parameters and call -/// the user defined `ProcessInstruction`. Users must call -/// this macro otherwise an entrypoint for +/// Deserialize the program input arguments and call +/// the user defined `ProcessInstruction` function. +/// Users must call this macro otherwise an entry point for /// their program will not be created. #[macro_export] macro_rules! entrypoint { @@ -40,15 +40,15 @@ macro_rules! entrypoint { #[no_mangle] pub unsafe extern "C" fn entrypoint(input: *mut u8) -> u32 { unsafe { - let (program_id, mut accounts, instruction_data) = + let (program_id, accounts, instruction_data) = $crate::entrypoint::deserialize(input); - $process_instruction(&program_id, &mut accounts, &instruction_data) + $process_instruction(&program_id, &accounts, &instruction_data) } } }; } -/// Deserialize the input parameters +/// Deserialize the input arguments /// /// # Safety #[allow(clippy::type_complexity)]