1use serde::{Deserialize, Serialize};
2use steel::*;
3
4use crate::state::rig_pda;
5
6use super::OilAccount;
7
8#[repr(C)]
10#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
11pub struct Rig {
12 pub authority: Pubkey,
14
15 pub current_epoch_id: [u64; 4],
17
18 pub checkpointed_epoch_id: [u64; 4],
20
21 pub buffer_a: u64,
23
24 pub buffer_b: u64,
26
27 pub buffer_c: u64,
29
30 pub buffer_d: u64,
32
33 pub buffer_e: u64,
35
36 pub buffer_f: u64,
38
39 pub buffer_g: u64,
41
42 pub buffer_h: u64,
44
45 pub buffer_i: u64,
47}
48
49impl Rig {
50 pub fn pda(authority: Pubkey) -> (Pubkey, u8) {
51 rig_pda(authority)
52 }
53
54 pub fn initialize(&mut self, authority: Pubkey) {
55 self.authority = authority;
56 self.current_epoch_id = [0; 4];
57 self.checkpointed_epoch_id = [0; 4];
58 self.buffer_a = 0;
59 self.buffer_b = 0;
60 self.buffer_c = 0;
61 self.buffer_d = 0;
62 self.buffer_e = 0;
63 self.buffer_f = 0;
64 self.buffer_g = 0;
65 self.buffer_h = 0;
66 self.buffer_i = 0;
67 }
68}
69
70account!(OilAccount, Rig);