mirror of
https://github.com/d0zingcat/ore.git
synced 2026-05-14 07:26:51 +00:00
116 lines
2.3 KiB
Rust
116 lines
2.3 KiB
Rust
use steel::*;
|
|
|
|
#[repr(u8)]
|
|
#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)]
|
|
pub enum OreInstruction {
|
|
// User
|
|
Open = 0,
|
|
Close = 1,
|
|
Commit = 2,
|
|
Deposit = 3,
|
|
Log = 4,
|
|
Mine = 5,
|
|
Swap = 6,
|
|
Uncommit = 7,
|
|
Withdraw = 8,
|
|
|
|
// Admin
|
|
SetAdmin = 9,
|
|
SetBlockLimit = 10,
|
|
SetFeeCollector = 11,
|
|
SetFeeRate = 12,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Open {
|
|
pub id: [u8; 8],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Close {}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Commit {
|
|
pub amount: [u8; 8],
|
|
pub executor: [u8; 32],
|
|
pub fee: [u8; 8],
|
|
pub seed: [u8; 32],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Deposit {
|
|
pub amount: [u8; 8],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Log {}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Mine {
|
|
pub amount: [u8; 8],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Swap {
|
|
pub amount: [u8; 8],
|
|
pub direction: u8,
|
|
pub precision: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Uncommit {
|
|
pub amount: [u8; 8],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Withdraw {
|
|
pub amount: [u8; 8],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct SetAdmin {
|
|
pub admin: [u8; 32],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct SetBlockLimit {
|
|
pub block_limit: [u8; 8],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct SetFeeCollector {
|
|
pub fee_collector: [u8; 32],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct SetFeeRate {
|
|
pub fee_rate: [u8; 8],
|
|
}
|
|
|
|
instruction!(OreInstruction, Open);
|
|
instruction!(OreInstruction, Close);
|
|
instruction!(OreInstruction, Commit);
|
|
instruction!(OreInstruction, Deposit);
|
|
instruction!(OreInstruction, Log);
|
|
instruction!(OreInstruction, Mine);
|
|
instruction!(OreInstruction, Swap);
|
|
instruction!(OreInstruction, Uncommit);
|
|
instruction!(OreInstruction, Withdraw);
|
|
instruction!(OreInstruction, SetAdmin);
|
|
instruction!(OreInstruction, SetBlockLimit);
|
|
instruction!(OreInstruction, SetFeeCollector);
|
|
instruction!(OreInstruction, SetFeeRate);
|