get program names from programs (#4273)

* get program names from programs

* fixup
This commit is contained in:
Rob Walker 2019-05-14 10:44:16 -07:00 committed by GitHub
parent 65a82ebf50
commit e8ad822111
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 91 additions and 33 deletions

10
Cargo.lock generated
View File

@ -2194,8 +2194,10 @@ dependencies = [
"solana-budget-api 0.15.0", "solana-budget-api 0.15.0",
"solana-budget-program 0.15.0", "solana-budget-program 0.15.0",
"solana-client 0.15.0", "solana-client 0.15.0",
"solana-config-program 0.15.0",
"solana-drone 0.15.0", "solana-drone 0.15.0",
"solana-ed25519-dalek 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "solana-ed25519-dalek 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-exchange-program 0.15.0",
"solana-kvstore 0.15.0", "solana-kvstore 0.15.0",
"solana-logger 0.15.0", "solana-logger 0.15.0",
"solana-metrics 0.15.0", "solana-metrics 0.15.0",
@ -2203,7 +2205,9 @@ dependencies = [
"solana-runtime 0.15.0", "solana-runtime 0.15.0",
"solana-sdk 0.15.0", "solana-sdk 0.15.0",
"solana-stake-api 0.15.0", "solana-stake-api 0.15.0",
"solana-stake-program 0.15.0",
"solana-storage-api 0.15.0", "solana-storage-api 0.15.0",
"solana-storage-program 0.15.0",
"solana-vote-api 0.15.0", "solana-vote-api 0.15.0",
"solana-vote-program 0.15.0", "solana-vote-program 0.15.0",
"solana-vote-signer 0.15.0", "solana-vote-signer 0.15.0",
@ -2457,13 +2461,18 @@ dependencies = [
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
"solana 0.15.0", "solana 0.15.0",
"solana-budget-api 0.15.0", "solana-budget-api 0.15.0",
"solana-budget-program 0.15.0",
"solana-config-api 0.15.0", "solana-config-api 0.15.0",
"solana-config-program 0.15.0",
"solana-exchange-api 0.15.0", "solana-exchange-api 0.15.0",
"solana-exchange-program 0.15.0",
"solana-sdk 0.15.0", "solana-sdk 0.15.0",
"solana-stake-api 0.15.0", "solana-stake-api 0.15.0",
"solana-stake-program 0.15.0", "solana-stake-program 0.15.0",
"solana-storage-api 0.15.0", "solana-storage-api 0.15.0",
"solana-storage-program 0.15.0",
"solana-token-api 0.15.0", "solana-token-api 0.15.0",
"solana-token-program 0.15.0",
"solana-vote-api 0.15.0", "solana-vote-api 0.15.0",
"solana-vote-program 0.15.0", "solana-vote-program 0.15.0",
] ]
@ -2620,6 +2629,7 @@ dependencies = [
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.15.0", "solana-logger 0.15.0",
"solana-metrics 0.15.0", "solana-metrics 0.15.0",
"solana-noop-program 0.15.0",
"solana-sdk 0.15.0", "solana-sdk 0.15.0",
"solana-stake-api 0.15.0", "solana-stake-api 0.15.0",
"solana-vote-api 0.15.0", "solana-vote-api 0.15.0",

View File

@ -930,7 +930,7 @@ mod tests {
node_stakes: vec![100_000; NUM_NODES], node_stakes: vec![100_000; NUM_NODES],
cluster_lamports: 100_000_000_000_000, cluster_lamports: 100_000_000_000_000,
fullnode_config, fullnode_config,
native_instruction_processors: [("solana_exchange_program".to_string(), id())].to_vec(), native_instruction_processors: [solana_exchange_program!()].to_vec(),
..ClusterConfig::default() ..ClusterConfig::default()
}); });

View File

@ -2,6 +2,9 @@ pub mod bench;
mod cli; mod cli;
pub mod order_book; pub mod order_book;
#[macro_use]
extern crate solana_exchange_program;
use crate::bench::{airdrop_lamports, do_bench_exchange, Config}; use crate::bench::{airdrop_lamports, do_bench_exchange, Config};
use log::*; use log::*;
use solana::gossip_service::{discover_nodes, get_clients}; use solana::gossip_service::{discover_nodes, get_clients};
@ -42,6 +45,7 @@ fn main() {
} }
info!("Funding keypair: {}", identity.pubkey()); info!("Funding keypair: {}", identity.pubkey());
debug!("Exchange program name: {}", solana_exchange_program!().0);
let accounts_in_groups = batch_size * account_groups; let accounts_in_groups = batch_size * account_groups;
const NUM_SIGNERS: u64 = 2; const NUM_SIGNERS: u64 = 2;

View File

