Merge api/program into single units (#7061)

This commit is contained in:
Jack May
2019-11-20 16:32:19 -08:00
committed by GitHub
parent 186bf7ae32
commit 3415db9739
105 changed files with 224 additions and 4095 deletions

View File

@ -22,7 +22,7 @@ walkdir = "2"
bincode = "1.1.4"
byteorder = "1.3.2"
elf = "0.0.10"
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.21.0" }
solana-bpf-loader-program = { path = "../bpf_loader", version = "0.21.0" }
solana-logger = { path = "../../logger", version = "0.21.0" }
solana-runtime = { path = "../../runtime", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }

View File

@ -60,7 +60,7 @@ fn bench_program_verify(bencher: &mut Bencher) {
vm.set_elf(&elf).unwrap();
bencher.iter(|| {
vm.set_verifier(solana_bpf_loader_api::bpf_verifier::check)
vm.set_verifier(solana_bpf_loader_program::bpf_verifier::check)
.unwrap();
});
}
@ -76,7 +76,7 @@ fn bench_program_alu(bencher: &mut Bencher) {
inner_iter.write_u64::<LittleEndian>(0).unwrap();
let elf = load_elf().unwrap();
let (mut vm, _) = solana_bpf_loader_api::create_vm(&elf).unwrap();
let (mut vm, _) = solana_bpf_loader_program::create_vm(&elf).unwrap();
println!("Interpreted:");
assert_eq!(

View File

@ -1,7 +1,7 @@
[package]
name = "solana-bpf-loader-program"
version = "0.21.0"
description = "Solana BPF Loader"
description = "Solana BPF loader"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
@ -9,10 +9,14 @@ homepage = "https://solana.com/"
edition = "2018"
[dependencies]
bincode = "1.2.0"
byteorder = "1.3.2"
libc = "0.2.65"
log = "0.4.8"
serde = "1.0.102"
solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.21.0" }
solana_rbpf = "=0.1.19"
[lib]
crate-type = ["lib", "cdylib"]

View File

@ -3,20 +3,11 @@ pub mod allocator_bump;
pub mod bpf_verifier;
pub mod helpers;
#[macro_export]
macro_rules! solana_bpf_loader {
() => {
(
"solana_bpf_loader".to_string(),
solana_sdk::bpf_loader::id(),
)
};
}
use byteorder::{ByteOrder, LittleEndian, WriteBytesExt};
use log::*;
use solana_rbpf::{memory_region::MemoryRegion, EbpfVm};
use solana_sdk::account::KeyedAccount;
use solana_sdk::bpf_loader::PROGRAM_ID;
use solana_sdk::instruction::InstructionError;
use solana_sdk::instruction_processor_utils::{limited_deserialize, next_keyed_account};
use solana_sdk::loader_instruction::LoaderInstruction;
@ -27,6 +18,13 @@ use std::io::prelude::*;
use std::io::Error;
use std::mem;
solana_sdk::declare_program!(
PROGRAM_ID,
"BPFLoader1111111111111111111111111111111111",
solana_bpf_loader_program,
process_instruction
);
pub fn create_vm(prog: &[u8]) -> Result<(EbpfVm, MemoryRegion), Error> {
let mut vm = EbpfVm::new(None)?;
vm.set_verifier(bpf_verifier::check)?;

View File

@ -1,23 +0,0 @@
[package]
name = "solana-bpf-loader-api"
version = "0.21.0"
description = "Solana BPF Loader"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
bincode = "1.2.0"
byteorder = "1.3.2"
libc = "0.2.65"
log = "0.4.8"
serde = "1.0.102"
solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana_rbpf = "=0.1.19"
[lib]
crate-type = ["lib"]
name = "solana_bpf_loader_api"

View File

@ -1,12 +0,0 @@
#[macro_export]
macro_rules! solana_bpf_loader_program {
() => {
(
"solana_bpf_loader_program".to_string(),
solana_sdk::bpf_loader::id(),
)
};
}
use solana_bpf_loader_api::process_instruction;
solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -1,5 +1,5 @@
[package]
name = "solana-bitcoin-spv-program"
name = "solana-btc-spv-program"
version = "0.21.0"
description = "Solana Bitcoin spv parsing program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
@ -17,8 +17,7 @@ num-traits = "0.2"
serde = "1.0.102"
serde_derive = "1.0.102"
solana-sdk = { path = "../../sdk", version = "0.21.0"}
solana-btc-spv-api = { path = "../btc_spv_api", version = "0.21.0"}
hex = "0.3.2"
[lib]
crate-type = ["lib", "cdylib"]

View File

@ -9,12 +9,16 @@ pub mod spv_processor;
pub mod spv_state;
pub mod utils;
use crate::spv_processor::process_instruction;
pub const BTC_SPV_PROGRAM_ID: [u8; 32] = [
2, 202, 42, 59, 228, 51, 182, 147, 162, 245, 234, 78, 205, 37, 131, 154, 110, 252, 154, 254,
190, 13, 90, 231, 198, 144, 239, 96, 0, 0, 0, 0,
];
solana_sdk::solana_name_id!(
solana_sdk::declare_program!(
BTC_SPV_PROGRAM_ID,
"BtcSpv1111111111111111111111111111111111111"
"BtcSpv1111111111111111111111111111111111111",
solana_btc_spv_program,
process_instruction
);

View File

@ -1,24 +0,0 @@
[package]
name = "solana-btc-spv-api"
version = "0.21.0"
description = "Solana Bitcoin spv parsing program api"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
bincode = "1.2.0"
chrono = { version = "0.4.9", features = ["serde"] }
log = "0.4.2"
num-derive = "0.3"
num-traits = "0.2"
serde = "1.0.102"
serde_derive = "1.0.102"
solana-sdk = { path = "../../sdk", version = "0.21.0"}
hex = "0.3.2"
[lib]
crate-type = ["lib"]
name = "solana_btc_spv_api"

View File

@ -1,13 +0,0 @@
use solana_btc_spv_api::spv_processor::process_instruction;
#[macro_export]
macro_rules! solana_btc_spv_program {
() => {
(
"solana_btc_spv_program".to_string(),
solana_btc_spv_api::id(),
)
};
}
solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -1,7 +1,7 @@
[package]
name = "solana-budget-api"
name = "solana-budget-program"
version = "0.21.0"
description = "Solana Budget program API"
description = "Solana Budget program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
@ -22,5 +22,5 @@ solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-runtime = { path = "../../runtime", version = "0.21.0" }
[lib]
crate-type = ["lib"]
name = "solana_budget_api"
crate-type = ["lib", "cdylib"]
name = "solana_budget_program"

View File

@ -3,12 +3,16 @@ pub mod budget_instruction;
pub mod budget_processor;
pub mod budget_state;
use crate::budget_processor::process_instruction;
const BUDGET_PROGRAM_ID: [u8; 32] = [
2, 203, 81, 223, 225, 24, 34, 35, 203, 214, 138, 130, 144, 208, 35, 77, 63, 16, 87, 51, 47,
198, 115, 123, 98, 188, 19, 160, 0, 0, 0, 0,
];
solana_sdk::solana_name_id!(
solana_sdk::declare_program!(
BUDGET_PROGRAM_ID,
"Budget1111111111111111111111111111111111111"
"Budget1111111111111111111111111111111111111",
solana_budget_program,
process_instruction
);

View File

@ -1,19 +0,0 @@
[package]
name = "solana-budget-program"
version = "0.21.0"
description = "Solana budget program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
log = "0.4.8"
solana-budget-api = { path = "../budget_api", version = "0.21.0" }
solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
[lib]
crate-type = ["lib", "cdylib"]
name = "solana_budget_program"

View File

@ -1,9 +0,0 @@
#[macro_export]
macro_rules! solana_budget_program {
() => {
("solana_budget_program".to_string(), solana_budget_api::id())
};
}
use solana_budget_api::budget_processor::process_instruction;
solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -1,7 +1,7 @@
[package]
name = "solana-config-program"
version = "0.21.0"
description = "config program"
description = "Solana Config program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"

View File

@ -1,7 +1,7 @@
[package]
name = "solana-exchange-api"
name = "solana-exchange-program"
version = "0.21.0"
description = "Solana Exchange program API"
description = "Solana Exchange program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
@ -21,5 +21,5 @@ solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-runtime = { path = "../../runtime", version = "0.21.0" }
[lib]
crate-type = ["lib"]
name = "solana_exchange_api"
crate-type = ["lib", "cdylib"]
name = "solana_exchange_program"

View File

@ -5,14 +5,18 @@ pub mod exchange_state;
#[macro_use]
extern crate solana_metrics;
use crate::exchange_processor::process_instruction;
pub const EXCHANGE_PROGRAM_ID: [u8; 32] = [
3, 147, 111, 103, 210, 47, 14, 213, 108, 116, 49, 115, 232, 171, 14, 111, 167, 140, 221, 234,
33, 70, 185, 192, 42, 31, 141, 152, 0, 0, 0, 0,
];
solana_sdk::solana_name_id!(
solana_sdk::declare_program!(
EXCHANGE_PROGRAM_ID,
"Exchange11111111111111111111111111111111111"
"Exchange11111111111111111111111111111111111",
solana_exchange_program,
process_instruction
);
pub mod faucet {

View File

@ -1,19 +0,0 @@
[package]
name = "solana-exchange-program"
version = "0.21.0"
description = "Solana exchange program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
log = "0.4.8"
solana-exchange-api = { path = "../exchange_api", version = "0.21.0" }
solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
[lib]
crate-type = ["lib", "cdylib"]
name = "solana_exchange_program"

View File

@ -1,12 +0,0 @@
#[macro_export]
macro_rules! solana_exchange_program {
() => {
(
"solana_exchange_program".to_string(),
solana_exchange_api::id(),
)
};
}
use solana_exchange_api::exchange_processor::process_instruction;
solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -16,6 +16,6 @@ solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-runtime = { path = "../../runtime", version = "0.21.0" }
[lib]
crate-type = ["cdylib"]
crate-type = ["lib", "cdylib"]
name = "solana_failure_program"

View File

@ -0,0 +1,23 @@
use solana_sdk::account::KeyedAccount;
use solana_sdk::instruction::InstructionError;
use solana_sdk::pubkey::Pubkey;
pub const FAILURE_PROGRAM_ID: [u8; 32] = [
3, 188, 64, 34, 171, 255, 206, 240, 89, 4, 11, 161, 30, 250, 18, 135, 195, 82, 6, 72, 220, 142,
53, 26, 45, 144, 70, 112, 0, 0, 0, 0,
];
solana_sdk::declare_program!(
FAILURE_PROGRAM_ID,
"FaiLure111111111111111111111111111111111111",
solana_failure_program,
process_instruction
);
fn process_instruction(
_program_id: &Pubkey,
_keyed_accounts: &mut [KeyedAccount],
_data: &[u8],
) -> Result<(), InstructionError> {
Err(InstructionError::GenericError)
}

View File

@ -1,13 +0,0 @@
use solana_sdk::account::KeyedAccount;
use solana_sdk::instruction::InstructionError;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::solana_entrypoint;
solana_entrypoint!(entrypoint);
fn entrypoint(
_program_id: &Pubkey,
_keyed_accounts: &mut [KeyedAccount],
_data: &[u8],
) -> Result<(), InstructionError> {
Err(InstructionError::GenericError)
}

View File

@ -12,7 +12,7 @@ edition = "2018"
bincode = "1.2.0"
log = "0.4.8"
solana-logger = { path = "../../logger", version = "0.21.0" }
solana-move-loader-api = { path = "../move_loader_api", version = "0.21.0" }
solana-move-loader-program = { path = "../move_loader", version = "0.21.0" }
solana-runtime = { path = "../../runtime", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
language_e2e_tests = { version = "0.0.1-sol4", package = "solana_libra_language_e2e_tests" }

View File

@ -11,9 +11,9 @@ solana_sdk::solana_name_id!(
pub mod librapay_instruction;
pub mod librapay_transaction;
extern crate solana_move_loader_api;
extern crate solana_move_loader_program;
use solana_move_loader_api::account_state::LibraAccountState;
use solana_move_loader_program::account_state::LibraAccountState;
use solana_runtime::loader_utils::load_program;
use solana_sdk::account::KeyedAccount;
use solana_sdk::client::Client;
@ -92,5 +92,5 @@ pub fn process_instruction(
keyed_accounts: &mut [KeyedAccount],
data: &[u8],
) -> Result<(), InstructionError> {
solana_move_loader_api::processor::process_instruction(program_id, keyed_accounts, data)
solana_move_loader_program::processor::process_instruction(program_id, keyed_accounts, data)
}

View File

@ -1,6 +1,6 @@
use bincode;
use solana_move_loader_api::account_state::pubkey_to_address;
use solana_move_loader_api::processor::InvokeCommand;
use solana_move_loader_program::account_state::pubkey_to_address;
use solana_move_loader_program::processor::InvokeCommand;
use solana_sdk::instruction::{AccountMeta, Instruction};
use solana_sdk::loader_instruction::LoaderInstruction;
use solana_sdk::pubkey::Pubkey;

View File

@ -1,7 +1,7 @@
use crate::librapay_instruction;
use log::*;
use solana_move_loader_api::account_state::{pubkey_to_address, LibraAccountState};
use solana_move_loader_api::data_store::DataStore;
use solana_move_loader_program::account_state::{pubkey_to_address, LibraAccountState};
use solana_move_loader_program::data_store::DataStore;
use solana_sdk::client::Client;
use solana_sdk::commitment_config::CommitmentConfig;
use solana_sdk::hash::Hash;
@ -160,7 +160,7 @@ mod tests {
let mut bank = Bank::new(&genesis_config);
bank.add_instruction_processor(
solana_sdk::move_loader::id(),
solana_move_loader_api::processor::process_instruction,
solana_move_loader_program::processor::process_instruction,
);
let shared_bank = Arc::new(bank);
let bank_client = BankClient::new_shared(&shared_bank);

View File

@ -1,7 +1,7 @@
[package]
name = "solana-move-loader-api"
name = "solana-move-loader-program"
version = "0.21.0"
description = "Solana Move Loader"
description = "Solana Move loader"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
@ -35,5 +35,5 @@ vm_runtime = { version = "0.0.1-sol4", package = "solana_libra_vm_runtime" }
vm_runtime_types = { version = "0.0.1-sol4", package = "solana_libra_vm_runtime_types" }
[lib]
crate-type = ["lib"]
name = "solana_move_loader_api"
crate-type = ["lib", "cdylib"]
name = "solana_move_loader_program"

View File

@ -0,0 +1,14 @@
pub mod account_state;
pub mod data_store;
pub mod error_mappers;
pub mod processor;
use crate::processor::process_instruction;
use solana_sdk::move_loader::PROGRAM_ID;
solana_sdk::declare_program!(
PROGRAM_ID,
"MoveLdr111111111111111111111111111111111111",
solana_move_loader_program,
process_instruction
);

View File

@ -1,4 +0,0 @@
pub mod account_state;
pub mod data_store;
pub mod error_mappers;
pub mod processor;

View File

@ -1 +0,0 @@
/target/

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +0,0 @@
[package]
name = "solana-move-loader-program"
version = "0.21.0"
description = "Solana Move Loader"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
log = "0.4.8"
solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-move-loader-api = { path = "../move_loader_api", version = "0.21.0" }
[lib]
crate-type = ["lib", "cdylib"]
name = "solana_move_loader_program"

View File

@ -1,2 +0,0 @@
use solana_move_loader_api::processor::process_instruction;
solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -1,7 +1,7 @@
[package]
name = "solana-noop-program"
version = "0.21.0"
description = "Solana noop program"
description = "Solana Noop program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
@ -14,6 +14,6 @@ solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
[lib]
crate-type = ["cdylib"]
crate-type = ["lib", "cdylib"]
name = "solana_noop_program"

View File

@ -2,10 +2,20 @@ use log::*;
use solana_sdk::account::KeyedAccount;
use solana_sdk::instruction::InstructionError;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::solana_entrypoint;
solana_entrypoint!(entrypoint);
fn entrypoint(
pub const NOOP_PROGRAM_ID: [u8; 32] = [
5, 150, 31, 54, 19, 205, 142, 201, 161, 38, 97, 31, 144, 212, 37, 82, 93, 58, 178, 5, 131, 178,
31, 101, 138, 251, 91, 128, 0, 0, 0, 0,
];
solana_sdk::declare_program!(
NOOP_PROGRAM_ID,
"Noop111111111111111111111111111111111111111",
solana_noop_program,
process_instruction
);
fn process_instruction(
program_id: &Pubkey,
keyed_accounts: &mut [KeyedAccount],
data: &[u8],

View File

@ -1,7 +1,7 @@
[package]
name = "solana-stake-program"
version = "0.21.0"
description = "Solana Stake program API"
description = "Solana Stake program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"

View File

@ -1,7 +1,7 @@
[package]
name = "solana-stake-tests"
version = "0.21.0"
description = "Solana stake api tests"
description = "Solana stake tests"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"

View File

@ -1,7 +1,7 @@
[package]
name = "solana-storage-api"
name = "solana-storage-program"
version = "0.21.0"
description = "Solana Storage program API"
description = "Solana Storage program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
@ -20,5 +20,5 @@ solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
[lib]
crate-type = ["lib"]
name = "solana_storage_api"
crate-type = ["lib", "cdylib"]
name = "solana_storage_program"

View File

@ -3,11 +3,16 @@ pub mod storage_contract;
pub mod storage_instruction;
pub mod storage_processor;
use crate::storage_processor::process_instruction;
const STORAGE_PROGRAM_ID: [u8; 32] = [
6, 162, 25, 123, 127, 68, 233, 59, 131, 151, 21, 152, 162, 120, 90, 37, 154, 88, 86, 5, 156,
221, 182, 201, 142, 103, 151, 112, 0, 0, 0, 0,
];
solana_sdk::solana_name_id!(
solana_sdk::declare_program!(
STORAGE_PROGRAM_ID,
"Storage111111111111111111111111111111111111"
"Storage111111111111111111111111111111111111",
solana_storage_program,
process_instruction
);

View File

@ -1,12 +0,0 @@
#[macro_export]
macro_rules! solana_storage_program {
() => {
(
"solana_storage_program".to_string(),
solana_storage_api::id(),
)
};
}
use solana_storage_api::storage_processor::process_instruction;
solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -1,7 +1,7 @@
[package]
name = "solana-storage-program"
name = "solana-storage-tests"
version = "0.21.0"
description = "Solana storage program"
description = "Solana storage tests"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
@ -12,13 +12,9 @@ edition = "2018"
log = "0.4.8"
solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-storage-api = { path = "../storage_api", version = "0.21.0" }
solana-storage-program = { path = "../storage", version = "0.21.0" }
[dev-dependencies]
solana-runtime = { path = "../../runtime", version = "0.21.0" }
assert_matches = "1.3.0"
bincode = "1.2.0"
[lib]
crate-type = ["lib", "cdylib"]
name = "solana_storage_program"

View File

@ -23,7 +23,7 @@ use solana_sdk::{
Sysvar,
},
};
use solana_storage_api::{
use solana_storage_program::{
id,
storage_contract::StorageAccount,
storage_contract::{ProofStatus, StorageContract, STORAGE_ACCOUNT_SPACE},

View File

@ -1,7 +1,7 @@
[package]
name = "solana-vest-program"
version = "0.21.0"
description = "Solana Vest program API"
description = "Solana Vest program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"

View File

@ -1,7 +1,7 @@
[package]
name = "solana-vote-program"
version = "0.21.0"
description = "Solana Vote program API"
description = "Solana Vote program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"