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-program 0.15.0",
"solana-client 0.15.0",
"solana-config-program 0.15.0",
"solana-drone 0.15.0",
"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-logger 0.15.0",
"solana-metrics 0.15.0",
@ -2203,7 +2205,9 @@ dependencies = [
"solana-runtime 0.15.0",
"solana-sdk 0.15.0",
"solana-stake-api 0.15.0",
"solana-stake-program 0.15.0",
"solana-storage-api 0.15.0",
"solana-storage-program 0.15.0",
"solana-vote-api 0.15.0",
"solana-vote-program 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)",
"solana 0.15.0",
"solana-budget-api 0.15.0",
"solana-budget-program 0.15.0",
"solana-config-api 0.15.0",
"solana-config-program 0.15.0",
"solana-exchange-api 0.15.0",
"solana-exchange-program 0.15.0",
"solana-sdk 0.15.0",
"solana-stake-api 0.15.0",
"solana-stake-program 0.15.0",
"solana-storage-api 0.15.0",
"solana-storage-program 0.15.0",
"solana-token-api 0.15.0",
"solana-token-program 0.15.0",
"solana-vote-api 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)",
"solana-logger 0.15.0",
"solana-metrics 0.15.0",
"solana-noop-program 0.15.0",
"solana-sdk 0.15.0",
"solana-stake-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],
cluster_lamports: 100_000_000_000_000,
fullnode_config,
native_instruction_processors: [("solana_exchange_program".to_string(), id())].to_vec(),
native_instruction_processors: [solana_exchange_program!()].to_vec(),
..ClusterConfig::default()
});

View File

@ -2,6 +2,9 @@ pub mod bench;
mod cli;
pub mod order_book;
#[macro_use]
extern crate solana_exchange_program;
use crate::bench::{airdrop_lamports, do_bench_exchange, Config};
use log::*;
use solana::gossip_service::{discover_nodes, get_clients};
@ -42,6 +45,7 @@ fn main() {
}
info!("Funding keypair: {}", identity.pubkey());
debug!("Exchange program name: {}", solana_exchange_program!().0);
let accounts_in_groups = batch_size * account_groups;
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-sdk = { path = "../sdk", 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-program = { path = "../programs/storage_program", 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-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" }
sys-info = "0.5.6"
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);
genesis_block
.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);

View File

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

View File

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

View File

@ -14,19 +14,24 @@ serde_json = "1.0.39"
solana = { path = "../core", 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-program = { path = "../programs/budget_program", 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-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-program = { path = "../programs/storage_program", 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-program = { path = "../programs/config_program", 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]
hashbrown = "0.3.0"
[features]
cuda = ["solana/cuda"]
erasure = []

View File

@ -3,6 +3,16 @@
extern crate solana_vote_program;
#[macro_use]
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 solana::blocktree::create_new_ledger;
@ -150,17 +160,11 @@ fn main() -> Result<(), Box<dyn error::Error>> {
&[
solana_vote_program!(),
solana_stake_program!(),
("solana_budget_program".to_string(), solana_budget_api::id()),
(
"solana_storage_program".to_string(),
solana_storage_api::id(),
),
("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(),
),
solana_budget_program!(),
solana_storage_program!(),
solana_token_program!(),
solana_config_program!(),
solana_exchange_program!(),
],
);
genesis_block.fee_calculator.lamports_per_signature =

View File

@ -16,5 +16,4 @@ solana-sdk = { path = "../../sdk", version = "0.15.0" }
[lib]
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);

View File

@ -16,5 +16,4 @@ solana-sdk = { path = "../../sdk", version = "0.15.0" }
[lib]
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;
solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -16,6 +16,4 @@ solana-sdk = { path = "../../sdk", version = "0.15.0" }
[lib]
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;
solana_sdk::solana_entrypoint!(process_instruction);

View File

@ -16,5 +16,4 @@ solana-storage-api = { path = "../storage_api", version = "0.15.0" }
[lib]
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);

View File

@ -16,5 +16,4 @@ solana-token-api = { path = "../token_api", version = "0.15.0" }
[lib]
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;
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-vote-api = { path = "../programs/vote_api", 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]
name = "solana_runtime"

View File

@ -284,10 +284,6 @@ impl Bank {
"solana_bpf_loader",
&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
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)