Browse Source

Remove explicit solana dependencies

Armani Ferrante 4 years ago
parent
commit
41b25afed0

+ 0 - 2
Cargo.lock

@@ -117,7 +117,6 @@ dependencies = [
  "anchor-derive-accounts",
  "serum-borsh",
  "solana-program",
- "solana-sdk",
  "thiserror",
 ]
 
@@ -126,7 +125,6 @@ name = "anchor-spl"
 version = "0.0.0-alpha.0"
 dependencies = [
  "anchor-lang",
- "solana-program",
  "spl-token 3.0.1",
 ]
 

+ 4 - 5
Cargo.toml

@@ -12,14 +12,13 @@ derive = []
 default = []
 
 [dependencies]
-thiserror = "1.0.20"
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }
-anchor-derive-accounts = { path = "./derive/accounts", version = "0.0.0-alpha.0" }
-anchor-attribute-program = { path = "./attribute/program", version = "0.0.0-alpha.0" }
 anchor-attribute-access-control = { path = "./attribute/access-control", version = "0.0.0-alpha.0" }
 anchor-attribute-account = { path = "./attribute/account", version = "0.0.0-alpha.0" }
+anchor-attribute-program = { path = "./attribute/program", version = "0.0.0-alpha.0" }
+anchor-derive-accounts = { path = "./derive/accounts", version = "0.0.0-alpha.0" }
 serum-borsh = { version = "0.8.0-serum.1", features = ["serum-program"] }
+solana-program = "1.4.3"
+thiserror = "1.0.20"
 
 [workspace]
 members = [

+ 2 - 2
attribute/account/src/lib.rs

@@ -24,7 +24,7 @@ pub fn account(
                 //       the proc-macro crate.
                 let mut discriminator = [0u8; 8];
                 discriminator.copy_from_slice(
-                    &solana_program::hash::hash(
+                    &anchor_lang::solana_program::hash::hash(
                         #discriminator_preimage.as_bytes(),
                     ).to_bytes()[..8],
                 );
@@ -43,7 +43,7 @@ pub fn account(
             fn try_deserialize(buf: &mut &[u8]) -> Result<Self, ProgramError> {
                 let mut discriminator = [0u8; 8];
                 discriminator.copy_from_slice(
-                    &solana_program::hash::hash(
+                    &anchor_lang::solana_program::hash::hash(
                         #discriminator_preimage.as_bytes(),
                     ).to_bytes()[..8],
                 );

+ 0 - 2
cli/src/template.rs

@@ -28,8 +28,6 @@ cpi = ["no-entrypoint"]
 
 [dependencies]
 anchor-lang = {{ git = "https://github.com/project-serum/anchor", features = ["derive"] }}
-solana-program = "1.4.3"
-solana-sdk = {{ version = "1.3.14", default-features = false, features = ["program"] }}
 "#,
         name,
         name.to_snake_case(),

+ 0 - 2
examples/composite/programs/composite/Cargo.toml

@@ -14,5 +14,3 @@ cpi = ["no-entrypoint"]
 
 [dependencies]
 anchor-lang = { git = "https://github.com/project-serum/anchor", features = ["derive"] }
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }

+ 0 - 2
examples/spl/token-proxy/programs/token-proxy/Cargo.toml

@@ -15,5 +15,3 @@ cpi = ["no-entrypoint"]
 [dependencies]
 anchor-lang = { git = "https://github.com/project-serum/anchor", features = ["derive"] }
 anchor-spl = { git = "https://github.com/project-serum/anchor" }
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }

+ 0 - 2
examples/sysvars/programs/sysvars/Cargo.toml

@@ -13,6 +13,4 @@ no-entrypoint = []
 cpi = ["no-entrypoint"]
 
 [dependencies]
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }
 anchor-lang = { git = "https://github.com/project-serum/anchor", features = ["derive"] }

+ 0 - 2
examples/tutorial/basic-0/programs/basic-0/Cargo.toml

@@ -13,6 +13,4 @@ no-entrypoint = []
 cpi = ["no-entrypoint"]
 
 [dependencies]
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }
 anchor-lang = { git = "https://github.com/project-serum/anchor", features = ["derive"] }

+ 0 - 2
examples/tutorial/basic-1/programs/basic-1/Cargo.toml

@@ -13,6 +13,4 @@ no-entrypoint = []
 cpi = ["no-entrypoint"]
 
 [dependencies]
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }
 anchor-lang = { git = "https://github.com/project-serum/anchor", features = ["derive"] }

+ 0 - 2
examples/tutorial/basic-2/programs/basic-2/Cargo.toml

@@ -13,6 +13,4 @@ no-entrypoint = []
 cpi = ["no-entrypoint"]
 
 [dependencies]
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }
 anchor-lang = { git = "https://github.com/project-serum/anchor", features = ["derive"] }