@ -58,9 +58,13 @@ solana-netutil = { path = "../netutil", version = "0.15.0" }
solana-runtime = { path = "../runtime", version = "0.15.0" } solana-runtime = { path = "../runtime", version = "0.15.0" }
solana-sdk = { path = "../sdk", version = "0.15.0" } solana-sdk = { path = "../sdk", version = "0.15.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.15.0" } solana-stake-api = { path = "../programs/stake_api", version = "0.15.0" }
solana-stake-program = { path = "../programs/stake_program", version = "0.15.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.15.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.15.0" }
solana-storage-program = { path = "../programs/storage_program", version = "0.15.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.15.0" } solana-vote-api = { path = "../programs/vote_api", version = "0.15.0" }
solana-vote-program = { path = "../programs/vote_program", version = "0.15.0" } solana-vote-program = { path = "../programs/vote_program", version = "0.15.0" }
solana-exchange-program = { path = "../programs/exchange_program", version = "0.15.0" }
solana-config-program = { path = "../programs/config_program", version = "0.15.0" }
solana-vote-signer = { path = "../vote-signer", version = "0.15.0" } solana-vote-signer = { path = "../vote-signer", version = "0.15.0" }
sys-info = "0.5.6" sys-info = "0.5.6"
tokio = "0.1" tokio = "0.1"

View File

