Add native loader entry points (#9275)
This commit is contained in:
1
programs/bpf/Cargo.lock
generated
1
programs/bpf/Cargo.lock
generated
@ -1980,7 +1980,6 @@ dependencies = [
|
||||
"rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.105 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.105 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-bpf-loader-program 1.2.0",
|
||||
"solana-logger 1.2.0",
|
||||
"solana-measure 1.2.0",
|
||||
"solana-metrics 1.2.0",
|
||||
|
@ -18,6 +18,7 @@ mod bpf {
|
||||
sysvar::{clock, fees, rent, rewards, slot_hashes, stake_history},
|
||||
transaction::TransactionError,
|
||||
};
|
||||
use solana_bpf_loader_program::solana_bpf_loader_program;
|
||||
use std::{env, fs::File, io::Read, path::PathBuf, sync::Arc};
|
||||
|
||||
/// BPF program file extension
|
||||
@ -83,10 +84,11 @@ mod bpf {
|
||||
println!("Test program: {:?}", program.0);
|
||||
|
||||
let GenesisConfigInfo {
|
||||
genesis_config,
|
||||
mut genesis_config,
|
||||
mint_keypair,
|
||||
..
|
||||
} = create_genesis_config(50);
|
||||
genesis_config.add_native_instruction_processor(solana_bpf_loader_program!());
|
||||
let bank = Arc::new(Bank::new(&genesis_config));
|
||||
// Create bank with specific slot, used by solana_bpf_rust_sysvar test
|
||||
let bank =
|
||||
@ -133,10 +135,11 @@ mod bpf {
|
||||
println!("Test program: {:?}", program);
|
||||
|
||||
let GenesisConfigInfo {
|
||||
genesis_config,
|
||||
mut genesis_config,
|
||||
mint_keypair,
|
||||
..
|
||||
} = create_genesis_config(50);
|
||||
genesis_config.add_native_instruction_processor(solana_bpf_loader_program!());
|
||||
let bank = Arc::new(Bank::new(&genesis_config));
|
||||
let bank_client = BankClient::new_shared(&bank);
|
||||
let program_id = load_bpf_program(&bank_client, &mint_keypair, program);
|
||||
@ -215,10 +218,11 @@ mod bpf {
|
||||
println!("Test program: {:?}", program);
|
||||
|
||||
let GenesisConfigInfo {
|
||||
genesis_config,
|
||||
mut genesis_config,
|
||||
mint_keypair,
|
||||
..
|
||||
} = create_genesis_config(50);
|
||||
genesis_config.add_native_instruction_processor(solana_bpf_loader_program!());
|
||||
let bank = Bank::new(&genesis_config);
|
||||
let bank_client = BankClient::new(bank);
|
||||
let program_id = load_bpf_program(&bank_client, &mint_keypair, program);
|
||||
|
@ -25,7 +25,7 @@ use solana_sdk::{
|
||||
use std::{io::prelude::*, mem};
|
||||
use thiserror::Error;
|
||||
|
||||
solana_sdk::declare_program!(
|
||||
solana_sdk::declare_loader!(
|
||||
solana_sdk::bpf_loader::ID,
|
||||
solana_bpf_loader_program,
|
||||
process_instruction
|
||||
|
@ -4,6 +4,7 @@ use solana_runtime::loader_utils::create_invoke_instruction;
|
||||
use solana_sdk::client::SyncClient;
|
||||
use solana_sdk::genesis_config::create_genesis_config;
|
||||
use solana_sdk::instruction::InstructionError;
|
||||
use solana_sdk::native_program_info;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::Signer;
|
||||
use solana_sdk::transaction::TransactionError;
|
||||
@ -13,7 +14,10 @@ fn test_program_native_failure() {
|
||||
let (genesis_config, alice_keypair) = create_genesis_config(50);
|
||||
let program_id = Pubkey::new_rand();
|
||||
let bank = Bank::new(&genesis_config);
|
||||
bank.register_native_instruction_processor("solana_failure_program", &program_id);
|
||||
bank.register_native_instruction_processor(
|
||||
&native_program_info!("solana_failure_program"),
|
||||
&program_id,
|
||||
);
|
||||
|
||||
// Call user program
|
||||
let instruction = create_invoke_instruction(alice_keypair.pubkey(), program_id, &1u8);
|
||||
|
Reference in New Issue
Block a user