Rust BPF program cleanup (#7990)
This commit is contained in:
parent
fd7d5cbe0d
commit
1596c961d9
|
@ -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)",
|
||||
]
|
||||
|
||||
|
|
|
@ -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::<u8>()).unwrap();
|
||||
let ptr = alloc::alloc::alloc(layout);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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:");
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
Loading…
Reference in New Issue