This commit is contained in:
Hardhat Chad
2025-10-02 13:05:56 -07:00
parent eb40335fa3
commit 882a34c972
3 changed files with 32 additions and 3 deletions

View File

@@ -101,6 +101,9 @@ async fn main() {
"claim_seeker" => {
claim_seeker(&rpc, &payer).await.unwrap();
}
"participating_miners" => {
participating_miners(&rpc).await.unwrap();
}
"keys" => {
keys().await.unwrap();
}
@@ -108,6 +111,16 @@ async fn main() {
};
}
async fn participating_miners(rpc: &RpcClient) -> Result<(), anyhow::Error> {
let round_id = std::env::var("ID").expect("Missing ID env var");
let round_id = u64::from_str(&round_id).expect("Invalid ID");
let miners = get_miners_participating(rpc, round_id).await?;
for (i, (address, miner)) in miners.iter().enumerate() {
println!("{}: {}", i, miner.authority);
}
Ok(())
}
// Dmy2fqxpkUocwvkALMDwfCRFeYfkdGqgB5PLfmZW5ASR
// Az9Xia5f6EXU9MGHuuMCKyHMy3MfNnsoyTbh7HTuFw5G
// 5muLAbcjsAMcP8438KPfo2Jqw2vgAtuSDvMFNWb6Bexi
@@ -629,6 +642,15 @@ async fn get_miners_old(rpc: &RpcClient) -> Result<Vec<(Pubkey, MinerOLD)>, anyh
Ok(miners)
}
async fn get_miners_participating(
rpc: &RpcClient,
round_id: u64,
) -> Result<Vec<(Pubkey, Miner)>, anyhow::Error> {
let filter = RpcFilterType::Memcmp(Memcmp::new_base58_encoded(472, &round_id.to_le_bytes()));
let miners = get_program_accounts::<Miner>(rpc, ore_api::ID, vec![filter]).await?;
Ok(miners)
}
fn get_winning_square(slot_hash: &[u8]) -> u64 {
// Use slot hash to generate a random u64
let r1 = u64::from_le_bytes(slot_hash[0..8].try_into().unwrap());

View File

@@ -39,6 +39,13 @@ pub fn process_deploy(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResul
return Err(trace("Not authorized", OreError::NotAuthorized.into()));
}
// Wait until first deploy to start round.
if board.end_slot == u64::MAX {
board.start_slot = clock.slot;
board.end_slot = board.start_slot + 150;
round.expires_at = board.end_slot + ONE_WEEK_SLOTS;
}
// Check if signer is the automation executor.
let automation = if !automation_info.data_is_empty() {
let automation = automation_info

View File

@@ -47,7 +47,7 @@ pub fn process_reset(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul
round_next.deployed = [0; 25];
round_next.slot_hash = [0; 32];
round_next.count = [0; 25];
round_next.expires_at = clock.slot + 150 + ONE_WEEK_SLOTS;
round_next.expires_at = u64::MAX; // clock.slot + 150 + ONE_WEEK_SLOTS;
round_next.rent_payer = *signer_info.key;
round_next.motherlode = 0;
round_next.top_miner = Pubkey::default();
@@ -109,7 +109,7 @@ pub fn process_reset(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul
// Update board
board.round_id += 1;
board.start_slot = clock.slot + 1;
board.end_slot = board.start_slot + 150;
board.end_slot = u64::MAX; // board.start_slot + 150;
// Do SOL transfers.
round_info.send(total_admin_fee, &fee_collector_info);
@@ -220,7 +220,7 @@ pub fn process_reset(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul
// Reset board.
board.round_id += 1;
board.start_slot = clock.slot + 1;
board.end_slot = board.start_slot + 150;
board.end_slot = u64::MAX; // board.start_slot + 150;
// Do SOL transfers.
round_info.send(total_admin_fee, &fee_collector_info);