Split rewards_program.rs
This commit is contained in:
parent
d32f5b6cca
commit
7b849b042c
|
@ -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_(
|
||||
|
|
|
@ -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 }
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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)],
|
||||
)
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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,
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue