1use steel::*;
2
3#[repr(u8)]
4#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)]
5pub enum OreInstruction {
6 Claim = 0,
8 Close = 1,
9 Mine = 2,
10 Open = 3,
11 Reset = 4,
12 #[deprecated(since = "2.4.0", note = "Please stake with the boost program")]
13 Stake = 5,
14 Update = 6,
15 #[deprecated(since = "2.6.0", note = "v1 tokens are no longer eligable to upgrade")]
16 Upgrade = 7,
17
18 Initialize = 100,
20}
21
22#[repr(C)]
23#[derive(Clone, Copy, Debug, Pod, Zeroable)]
24pub struct Claim {
25 pub amount: [u8; 8],
26}
27
28#[repr(C)]
29#[derive(Clone, Copy, Debug, Pod, Zeroable)]
30pub struct Close {}
31
32#[repr(C)]
33#[derive(Clone, Copy, Debug, Pod, Zeroable)]
34pub struct Mine {
35 pub digest: [u8; 16],
36 pub nonce: [u8; 8],
37}
38
39#[repr(C)]
40#[derive(Clone, Copy, Debug, Pod, Zeroable)]
41pub struct Open {
42 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
43 pub bump: u8,
44}
45
46#[repr(C)]
47#[derive(Clone, Copy, Debug, Pod, Zeroable)]
48pub struct Reset {}
49
50#[deprecated(since = "2.4.0", note = "Please stake with the boost program")]
51#[repr(C)]
52#[derive(Clone, Copy, Debug, Pod, Zeroable)]
53pub struct Stake {
54 pub amount: [u8; 8],
55}
56
57#[repr(C)]
58#[derive(Clone, Copy, Debug, Pod, Zeroable)]
59pub struct Update {}
60
61#[deprecated(since = "2.6.0", note = "v1 tokens are no longer eligable to upgrade")]
62#[repr(C)]
63#[derive(Clone, Copy, Debug, Pod, Zeroable)]
64pub struct Upgrade {
65 pub amount: [u8; 8],
66}
67
68#[repr(C)]
69#[derive(Clone, Copy, Debug, Pod, Zeroable)]
70pub struct Initialize {
71 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
72 pub bus_0_bump: u8,
73 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
74 pub bus_1_bump: u8,
75 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
76 pub bus_2_bump: u8,
77 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
78 pub bus_3_bump: u8,
79 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
80 pub bus_4_bump: u8,
81 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
82 pub bus_5_bump: u8,
83 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
84 pub bus_6_bump: u8,
85 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
86 pub bus_7_bump: u8,
87 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
88 pub config_bump: u8,
89 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
90 pub metadata_bump: u8,
91 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
92 pub mint_bump: u8,
93 #[deprecated(since = "2.5.0", note = "Bump no longer used")]
94 pub treasury_bump: u8,
95}
96
97instruction!(OreInstruction, Claim);
98instruction!(OreInstruction, Close);
99instruction!(OreInstruction, Mine);
100instruction!(OreInstruction, Open);
101instruction!(OreInstruction, Reset);
102instruction!(OreInstruction, Stake);
103instruction!(OreInstruction, Update);
104instruction!(OreInstruction, Upgrade);
105instruction!(OreInstruction, Initialize);