diff --git a/Cargo.lock b/Cargo.lock index e47560b9f..9ceca465a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2259,6 +2259,7 @@ dependencies = [ "solana-metrics 0.12.0", "solana-sdk 0.12.0", "solana-system-program 0.12.0", + "solana-token-api 0.12.0", "solana-vote-api 0.12.0", ] @@ -2305,6 +2306,16 @@ dependencies = [ "solana-sdk 0.12.0", ] +[[package]] +name = "solana-token-api" +version = "0.12.0" +dependencies = [ + "bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "solana-sdk 0.12.0", +] + [[package]] name = "solana-token-program" version = "0.12.0" diff --git a/Cargo.toml b/Cargo.toml index f04c5dee1..49ab578f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,6 +71,7 @@ members = [ "programs/budget", "programs/budget_api", "programs/token", + "programs/token_api", "programs/failure", "programs/noop", "programs/rewards", diff --git a/programs/token_api/Cargo.toml b/programs/token_api/Cargo.toml new file mode 100644 index 000000000..00f6620f5 --- /dev/null +++ b/programs/token_api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "solana-token-api" +version = "0.12.0" +description = "Solana Token API" +authors = ["Solana Maintainers "] +repository = "https://github.com/solana-labs/solana" +license = "Apache-2.0" +homepage = "https://solana.com/" +edition = "2018" + +[dependencies] +bincode = "1.1.2" +serde = "1.0.89" +serde_derive = "1.0.89" +solana-sdk = { path = "../../sdk", version = "0.12.0" } + +[lib] +name = "solana_token_api" +crate-type = ["lib"] diff --git a/sdk/src/token_program.rs b/programs/token_api/src/lib.rs similarity index 87% rename from sdk/src/token_program.rs rename to programs/token_api/src/lib.rs index 3c5c0acdd..332d0b988 100644 --- a/sdk/src/token_program.rs +++ b/programs/token_api/src/lib.rs @@ -1,5 +1,5 @@ //! An ERC20-like Token -use crate::pubkey::Pubkey; +use solana_sdk::pubkey::Pubkey; const TOKEN_PROGRAM_ID: [u8; 32] = [ 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index f32582b09..ffa087542 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -26,6 +26,7 @@ solana-logger = { path = "../logger", version = "0.12.0" } solana-metrics = { path = "../metrics", version = "0.12.0" } solana-sdk = { path = "../sdk", version = "0.12.0" } solana-system-program = { path = "../programs/system", version = "0.12.0" } +solana-token-api = { path = "../programs/token_api", version = "0.12.0" } solana-vote-api = { path = "../programs/vote_api", version = "0.12.0" } [lib] diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 72b92b329..65fe2ed6d 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -10,7 +10,6 @@ use crate::status_cache::StatusCache; use bincode::serialize; use hashbrown::HashMap; use log::*; -use solana_budget_api; use solana_metrics::counter::Counter; use solana_sdk::account::Account; use solana_sdk::bpf_loader; @@ -24,9 +23,7 @@ use solana_sdk::storage_program; use solana_sdk::system_program; use solana_sdk::system_transaction::SystemTransaction; use solana_sdk::timing::{duration_as_us, MAX_RECENT_BLOCKHASHES, NUM_TICKS_PER_SECOND}; -use solana_sdk::token_program; use solana_sdk::transaction::Transaction; -use solana_vote_api; use solana_vote_api::vote_instruction::Vote; use solana_vote_api::vote_state::{Lockout, VoteState}; use std::result; @@ -301,7 +298,7 @@ impl Bank { self.add_native_program("solana_storage_program", &storage_program::id()); self.add_native_program("solana_bpf_loader", &bpf_loader::id()); self.add_native_program("solana_budget_program", &solana_budget_api::id()); - self.add_native_program("solana_token_program", &token_program::id()); + self.add_native_program("solana_token_program", &solana_token_api::id()); } /// Return the last block hash registered. @@ -1277,7 +1274,7 @@ mod tests { assert_eq!(bpf_loader::id(), bpf); assert_eq!(solana_budget_api::id(), budget); assert_eq!(storage_program::id(), storage); - assert_eq!(token_program::id(), token); + assert_eq!(solana_token_api::id(), token); assert_eq!(solana_vote_api::id(), vote); } @@ -1290,7 +1287,7 @@ mod tests { bpf_loader::id(), solana_budget_api::id(), storage_program::id(), - token_program::id(), + solana_token_api::id(), solana_vote_api::id(), ]; assert!(ids.into_iter().all(move |id| unique.insert(id))); diff --git a/sdk/src/lib.rs b/sdk/src/lib.rs index f4ddceca7..74c6fd739 100644 --- a/sdk/src/lib.rs +++ b/sdk/src/lib.rs @@ -15,7 +15,6 @@ pub mod system_instruction; pub mod system_program; pub mod system_transaction; pub mod timing; -pub mod token_program; pub mod transaction; pub mod transaction_builder;