use df_hyperliquid_core::utils::Address;
use super::Refusal;
pub const MIN_WITHDRAWAL_USDC: u128 = 10_000_000;
pub const HYPERCORE_ROUTE: &str = "hypercore";
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct WithdrawToCore {
pub user: Address,
pub amount: u128,
pub nonce: u128,
pub deadline: u64,
}
impl WithdrawToCore {
pub fn new(user: Address, amount: u128, nonce: u128, deadline: u64) -> Result<Self, Refusal> {
WithdrawToCore::check(amount)?;
Ok(WithdrawToCore { user, amount, nonce, deadline })
}
pub const fn check(amount: u128) -> Result<(), Refusal> {
if amount < MIN_WITHDRAWAL_USDC { Err(Refusal::WithdrawalTooSmall) } else { Ok(()) }
}
}