Split rewards_program.rs

This commit is contained in:
Greg Fitzgerald 2019-03-02 08:10:27 -07:00
parent d32f5b6cca
commit 7b849b042c
7 changed files with 41 additions and 36 deletions

View File

@ -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_(

View File

@ -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 }
}

View File

@ -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)
}

View File

@ -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)],
)

View File

@ -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
}

View File

@ -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
}
}

View File

@ -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,
)
}