use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct InitiateWithdrawDtoData {
#[serde(rename = "account")]
pub account: String,
#[serde(rename = "subaccount")]
pub subaccount: String,
#[serde(rename = "token")]
pub token: String,
#[serde(rename = "amount")]
pub amount: String,
#[serde(rename = "lzDestinationAddress")]
pub lz_destination_address: String,
#[serde(rename = "lzDestinationEid")]
pub lz_destination_eid: LzDestinationEid,
#[serde(rename = "nonce")]
pub nonce: String,
#[serde(rename = "signedAt")]
pub signed_at: i64,
}
impl InitiateWithdrawDtoData {
pub fn new(
account: String,
subaccount: String,
token: String,
amount: String,
lz_destination_address: String,
lz_destination_eid: LzDestinationEid,
nonce: String,
signed_at: i64,
) -> InitiateWithdrawDtoData {
InitiateWithdrawDtoData {
account,
subaccount,
token,
amount,
lz_destination_address,
lz_destination_eid,
nonce,
signed_at,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum LzDestinationEid {
#[serde(rename = "0")]
NONE,
#[serde(rename = "40422")]
ETHEREAL_TESTNET,
#[serde(rename = "40231")]
ARBITRUM_SEPOLIA,
#[serde(rename = "40161")]
ETHEREUM_SEPOLIA,
#[serde(rename = "30391")]
ETHEREAL_MAINNET,
#[serde(rename = "30110")]
ARBITRUM_MAINNET,
#[serde(rename = "30101")]
ETHEREUM_MAINNET,
}
impl Default for LzDestinationEid {
fn default() -> LzDestinationEid {
Self::NONE
}
}