@ -409,7 +409,7 @@ pub fn new_fullnode_for_tests() -> (Fullnode, ContactInfo, Keypair, String) {
create_genesis_block_with_leader(10_000, &contact_info.id, 42); create_genesis_block_with_leader(10_000, &contact_info.id, 42);
genesis_block genesis_block
.native_instruction_processors .native_instruction_processors
.push(("solana_budget_program".to_string(), solana_budget_api::id())); .push(solana_budget_program!());
let (ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_block); let (ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_block);

View File

@ -70,6 +70,9 @@ pub mod tvu;
pub mod voting_keypair; pub mod voting_keypair;
pub mod window_service; pub mod window_service;
#[macro_use]
extern crate solana_budget_program;
#[cfg(test)] #[cfg(test)]
#[cfg(any(feature = "chacha", feature = "cuda"))] #[cfg(any(feature = "chacha", feature = "cuda"))]
#[macro_use] #[macro_use]

View File

@ -368,7 +368,7 @@ mod tests {
// This test depends on the budget program // This test depends on the budget program
genesis_block genesis_block
.native_instruction_processors .native_instruction_processors
.push(("solana_budget_program".to_string(), solana_budget_api::id())); .push(solana_budget_program!());
let bob_pubkey = Pubkey::new_rand(); let bob_pubkey = Pubkey::new_rand();
let witness = Keypair::new(); let witness = Keypair::new();

View File

@ -14,19 +14,24 @@ serde_json = "1.0.39"
solana = { path = "../core", version = "0.15.0" } solana = { path = "../core", version = "0.15.0" }
solana-sdk = { path = "../sdk", version = "0.15.0" } solana-sdk = { path = "../sdk", version = "0.15.0" }
solana-budget-api = { path = "../programs/budget_api", version = "0.15.0" } solana-budget-api = { path = "../programs/budget_api", version = "0.15.0" }
solana-budget-program = { path = "../programs/budget_program", version = "0.15.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.15.0" } solana-vote-api = { path = "../programs/vote_api", version = "0.15.0" }
solana-vote-program = { path = "../programs/vote_program", version = "0.15.0" } solana-vote-program = { path = "../programs/vote_program", version = "0.15.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.15.0" } solana-stake-api = { path = "../programs/stake_api", version = "0.15.0" }
solana-stake-program = { path = "../programs/stake_program", version = "0.15.0" } solana-stake-program = { path = "../programs/stake_program", version = "0.15.0" }
solana-storage-api = { path = "../programs/storage_api", version = "0.15.0" } solana-storage-api = { path = "../programs/storage_api", version = "0.15.0" }
solana-storage-program = { path = "../programs/storage_program", version = "0.15.0" }
solana-token-api = { path = "../programs/token_api", version = "0.15.0" } solana-token-api = { path = "../programs/token_api", version = "0.15.0" }
solana-token-program = { path = "../programs/token_program", version = "0.15.0" }
solana-config-api = { path = "../programs/config_api", version = "0.15.0" } solana-config-api = { path = "../programs/config_api", version = "0.15.0" }
solana-config-program = { path = "../programs/config_program", version = "0.15.0" }
solana-exchange-api = { path = "../programs/exchange_api", version = "0.15.0" } solana-exchange-api = { path = "../programs/exchange_api", version = "0.15.0" }
solana-exchange-program = { path = "../programs/exchange_program", version = "0.15.0" }
[dev-dependencies] [dev-dependencies]
hashbrown = "0.3.0" hashbrown = "0.3.0"
[features] [features]
cuda = ["solana/cuda"] cuda = ["solana/cuda"]
erasure = [] erasure = []

View File

@ -3,6 +3,16 @@
extern crate solana_vote_program; extern crate solana_vote_program;
#[macro_use] #[macro_use]
extern crate solana_stake_program; extern crate solana_stake_program;
#[macro_use]
extern crate solana_budget_program;
#[macro_use]
extern crate solana_storage_program;
#[macro_use]
extern crate solana_token_program;
#[macro_use]
extern crate solana_config_program;
#[macro_use]
extern crate solana_exchange_program;
use clap::{crate_description, crate_name, crate_version, value_t_or_exit, App, Arg}; use clap::{crate_description, crate_name, crate_version, value_t_or_exit, App, Arg};
use solana::blocktree::create_new_ledger; use solana::blocktree::create_new_ledger;
@ -150,17 +160,11 @@ fn main() -> Result<(), Box<dyn error::Error>> {
&[ &[
solana_vote_program!(), solana_vote_program!(),
solana_stake_program!(), solana_stake_program!(),
("solana_budget_program".to_string(), solana_budget_api::id()), solana_budget_program!(),
( solana_storage_program!(),
"solana_storage_program".to_string(), solana_token_program!(),
solana_storage_api::id(), solana_config_program!(),
), solana_exchange_program!(),
("solana_token_program".to_string(), solana_token_api::id()),
("solana_config_program".to_string(), solana_config_api::id()),
(
"solana_exchange_program".to_string(),
solana_exchange_api::id(),
),
], ],
); );
genesis_block.fee_calculator.lamports_per_signature = genesis_block.fee_calculator.lamports_per_signature =

View File

@ -16,5 +16,4 @@ solana-sdk = { path = "../../sdk", version = "0.15.0" }
[lib] [lib]
name = "solana_budget_program" name = "solana_budget_program"
crate-type = ["cdylib"] crate-type = ["lib","cdylib"]

View File

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

View File

@ -16,5 +16,4 @@ solana-sdk = { path = "../../sdk", version = "0.15.0" }
[lib] [lib]
name = "solana_config_program" name = "solana_config_program"
crate-type = ["cdylib"] crate-type = ["lib","cdylib"]

View File

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

View File

@ -16,6 +16,4 @@ solana-sdk = { path = "../../sdk", version = "0.15.0" }
[lib] [lib]
name = "solana_exchange_program" name = "solana_exchange_program"
crate-type = ["cdylib"] crate-type = ["lib","cdylib"]

View File

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

View File

@ -16,5 +16,4 @@ solana-storage-api = { path = "../storage_api", version = "0.15.0" }
[lib] [lib]
name = "solana_storage_program" name = "solana_storage_program"
crate-type = ["cdylib"] crate-type = ["lib", "cdylib"]

View File

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

View File

@ -16,5 +16,4 @@ solana-token-api = { path = "../token_api", version = "0.15.0" }
[lib] [lib]
name = "solana_token_program" name = "solana_token_program"
crate-type = ["cdylib"] crate-type = ["lib","cdylib"]

View File

@ -1,3 +1,10 @@
#[macro_export]
macro_rules! solana_token_program {
() => {
("solana_token_program".to_string(), solana_token_api::id())
};
}
use solana_token_api::token_processor::process_instruction; use solana_token_api::token_processor::process_instruction;
solana_sdk::solana_entrypoint!(process_instruction); solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -29,6 +29,7 @@ solana-sdk = { path = "../sdk", version = "0.15.0" }
solana-stake-api = { path = "../programs/stake_api", version = "0.15.0" } solana-stake-api = { path = "../programs/stake_api", version = "0.15.0" }
solana-vote-api = { path = "../programs/vote_api", version = "0.15.0" } solana-vote-api = { path = "../programs/vote_api", version = "0.15.0" }
solana-vote-program = { path = "../programs/vote_program", version = "0.15.0" } solana-vote-program = { path = "../programs/vote_program", version = "0.15.0" }
solana-noop-program = { path = "../programs/noop_program", version = "0.15.0" }
[lib] [lib]
name = "solana_runtime" name = "solana_runtime"

View File

@ -284,10 +284,6 @@ impl Bank {
"solana_bpf_loader", "solana_bpf_loader",
&solana_sdk::bpf_loader::id(), &solana_sdk::bpf_loader::id(),
); );
self.register_native_instruction_processor(
&solana_vote_program!().0,
&solana_vote_program!().1,
);
// Add additional native programs specified in the genesis block // Add additional native programs specified in the genesis block
for (name, program_id) in &genesis_block.native_instruction_processors { for (name, program_id) in &genesis_block.native_instruction_processors {

View File

@ -53,7 +53,7 @@ pub fn create_genesis_block_with_leader(
), ),
), ),
], ],
&[], &[solana_vote_program!()],
); );
(genesis_block, mint_keypair, voting_keypair) (genesis_block, mint_keypair, voting_keypair)