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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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-clap-utils 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-drone 0.21.0",
"solana-logger 0.21.0",
"solana-net-utils 0.21.0",
"solana-runtime 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-vote-api 0.21.0",
"solana-vote-program 0.21.0",
"solana-vote-signer 0.21.0",
"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)",
@ -3252,22 +3252,13 @@ dependencies = [
]
[[package]]
name = "solana-config-api"
name = "solana-config-program"
version = "0.21.0"
dependencies = [
"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)",
"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)",
"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-sdk 0.21.0",
]
@ -3281,7 +3272,6 @@ dependencies = [
"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_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-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-runtime 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-program 0.21.0",
"solana-vote-api 0.21.0",
"solana-vote-program 0.21.0",
"solana-vote-signer 0.21.0",
"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)",
@ -3455,9 +3445,9 @@ dependencies = [
"solana-genesis-programs 0.21.0",
"solana-ledger 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-vote-api 0.21.0",
"solana-vote-program 0.21.0",
"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-budget-api 0.21.0",
"solana-budget-program 0.21.0",
"solana-config-api 0.21.0",
"solana-config-program 0.21.0",
"solana-exchange-api 0.21.0",
"solana-exchange-program 0.21.0",
"solana-runtime 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-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",
]
@ -3523,7 +3509,7 @@ dependencies = [
"sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-clap-utils 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-sdk 0.21.0",
"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-runtime 0.21.0",
"solana-sdk 0.21.0",
"solana-stake-api 0.21.0",
"solana-vote-api 0.21.0",
"solana-stake-program 0.21.0",
"solana-vote-program 0.21.0",
"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)",
"tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3607,7 +3593,7 @@ dependencies = [
"solana-logger 0.21.0",
"solana-runtime 0.21.0",
"solana-sdk 0.21.0",
"solana-vote-api 0.21.0",
"solana-vote-program 0.21.0",
]
[[package]]
@ -3633,7 +3619,7 @@ dependencies = [
"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)",
"solana-client 0.21.0",
"solana-config-api 0.21.0",
"solana-config-program 0.21.0",
"solana-core 0.21.0",
"solana-drone 0.21.0",
"solana-exchange-api 0.21.0",
@ -3644,11 +3630,11 @@ dependencies = [
"solana-rayon-threadlimit 0.21.0",
"solana-runtime 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-program 0.21.0",
"solana-vest-api 0.21.0",
"solana-vote-api 0.21.0",
"solana-vest-program 0.21.0",
"solana-vote-program 0.21.0",
"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)",
]
@ -3869,10 +3855,8 @@ dependencies = [
"solana-noop-program 0.21.0",
"solana-rayon-threadlimit 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-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)",
"tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3921,7 +3905,7 @@ dependencies = [
]
[[package]]
name = "solana-stake-api"
name = "solana-stake-program"
version = "0.21.0"
dependencies = [
"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)",
"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)",
"solana-config-api 0.21.0",
"solana-config-program 0.21.0",
"solana-logger 0.21.0",
"solana-metrics 0.21.0",
"solana-sdk 0.21.0",
"solana-vote-api 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",
"solana-vote-program 0.21.0",
]
[[package]]
@ -3957,9 +3931,8 @@ dependencies = [
"solana-logger 0.21.0",
"solana-runtime 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",
]
[[package]]
@ -4023,14 +3996,14 @@ dependencies = [
"solana-perf 0.21.0",
"solana-runtime 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",
"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)",
]
[[package]]
name = "solana-vest-api"
name = "solana-vest-program"
version = "0.21.0"
dependencies = [
"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)",
"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)",
"solana-config-api 0.21.0",
"solana-config-program 0.21.0",
"solana-runtime 0.21.0",
"solana-sdk 0.21.0",
]
[[package]]
name = "solana-vest-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"
name = "solana-vote-program"
version = "0.21.0"
dependencies = [
"bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -4070,16 +4033,6 @@ dependencies = [
"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]]
name = "solana-vote-signer"
version = "0.21.0"

View File

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

View File

@ -26,10 +26,8 @@ declare print_free_tree=(
'sdk/bpf/rust/rust-utils'
'sdk/src'
'programs/bpf/rust'
'programs/stake_api/src'
'programs/stake_program/src'
'programs/vote_api/src'
'programs/vote_program/src'
'programs/stake/src'
'programs/vote/src'
)
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-clap-utils = { path = "../clap-utils", 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-logger = { path = "../logger", version = "0.21.0" }
solana-net-utils = { path = "../net-utils", version = "0.21.0" }
solana-runtime = { path = "../runtime", 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-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" }
url = "2.1.0"

View File

@ -29,9 +29,9 @@ use solana_sdk::{
system_transaction,
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_vote_api::vote_state::VoteAuthorize;
use solana_vote_program::vote_state::VoteAuthorize;
use std::{
fs::File,
io::{Read, Write},

View File

@ -18,12 +18,12 @@ use solana_sdk::{
},
transaction::Transaction,
};
use solana_stake_api::stake_state::Meta;
use solana_stake_api::{
use solana_stake_program::stake_state::Meta;
use solana_stake_program::{
stake_instruction::{self, StakeError},
stake_state::{Authorized, Lockup, StakeAuthorize, StakeState},
};
use solana_vote_api::vote_state::VoteState;
use solana_vote_program::vote_state::VoteState;
use std::ops::Deref;
pub trait StakeSubCommands {
@ -536,7 +536,7 @@ pub fn process_show_stake_account(
use_lamports_unit: bool,
) -> ProcessResult {
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(
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},
};
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::{
account::Account,
commitment_config::CommitmentConfig,
@ -137,7 +137,7 @@ fn parse_validator_info(
pubkey: &Pubkey,
account: &Account,
) -> 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());
}
let key_list: ConfigKeys = deserialize(&account.data)?;
@ -281,7 +281,7 @@ pub fn process_set_validator_info(
info: validator_string,
};
// 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
.iter()
.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)?,
)]
} 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
.into_iter()
.filter(|(_, validator_info_account)| {
@ -494,7 +494,7 @@ mod tests {
parse_validator_info(
&Pubkey::default(),
&Account {
owner: solana_config_api::id(),
owner: solana_config_program::id(),
data,
..Account::default()
}

View File

@ -10,7 +10,7 @@ use solana_sdk::{
account::Account, pubkey::Pubkey, signature::KeypairUtil, system_instruction::SystemError,
transaction::Transaction,
};
use solana_vote_api::{
use solana_vote_program::{
vote_instruction::{self, VoteError},
vote_state::{VoteAuthorize, VoteInit, VoteState},
};
@ -309,7 +309,7 @@ fn get_vote_account(
) -> Result<(Account, VoteState), Box<dyn std::error::Error>> {
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(
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-runtime = { path = "../runtime", 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-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" }
symlink = "0.1.0"
sys-info = "0.5.8"

View File

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

View File

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

View File

@ -2,7 +2,7 @@ use solana_ledger::bank_forks::BankForks;
use solana_metrics::datapoint_debug;
use solana_runtime::bank::Bank;
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::{
collections::{HashMap, HashSet},
sync::Arc,

View File

@ -28,7 +28,7 @@ use solana_sdk::{
timing::{self, duration_as_ms},
transaction::Transaction,
};
use solana_vote_api::vote_instruction;
use solana_vote_program::vote_instruction;
use std::{
collections::HashMap,
collections::HashSet,
@ -1081,7 +1081,7 @@ mod test {
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::system_transaction;
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::iter::FromIterator;
use std::sync::{Arc, RwLock};

View File

@ -30,7 +30,7 @@ use solana_sdk::{
signature::Signature,
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::{
net::{SocketAddr, UdpSocket},
sync::{Arc, RwLock},

View File

@ -9,7 +9,7 @@ use solana_runtime::bank::Bank;
use solana_sdk::{
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::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-budget-api = { path = "../programs/budget_api", 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_program", version = "0.21.0" }
solana-config-program = { path = "../programs/config", 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-runtime = { path = "../runtime", 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_program", 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-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_program", 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" }
solana-vest-program = { path = "../programs/vest", version = "0.21.0" }
solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
[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-ledger = { path = "../ledger", 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-vote-api = { path = "../programs/vote_api", version = "0.21.0" }
solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
tempfile = "3.1.0"

View File

@ -20,9 +20,9 @@ use solana_sdk::{
signature::{read_keypair_file, Keypair, KeypairUtil},
system_program, timing,
};
use solana_stake_api::stake_state;
use solana_stake_program::stake_state;
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};
pub enum AccountFileFormat {
@ -446,7 +446,7 @@ fn main() -> Result<(), Box<dyn error::Error>> {
// add genesis stuff from storage and stake
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)?;
Ok(())

View File

@ -29,7 +29,7 @@ serde_yaml = "0.8.11"
sha2 = "0.8.0"
solana-clap-utils = { path = "../clap-utils", 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-sdk = { path = "../sdk", version = "0.21.0" }
tar = "0.4.26"

View File

@ -6,7 +6,7 @@ use console::{style, Emoji};
use indicatif::{ProgressBar, ProgressStyle};
use sha2::{Digest, Sha256};
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::pubkey::Pubkey;
use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil, Signable};

View File

@ -1,5 +1,5 @@
use serde_derive::{Deserialize, Serialize};
use solana_config_api::ConfigState;
use solana_config_program::ConfigState;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Signable, Signature};
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-runtime = { path = "../runtime", 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]
assert_cmd = "0.11"

View File

@ -12,7 +12,7 @@ use solana_sdk::{
clock::Slot, genesis_config::GenesisConfig, instruction_processor_utils::limited_deserialize,
native_token::lamports_to_sol, pubkey::Pubkey,
};
use solana_vote_api::vote_state::VoteState;
use solana_vote_program::vote_state::VoteState;
use std::{
collections::{BTreeMap, HashMap, HashSet},
ffi::OsStr,
@ -76,10 +76,10 @@ fn output_slot(blocktree: &Blocktree, slot: Slot, method: &LedgerOutputMethod) {
}
let mut raw = true;
if program_pubkey == solana_vote_api::id() {
if program_pubkey == solana_vote_program::id() {
if let Ok(vote_instruction) =
limited_deserialize::<
solana_vote_api::vote_instruction::VoteInstruction,
solana_vote_program::vote_instruction::VoteInstruction,
>(&instruction.data)
{
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-runtime = { path = "../runtime", version = "0.21.0" }
solana-sdk = { path = "../sdk", version = "0.21.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" }
solana-stake-program = { path = "../programs/stake", version = "0.21.0" }
solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
sys-info = "0.5.8"
tar = "0.4.26"
tempfile = "3.1.0"

View File

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

View File

@ -11,7 +11,7 @@ homepage = "https://solana.com/"
[dependencies]
log = "0.4.8"
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-client = { path = "../client", 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-runtime = { path = "../runtime", 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-program = { path = "../programs/storage_program", version = "0.21.0" }
solana-vest-api = { path = "../programs/vest_api", version = "0.21.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.21.0" }
solana-vest-program = { path = "../programs/vest", version = "0.21.0" }
solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
symlink = "0.1.0"
tempfile = "3.1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.0" }

View File

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

View File

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

View File

@ -9,8 +9,10 @@ homepage = "https://solana.com/"
edition = "2018"
[dependencies]
bincode = "1.2.0"
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-sdk = { path = "../../sdk", version = "0.21.0" }

View File

@ -29,7 +29,7 @@ pub fn process_instruction(
.collect();
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
if config_keyed_account.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 serde_derive::{Deserialize, Serialize};
use solana_sdk::{account::Account, pubkey::Pubkey, short_vec};
pub mod config_instruction;
pub mod config_processor;
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,
64, 25, 163, 35, 239, 160, 0, 0, 0, 0,
];
solana_sdk::solana_name_id!(
solana_sdk::declare_program!(
CONFIG_PROGRAM_ID,
"Config1111111111111111111111111111111111111"
"Config1111111111111111111111111111111111111",
solana_config_program,
process_instruction
);
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"
solana-logger = { path = "../../logger", 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_program", version = "0.21.0" }
solana-config-program = { path = "../config", version = "0.21.0" }
[dev-dependencies]

View File

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

View File

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

View File

@ -2,7 +2,7 @@
//! carries variables that the stake program cares about
use bincode::{deserialize, serialized_size};
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::{
account::{Account, KeyedAccount},
instruction::InstructionError,

View File

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

View File

@ -17,7 +17,7 @@ use solana_sdk::{
stake_history::{StakeHistory, StakeHistoryEntry},
},
};
use solana_vote_api::vote_state::VoteState;
use solana_vote_program::vote_state::VoteState;
use std::collections::HashSet;
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone, Copy)]
@ -804,7 +804,7 @@ mod tests {
use super::*;
use crate::id;
use solana_sdk::{account::Account, pubkey::Pubkey, system_program};
use solana_vote_api::vote_state;
use solana_vote_program::vote_state;
#[test]
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"
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" }
solana-stake-program = { path = "../stake_program", version = "0.21.0" }
solana-vote-api = { path = "../vote_api", version = "0.21.0" }
solana-stake-program = { path = "../stake", version = "0.21.0" }
solana-vote-program = { path = "../vote", version = "0.21.0" }
[dev-dependencies]
solana-runtime = { path = "../../runtime", version = "0.21.0" }

View File

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

View File

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

View File

@ -7,7 +7,7 @@ use chrono::{
serde::ts_seconds,
};
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};
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]

View File

@ -4,12 +4,16 @@ pub mod vest_processor;
pub mod vest_schedule;
pub mod vest_state;
use crate::vest_processor::process_instruction;
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,
113, 153, 252, 252, 111, 5, 187, 128, 0, 0, 0, 0,
];
solana_sdk::solana_name_id!(
solana_sdk::declare_program!(
VEST_PROGRAM_ID,
"Vest111111111111111111111111111111111111111"
"Vest111111111111111111111111111111111111111",
solana_vest_program,
process_instruction
);

View File

@ -5,7 +5,7 @@ use crate::{
vest_state::VestState,
};
use chrono::prelude::*;
use solana_config_api::get_config_data;
use solana_config_program::get_config_data;
use solana_sdk::{
account::{Account, KeyedAccount},
instruction::InstructionError,
@ -17,7 +17,7 @@ fn verify_date_account(
keyed_account: &mut KeyedAccount,
expected_pubkey: &Pubkey,
) -> 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);
}
@ -149,8 +149,8 @@ mod tests {
let (genesis_config, mint_keypair) = create_genesis_config(lamports);
let mut bank = Bank::new(&genesis_config);
bank.add_instruction_processor(
solana_config_api::id(),
solana_config_api::config_processor::process_instruction,
solana_config_program::id(),
solana_config_program::config_processor::process_instruction,
);
bank.add_instruction_processor(id(), process_instruction);
(bank, mint_keypair)
@ -252,7 +252,7 @@ mod tests {
fn test_verify_account_unauthorized() {
// Ensure client can't sneak in with an untrusted date account.
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 mallory_pubkey = Pubkey::new_rand(); // <-- Attack! Not the expected account.
@ -266,7 +266,7 @@ mod tests {
fn test_verify_signed_account_missing_signature() {
// Ensure client can't sneak in with an unsigned account.
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.
assert_eq!(
@ -291,7 +291,7 @@ mod tests {
fn test_verify_date_account_uninitialized_config() {
// Ensure no panic when `get_config_data()` returns an error.
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);
assert_eq!(
verify_date_account(&mut keyed_account, &date_pubkey).unwrap_err(),
@ -303,7 +303,7 @@ mod tests {
fn test_verify_date_account_invalid_date_config() {
// Ensure no panic when `deserialize::<DateConfig>()` returns an error.
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);
assert_eq!(
verify_date_account(&mut keyed_account, &date_pubkey).unwrap_err(),
@ -315,7 +315,7 @@ mod tests {
fn test_verify_date_account_deserialize() {
// Ensure no panic when `deserialize::<DateConfig>()` returns an error.
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);
assert_eq!(
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]
name = "solana-vote-api"
name = "solana-vote-program"
version = "0.21.0"
description = "Solana Vote program API"
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" }
[lib]
crate-type = ["lib"]
name = "solana_vote_api"
crate-type = ["lib", "cdylib"]
name = "solana_vote_program"

View File

@ -1,12 +1,16 @@
pub mod vote_instruction;
pub mod vote_state;
use crate::vote_instruction::process_instruction;
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,
16, 67, 252, 13, 163, 83, 128, 0, 0, 0, 0,
];
solana_sdk::solana_name_id!(
solana_sdk::declare_program!(
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-program = { path = "../programs/bpf_loader_program", 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_program", 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-vote-api = { path = "../programs/vote_api", version = "0.21.0" }
solana-vote-program = { path = "../programs/vote_program", version = "0.21.0" }
solana-vote-program = { path = "../programs/vote", version = "0.21.0" }
sys-info = "0.5.8"
tempfile = "3.1.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 {
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());
let ancestors = vec![(slot, 0)].into_iter().collect();
assert!(accounts.load_slow(&ancestors, &pubkey).is_none());

View File

@ -1637,8 +1637,8 @@ mod tests {
system_instruction,
sysvar::{fees::Fees, rewards::Rewards},
};
use solana_stake_api::stake_state::Stake;
use solana_vote_api::{
use solana_stake_program::stake_state::Stake;
use solana_vote_program::{
vote_instruction,
vote_state::{self, Vote, VoteInit, VoteState, MAX_LOCKOUT_HISTORY},
};
@ -3281,9 +3281,9 @@ mod tests {
Err(InstructionError::CustomError(42))
}
assert!(bank.get_account(&solana_vote_api::id()).is_none());
bank.add_instruction_processor(solana_vote_api::id(), mock_vote_processor);
assert!(bank.get_account(&solana_vote_api::id()).is_some());
assert!(bank.get_account(&solana_vote_program::id()).is_none());
bank.add_instruction_processor(solana_vote_program::id(), mock_vote_processor);
assert!(bank.get_account(&solana_vote_program::id()).is_some());
let mock_account = Keypair::new();
let instructions = vote_instruction::create_account(
@ -3340,9 +3340,9 @@ mod tests {
bank.last_blockhash(),
);
let vote_loader_account = bank.get_account(&solana_vote_api::id()).unwrap();
bank.add_instruction_processor(solana_vote_api::id(), mock_vote_processor);
let new_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_program::id(), mock_vote_processor);
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.
assert_eq!(vote_loader_account.data, new_vote_loader_account.data);
assert_eq!(

View File

@ -7,8 +7,8 @@ use solana_sdk::{
signature::{Keypair, KeypairUtil},
system_program::{self, solana_system_program},
};
use solana_stake_api::stake_state;
use solana_vote_api::vote_state;
use solana_stake_program::stake_state;
use solana_vote_program::vote_state;
// The default stake placed with the bootstrap leader
pub const BOOTSTRAP_LEADER_LAMPORTS: u64 = 42;
@ -85,7 +85,7 @@ pub fn create_genesis_config_with_leader(
..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);
GenesisConfigInfo {

View File

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

View File

@ -4,8 +4,8 @@ use solana_sdk::account::Account;
use solana_sdk::clock::Epoch;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::sysvar::stake_history::StakeHistory;
use solana_stake_api::stake_state::{new_stake_history_entry, StakeState};
use solana_vote_api::vote_state::VoteState;
use solana_stake_program::stake_state::{new_stake_history_entry, StakeState};
use solana_vote_program::vote_state::VoteState;
use std::collections::HashMap;
#[derive(Default, Clone, PartialEq, Debug, Deserialize, Serialize)]
@ -96,13 +96,13 @@ impl Stakes {
}
pub fn is_stake(account: &Account) -> bool {
solana_vote_api::check_id(&account.owner)
|| solana_stake_api::check_id(&account.owner)
solana_vote_program::check_id(&account.owner)
|| solana_stake_program::check_id(&account.owner)
&& account.data.len() >= std::mem::size_of::<StakeState>()
}
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 {
self.vote_accounts.remove(pubkey);
} else {
@ -124,7 +124,7 @@ impl Stakes {
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
let old_stake = self.stake_accounts.get(pubkey).and_then(|old_account| {
StakeState::stake_from(old_account).map(|stake| {
@ -210,8 +210,8 @@ impl Stakes {
pub mod tests {
use super::*;
use solana_sdk::{pubkey::Pubkey, rent::Rent};
use solana_stake_api::stake_state;
use solana_vote_api::vote_state::{self, VoteState, MAX_LOCKOUT_HISTORY};
use solana_stake_program::stake_state;
use solana_vote_program::vote_state::{self, VoteState, MAX_LOCKOUT_HISTORY};
// set up some dummies for a staked node (( vote ) ( stake ))
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
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();
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.
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;
#[repr(C)]

View File

@ -11,6 +11,7 @@ pub type Entrypoint = unsafe extern "C" fn(
data: &[u8],
) -> Result<(), InstructionError>;
// Deprecated
// Convenience macro to define the native program entrypoint. Supply a fn to this macro that
// conforms to the `Entrypoint` type signature.
#[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
where
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-runtime = { path = "../runtime", 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" }
tempfile = "3.1.0"
tar = "0.4.26"

View File

@ -244,7 +244,7 @@ fn check_vote_account(
.get_account(vote_pubkey)
.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!(
"not a vote account (owned by {}): {}",
found_vote_account.owner, vote_pubkey
@ -255,7 +255,7 @@ fn check_vote_account(
.get_account(node_pubkey)
.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 found_vote_account.authorized_voter != *voting_pubkey {
return Err(format!(