use saa_schema::saa_type;
use crate::PayloadExtension;
#[saa_type]
pub struct AuthPayload {
pub credential_id : Option<crate::CredentialId>,
pub hrp : Option<String>,
pub extension : Option<PayloadExtension>,
}
#[saa_type]
pub struct SignedDataMsg {
pub data : crate::Binary,
pub signature : crate::Binary,
pub payload : Option<AuthPayload>,
}
#[saa_type(no_deny)]
pub struct MsgDataToVerify {
pub chain_id: String,
pub contract_address: String,
pub nonce: crate::Uint64,
}
#[derive(Debug, serde::Serialize)]
pub struct MsgDataToSign {
pub chain_id: String,
pub contract_address: String,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub messages: Vec<String>,
pub nonce: crate::Uint64,
}
impl MsgDataToSign {
pub fn new(cid: String, addr: String, msgs: Vec<String>, nonce: u64) -> Self {
Self {
chain_id: cid,
messages: msgs,
contract_address: addr,
nonce: nonce.into(),
}
}
}