use df_hyperliquid_core::utils::Address;
use super::Refusal;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Staking {
pub user: Address,
pub amount: u128,
pub nonce: u128,
pub deadline: u64,
}
impl Staking {
pub fn new(user: Address, amount: u128, nonce: u128, deadline: u64) -> Result<Self, Refusal> {
Staking::check(amount)?;
Ok(Staking { user, amount, nonce, deadline })
}
pub const fn check(amount: u128) -> Result<(), Refusal> {
if amount == 0 { Err(Refusal::NoAmount) } else { Ok(()) }
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Claim {
pub user: Address,
pub nonce: u128,
pub deadline: u64,
}