2019-07-31 14:28:14 -07:00
|
|
|
use solana_sdk::pubkey::Pubkey;
|
2019-08-15 21:07:00 -07:00
|
|
|
use solana_sdk::system_program::solana_system_program;
|
2019-07-31 14:28:14 -07:00
|
|
|
|
|
|
|
#[macro_use]
|
|
|
|
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_move_loader_program;
|
|
|
|
#[macro_use]
|
|
|
|
extern crate solana_stake_program;
|
|
|
|
#[macro_use]
|
|
|
|
extern crate solana_storage_program;
|
|
|
|
#[macro_use]
|
|
|
|
extern crate solana_token_program;
|
|
|
|
#[macro_use]
|
|
|
|
extern crate solana_vote_program;
|
|
|
|
|
|
|
|
pub fn get() -> Vec<(String, Pubkey)> {
|
|
|
|
vec![
|
2019-08-15 21:07:00 -07:00
|
|
|
solana_system_program(),
|
2019-07-31 14:28:14 -07:00
|
|
|
solana_bpf_loader_program!(),
|
|
|
|
solana_budget_program!(),
|
|
|
|
solana_config_program!(),
|
|
|
|
solana_exchange_program!(),
|
|
|
|
solana_move_loader_program!(),
|
|
|
|
solana_stake_program!(),
|
|
|
|
solana_storage_program!(),
|
|
|
|
solana_token_program!(),
|
|
|
|
solana_vote_program!(),
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
mod tests {
|
2019-08-12 15:46:49 -07:00
|
|
|
use std::collections::HashSet;
|
2019-07-31 14:28:14 -07:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_id_uniqueness() {
|
|
|
|
let mut unique = HashSet::new();
|
|
|
|
let ids = vec![
|
|
|
|
solana_budget_api::id(),
|
|
|
|
solana_config_api::id(),
|
|
|
|
solana_exchange_api::id(),
|
|
|
|
solana_move_loader_api::id(),
|
|
|
|
solana_sdk::bpf_loader::id(),
|
|
|
|
solana_sdk::native_loader::id(),
|
|
|
|
solana_sdk::system_program::id(),
|
|
|
|
solana_stake_api::id(),
|
|
|
|
solana_storage_api::id(),
|
|
|
|
solana_token_api::id(),
|
|
|
|
solana_vote_api::id(),
|
|
|
|
];
|
|
|
|
assert!(ids.into_iter().all(move |id| unique.insert(id)));
|
|
|
|
}
|
|
|
|
}
|