Merge native programs parts into one unit (#7047)

This commit is contained in:
Jack May
2019-11-20 10:12:43 -08:00
committed by GitHub
parent 42da1ce4e2
commit d184d3a732
71 changed files with 244 additions and 335 deletions

95
Cargo.lock generated
View File

@ -3216,16 +3216,16 @@ dependencies = [
"solana-budget-program 0.21.0", "solana-budget-program 0.21.0",
"solana-clap-utils 0.21.0", "solana-clap-utils 0.21.0",
"solana-client 0.21.0", "solana-client 0.21.0",
"solana-config-api 0.21.0", "solana-config-program 0.21.0",
"solana-core 0.21.0", "solana-core 0.21.0",
"solana-drone 0.21.0", "solana-drone 0.21.0",
"solana-logger 0.21.0", "solana-logger 0.21.0",
"solana-net-utils 0.21.0", "solana-net-utils 0.21.0",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-stake-api 0.21.0", "solana-stake-program 0.21.0",
"solana-storage-api 0.21.0", "solana-storage-api 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
"solana-vote-signer 0.21.0", "solana-vote-signer 0.21.0",
"tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3252,22 +3252,13 @@ dependencies = [
] ]
[[package]] [[package]]
name = "solana-config-api" name = "solana-config-program"
version = "0.21.0" version = "0.21.0"
dependencies = [ dependencies = [
"bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.8 (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.102 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-sdk 0.21.0",
]
[[package]]
name = "solana-config-program"
version = "0.21.0"
dependencies = [
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-config-api 0.21.0",
"solana-logger 0.21.0", "solana-logger 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
] ]
@ -3281,7 +3272,6 @@ dependencies = [
"log 0.4.8 (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.102 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-config-api 0.21.0",
"solana-config-program 0.21.0", "solana-config-program 0.21.0",
"solana-logger 0.21.0", "solana-logger 0.21.0",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
@ -3342,10 +3332,10 @@ dependencies = [
"solana-reed-solomon-erasure 4.0.1-3 (registry+https://github.com/rust-lang/crates.io-index)", "solana-reed-solomon-erasure 4.0.1-3 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-stake-api 0.21.0", "solana-stake-program 0.21.0",
"solana-storage-api 0.21.0", "solana-storage-api 0.21.0",
"solana-storage-program 0.21.0", "solana-storage-program 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
"solana-vote-signer 0.21.0", "solana-vote-signer 0.21.0",
"symlink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "symlink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", "sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3455,9 +3445,9 @@ dependencies = [
"solana-genesis-programs 0.21.0", "solana-genesis-programs 0.21.0",
"solana-ledger 0.21.0", "solana-ledger 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-stake-api 0.21.0", "solana-stake-program 0.21.0",
"solana-storage-api 0.21.0", "solana-storage-api 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
"tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -3470,19 +3460,15 @@ dependencies = [
"solana-bpf-loader-program 0.21.0", "solana-bpf-loader-program 0.21.0",
"solana-budget-api 0.21.0", "solana-budget-api 0.21.0",
"solana-budget-program 0.21.0", "solana-budget-program 0.21.0",
"solana-config-api 0.21.0",
"solana-config-program 0.21.0", "solana-config-program 0.21.0",
"solana-exchange-api 0.21.0", "solana-exchange-api 0.21.0",
"solana-exchange-program 0.21.0", "solana-exchange-program 0.21.0",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-stake-api 0.21.0",
"solana-stake-program 0.21.0", "solana-stake-program 0.21.0",
"solana-storage-api 0.21.0", "solana-storage-api 0.21.0",
"solana-storage-program 0.21.0", "solana-storage-program 0.21.0",
"solana-vest-api 0.21.0",
"solana-vest-program 0.21.0", "solana-vest-program 0.21.0",
"solana-vote-api 0.21.0",
"solana-vote-program 0.21.0", "solana-vote-program 0.21.0",
] ]
@ -3523,7 +3509,7 @@ dependencies = [
"sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-clap-utils 0.21.0", "solana-clap-utils 0.21.0",
"solana-client 0.21.0", "solana-client 0.21.0",
"solana-config-api 0.21.0", "solana-config-program 0.21.0",
"solana-logger 0.21.0", "solana-logger 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3584,8 +3570,8 @@ dependencies = [
"solana-reed-solomon-erasure 4.0.1-3 (registry+https://github.com/rust-lang/crates.io-index)", "solana-reed-solomon-erasure 4.0.1-3 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-stake-api 0.21.0", "solana-stake-program 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
"sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", "sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
"tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3607,7 +3593,7 @@ dependencies = [
"solana-logger 0.21.0", "solana-logger 0.21.0",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
] ]
[[package]] [[package]]
@ -3633,7 +3619,7 @@ dependencies = [
"serial_test 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serial_test 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serial_test_derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serial_test_derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-client 0.21.0", "solana-client 0.21.0",
"solana-config-api 0.21.0", "solana-config-program 0.21.0",
"solana-core 0.21.0", "solana-core 0.21.0",
"solana-drone 0.21.0", "solana-drone 0.21.0",
"solana-exchange-api 0.21.0", "solana-exchange-api 0.21.0",
@ -3644,11 +3630,11 @@ dependencies = [
"solana-rayon-threadlimit 0.21.0", "solana-rayon-threadlimit 0.21.0",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-stake-api 0.21.0", "solana-stake-program 0.21.0",
"solana-storage-api 0.21.0", "solana-storage-api 0.21.0",
"solana-storage-program 0.21.0", "solana-storage-program 0.21.0",
"solana-vest-api 0.21.0", "solana-vest-program 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
"symlink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "symlink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -3869,10 +3855,8 @@ dependencies = [
"solana-noop-program 0.21.0", "solana-noop-program 0.21.0",
"solana-rayon-threadlimit 0.21.0", "solana-rayon-threadlimit 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-stake-api 0.21.0",
"solana-stake-program 0.21.0", "solana-stake-program 0.21.0",
"solana-storage-api 0.21.0", "solana-storage-api 0.21.0",
"solana-vote-api 0.21.0",
"solana-vote-program 0.21.0", "solana-vote-program 0.21.0",
"sys-info 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3921,7 +3905,7 @@ dependencies = [
] ]
[[package]] [[package]]
name = "solana-stake-api" name = "solana-stake-program"
version = "0.21.0" version = "0.21.0"
dependencies = [ dependencies = [
"bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3931,21 +3915,11 @@ dependencies = [
"rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-config-api 0.21.0", "solana-config-program 0.21.0",
"solana-logger 0.21.0", "solana-logger 0.21.0",
"solana-metrics 0.21.0", "solana-metrics 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
]
[[package]]
name = "solana-stake-program"
version = "0.21.0"
dependencies = [
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.21.0",
"solana-sdk 0.21.0",
"solana-stake-api 0.21.0",
] ]
[[package]] [[package]]
@ -3957,9 +3931,8 @@ dependencies = [
"solana-logger 0.21.0", "solana-logger 0.21.0",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-stake-api 0.21.0",
"solana-stake-program 0.21.0", "solana-stake-program 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
] ]
[[package]] [[package]]
@ -4023,14 +3996,14 @@ dependencies = [
"solana-perf 0.21.0", "solana-perf 0.21.0",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
"solana-vote-api 0.21.0", "solana-vote-program 0.21.0",
"solana-vote-signer 0.21.0", "solana-vote-signer 0.21.0",
"tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
"tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "solana-vest-api" name = "solana-vest-program"
version = "0.21.0" version = "0.21.0"
dependencies = [ dependencies = [
"bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -4040,23 +4013,13 @@ dependencies = [
"num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-config-api 0.21.0", "solana-config-program 0.21.0",
"solana-runtime 0.21.0", "solana-runtime 0.21.0",
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
] ]
[[package]] [[package]]
name = "solana-vest-program" name = "solana-vote-program"
version = "0.21.0"
dependencies = [
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.21.0",
"solana-sdk 0.21.0",
"solana-vest-api 0.21.0",
]
[[package]]
name = "solana-vote-api"
version = "0.21.0" version = "0.21.0"
dependencies = [ dependencies = [
"bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -4070,16 +4033,6 @@ dependencies = [
"solana-sdk 0.21.0", "solana-sdk 0.21.0",
] ]
[[package]]
name = "solana-vote-program"
version = "0.21.0"
dependencies = [
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.21.0",
"solana-sdk 0.21.0",
"solana-vote-api 0.21.0",
]
[[package]] [[package]]
name = "solana-vote-signer" name = "solana-vote-signer"
version = "0.21.0" version = "0.21.0"

View File

@ -31,23 +31,19 @@ members = [
"programs/btc_spv_program", "programs/btc_spv_program",
"programs/btc_spv_api", "programs/btc_spv_api",
"programs/btc_spv_bin", "programs/btc_spv_bin",
"programs/config_api", "programs/config",
"programs/config_program",
"programs/config_tests", "programs/config_tests",
"programs/exchange_api", "programs/exchange_api",
"programs/exchange_program", "programs/exchange_program",
"programs/failure_program", "programs/failure_program",
"programs/noop_program", "programs/noop_program",
"programs/ownable_api", "programs/ownable_api",
"programs/stake_api", "programs/stake",
"programs/stake_program",
"programs/stake_tests", "programs/stake_tests",
"programs/storage_api", "programs/storage_api",
"programs/storage_program", "programs/storage_program",
"programs/vest_api", "programs/vest",
"programs/vest_program", "programs/vote",
"programs/vote_api",
"programs/vote_program",
"archiver", "archiver",
"runtime", "runtime",
"sdk", "sdk",

View File

@ -26,10 +26,8 @@ declare print_free_tree=(
'sdk/bpf/rust/rust-utils' 'sdk/bpf/rust/rust-utils'
'sdk/src' 'sdk/src'
'programs/bpf/rust' 'programs/bpf/rust'
'programs/stake_api/src' 'programs/stake/src'
'programs/stake_program/src' 'programs/vote/src'
'programs/vote_api/src'
'programs/vote_program/src'
) )
if _ git --no-pager grep -n --max-depth=0 "${prints[@]/#/-e }" -- "${print_free_tree[@]}"; then if _ git --no-pager grep -n --max-depth=0 "${prints[@]/#/-e }" -- "${print_free_tree[@]}"; then

View File

@ -30,15 +30,15 @@ serde_yaml = "0.8.11"
solana-budget-api = { path = "../programs/budget_api", version = "0.21.0" } solana-budget-api = { path = "../programs/budget_api", version = "0.21.0" }
solana-clap-utils = { path = "../clap-utils", version = "0.21.0" } solana-clap-utils = { path = "../clap-utils", version = "0.21.0" }
solana-client = { path = "../client", version = "0.21.0" } solana-client = { path = "../client", version = "0.21.0" }
solana-config-api = { path = "../programs/config_api", version = "0.21.0" } solana-config-program = { path = "../programs/config", version = "0.21.0" }
solana-drone = { path = "../drone", version = "0.21.0" } solana-drone = { path = "../drone", version = "0.21.0" }
solana-logger = { path = "../logger", version = "0.21.0" } solana-logger = { path = "../logger", version = "0.21.0" }
solana-net-utils = { path = "../net-utils", version = "0.21.0" } solana-net-utils = { path = "../net-utils", version = "0.21.0" }
solana-runtime = { path = "../runtime", version = "0.21.0" } solana-runtime = { path = "../runtime", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.21.0" } solana-stake-program = { path = "../programs/stake", version = "0.21.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
solana-vote-signer = { path = "../vote-signer", version = "0.21.0" } solana-vote-signer = { path = "../vote-signer", version = "0.21.0" }
url = "2.1.0" url = "2.1.0"

View File

@ -29,9 +29,9 @@ use solana_sdk::{
system_transaction, system_transaction,
transaction::{Transaction, TransactionError}, transaction::{Transaction, TransactionError},
}; };
use solana_stake_api::stake_state::{Lockup, StakeAuthorize}; use solana_stake_program::stake_state::{Lockup, StakeAuthorize};
use solana_storage_api::storage_instruction::StorageAccountType; use solana_storage_api::storage_instruction::StorageAccountType;
use solana_vote_api::vote_state::VoteAuthorize; use solana_vote_program::vote_state::VoteAuthorize;
use std::{ use std::{
fs::File, fs::File,
io::{Read, Write}, io::{Read, Write},

View File

@ -18,12 +18,12 @@ use solana_sdk::{
}, },
transaction::Transaction, transaction::Transaction,
}; };
use solana_stake_api::stake_state::Meta; use solana_stake_program::stake_state::Meta;
use solana_stake_api::{ use solana_stake_program::{
stake_instruction::{self, StakeError}, stake_instruction::{self, StakeError},
stake_state::{Authorized, Lockup, StakeAuthorize, StakeState}, stake_state::{Authorized, Lockup, StakeAuthorize, StakeState},
}; };
use solana_vote_api::vote_state::VoteState; use solana_vote_program::vote_state::VoteState;
use std::ops::Deref; use std::ops::Deref;
pub trait StakeSubCommands { pub trait StakeSubCommands {
@ -536,7 +536,7 @@ pub fn process_show_stake_account(
use_lamports_unit: bool, use_lamports_unit: bool,
) -> ProcessResult { ) -> ProcessResult {
let stake_account = rpc_client.get_account(stake_account_pubkey)?; let stake_account = rpc_client.get_account(stake_account_pubkey)?;
if stake_account.owner != solana_stake_api::id() { if stake_account.owner != solana_stake_program::id() {
return Err(CliError::RpcRequestError( return Err(CliError::RpcRequestError(
format!("{:?} is not a stake account", stake_account_pubkey).to_string(), format!("{:?} is not a stake account", stake_account_pubkey).to_string(),
) )

View File

@ -13,7 +13,7 @@ use solana_clap_utils::{
input_validators::{is_pubkey, is_url}, input_validators::{is_pubkey, is_url},
}; };
use solana_client::rpc_client::RpcClient; use solana_client::rpc_client::RpcClient;
use solana_config_api::{config_instruction, get_config_data, ConfigKeys, ConfigState}; use solana_config_program::{config_instruction, get_config_data, ConfigKeys, ConfigState};
use solana_sdk::{ use solana_sdk::{
account::Account, account::Account,
commitment_config::CommitmentConfig, commitment_config::CommitmentConfig,
@ -137,7 +137,7 @@ fn parse_validator_info(
pubkey: &Pubkey, pubkey: &Pubkey,
account: &Account, account: &Account,
) -> Result<(Pubkey, Map<String, serde_json::value::Value>), Box<dyn error::Error>> { ) -> Result<(Pubkey, Map<String, serde_json::value::Value>), Box<dyn error::Error>> {
if account.owner != solana_config_api::id() { if account.owner != solana_config_program::id() {
return Err(format!("{} is not a validator info account", pubkey).into()); return Err(format!("{} is not a validator info account", pubkey).into());
} }
let key_list: ConfigKeys = deserialize(&account.data)?; let key_list: ConfigKeys = deserialize(&account.data)?;
@ -281,7 +281,7 @@ pub fn process_set_validator_info(
info: validator_string, info: validator_string,
}; };
// Check for existing validator-info account // Check for existing validator-info account
let all_config = rpc_client.get_program_accounts(&solana_config_api::id())?; let all_config = rpc_client.get_program_accounts(&solana_config_program::id())?;
let existing_account = all_config let existing_account = all_config
.iter() .iter()
.filter(|(_, account)| { .filter(|(_, account)| {
@ -371,7 +371,7 @@ pub fn process_get_validator_info(rpc_client: &RpcClient, pubkey: Option<Pubkey>
rpc_client.get_account(&validator_info_pubkey)?, rpc_client.get_account(&validator_info_pubkey)?,
)] )]
} else { } else {
let all_config = rpc_client.get_program_accounts(&solana_config_api::id())?; let all_config = rpc_client.get_program_accounts(&solana_config_program::id())?;
all_config all_config
.into_iter() .into_iter()
.filter(|(_, validator_info_account)| { .filter(|(_, validator_info_account)| {
@ -494,7 +494,7 @@ mod tests {
parse_validator_info( parse_validator_info(
&Pubkey::default(), &Pubkey::default(),
&Account { &Account {
owner: solana_config_api::id(), owner: solana_config_program::id(),
data, data,
..Account::default() ..Account::default()
} }

View File

@ -10,7 +10,7 @@ use solana_sdk::{
account::Account, pubkey::Pubkey, signature::KeypairUtil, system_instruction::SystemError, account::Account, pubkey::Pubkey, signature::KeypairUtil, system_instruction::SystemError,
transaction::Transaction, transaction::Transaction,
}; };
use solana_vote_api::{ use solana_vote_program::{
vote_instruction::{self, VoteError}, vote_instruction::{self, VoteError},
vote_state::{VoteAuthorize, VoteInit, VoteState}, vote_state::{VoteAuthorize, VoteInit, VoteState},
}; };
@ -309,7 +309,7 @@ fn get_vote_account(
) -> Result<(Account, VoteState), Box<dyn std::error::Error>> { ) -> Result<(Account, VoteState), Box<dyn std::error::Error>> {
let vote_account = rpc_client.get_account(vote_account_pubkey)?; let vote_account = rpc_client.get_account(vote_account_pubkey)?;
if vote_account.owner != solana_vote_api::id() { if vote_account.owner != solana_vote_program::id() {
return Err(CliError::RpcRequestError( return Err(CliError::RpcRequestError(
format!("{:?} is not a vote account", vote_account_pubkey).to_string(), format!("{:?} is not a vote account", vote_account_pubkey).to_string(),
) )

View File

@ -57,10 +57,10 @@ solana-net-utils = { path = "../net-utils", version = "0.21.0" }
solana-perf = { path = "../perf", version = "0.21.0" } solana-perf = { path = "../perf", version = "0.21.0" }
solana-runtime = { path = "../runtime", version = "0.21.0" } solana-runtime = { path = "../runtime", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.21.0" } solana-stake-program = { path = "../programs/stake", version = "0.21.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" }
solana-storage-program = { path = "../programs/storage_program", version = "0.21.0" } solana-storage-program = { path = "../programs/storage_program", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
solana-vote-signer = { path = "../vote-signer", version = "0.21.0" } solana-vote-signer = { path = "../vote-signer", version = "0.21.0" }
symlink = "0.1.0" symlink = "0.1.0"
sys-info = "0.5.8" sys-info = "0.5.8"

View File

@ -86,8 +86,8 @@ mod tests {
use solana_sdk::hash::Hash; use solana_sdk::hash::Hash;
use solana_sdk::signature::{Keypair, KeypairUtil}; use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::transaction::Transaction; use solana_sdk::transaction::Transaction;
use solana_vote_api::vote_instruction; use solana_vote_program::vote_instruction;
use solana_vote_api::vote_state::Vote; use solana_vote_program::vote_state::Vote;
#[test] #[test]
fn test_max_vote_tx_fits() { fn test_max_vote_tx_fits() {

View File

@ -1,7 +1,7 @@
use crate::result::{Error, Result}; use crate::result::{Error, Result};
use solana_runtime::bank::Bank; use solana_runtime::bank::Bank;
use solana_sdk::clock::Slot; use solana_sdk::clock::Slot;
use solana_vote_api::{vote_state::VoteState, vote_state::MAX_LOCKOUT_HISTORY}; use solana_vote_program::{vote_state::VoteState, vote_state::MAX_LOCKOUT_HISTORY};
use std::{ use std::{
collections::HashMap, collections::HashMap,
sync::atomic::{AtomicBool, Ordering}, sync::atomic::{AtomicBool, Ordering},
@ -238,8 +238,8 @@ mod tests {
use super::*; use super::*;
use crate::genesis_utils::{create_genesis_config, GenesisConfigInfo}; use crate::genesis_utils::{create_genesis_config, GenesisConfigInfo};
use solana_sdk::pubkey::Pubkey; use solana_sdk::pubkey::Pubkey;
use solana_stake_api::stake_state; use solana_stake_program::stake_state;
use solana_vote_api::vote_state; use solana_vote_program::vote_state;
#[test] #[test]
fn test_block_commitment() { fn test_block_commitment() {

View File

@ -2,7 +2,7 @@ use solana_ledger::bank_forks::BankForks;
use solana_metrics::datapoint_debug; use solana_metrics::datapoint_debug;
use solana_runtime::bank::Bank; use solana_runtime::bank::Bank;
use solana_sdk::{account::Account, clock::Slot, hash::Hash, pubkey::Pubkey}; use solana_sdk::{account::Account, clock::Slot, hash::Hash, pubkey::Pubkey};
use solana_vote_api::vote_state::{Lockout, Vote, VoteState, MAX_LOCKOUT_HISTORY}; use solana_vote_program::vote_state::{Lockout, Vote, VoteState, MAX_LOCKOUT_HISTORY};
use std::{ use std::{
collections::{HashMap, HashSet}, collections::{HashMap, HashSet},
sync::Arc, sync::Arc,

View File

@ -28,7 +28,7 @@ use solana_sdk::{
timing::{self, duration_as_ms}, timing::{self, duration_as_ms},
transaction::Transaction, transaction::Transaction,
}; };
use solana_vote_api::vote_instruction; use solana_vote_program::vote_instruction;
use std::{ use std::{
collections::HashMap, collections::HashMap,
collections::HashSet, collections::HashSet,
@ -1081,7 +1081,7 @@ mod test {
use solana_sdk::signature::{Keypair, KeypairUtil}; use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::system_transaction; use solana_sdk::system_transaction;
use solana_sdk::transaction::TransactionError; use solana_sdk::transaction::TransactionError;
use solana_vote_api::vote_state::VoteState; use solana_vote_program::vote_state::VoteState;
use std::fs::remove_dir_all; use std::fs::remove_dir_all;
use std::iter::FromIterator; use std::iter::FromIterator;
use std::sync::{Arc, RwLock}; use std::sync::{Arc, RwLock};

View File

@ -30,7 +30,7 @@ use solana_sdk::{
signature::Signature, signature::Signature,
transaction::{self, Transaction}, transaction::{self, Transaction},
}; };
use solana_vote_api::vote_state::{VoteState, MAX_LOCKOUT_HISTORY}; use solana_vote_program::vote_state::{VoteState, MAX_LOCKOUT_HISTORY};
use std::{ use std::{
net::{SocketAddr, UdpSocket}, net::{SocketAddr, UdpSocket},
sync::{Arc, RwLock}, sync::{Arc, RwLock},

View File

@ -9,7 +9,7 @@ use solana_runtime::bank::Bank;
use solana_sdk::{ use solana_sdk::{
account::Account, clock::Slot, pubkey::Pubkey, signature::Signature, transaction, account::Account, clock::Slot, pubkey::Pubkey, signature::Signature, transaction,
}; };
use solana_vote_api::vote_state::MAX_LOCKOUT_HISTORY; use solana_vote_program::vote_state::MAX_LOCKOUT_HISTORY;
use std::collections::HashMap; use std::collections::HashMap;
use std::sync::{Arc, RwLock}; use std::sync::{Arc, RwLock};

View File

@ -14,20 +14,16 @@ solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.21.0
solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.21.0" } solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.21.0" }
solana-budget-api = { path = "../programs/budget_api", version = "0.21.0" } solana-budget-api = { path = "../programs/budget_api", version = "0.21.0" }
solana-budget-program = { path = "../programs/budget_program", version = "0.21.0" } solana-budget-program = { path = "../programs/budget_program", version = "0.21.0" }
solana-config-api = { path = "../programs/config_api", version = "0.21.0" } solana-config-program = { path = "../programs/config", version = "0.21.0" }
solana-config-program = { path = "../programs/config_program", version = "0.21.0" }
solana-exchange-api = { path = "../programs/exchange_api", version = "0.21.0" } solana-exchange-api = { path = "../programs/exchange_api", version = "0.21.0" }
solana-exchange-program = { path = "../programs/exchange_program", version = "0.21.0" } solana-exchange-program = { path = "../programs/exchange_program", version = "0.21.0" }
solana-runtime = { path = "../runtime", version = "0.21.0" } solana-runtime = { path = "../runtime", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.21.0" } solana-stake-program = { path = "../programs/stake", version = "0.21.0" }
solana-stake-program = { path = "../programs/stake_program", version = "0.21.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" }
solana-storage-program = { path = "../programs/storage_program", version = "0.21.0" } solana-storage-program = { path = "../programs/storage_program", version = "0.21.0" }
solana-vest-api = { path = "../programs/vest_api", version = "0.21.0" } solana-vest-program = { path = "../programs/vest", version = "0.21.0" }
solana-vest-program = { path = "../programs/vest_program", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" }
solana-vote-program = { path = "../programs/vote_program", version = "0.21.0" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@ -19,7 +19,7 @@ solana-clap-utils = { path = "../clap-utils", version = "0.21.0" }
solana-genesis-programs = { path = "../genesis-programs", version = "0.21.0" } solana-genesis-programs = { path = "../genesis-programs", version = "0.21.0" }
solana-ledger = { path = "../ledger", version = "0.21.0" } solana-ledger = { path = "../ledger", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.21.0" } solana-stake-program = { path = "../programs/stake", version = "0.21.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
tempfile = "3.1.0" tempfile = "3.1.0"

View File

@ -20,9 +20,9 @@ use solana_sdk::{
signature::{read_keypair_file, Keypair, KeypairUtil}, signature::{read_keypair_file, Keypair, KeypairUtil},
system_program, timing, system_program, timing,
}; };
use solana_stake_api::stake_state; use solana_stake_program::stake_state;
use solana_storage_api::storage_contract; use solana_storage_api::storage_contract;
use solana_vote_api::vote_state; use solana_vote_program::vote_state;
use std::{collections::HashMap, error, fs::File, io, path::PathBuf, str::FromStr, time::Duration}; use std::{collections::HashMap, error, fs::File, io, path::PathBuf, str::FromStr, time::Duration};
pub enum AccountFileFormat { pub enum AccountFileFormat {
@ -446,7 +446,7 @@ fn main() -> Result<(), Box<dyn error::Error>> {
// add genesis stuff from storage and stake // add genesis stuff from storage and stake
solana_storage_api::rewards_pools::add_genesis_accounts(&mut genesis_config); solana_storage_api::rewards_pools::add_genesis_accounts(&mut genesis_config);
solana_stake_api::add_genesis_accounts(&mut genesis_config); solana_stake_program::add_genesis_accounts(&mut genesis_config);
create_new_ledger(&ledger_path, &genesis_config)?; create_new_ledger(&ledger_path, &genesis_config)?;
Ok(()) Ok(())

View File

@ -29,7 +29,7 @@ serde_yaml = "0.8.11"
sha2 = "0.8.0" sha2 = "0.8.0"
solana-clap-utils = { path = "../clap-utils", version = "0.21.0" } solana-clap-utils = { path = "../clap-utils", version = "0.21.0" }
solana-client = { path = "../client", version = "0.21.0" } solana-client = { path = "../client", version = "0.21.0" }
solana-config-api = { path = "../programs/config_api", version = "0.21.0" } solana-config-program = { path = "../programs/config", version = "0.21.0" }
solana-logger = { path = "../logger", version = "0.21.0" } solana-logger = { path = "../logger", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
tar = "0.4.26" tar = "0.4.26"

View File

@ -6,7 +6,7 @@ use console::{style, Emoji};
use indicatif::{ProgressBar, ProgressStyle}; use indicatif::{ProgressBar, ProgressStyle};
use sha2::{Digest, Sha256}; use sha2::{Digest, Sha256};
use solana_client::rpc_client::RpcClient; use solana_client::rpc_client::RpcClient;
use solana_config_api::{config_instruction, get_config_data}; use solana_config_program::{config_instruction, get_config_data};
use solana_sdk::message::Message; use solana_sdk::message::Message;
use solana_sdk::pubkey::Pubkey; use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil, Signable}; use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil, Signable};

View File

@ -1,5 +1,5 @@
use serde_derive::{Deserialize, Serialize}; use serde_derive::{Deserialize, Serialize};
use solana_config_api::ConfigState; use solana_config_program::ConfigState;
use solana_sdk::pubkey::Pubkey; use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Signable, Signature}; use solana_sdk::signature::{Signable, Signature};
use std::borrow::Cow; use std::borrow::Cow;

View File

@ -20,7 +20,7 @@ solana-ledger = { path = "../ledger", version = "0.21.0" }
solana-logger = { path = "../logger", version = "0.21.0" } solana-logger = { path = "../logger", version = "0.21.0" }
solana-runtime = { path = "../runtime", version = "0.21.0" } solana-runtime = { path = "../runtime", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
[dev-dependencies] [dev-dependencies]
assert_cmd = "0.11" assert_cmd = "0.11"

View File

@ -12,7 +12,7 @@ use solana_sdk::{
clock::Slot, genesis_config::GenesisConfig, instruction_processor_utils::limited_deserialize, clock::Slot, genesis_config::GenesisConfig, instruction_processor_utils::limited_deserialize,
native_token::lamports_to_sol, pubkey::Pubkey, native_token::lamports_to_sol, pubkey::Pubkey,
}; };
use solana_vote_api::vote_state::VoteState; use solana_vote_program::vote_state::VoteState;
use std::{ use std::{
collections::{BTreeMap, HashMap, HashSet}, collections::{BTreeMap, HashMap, HashSet},
ffi::OsStr, ffi::OsStr,
@ -76,10 +76,10 @@ fn output_slot(blocktree: &Blocktree, slot: Slot, method: &LedgerOutputMethod) {
} }
let mut raw = true; let mut raw = true;
if program_pubkey == solana_vote_api::id() { if program_pubkey == solana_vote_program::id() {
if let Ok(vote_instruction) = if let Ok(vote_instruction) =
limited_deserialize::< limited_deserialize::<
solana_vote_api::vote_instruction::VoteInstruction, solana_vote_program::vote_instruction::VoteInstruction,
>(&instruction.data) >(&instruction.data)
{ {
println!(" {:?}", vote_instruction); println!(" {:?}", vote_instruction);

View File

@ -39,8 +39,8 @@ ed25519-dalek = "1.0.0-pre.1"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.0" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.0" }
solana-runtime = { path = "../runtime", version = "0.21.0" } solana-runtime = { path = "../runtime", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.21.0" } solana-stake-program = { path = "../programs/stake", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
sys-info = "0.5.8" sys-info = "0.5.8"
tar = "0.4.26" tar = "0.4.26"
tempfile = "3.1.0" tempfile = "3.1.0"

View File

@ -4,7 +4,7 @@ use solana_sdk::{
clock::{Epoch, Slot}, clock::{Epoch, Slot},
pubkey::Pubkey, pubkey::Pubkey,
}; };
use solana_vote_api::vote_state::VoteState; use solana_vote_program::vote_state::VoteState;
use std::{borrow::Borrow, collections::HashMap}; use std::{borrow::Borrow, collections::HashMap};
/// Looks through vote accounts, and finds the latest slot that has achieved /// Looks through vote accounts, and finds the latest slot that has achieved
@ -113,11 +113,11 @@ pub(crate) mod tests {
}, },
transaction::Transaction, transaction::Transaction,
}; };
use solana_stake_api::{ use solana_stake_program::{
stake_instruction, stake_instruction,
stake_state::{Authorized, Stake}, stake_state::{Authorized, Stake},
}; };
use solana_vote_api::{vote_instruction, vote_state::VoteInit}; use solana_vote_program::{vote_instruction, vote_state::VoteInit};
use std::sync::Arc; use std::sync::Arc;
fn new_from_parent(parent: &Arc<Bank>, slot: Slot) -> Bank { fn new_from_parent(parent: &Arc<Bank>, slot: Slot) -> Bank {
@ -180,6 +180,7 @@ pub(crate) mod tests {
#[test] #[test]
fn test_epoch_stakes_and_lockouts() { fn test_epoch_stakes_and_lockouts() {
solana_logger::setup();
let stake = BOOTSTRAP_LEADER_LAMPORTS * 100; let stake = BOOTSTRAP_LEADER_LAMPORTS * 100;
let leader_stake = Stake { let leader_stake = Stake {
stake: BOOTSTRAP_LEADER_LAMPORTS, stake: BOOTSTRAP_LEADER_LAMPORTS,

View File

@ -11,7 +11,7 @@ homepage = "https://solana.com/"
[dependencies] [dependencies]
log = "0.4.8" log = "0.4.8"
rand = "0.6.5" rand = "0.6.5"
solana-config-api = { path = "../programs/config_api", version = "0.21.0" } solana-config-program = { path = "../programs/config", version = "0.21.0" }
solana-core = { path = "../core", version = "0.21.0" } solana-core = { path = "../core", version = "0.21.0" }
solana-client = { path = "../client", version = "0.21.0" } solana-client = { path = "../client", version = "0.21.0" }
solana-drone = { path = "../drone", version = "0.21.0" } solana-drone = { path = "../drone", version = "0.21.0" }
@ -22,11 +22,11 @@ solana-ledger = { path = "../ledger", version = "0.21.0" }
solana-logger = { path = "../logger", version = "0.21.0" } solana-logger = { path = "../logger", version = "0.21.0" }
solana-runtime = { path = "../runtime", version = "0.21.0" } solana-runtime = { path = "../runtime", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.21.0" } solana-stake-program = { path = "../programs/stake", version = "0.21.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" }
solana-storage-program = { path = "../programs/storage_program", version = "0.21.0" } solana-storage-program = { path = "../programs/storage_program", version = "0.21.0" }
solana-vest-api = { path = "../programs/vest_api", version = "0.21.0" } solana-vest-program = { path = "../programs/vest", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
symlink = "0.1.0" symlink = "0.1.0"
tempfile = "3.1.0" tempfile = "3.1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.0" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.0" }

View File

@ -23,7 +23,7 @@ use solana_sdk::{
system_transaction, system_transaction,
transaction::Transaction, transaction::Transaction,
}; };
use solana_stake_api::{ use solana_stake_program::{
config as stake_config, stake_instruction, config as stake_config, stake_instruction,
stake_state::{Authorized as StakeAuthorized, StakeState}, stake_state::{Authorized as StakeAuthorized, StakeState},
}; };
@ -31,7 +31,7 @@ use solana_storage_api::{
storage_contract, storage_contract,
storage_instruction::{self, StorageAccountType}, storage_instruction::{self, StorageAccountType},
}; };
use solana_vote_api::{ use solana_vote_program::{
vote_instruction, vote_instruction,
vote_state::{VoteInit, VoteState}, vote_state::{VoteInit, VoteState},
}; };

View File

@ -416,10 +416,10 @@ fn test_softlaunch_operating_mode() {
// Programs that are not available at soft launch // Programs that are not available at soft launch
for program_id in [ for program_id in [
&solana_config_api::id(), &solana_config_program::id(),
&solana_sdk::bpf_loader::id(), &solana_sdk::bpf_loader::id(),
&solana_sdk::system_program::id(), &solana_sdk::system_program::id(),
&solana_vest_api::id(), &solana_vest_program::id(),
] ]
.iter() .iter()
{ {

View File

@ -9,8 +9,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
bincode = "1.2.0"
log = "0.4.8" log = "0.4.8"
solana-config-api = { path = "../config_api", version = "0.21.0" } serde = "1.0.102"
serde_derive = "1.0.102"
solana-logger = { path = "../../logger", version = "0.21.0" } solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" } solana-sdk = { path = "../../sdk", version = "0.21.0" }

View File

@ -29,7 +29,7 @@ pub fn process_instruction(
.collect(); .collect();
if current_signer_keys.is_empty() { if current_signer_keys.is_empty() {
// Config account keypair must be a signer on account initilization, // Config account keypair must be a signer on account initialization,
// or when no signers specified in Config data // or when no signers specified in Config data
if config_keyed_account.signer_key().is_none() { if config_keyed_account.signer_key().is_none() {
error!("account[0].signer_key().is_none()"); error!("account[0].signer_key().is_none()");

View File

@ -1,18 +1,21 @@
pub mod config_instruction;
pub mod config_processor;
use crate::config_processor::process_instruction;
use bincode::{deserialize, serialize, serialized_size}; use bincode::{deserialize, serialize, serialized_size};
use serde_derive::{Deserialize, Serialize}; use serde_derive::{Deserialize, Serialize};
use solana_sdk::{account::Account, pubkey::Pubkey, short_vec}; use solana_sdk::{account::Account, pubkey::Pubkey, short_vec};
pub mod config_instruction;
pub mod config_processor;
const CONFIG_PROGRAM_ID: [u8; 32] = [ const CONFIG_PROGRAM_ID: [u8; 32] = [
3, 6, 74, 163, 0, 47, 116, 220, 200, 110, 67, 49, 15, 12, 5, 42, 248, 197, 218, 39, 246, 16, 3, 6, 74, 163, 0, 47, 116, 220, 200, 110, 67, 49, 15, 12, 5, 42, 248, 197, 218, 39, 246, 16,
64, 25, 163, 35, 239, 160, 0, 0, 0, 0, 64, 25, 163, 35, 239, 160, 0, 0, 0, 0,
]; ];
solana_sdk::solana_name_id!( solana_sdk::declare_program!(
CONFIG_PROGRAM_ID, CONFIG_PROGRAM_ID,
"Config1111111111111111111111111111111111111" "Config1111111111111111111111111111111111111",
solana_config_program,
process_instruction
); );
pub trait ConfigState: serde::Serialize + Default { pub trait ConfigState: serde::Serialize + Default {

View File

@ -1,21 +0,0 @@
[package]
name = "solana-config-api"
version = "0.21.0"
description = "config 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"
log = "0.4.8"
serde = "1.0.102"
serde_derive = "1.0.102"
solana-sdk = { path = "../../sdk", version = "0.21.0" }
[lib]
crate-type = ["lib"]
name = "solana_config_api"

View File

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

View File

@ -15,8 +15,7 @@ serde = "1.0.102"
serde_derive = "1.0.102" serde_derive = "1.0.102"
solana-logger = { path = "../../logger", version = "0.21.0" } solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" } solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-config-api = { path = "../config_api", version = "0.21.0" } solana-config-program = { path = "../config", version = "0.21.0" }
solana-config-program = { path = "../config_program", version = "0.21.0" }
[dev-dependencies] [dev-dependencies]

View File

@ -2,7 +2,7 @@
use bincode::{deserialize, serialized_size}; use bincode::{deserialize, serialized_size};
use serde_derive::{Deserialize, Serialize}; use serde_derive::{Deserialize, Serialize};
use solana_config_api::{ use solana_config_program::{
config_instruction, config_processor::process_instruction, get_config_data, id, ConfigKeys, config_instruction, config_processor::process_instruction, get_config_data, id, ConfigKeys,
ConfigState, ConfigState,
}; };

View File

@ -1,5 +1,5 @@
[package] [package]
name = "solana-stake-api" name = "solana-stake-program"
version = "0.21.0" version = "0.21.0"
description = "Solana Stake program API" description = "Solana Stake program API"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
@ -19,9 +19,9 @@ serde_derive = "1.0.102"
solana-logger = { path = "../../logger", version = "0.21.0" } solana-logger = { path = "../../logger", version = "0.21.0" }
solana-metrics = { path = "../../metrics", version = "0.21.0" } solana-metrics = { path = "../../metrics", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" } solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-vote-api = { path = "../vote_api", version = "0.21.0" } solana-vote-program = { path = "../vote", version = "0.21.0" }
solana-config-api = { path = "../config_api", version = "0.21.0" } solana-config-program = { path = "../config", version = "0.21.0" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib", "cdylib"]
name = "solana_stake_api" name = "solana_stake_program"

View File

@ -2,7 +2,7 @@
//! carries variables that the stake program cares about //! carries variables that the stake program cares about
use bincode::{deserialize, serialized_size}; use bincode::{deserialize, serialized_size};
use serde_derive::{Deserialize, Serialize}; use serde_derive::{Deserialize, Serialize};
use solana_config_api::{create_config_account, get_config_data, ConfigState}; use solana_config_program::{create_config_account, get_config_data, ConfigState};
use solana_sdk::{ use solana_sdk::{
account::{Account, KeyedAccount}, account::{Account, KeyedAccount},
instruction::InstructionError, instruction::InstructionError,

View File

@ -1,5 +1,6 @@
use crate::config::create_genesis_account; use crate::config::create_genesis_account;
use crate::rewards_pools::create_rewards_accounts; use crate::rewards_pools::create_rewards_accounts;
use crate::stake_instruction::process_instruction;
use solana_sdk::genesis_config::GenesisConfig; use solana_sdk::genesis_config::GenesisConfig;
pub mod config; pub mod config;
@ -12,9 +13,11 @@ const STAKE_PROGRAM_ID: [u8; 32] = [
120, 114, 43, 104, 164, 157, 192, 0, 0, 0, 0, 120, 114, 43, 104, 164, 157, 192, 0, 0, 0, 0,
]; ];
solana_sdk::solana_name_id!( solana_sdk::declare_program!(
STAKE_PROGRAM_ID, STAKE_PROGRAM_ID,
"Stake11111111111111111111111111111111111111" "Stake11111111111111111111111111111111111111",
solana_stake_program,
process_instruction
); );
pub fn add_genesis_accounts(genesis_config: &mut GenesisConfig) { pub fn add_genesis_accounts(genesis_config: &mut GenesisConfig) {

View File

@ -17,7 +17,7 @@ use solana_sdk::{
stake_history::{StakeHistory, StakeHistoryEntry}, stake_history::{StakeHistory, StakeHistoryEntry},
}, },
}; };
use solana_vote_api::vote_state::VoteState; use solana_vote_program::vote_state::VoteState;
use std::collections::HashSet; use std::collections::HashSet;
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone, Copy)] #[derive(Debug, Serialize, Deserialize, PartialEq, Clone, Copy)]
@ -804,7 +804,7 @@ mod tests {
use super::*; use super::*;
use crate::id; use crate::id;
use solana_sdk::{account::Account, pubkey::Pubkey, system_program}; use solana_sdk::{account::Account, pubkey::Pubkey, system_program};
use solana_vote_api::vote_state; use solana_vote_program::vote_state;
#[test] #[test]
fn test_stake_state_stake_from_fail() { fn test_stake_state_stake_from_fail() {

View File

@ -1,19 +0,0 @@
[package]
name = "solana-stake-program"
version = "0.21.0"
description = "Solana stake 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-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-stake-api = { path = "../stake_api", version = "0.21.0" }
[lib]
crate-type = ["lib", "cdylib"]
name = "solana_stake_program"

View File

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

View File

@ -12,9 +12,8 @@ edition = "2018"
log = "0.4.8" log = "0.4.8"
solana-logger = { path = "../../logger", version = "0.21.0" } solana-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" } solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-stake-api = { path = "../stake_api", version = "0.21.0" } solana-stake-program = { path = "../stake", version = "0.21.0" }
solana-stake-program = { path = "../stake_program", version = "0.21.0" } solana-vote-program = { path = "../vote", version = "0.21.0" }
solana-vote-api = { path = "../vote_api", version = "0.21.0" }
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "0.21.0" } solana-runtime = { path = "../../runtime", version = "0.21.0" }

View File

@ -12,11 +12,11 @@ use solana_sdk::{
signature::{Keypair, KeypairUtil}, signature::{Keypair, KeypairUtil},
sysvar::{self, rewards::Rewards, stake_history::StakeHistory, Sysvar}, sysvar::{self, rewards::Rewards, stake_history::StakeHistory, Sysvar},
}; };
use solana_stake_api::{ use solana_stake_program::{
stake_instruction::{self}, stake_instruction::{self},
stake_state::{self, StakeState}, stake_state::{self, StakeState},
}; };
use solana_vote_api::{ use solana_vote_program::{
vote_instruction, vote_instruction,
vote_state::{Vote, VoteInit, VoteState}, vote_state::{Vote, VoteInit, VoteState},
}; };

View File

@ -1,5 +1,5 @@
[package] [package]
name = "solana-vest-api" name = "solana-vest-program"
version = "0.21.0" version = "0.21.0"
description = "Solana Vest program API" description = "Solana Vest program API"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
@ -17,11 +17,11 @@ num-traits = "0.2"
serde = "1.0.102" serde = "1.0.102"
serde_derive = "1.0.102" serde_derive = "1.0.102"
solana-sdk = { path = "../../sdk", version = "0.21.0" } solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-config-api = { path = "../config_api", version = "0.21.0" } solana-config-program = { path = "../config", version = "0.21.0" }
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "0.21.0" } solana-runtime = { path = "../../runtime", version = "0.21.0" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]
name = "solana_vest_api" name = "solana_vest_program"

View File

@ -7,7 +7,7 @@ use chrono::{
serde::ts_seconds, serde::ts_seconds,
}; };
use serde_derive::{Deserialize, Serialize}; use serde_derive::{Deserialize, Serialize};
use solana_config_api::{config_instruction, ConfigState}; use solana_config_program::{config_instruction, ConfigState};
use solana_sdk::{instruction::Instruction, pubkey::Pubkey}; use solana_sdk::{instruction::Instruction, pubkey::Pubkey};
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)] #[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]

View File

@ -4,12 +4,16 @@ pub mod vest_processor;
pub mod vest_schedule; pub mod vest_schedule;
pub mod vest_state; pub mod vest_state;
use crate::vest_processor::process_instruction;
const VEST_PROGRAM_ID: [u8; 32] = [ const VEST_PROGRAM_ID: [u8; 32] = [
7, 87, 23, 47, 219, 236, 238, 33, 137, 188, 215, 141, 32, 229, 155, 195, 133, 124, 23, 232, 7, 87, 23, 47, 219, 236, 238, 33, 137, 188, 215, 141, 32, 229, 155, 195, 133, 124, 23, 232,
113, 153, 252, 252, 111, 5, 187, 128, 0, 0, 0, 0, 113, 153, 252, 252, 111, 5, 187, 128, 0, 0, 0, 0,
]; ];
solana_sdk::solana_name_id!( solana_sdk::declare_program!(
VEST_PROGRAM_ID, VEST_PROGRAM_ID,
"Vest111111111111111111111111111111111111111" "Vest111111111111111111111111111111111111111",
solana_vest_program,
process_instruction
); );

View File

@ -5,7 +5,7 @@ use crate::{
vest_state::VestState, vest_state::VestState,
}; };
use chrono::prelude::*; use chrono::prelude::*;
use solana_config_api::get_config_data; use solana_config_program::get_config_data;
use solana_sdk::{ use solana_sdk::{
account::{Account, KeyedAccount}, account::{Account, KeyedAccount},
instruction::InstructionError, instruction::InstructionError,
@ -17,7 +17,7 @@ fn verify_date_account(
keyed_account: &mut KeyedAccount, keyed_account: &mut KeyedAccount,
expected_pubkey: &Pubkey, expected_pubkey: &Pubkey,
) -> Result<Date<Utc>, InstructionError> { ) -> Result<Date<Utc>, InstructionError> {
if keyed_account.account.owner != solana_config_api::id() { if keyed_account.account.owner != solana_config_program::id() {
return Err(InstructionError::IncorrectProgramId); return Err(InstructionError::IncorrectProgramId);
} }
@ -149,8 +149,8 @@ mod tests {
let (genesis_config, mint_keypair) = create_genesis_config(lamports); let (genesis_config, mint_keypair) = create_genesis_config(lamports);
let mut bank = Bank::new(&genesis_config); let mut bank = Bank::new(&genesis_config);
bank.add_instruction_processor( bank.add_instruction_processor(
solana_config_api::id(), solana_config_program::id(),
solana_config_api::config_processor::process_instruction, solana_config_program::config_processor::process_instruction,
); );
bank.add_instruction_processor(id(), process_instruction); bank.add_instruction_processor(id(), process_instruction);
(bank, mint_keypair) (bank, mint_keypair)
@ -252,7 +252,7 @@ mod tests {
fn test_verify_account_unauthorized() { fn test_verify_account_unauthorized() {
// Ensure client can't sneak in with an untrusted date account. // Ensure client can't sneak in with an untrusted date account.
let date_pubkey = Pubkey::new_rand(); let date_pubkey = Pubkey::new_rand();
let mut account = Account::new(1, 0, &solana_config_api::id()); let mut account = Account::new(1, 0, &solana_config_program::id());
let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account); let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account);
let mallory_pubkey = Pubkey::new_rand(); // <-- Attack! Not the expected account. let mallory_pubkey = Pubkey::new_rand(); // <-- Attack! Not the expected account.
@ -266,7 +266,7 @@ mod tests {
fn test_verify_signed_account_missing_signature() { fn test_verify_signed_account_missing_signature() {
// Ensure client can't sneak in with an unsigned account. // Ensure client can't sneak in with an unsigned account.
let date_pubkey = Pubkey::new_rand(); let date_pubkey = Pubkey::new_rand();
let mut account = Account::new(1, 0, &solana_config_api::id()); let mut account = Account::new(1, 0, &solana_config_program::id());
let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account); // <-- Attack! Unsigned transaction. let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account); // <-- Attack! Unsigned transaction.
assert_eq!( assert_eq!(
@ -291,7 +291,7 @@ mod tests {
fn test_verify_date_account_uninitialized_config() { fn test_verify_date_account_uninitialized_config() {
// Ensure no panic when `get_config_data()` returns an error. // Ensure no panic when `get_config_data()` returns an error.
let date_pubkey = Pubkey::new_rand(); let date_pubkey = Pubkey::new_rand();
let mut account = Account::new(1, 0, &solana_config_api::id()); // <-- Attack! Zero space. let mut account = Account::new(1, 0, &solana_config_program::id()); // <-- Attack! Zero space.
let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account); let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account);
assert_eq!( assert_eq!(
verify_date_account(&mut keyed_account, &date_pubkey).unwrap_err(), verify_date_account(&mut keyed_account, &date_pubkey).unwrap_err(),
@ -303,7 +303,7 @@ mod tests {
fn test_verify_date_account_invalid_date_config() { fn test_verify_date_account_invalid_date_config() {
// Ensure no panic when `deserialize::<DateConfig>()` returns an error. // Ensure no panic when `deserialize::<DateConfig>()` returns an error.
let date_pubkey = Pubkey::new_rand(); let date_pubkey = Pubkey::new_rand();
let mut account = Account::new(1, 1, &solana_config_api::id()); // Attack! 1 byte, enough to sneak by `get_config_data()`, but not DateConfig deserialize. let mut account = Account::new(1, 1, &solana_config_program::id()); // Attack! 1 byte, enough to sneak by `get_config_data()`, but not DateConfig deserialize.
let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account); let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account);
assert_eq!( assert_eq!(
verify_date_account(&mut keyed_account, &date_pubkey).unwrap_err(), verify_date_account(&mut keyed_account, &date_pubkey).unwrap_err(),
@ -315,7 +315,7 @@ mod tests {
fn test_verify_date_account_deserialize() { fn test_verify_date_account_deserialize() {
// Ensure no panic when `deserialize::<DateConfig>()` returns an error. // Ensure no panic when `deserialize::<DateConfig>()` returns an error.
let date_pubkey = Pubkey::new_rand(); let date_pubkey = Pubkey::new_rand();
let mut account = Account::new(1, 1, &solana_config_api::id()); // Attack! 1 byte, enough to sneak by `get_config_data()`, but not DateConfig deserialize. let mut account = Account::new(1, 1, &solana_config_program::id()); // Attack! 1 byte, enough to sneak by `get_config_data()`, but not DateConfig deserialize.
let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account); let mut keyed_account = KeyedAccount::new(&date_pubkey, false, &mut account);
assert_eq!( assert_eq!(
verify_date_account(&mut keyed_account, &date_pubkey).unwrap_err(), verify_date_account(&mut keyed_account, &date_pubkey).unwrap_err(),

View File

@ -1,19 +0,0 @@
[package]
name = "solana-vest-program"
version = "0.21.0"
description = "Solana Vest 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-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-vest-api = { path = "../vest_api", version = "0.21.0" }
[lib]
crate-type = ["lib", "cdylib"]
name = "solana_vest_program"

View File

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

View File

@ -1,5 +1,5 @@
[package] [package]
name = "solana-vote-api" name = "solana-vote-program"
version = "0.21.0" version = "0.21.0"
description = "Solana Vote program API" description = "Solana Vote program API"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
@ -20,5 +20,5 @@ solana-metrics = { path = "../../metrics", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" } solana-sdk = { path = "../../sdk", version = "0.21.0" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib", "cdylib"]
name = "solana_vote_api" name = "solana_vote_program"

View File

@ -1,12 +1,16 @@
pub mod vote_instruction; pub mod vote_instruction;
pub mod vote_state; pub mod vote_state;
use crate::vote_instruction::process_instruction;
const VOTE_PROGRAM_ID: [u8; 32] = [ const VOTE_PROGRAM_ID: [u8; 32] = [
7, 97, 72, 29, 53, 116, 116, 187, 124, 77, 118, 36, 235, 211, 189, 179, 216, 53, 94, 115, 209, 7, 97, 72, 29, 53, 116, 116, 187, 124, 77, 118, 36, 235, 211, 189, 179, 216, 53, 94, 115, 209,
16, 67, 252, 13, 163, 83, 128, 0, 0, 0, 0, 16, 67, 252, 13, 163, 83, 128, 0, 0, 0, 0,
]; ];
solana_sdk::solana_name_id!( solana_sdk::declare_program!(
VOTE_PROGRAM_ID, VOTE_PROGRAM_ID,
"Vote111111111111111111111111111111111111111" "Vote111111111111111111111111111111111111111",
solana_vote_program,
process_instruction
); );

View File

@ -1,19 +0,0 @@
[package]
name = "solana-vote-program"
version = "0.21.0"
description = "Solana Vote 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-logger = { path = "../../logger", version = "0.21.0" }
solana-sdk = { path = "../../sdk", version = "0.21.0" }
solana-vote-api = { path = "../vote_api", version = "0.21.0" }
[lib]
crate-type = ["lib", "cdylib"]
name = "solana_vote_program"

View File

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

View File

@ -30,11 +30,9 @@ solana-metrics = { path = "../metrics", version = "0.21.0" }
solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.21.0" } solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.21.0" }
solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.21.0" } solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.21.0" } solana-stake-program = { path = "../programs/stake", version = "0.21.0" }
solana-stake-program = { path = "../programs/stake_program", version = "0.21.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
solana-vote-program = { path = "../programs/vote_program", version = "0.21.0" }
sys-info = "0.5.8" sys-info = "0.5.8"
tempfile = "3.1.0" tempfile = "3.1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.0" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.0" }

View File

@ -1306,7 +1306,7 @@ pub mod tests {
} }
for t in 0..num_vote { for t in 0..num_vote {
let pubkey = Pubkey::new_rand(); let pubkey = Pubkey::new_rand();
let account = Account::new((num + t + 1) as u64, space, &solana_vote_api::id()); let account = Account::new((num + t + 1) as u64, space, &solana_vote_program::id());
pubkeys.push(pubkey.clone()); pubkeys.push(pubkey.clone());
let ancestors = vec![(slot, 0)].into_iter().collect(); let ancestors = vec![(slot, 0)].into_iter().collect();
assert!(accounts.load_slow(&ancestors, &pubkey).is_none()); assert!(accounts.load_slow(&ancestors, &pubkey).is_none());

View File

@ -1637,8 +1637,8 @@ mod tests {
system_instruction, system_instruction,
sysvar::{fees::Fees, rewards::Rewards}, sysvar::{fees::Fees, rewards::Rewards},
}; };
use solana_stake_api::stake_state::Stake; use solana_stake_program::stake_state::Stake;
use solana_vote_api::{ use solana_vote_program::{
vote_instruction, vote_instruction,
vote_state::{self, Vote, VoteInit, VoteState, MAX_LOCKOUT_HISTORY}, vote_state::{self, Vote, VoteInit, VoteState, MAX_LOCKOUT_HISTORY},
}; };
@ -3281,9 +3281,9 @@ mod tests {
Err(InstructionError::CustomError(42)) Err(InstructionError::CustomError(42))
} }
assert!(bank.get_account(&solana_vote_api::id()).is_none()); assert!(bank.get_account(&solana_vote_program::id()).is_none());
bank.add_instruction_processor(solana_vote_api::id(), mock_vote_processor); bank.add_instruction_processor(solana_vote_program::id(), mock_vote_processor);
assert!(bank.get_account(&solana_vote_api::id()).is_some()); assert!(bank.get_account(&solana_vote_program::id()).is_some());
let mock_account = Keypair::new(); let mock_account = Keypair::new();
let instructions = vote_instruction::create_account( let instructions = vote_instruction::create_account(
@ -3340,9 +3340,9 @@ mod tests {
bank.last_blockhash(), bank.last_blockhash(),
); );
let vote_loader_account = bank.get_account(&solana_vote_api::id()).unwrap(); let vote_loader_account = bank.get_account(&solana_vote_program::id()).unwrap();
bank.add_instruction_processor(solana_vote_api::id(), mock_vote_processor); bank.add_instruction_processor(solana_vote_program::id(), mock_vote_processor);
let new_vote_loader_account = bank.get_account(&solana_vote_api::id()).unwrap(); let new_vote_loader_account = bank.get_account(&solana_vote_program::id()).unwrap();
// Vote loader account should not be updated since it was included in the genesis config. // Vote loader account should not be updated since it was included in the genesis config.
assert_eq!(vote_loader_account.data, new_vote_loader_account.data); assert_eq!(vote_loader_account.data, new_vote_loader_account.data);
assert_eq!( assert_eq!(

View File

@ -7,8 +7,8 @@ use solana_sdk::{
signature::{Keypair, KeypairUtil}, signature::{Keypair, KeypairUtil},
system_program::{self, solana_system_program}, system_program::{self, solana_system_program},
}; };
use solana_stake_api::stake_state; use solana_stake_program::stake_state;
use solana_vote_api::vote_state; use solana_vote_program::vote_state;
// The default stake placed with the bootstrap leader // The default stake placed with the bootstrap leader
pub const BOOTSTRAP_LEADER_LAMPORTS: u64 = 42; pub const BOOTSTRAP_LEADER_LAMPORTS: u64 = 42;
@ -85,7 +85,7 @@ pub fn create_genesis_config_with_leader(
..GenesisConfig::default() ..GenesisConfig::default()
}; };
solana_stake_api::add_genesis_accounts(&mut genesis_config); solana_stake_program::add_genesis_accounts(&mut genesis_config);
solana_storage_api::rewards_pools::add_genesis_accounts(&mut genesis_config); solana_storage_api::rewards_pools::add_genesis_accounts(&mut genesis_config);
GenesisConfigInfo { GenesisConfigInfo {

View File

@ -89,8 +89,11 @@ pub fn invoke_entrypoint(
let path = create_path(&name); let path = create_path(&name);
match library_open(&path) { match library_open(&path) {
Ok(library) => unsafe { Ok(library) => unsafe {
let entrypoint: Symbol<instruction_processor_utils::Entrypoint> = let entrypoint: Symbol<instruction_processor_utils::Entrypoint> = match library
match library.get(instruction_processor_utils::ENTRYPOINT.as_bytes()) { .get(name.as_bytes())
{
Ok(s) => s,
Err(_) => match library.get(instruction_processor_utils::ENTRYPOINT.as_bytes()) {
Ok(s) => s, Ok(s) => s,
Err(e) => { Err(e) => {
warn!( warn!(
@ -100,7 +103,8 @@ pub fn invoke_entrypoint(
); );
return Err(InstructionError::GenericError); return Err(InstructionError::GenericError);
} }
}; },
};
let ret = entrypoint(program_id, params, ix_data); let ret = entrypoint(program_id, params, ix_data);
symbol_cache symbol_cache
.write() .write()

View File

@ -4,8 +4,8 @@ use solana_sdk::account::Account;
use solana_sdk::clock::Epoch; use solana_sdk::clock::Epoch;
use solana_sdk::pubkey::Pubkey; use solana_sdk::pubkey::Pubkey;
use solana_sdk::sysvar::stake_history::StakeHistory; use solana_sdk::sysvar::stake_history::StakeHistory;
use solana_stake_api::stake_state::{new_stake_history_entry, StakeState}; use solana_stake_program::stake_state::{new_stake_history_entry, StakeState};
use solana_vote_api::vote_state::VoteState; use solana_vote_program::vote_state::VoteState;
use std::collections::HashMap; use std::collections::HashMap;
#[derive(Default, Clone, PartialEq, Debug, Deserialize, Serialize)] #[derive(Default, Clone, PartialEq, Debug, Deserialize, Serialize)]
@ -96,13 +96,13 @@ impl Stakes {
} }
pub fn is_stake(account: &Account) -> bool { pub fn is_stake(account: &Account) -> bool {
solana_vote_api::check_id(&account.owner) solana_vote_program::check_id(&account.owner)
|| solana_stake_api::check_id(&account.owner) || solana_stake_program::check_id(&account.owner)
&& account.data.len() >= std::mem::size_of::<StakeState>() && account.data.len() >= std::mem::size_of::<StakeState>()
} }
pub fn store(&mut self, pubkey: &Pubkey, account: &Account) { pub fn store(&mut self, pubkey: &Pubkey, account: &Account) {
if solana_vote_api::check_id(&account.owner) { if solana_vote_program::check_id(&account.owner) {
if account.lamports == 0 { if account.lamports == 0 {
self.vote_accounts.remove(pubkey); self.vote_accounts.remove(pubkey);
} else { } else {
@ -124,7 +124,7 @@ impl Stakes {
self.vote_accounts.insert(*pubkey, (stake, account.clone())); self.vote_accounts.insert(*pubkey, (stake, account.clone()));
} }
} else if solana_stake_api::check_id(&account.owner) { } else if solana_stake_program::check_id(&account.owner) {
// old_stake is stake lamports and voter_pubkey from the pre-store() version // old_stake is stake lamports and voter_pubkey from the pre-store() version
let old_stake = self.stake_accounts.get(pubkey).and_then(|old_account| { let old_stake = self.stake_accounts.get(pubkey).and_then(|old_account| {
StakeState::stake_from(old_account).map(|stake| { StakeState::stake_from(old_account).map(|stake| {
@ -210,8 +210,8 @@ impl Stakes {
pub mod tests { pub mod tests {
use super::*; use super::*;
use solana_sdk::{pubkey::Pubkey, rent::Rent}; use solana_sdk::{pubkey::Pubkey, rent::Rent};
use solana_stake_api::stake_state; use solana_stake_program::stake_state;
use solana_vote_api::vote_state::{self, VoteState, MAX_LOCKOUT_HISTORY}; use solana_vote_program::vote_state::{self, VoteState, MAX_LOCKOUT_HISTORY};
// set up some dummies for a staked node (( vote ) ( stake )) // set up some dummies for a staked node (( vote ) ( stake ))
pub fn create_staked_node_accounts(stake: u64) -> ((Pubkey, Account), (Pubkey, Account)) { pub fn create_staked_node_accounts(stake: u64) -> ((Pubkey, Account), (Pubkey, Account)) {
@ -508,7 +508,10 @@ pub mod tests {
} }
// not a stake account, and whacks above entry // not a stake account, and whacks above entry
stakes.store(&stake_pubkey, &Account::new(1, 0, &solana_stake_api::id())); stakes.store(
&stake_pubkey,
&Account::new(1, 0, &solana_stake_program::id()),
);
{ {
let vote_accounts = stakes.vote_accounts(); let vote_accounts = stakes.vote_accounts();
assert!(vote_accounts.get(&vote_pubkey).is_some()); assert!(vote_accounts.get(&vote_pubkey).is_some());

View File

@ -8,7 +8,7 @@ pub use crate::clock::{Epoch, Slot, DEFAULT_SLOTS_PER_EPOCH};
/// the beginning of epoch X - 1. /// the beginning of epoch X - 1.
pub const DEFAULT_LEADER_SCHEDULE_SLOT_OFFSET: u64 = DEFAULT_SLOTS_PER_EPOCH; pub const DEFAULT_LEADER_SCHEDULE_SLOT_OFFSET: u64 = DEFAULT_SLOTS_PER_EPOCH;
/// based on MAX_LOCKOUT_HISTORY from vote_api /// based on MAX_LOCKOUT_HISTORY from vote_program
pub const MINIMUM_SLOTS_PER_EPOCH: u64 = 32; pub const MINIMUM_SLOTS_PER_EPOCH: u64 = 32;
#[repr(C)] #[repr(C)]

View File

@ -11,6 +11,7 @@ pub type Entrypoint = unsafe extern "C" fn(
data: &[u8], data: &[u8],
) -> Result<(), InstructionError>; ) -> Result<(), InstructionError>;
// Deprecated
// Convenience macro to define the native program entrypoint. Supply a fn to this macro that // Convenience macro to define the native program entrypoint. Supply a fn to this macro that
// conforms to the `Entrypoint` type signature. // conforms to the `Entrypoint` type signature.
#[macro_export] #[macro_export]
@ -27,6 +28,65 @@ macro_rules! solana_entrypoint(
) )
); );
/// Convenience macro to declare a native program
///
/// id: Variable containing the program's id (public key bytes)
/// bs58: BS58 encoding of the id, used verify check the id bytes
/// name: Name of the program, must match the library name in Cargo.toml
/// entrypoint: Program's entrypoint, must be of `type Entrypoint`
///
/// # Examples
///
/// ```
/// use solana_sdk::account::KeyedAccount;
/// use solana_sdk::instruction::InstructionError;
/// use solana_sdk::pubkey::Pubkey;
/// use solana_sdk::declare_program;
///
/// const MY_PROGRAM_ID: [u8; 32] = [
/// 6, 161, 216, 23, 145, 55, 84, 42, 152, 52, 55, 189, 254, 42, 122, 178, 85, 127, 83, 92, 138,
/// 120, 114, 43, 104, 164, 157, 192, 0, 0, 0, 0,
/// ];
///
/// fn my_process_instruction(
/// program_id: &Pubkey,
/// keyed_accounts: &mut [KeyedAccount],
/// data: &[u8],
/// ) -> Result<(), InstructionError> {
/// // Process an instruction
/// Ok(())
/// }
///
/// solana_sdk::declare_program!(
/// MY_PROGRAM_ID,
/// "My!!!11111111111111111111111111111111111111",
/// solana_my_program,
/// my_process_instruction
/// );
/// ```
#[macro_export]
macro_rules! declare_program(
($id:ident, $bs58:expr, $name:ident, $entrypoint:ident) => (
$crate::solana_name_id!($id, $bs58);
#[macro_export]
macro_rules! $name {
() => {
(stringify!($name).to_string(), $crate::id())
};
}
#[no_mangle]
pub extern "C" fn $name(
program_id: &$crate::pubkey::Pubkey,
keyed_accounts: &mut [$crate::account::KeyedAccount],
data: &[u8],
) -> Result<(), $crate::instruction::InstructionError> {
$entrypoint(program_id, keyed_accounts, data)
}
)
);
impl<T> From<T> for InstructionError impl<T> From<T> for InstructionError
where where
T: ToPrimitive, T: ToPrimitive,

View File

@ -28,7 +28,7 @@ solana-metrics = { path = "../metrics", version = "0.21.0" }
solana-net-utils = { path = "../net-utils", version = "0.21.0" } solana-net-utils = { path = "../net-utils", version = "0.21.0" }
solana-runtime = { path = "../runtime", version = "0.21.0" } solana-runtime = { path = "../runtime", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" } solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" } solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
solana-vote-signer = { path = "../vote-signer", version = "0.21.0" } solana-vote-signer = { path = "../vote-signer", version = "0.21.0" }
tempfile = "3.1.0" tempfile = "3.1.0"
tar = "0.4.26" tar = "0.4.26"

View File

@ -244,7 +244,7 @@ fn check_vote_account(
.get_account(vote_pubkey) .get_account(vote_pubkey)
.map_err(|err| format!("Failed to get vote account: {}", err.to_string()))?; .map_err(|err| format!("Failed to get vote account: {}", err.to_string()))?;
if found_vote_account.owner != solana_vote_api::id() { if found_vote_account.owner != solana_vote_program::id() {
return Err(format!( return Err(format!(
"not a vote account (owned by {}): {}", "not a vote account (owned by {}): {}",
found_vote_account.owner, vote_pubkey found_vote_account.owner, vote_pubkey
@ -255,7 +255,7 @@ fn check_vote_account(
.get_account(node_pubkey) .get_account(node_pubkey)
.map_err(|err| format!("Failed to get identity account: {}", err.to_string()))?; .map_err(|err| format!("Failed to get identity account: {}", err.to_string()))?;
let found_vote_account = solana_vote_api::vote_state::VoteState::from(&found_vote_account); let found_vote_account = solana_vote_program::vote_state::VoteState::from(&found_vote_account);
if let Some(found_vote_account) = found_vote_account { if let Some(found_vote_account) = found_vote_account {
if found_vote_account.authorized_voter != *voting_pubkey { if found_vote_account.authorized_voter != *voting_pubkey {
return Err(format!( return Err(format!(