diff --git a/programs/native/rewards/src/lib.rs b/programs/native/rewards/src/lib.rs index a7a10df45..f47f645ac 100644 --- a/programs/native/rewards/src/lib.rs +++ b/programs/native/rewards/src/lib.rs @@ -83,14 +83,15 @@ fn entrypoint( #[cfg(test)] mod tests { use super::*; - use solana_rewards_api::rewards_program; + use solana_rewards_api; + use solana_rewards_api::rewards_state::RewardsState; use solana_sdk::account::Account; use solana_sdk::signature::{Keypair, KeypairUtil}; use solana_sdk::vote_program::{self, Vote}; fn create_rewards_account(tokens: u64) -> Account { - let space = rewards_program::get_max_size(); - Account::new(tokens, space, rewards_program::id()) + let space = RewardsState::max_size(); + Account::new(tokens, space, solana_rewards_api::id()) } fn redeem_vote_credits_( diff --git a/programs/native/rewards/tests/rewards.rs b/programs/native/rewards/tests/rewards.rs index 543aaa47c..a5d848ea3 100644 --- a/programs/native/rewards/tests/rewards.rs +++ b/programs/native/rewards/tests/rewards.rs @@ -1,4 +1,4 @@ -use solana_rewards_api::rewards_program; +use solana_rewards_api; use solana_rewards_api::rewards_transaction::RewardsTransaction; use solana_runtime::bank::{Bank, Result}; use solana_sdk::genesis_block::GenesisBlock; @@ -14,7 +14,7 @@ struct RewardsBank<'a> { impl<'a> RewardsBank<'a> { fn new(bank: &'a Bank) -> Self { - bank.add_native_program("solana_rewards_program", &rewards_program::id()); + bank.add_native_program("solana_rewards_program", &solana_rewards_api::id()); Self { bank } } diff --git a/programs/native/rewards_api/src/lib.rs b/programs/native/rewards_api/src/lib.rs index 0cd224de4..6e169c8f6 100644 --- a/programs/native/rewards_api/src/lib.rs +++ b/programs/native/rewards_api/src/lib.rs @@ -1,3 +1,18 @@ pub mod rewards_instruction; -pub mod rewards_program; +pub mod rewards_state; pub mod rewards_transaction; + +use solana_sdk::pubkey::Pubkey; + +pub const REWARDS_PROGRAM_ID: [u8; 32] = [ + 133, 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, + 0, +]; + +pub fn check_id(program_id: &Pubkey) -> bool { + program_id.as_ref() == REWARDS_PROGRAM_ID +} + +pub fn id() -> Pubkey { + Pubkey::new(&REWARDS_PROGRAM_ID) +} diff --git a/programs/native/rewards_api/src/rewards_instruction.rs b/programs/native/rewards_api/src/rewards_instruction.rs index 89c0648f8..74a232bc6 100644 --- a/programs/native/rewards_api/src/rewards_instruction.rs +++ b/programs/native/rewards_api/src/rewards_instruction.rs @@ -1,4 +1,4 @@ -use crate::rewards_program; +use crate::id; use serde_derive::{Deserialize, Serialize}; use solana_sdk::pubkey::Pubkey; use solana_sdk::transaction_builder::BuilderInstruction; @@ -11,7 +11,7 @@ pub enum RewardsInstruction { impl RewardsInstruction { pub fn new_redeem_vote_credits(vote_id: Pubkey, rewards_id: Pubkey) -> BuilderInstruction { BuilderInstruction::new( - rewards_program::id(), + id(), &RewardsInstruction::RedeemVoteCredits, vec![(vote_id, true), (rewards_id, false)], ) diff --git a/programs/native/rewards_api/src/rewards_program.rs b/programs/native/rewards_api/src/rewards_program.rs deleted file mode 100644 index a6a28f2bf..000000000 --- a/programs/native/rewards_api/src/rewards_program.rs +++ /dev/null @@ -1,25 +0,0 @@ -use bincode::serialized_size; -use serde_derive::{Deserialize, Serialize}; -use solana_sdk::pubkey::Pubkey; - -pub const REWARDS_PROGRAM_ID: [u8; 32] = [ - 133, 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, - 0, -]; - -pub fn check_id(program_id: &Pubkey) -> bool { - program_id.as_ref() == REWARDS_PROGRAM_ID -} - -pub fn id() -> Pubkey { - Pubkey::new(&REWARDS_PROGRAM_ID) -} - -#[derive(Debug, Default, Serialize, Deserialize, PartialEq, Eq)] -struct RewardsState {} - -/// Upper limit on the size of the Rewards State. -pub fn get_max_size() -> usize { - let rewards_state = RewardsState::default(); - serialized_size(&rewards_state).unwrap() as usize -} diff --git a/programs/native/rewards_api/src/rewards_state.rs b/programs/native/rewards_api/src/rewards_state.rs new file mode 100644 index 000000000..b5961547a --- /dev/null +++ b/programs/native/rewards_api/src/rewards_state.rs @@ -0,0 +1,13 @@ +use bincode::serialized_size; +use serde_derive::{Deserialize, Serialize}; + +#[derive(Debug, Default, Serialize, Deserialize, PartialEq, Eq)] +pub struct RewardsState {} + +impl RewardsState { + /// Upper limit on the serialized size of RewardsState. + pub fn max_size() -> usize { + let rewards_state = RewardsState::default(); + serialized_size(&rewards_state).unwrap() as usize + } +} diff --git a/programs/native/rewards_api/src/rewards_transaction.rs b/programs/native/rewards_api/src/rewards_transaction.rs index 1b03918b8..82b18295e 100644 --- a/programs/native/rewards_api/src/rewards_transaction.rs +++ b/programs/native/rewards_api/src/rewards_transaction.rs @@ -1,8 +1,9 @@ //! The `rewards_transaction` module provides functionality for creating a global //! rewards account and enabling stakers to redeem credits from their vote accounts. +use crate::id; use crate::rewards_instruction::RewardsInstruction; -use crate::rewards_program; +use crate::rewards_state::RewardsState; use solana_sdk::hash::Hash; use solana_sdk::pubkey::Pubkey; use solana_sdk::signature::{Keypair, KeypairUtil}; @@ -26,8 +27,8 @@ impl RewardsTransaction { rewards_id, last_id, num_tokens, - rewards_program::get_max_size() as u64, - rewards_program::id(), + RewardsState::max_size() as u64, + id(), fee, ) }