@@ -1,5 +1,6 @@
|
||||
extern crate bincode;
|
||||
extern crate elf;
|
||||
extern crate serde_derive;
|
||||
extern crate solana;
|
||||
extern crate solana_sdk;
|
||||
|
||||
@@ -13,13 +14,15 @@ use solana::mint::Mint;
|
||||
use solana::native_loader;
|
||||
use solana::signature::{Keypair, KeypairUtil};
|
||||
use solana::system_transaction::SystemTransaction;
|
||||
#[cfg(feature = "bpf_c")]
|
||||
use solana::tictactoe_program::Command;
|
||||
use solana::transaction::Transaction;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
#[cfg(feature = "bpf_c")]
|
||||
use std::env;
|
||||
#[cfg(feature = "bpf_c")]
|
||||
use std::fs::File;
|
||||
#[cfg(feature = "bpf_c")]
|
||||
use std::io::Read;
|
||||
#[cfg(feature = "bpf_c")]
|
||||
use std::path::PathBuf;
|
||||
|
||||
/// BPF program file extension
|
||||
@@ -119,7 +122,7 @@ struct Program {
|
||||
}
|
||||
|
||||
impl Program {
|
||||
pub fn new(loader: &Loader, userdata: Vec<u8>) -> Self {
|
||||
pub fn new(loader: &Loader, userdata: &Vec<u8>) -> Self {
|
||||
let program = Keypair::new();
|
||||
|
||||
// allocate, populate, finalize and spawn program
|
||||
@@ -183,7 +186,7 @@ fn test_program_native_noop() {
|
||||
let loader = Loader::new_native();
|
||||
let name = String::from("noop");
|
||||
let userdata = name.as_bytes().to_vec();
|
||||
let program = Program::new(&loader, userdata);
|
||||
let program = Program::new(&loader, &userdata);
|
||||
|
||||
// Call user program
|
||||
let tx = Transaction::new(
|
||||
@@ -213,7 +216,7 @@ fn test_program_lua_move_funds() {
|
||||
accounts[2].tokens = accounts[2].tokens + tokens
|
||||
"#.as_bytes()
|
||||
.to_vec();
|
||||
let program = Program::new(&loader, userdata);
|
||||
let program = Program::new(&loader, &userdata);
|
||||
let from = Keypair::new();
|
||||
let to = Keypair::new().pubkey();
|
||||
|
||||
@@ -272,16 +275,12 @@ fn test_program_lua_move_funds() {
|
||||
fn test_program_builtin_bpf_noop() {
|
||||
logger::setup();
|
||||
|
||||
let mut file = File::open(create_bpf_path("noop")).expect("file open failed");
|
||||
let mut elf = Vec::new();
|
||||
file.read_to_end(&mut elf).unwrap();
|
||||
|
||||
let loader = Loader::new_bpf();
|
||||
let program = Program::new(
|
||||
&loader,
|
||||
elf::File::open_path(&create_bpf_path("noop"))
|
||||
.unwrap()
|
||||
.get_section(PLATFORM_SECTION_C)
|
||||
.unwrap()
|
||||
.data
|
||||
.clone(),
|
||||
);
|
||||
let program = Program::new(&loader, &elf);
|
||||
|
||||
// Call user program
|
||||
let tx = Transaction::new(
|
||||
@@ -304,16 +303,12 @@ fn test_program_builtin_bpf_noop() {
|
||||
fn test_program_bpf_noop_c() {
|
||||
logger::setup();
|
||||
|
||||
let mut file = File::open(create_bpf_path("noop")).expect("file open failed");
|
||||
let mut elf = Vec::new();
|
||||
file.read_to_end(&mut elf).unwrap();
|
||||
|
||||
let loader = Loader::new_dynamic("solana_bpf_loader");
|
||||
let program = Program::new(
|
||||
&loader,
|
||||
elf::File::open_path(&create_bpf_path("noop"))
|
||||
.unwrap()
|
||||
.get_section(PLATFORM_SECTION_C)
|
||||
.unwrap()
|
||||
.data
|
||||
.clone(),
|
||||
);
|
||||
let program = Program::new(&loader, &elf);
|
||||
|
||||
// Call user program
|
||||
let tx = Transaction::new(
|
||||
|
Reference in New Issue
Block a user