@@ -12,14 +12,11 @@ edition = "2018"
|
||||
log = { version = "0.4.8" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "1.1.8" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "1.1.8" }
|
||||
solana-config-program = { path = "../programs/config", version = "1.1.8" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "1.1.8" }
|
||||
solana-runtime = { path = "../runtime", version = "1.1.8" }
|
||||
solana-sdk = { path = "../sdk", version = "1.1.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "1.1.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "1.1.8" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "1.1.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "1.1.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
use solana_sdk::{
|
||||
clock::Epoch, genesis_config::OperatingMode, inflation::Inflation,
|
||||
move_loader::solana_move_loader_program, pubkey::Pubkey, system_program::solana_system_program,
|
||||
move_loader::solana_move_loader_program, pubkey::Pubkey,
|
||||
};
|
||||
|
||||
#[macro_use]
|
||||
@@ -8,17 +8,11 @@ extern crate solana_bpf_loader_program;
|
||||
#[macro_use]
|
||||
extern crate solana_budget_program;
|
||||
#[macro_use]
|
||||
extern crate solana_config_program;
|
||||
#[macro_use]
|
||||
extern crate solana_exchange_program;
|
||||
#[macro_use]
|
||||
extern crate solana_stake_program;
|
||||
#[macro_use]
|
||||
extern crate solana_storage_program;
|
||||
#[macro_use]
|
||||
extern crate solana_vest_program;
|
||||
#[macro_use]
|
||||
extern crate solana_vote_program;
|
||||
|
||||
use log::*;
|
||||
use solana_runtime::bank::{Bank, EnteredEpochCallback};
|
||||
@@ -56,12 +50,8 @@ pub fn get_programs(operating_mode: OperatingMode, epoch: Epoch) -> Option<Vec<(
|
||||
Some(vec![
|
||||
// Enable all Stable programs
|
||||
solana_bpf_loader_program!(),
|
||||
solana_config_program!(),
|
||||
solana_stake_program!(),
|
||||
solana_storage_program!(),
|
||||
solana_system_program(),
|
||||
solana_vest_program!(),
|
||||
solana_vote_program!(),
|
||||
// Programs that are only available in Development mode
|
||||
solana_budget_program!(),
|
||||
solana_exchange_program!(),
|
||||
@@ -72,14 +62,7 @@ pub fn get_programs(operating_mode: OperatingMode, epoch: Epoch) -> Option<Vec<(
|
||||
}
|
||||
}
|
||||
OperatingMode::Stable => {
|
||||
if epoch == 0 {
|
||||
Some(vec![
|
||||
solana_config_program!(),
|
||||
solana_stake_program!(),
|
||||
solana_system_program(),
|
||||
solana_vote_program!(),
|
||||
])
|
||||
} else if epoch == std::u64::MAX - 1 {
|
||||
if epoch == std::u64::MAX - 1 {
|
||||
// The epoch of std::u64::MAX - 1 is a placeholder and is expected to be reduced in
|
||||
// a future hard fork.
|
||||
Some(vec![solana_bpf_loader_program!()])
|
||||
@@ -93,13 +76,7 @@ pub fn get_programs(operating_mode: OperatingMode, epoch: Epoch) -> Option<Vec<(
|
||||
}
|
||||
OperatingMode::Preview => {
|
||||
if epoch == 0 {
|
||||
Some(vec![
|
||||
solana_config_program!(),
|
||||
solana_stake_program!(),
|
||||
solana_system_program(),
|
||||
solana_vote_program!(),
|
||||
solana_bpf_loader_program!(),
|
||||
])
|
||||
Some(vec![solana_bpf_loader_program!()])
|
||||
} else if epoch == std::u64::MAX {
|
||||
// The epoch of std::u64::MAX is a placeholder and is expected to be reduced in a
|
||||
// future hard fork.
|
||||
@@ -124,7 +101,7 @@ pub fn get_entered_epoch_callback(operating_mode: OperatingMode) -> EnteredEpoch
|
||||
if let Some(new_programs) = get_programs(operating_mode, bank.epoch()) {
|
||||
for (name, program_id) in new_programs.iter() {
|
||||
info!("Registering {} at {}", name, program_id);
|
||||
bank.register_native_instruction_processor(name, program_id);
|
||||
bank.add_native_program(name, program_id);
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -155,7 +132,7 @@ mod tests {
|
||||
fn test_development_programs() {
|
||||
assert_eq!(
|
||||
get_programs(OperatingMode::Development, 0).unwrap().len(),
|
||||
10
|
||||
6
|
||||
);
|
||||
assert_eq!(get_programs(OperatingMode::Development, 1), None);
|
||||
}
|
||||
@@ -175,15 +152,6 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_softlaunch_programs() {
|
||||
assert_eq!(
|
||||
get_programs(OperatingMode::Stable, 0),
|
||||
Some(vec![
|
||||
solana_config_program!(),
|
||||
solana_stake_program!(),
|
||||
solana_system_program(),
|
||||
solana_vote_program!(),
|
||||
])
|
||||
);
|
||||
assert_eq!(get_programs(OperatingMode::Stable, 1), None);
|
||||
assert!(get_programs(OperatingMode::Stable, std::u64::MAX - 1).is_some());
|
||||
assert!(get_programs(OperatingMode::Stable, std::u64::MAX).is_some());
|
||||
|
Reference in New Issue
Block a user