mirror of
https://github.com/d0zingcat/ore.git
synced 2026-05-16 07:26:51 +00:00
block based sha256 mining
This commit is contained in:
@@ -6,44 +6,12 @@ use steel::*;
|
||||
/// Initialize sets up the ORE program to begin mining.
|
||||
pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult {
|
||||
// Load accounts.
|
||||
let [signer_info, bus_0_info, bus_1_info, bus_2_info, bus_3_info, bus_4_info, bus_5_info, bus_6_info, bus_7_info, config_info, metadata_info, mint_info, treasury_info, treasury_tokens_info, system_program, token_program, associated_token_program, metadata_program, rent_sysvar] =
|
||||
let [signer_info, config_info, metadata_info, mint_info, treasury_info, treasury_tokens_info, system_program, token_program, associated_token_program, metadata_program, rent_sysvar] =
|
||||
accounts
|
||||
else {
|
||||
return Err(ProgramError::NotEnoughAccountKeys);
|
||||
};
|
||||
signer_info.is_signer()?.has_address(&INITIALIZER_ADDRESS)?;
|
||||
bus_0_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
.has_seeds(&[BUS, &[0]], &ore_api::ID)?;
|
||||
bus_1_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
.has_seeds(&[BUS, &[1]], &ore_api::ID)?;
|
||||
bus_2_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
.has_seeds(&[BUS, &[2]], &ore_api::ID)?;
|
||||
bus_3_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
.has_seeds(&[BUS, &[3]], &ore_api::ID)?;
|
||||
bus_4_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
.has_seeds(&[BUS, &[4]], &ore_api::ID)?;
|
||||
bus_5_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
.has_seeds(&[BUS, &[5]], &ore_api::ID)?;
|
||||
bus_6_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
.has_seeds(&[BUS, &[6]], &ore_api::ID)?;
|
||||
bus_7_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
.has_seeds(&[BUS, &[7]], &ore_api::ID)?;
|
||||
config_info
|
||||
.is_empty()?
|
||||
.is_writable()?
|
||||
@@ -71,25 +39,6 @@ pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> Program
|
||||
metadata_program.is_program(&mpl_token_metadata::ID)?;
|
||||
rent_sysvar.is_sysvar(&sysvar::rent::ID)?;
|
||||
|
||||
// Initialize bus accounts.
|
||||
let bus_infos = [
|
||||
bus_0_info, bus_1_info, bus_2_info, bus_3_info, bus_4_info, bus_5_info, bus_6_info,
|
||||
bus_7_info,
|
||||
];
|
||||
for i in 0..BUS_COUNT {
|
||||
create_program_account::<Bus>(
|
||||
bus_infos[i],
|
||||
system_program,
|
||||
signer_info,
|
||||
&ore_api::ID,
|
||||
&[BUS, &[i as u8]],
|
||||
)?;
|
||||
let bus = bus_infos[i].as_account_mut::<Bus>(&ore_api::ID)?;
|
||||
bus.id = i as u64;
|
||||
bus.rewards = 0;
|
||||
bus.theoretical_rewards = 0;
|
||||
}
|
||||
|
||||
// Initialize config.
|
||||
create_program_account::<Config>(
|
||||
config_info,
|
||||
@@ -99,9 +48,9 @@ pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> Program
|
||||
&[CONFIG],
|
||||
)?;
|
||||
let config = config_info.as_account_mut::<Config>(&ore_api::ID)?;
|
||||
config.base_reward_rate = INITIAL_BASE_REWARD_RATE;
|
||||
// config.base_reward_rate = INITIAL_BASE_REWARD_RATE;
|
||||
config.last_reset_at = 0;
|
||||
config.min_difficulty = INITIAL_MIN_DIFFICULTY as u64;
|
||||
// config.min_difficulty = INITIAL_MIN_DIFFICULTY as u64;
|
||||
|
||||
// Initialize treasury.
|
||||
create_program_account::<Treasury>(
|
||||
|
||||
Reference in New Issue
Block a user