+ 0 - 2
examples/tutorial/basic-3/programs/puppet-master/Cargo.toml

@@ -13,7 +13,5 @@ no-entrypoint = []
 cpi = ["no-entrypoint"]
 
 [dependencies]
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }
 anchor-lang = { git = "https://github.com/project-serum/anchor", features = ["derive"] }
 puppet = { path = "../puppet", features = ["cpi"] }

+ 0 - 2
examples/tutorial/basic-3/programs/puppet/Cargo.toml

@@ -13,6 +13,4 @@ no-entrypoint = []
 cpi = ["no-entrypoint"]
 
 [dependencies]
-solana-program = "1.4.3"
-solana-sdk = { version = "1.3.14", default-features = false, features = ["program"] }
 anchor-lang = { git = "https://github.com/project-serum/anchor", features = ["derive"] }

+ 0 - 1
spl/Cargo.toml

@@ -6,5 +6,4 @@ edition = "2018"
 
 [dependencies]
 anchor-lang = { path = "../", features = ["derive"] }
-solana-program = "1.4.3"
 spl-token = { version = "3.0.1", features = ["no-entrypoint"] }

+ 3 - 2
spl/src/token.rs

@@ -1,6 +1,7 @@
+use anchor_lang::solana_program;
+use anchor_lang::solana_program::account_info::AccountInfo;
+use anchor_lang::solana_program::entrypoint::ProgramResult;
 use anchor_lang::{Accounts, CpiContext};
-use solana_program::account_info::AccountInfo;
-use solana_program::entrypoint::ProgramResult;
 
 pub fn transfer<'a, 'b, 'c, 'info>(
     ctx: CpiContext<'a, 'b, 'c, 'info, Transfer<'info>>,

+ 4 - 4
src/account_info.rs

@@ -1,8 +1,8 @@
 use crate::{Accounts, ToAccountInfo, ToAccountInfos, ToAccountMetas};
-use solana_sdk::account_info::AccountInfo;
-use solana_sdk::instruction::AccountMeta;
-use solana_sdk::program_error::ProgramError;
-use solana_sdk::pubkey::Pubkey;
+use solana_program::account_info::AccountInfo;
+use solana_program::instruction::AccountMeta;
+use solana_program::program_error::ProgramError;
+use solana_program::pubkey::Pubkey;
 
 impl<'info> Accounts<'info> for AccountInfo<'info> {
     fn try_accounts(

+ 2 - 2
src/context.rs

@@ -1,6 +1,6 @@
 use crate::Accounts;
-use solana_sdk::account_info::AccountInfo;
-use solana_sdk::pubkey::Pubkey;
+use solana_program::account_info::AccountInfo;
+use solana_program::pubkey::Pubkey;
 
 /// Provides non-argument inputs to the program.
 pub struct Context<'a, 'b, 'c, 'info, T> {

+ 4 - 4
src/cpi_account.rs

@@ -1,10 +1,10 @@
 use crate::{
     AccountDeserialize, AccountSerialize, Accounts, ToAccountInfo, ToAccountInfos, ToAccountMetas,
 };
-use solana_sdk::account_info::AccountInfo;
-use solana_sdk::instruction::AccountMeta;
-use solana_sdk::program_error::ProgramError;
-use solana_sdk::pubkey::Pubkey;
+use solana_program::account_info::AccountInfo;
+use solana_program::instruction::AccountMeta;
+use solana_program::program_error::ProgramError;
+use solana_program::pubkey::Pubkey;
 use std::ops::{Deref, DerefMut};
 
 /// Container for any account *not* owned by the current program.

+ 21 - 20
src/lib.rs

@@ -21,10 +21,10 @@
 //!
 //! Presented here are the Rust primitives for building on Solana.
 
-use solana_sdk::account_info::AccountInfo;
-use solana_sdk::instruction::AccountMeta;
-use solana_sdk::program_error::ProgramError;
-use solana_sdk::pubkey::Pubkey;
+use solana_program::account_info::AccountInfo;
+use solana_program::instruction::AccountMeta;
+use solana_program::program_error::ProgramError;
+use solana_program::pubkey::Pubkey;
 use std::io::Write;
 
 mod account_info;
@@ -43,6 +43,7 @@ pub use anchor_attribute_program::program;
 pub use anchor_derive_accounts::Accounts;
 /// Default serialization format for anchor instructions and accounts.
 pub use borsh::{BorshDeserialize as AnchorDeserialize, BorshSerialize as AnchorSerialize};
+pub use solana_program;
 
 /// A data structure of accounts that can be deserialized from the input
 /// of a Solana program. Due to the freewheeling nature of the accounts array,
@@ -120,21 +121,21 @@ pub mod prelude {
     };
 
     pub use borsh;
+    pub use solana_program::account_info::{next_account_info, AccountInfo};
+    pub use solana_program::entrypoint::ProgramResult;
+    pub use solana_program::instruction::AccountMeta;
     pub use solana_program::msg;
-    pub use solana_sdk::account_info::{next_account_info, AccountInfo};
-    pub use solana_sdk::entrypoint::ProgramResult;
-    pub use solana_sdk::instruction::AccountMeta;
-    pub use solana_sdk::program_error::ProgramError;
-    pub use solana_sdk::pubkey::Pubkey;
-    pub use solana_sdk::sysvar::clock::Clock;
-    pub use solana_sdk::sysvar::epoch_schedule::EpochSchedule;
-    pub use solana_sdk::sysvar::fees::Fees;
-    pub use solana_sdk::sysvar::instructions::Instructions;
-    pub use solana_sdk::sysvar::recent_blockhashes::RecentBlockhashes;
-    pub use solana_sdk::sysvar::rent::Rent;
-    pub use solana_sdk::sysvar::rewards::Rewards;
-    pub use solana_sdk::sysvar::slot_hashes::SlotHashes;
-    pub use solana_sdk::sysvar::slot_history::SlotHistory;
-    pub use solana_sdk::sysvar::stake_history::StakeHistory;
-    pub use solana_sdk::sysvar::Sysvar as SolanaSysvar;
+    pub use solana_program::program_error::ProgramError;
+    pub use solana_program::pubkey::Pubkey;
+    pub use solana_program::sysvar::clock::Clock;
+    pub use solana_program::sysvar::epoch_schedule::EpochSchedule;
+    pub use solana_program::sysvar::fees::Fees;
+    pub use solana_program::sysvar::instructions::Instructions;
+    pub use solana_program::sysvar::recent_blockhashes::RecentBlockhashes;
+    pub use solana_program::sysvar::rent::Rent;
+    pub use solana_program::sysvar::rewards::Rewards;
+    pub use solana_program::sysvar::slot_hashes::SlotHashes;
+    pub use solana_program::sysvar::slot_history::SlotHistory;
+    pub use solana_program::sysvar::stake_history::StakeHistory;
+    pub use solana_program::sysvar::Sysvar as SolanaSysvar;
 }

+ 4 - 4
src/program_account.rs

@@ -2,10 +2,10 @@ use crate::{
     AccountDeserialize, AccountSerialize, Accounts, AccountsInit, CpiAccount, ToAccountInfo,
     ToAccountInfos, ToAccountMetas,
 };
-use solana_sdk::account_info::AccountInfo;
-use solana_sdk::instruction::AccountMeta;
-use solana_sdk::program_error::ProgramError;
-use solana_sdk::pubkey::Pubkey;
+use solana_program::account_info::AccountInfo;
+use solana_program::instruction::AccountMeta;
+use solana_program::program_error::ProgramError;
+use solana_program::pubkey::Pubkey;
 use std::ops::{Deref, DerefMut};
 
 /// Container for a serializable `account`. Use this to reference any account

+ 12 - 12
src/sysvar.rs

@@ -1,17 +1,17 @@
 use crate::{Accounts, ToAccountInfo, ToAccountInfos, ToAccountMetas};
-use solana_sdk::account_info::AccountInfo;
-use solana_sdk::instruction::AccountMeta;
-use solana_sdk::program_error::ProgramError;
-use solana_sdk::pubkey::Pubkey;
+use solana_program::account_info::AccountInfo;
+use solana_program::instruction::AccountMeta;
+use solana_program::program_error::ProgramError;
+use solana_program::pubkey::Pubkey;
 use std::ops::{Deref, DerefMut};
 
 /// Container for sysvars.
-pub struct Sysvar<'info, T: solana_sdk::sysvar::Sysvar> {
+pub struct Sysvar<'info, T: solana_program::sysvar::Sysvar> {
     info: AccountInfo<'info>,
     account: T,
 }
 
-impl<'info, T: solana_sdk::sysvar::Sysvar> Sysvar<'info, T> {
+impl<'info, T: solana_program::sysvar::Sysvar> Sysvar<'info, T> {
     pub fn from_account_info(
         acc_info: &AccountInfo<'info>,
     ) -> Result<Sysvar<'info, T>, ProgramError> {
@@ -22,7 +22,7 @@ impl<'info, T: solana_sdk::sysvar::Sysvar> Sysvar<'info, T> {
     }
 }
 
-impl<'info, T: solana_sdk::sysvar::Sysvar> Accounts<'info> for Sysvar<'info, T> {
+impl<'info, T: solana_program::sysvar::Sysvar> Accounts<'info> for Sysvar<'info, T> {
     fn try_accounts(
         _program_id: &Pubkey,
         accounts: &mut &[AccountInfo<'info>],
@@ -36,19 +36,19 @@ impl<'info, T: solana_sdk::sysvar::Sysvar> Accounts<'info> for Sysvar<'info, T>
     }
 }
 
-impl<'info, T: solana_sdk::sysvar::Sysvar> ToAccountMetas for Sysvar<'info, T> {
+impl<'info, T: solana_program::sysvar::Sysvar> ToAccountMetas for Sysvar<'info, T> {
     fn to_account_metas(&self) -> Vec<AccountMeta> {
         vec![AccountMeta::new_readonly(*self.info.key, false)]
     }
 }
 
-impl<'info, T: solana_sdk::sysvar::Sysvar> ToAccountInfos<'info> for Sysvar<'info, T> {
+impl<'info, T: solana_program::sysvar::Sysvar> ToAccountInfos<'info> for Sysvar<'info, T> {
     fn to_account_infos(&self) -> Vec<AccountInfo<'info>> {
         vec![self.info.clone()]
     }
 }
 
-impl<'a, T: solana_sdk::sysvar::Sysvar> Deref for Sysvar<'a, T> {
+impl<'a, T: solana_program::sysvar::Sysvar> Deref for Sysvar<'a, T> {
     type Target = T;
 
     fn deref(&self) -> &Self::Target {
@@ -56,13 +56,13 @@ impl<'a, T: solana_sdk::sysvar::Sysvar> Deref for Sysvar<'a, T> {
     }
 }
 
-impl<'a, T: solana_sdk::sysvar::Sysvar> DerefMut for Sysvar<'a, T> {
+impl<'a, T: solana_program::sysvar::Sysvar> DerefMut for Sysvar<'a, T> {
     fn deref_mut(&mut self) -> &mut Self::Target {
         &mut self.account
     }
 }
 
-impl<'info, T: solana_sdk::sysvar::Sysvar> ToAccountInfo<'info> for Sysvar<'info, T> {
+impl<'info, T: solana_program::sysvar::Sysvar> ToAccountInfo<'info> for Sysvar<'info, T> {
     fn to_account_info(&self) -> AccountInfo<'info> {
         self.info.clone()
     }

+ 4 - 4
syn/src/codegen/accounts.rs

@@ -146,7 +146,7 @@ pub fn generate(accs: AccountsStruct) -> proc_macro2::TokenStream {
 
     quote! {
         impl#combined_generics anchor_lang::Accounts#trait_generics for #name#strct_generics {
-            fn try_accounts(program_id: &solana_program::pubkey::Pubkey, accounts: &mut &[solana_program::account_info::AccountInfo<'info>]) -> Result<Self, solana_program::program_error::ProgramError> {
+            fn try_accounts(program_id: &anchor_lang::solana_program::pubkey::Pubkey, accounts: &mut &[anchor_lang::solana_program::account_info::AccountInfo<'info>]) -> Result<Self, anchor_lang::solana_program::program_error::ProgramError> {
                 // Deserialize each account.
                 #(#deser_fields)*
 
@@ -161,7 +161,7 @@ pub fn generate(accs: AccountsStruct) -> proc_macro2::TokenStream {
         }
 
         impl#combined_generics anchor_lang::ToAccountInfos#trait_generics for #name#strct_generics {
-            fn to_account_infos(&self) -> Vec<solana_program::account_info::AccountInfo<'info>> {
+            fn to_account_infos(&self) -> Vec<anchor_lang::solana_program::account_info::AccountInfo<'info>> {
                 let mut account_infos = vec![];
 
                 #(#to_acc_infos)*
@@ -171,7 +171,7 @@ pub fn generate(accs: AccountsStruct) -> proc_macro2::TokenStream {
         }
 
         impl#combined_generics anchor_lang::ToAccountMetas for #name#strct_generics {
-            fn to_account_metas(&self) -> Vec<solana_program::instruction::AccountMeta> {
+            fn to_account_metas(&self) -> Vec<anchor_lang::solana_program::instruction::AccountMeta> {
                 let mut account_metas = vec![];
 
                 #(#to_acc_metas)*
@@ -182,7 +182,7 @@ pub fn generate(accs: AccountsStruct) -> proc_macro2::TokenStream {
         }
 
         impl#strct_generics #name#strct_generics {
-            pub fn exit(&self, program_id: &solana_program::pubkey::Pubkey) -> solana_program::entrypoint::ProgramResult {
+            pub fn exit(&self, program_id: &anchor_lang::solana_program::pubkey::Pubkey) -> anchor_lang::solana_program::entrypoint::ProgramResult {
                 #(#on_save)*
                 Ok(())
             }

+ 3 - 3
syn/src/codegen/program.rs

@@ -16,7 +16,7 @@ pub fn generate(program: Program) -> proc_macro2::TokenStream {
         use #mod_name::*;
 
         #[cfg(not(feature = "no-entrypoint"))]
-        solana_program::entrypoint!(entry);
+        anchor_lang::solana_program::entrypoint!(entry);
         #[cfg(not(feature = "no-entrypoint"))]
         fn entry(program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult {
             let mut data: &[u8] = instruction_data;
@@ -156,7 +156,7 @@ fn generate_cpi(program: &Program) -> proc_macro2::TokenStream {
                             let data = AnchorSerialize::try_to_vec(&ix)
                                 .map_err(|_| ProgramError::InvalidInstructionData)?;
                             let accounts = ctx.accounts.to_account_metas();
-                            solana_program::instruction::Instruction {
+                            anchor_lang::solana_program::instruction::Instruction {
                                 program_id: *ctx.program.key,
                                 accounts,
                                 data,
@@ -164,7 +164,7 @@ fn generate_cpi(program: &Program) -> proc_macro2::TokenStream {
                         };
                         let mut acc_infos = ctx.accounts.to_account_infos();
                         acc_infos.push(ctx.program.clone());
-                        solana_sdk::program::invoke_signed(
+                        anchor_lang::solana_program::program::invoke_signed(
                             &ix,
                             &acc_infos,
                             ctx.signer_seeds,