use crate::account::signer::Signature;
use crate::utils::address::Address;
use crate::utils::json::Json;
use crate::utils::sign::msgpack::Map;
#[must_use]
pub fn user_signed(action: &Map, nonce: u64, signature: &Signature) -> String {
Json::Object(vec![
("action".to_owned(), action.to_json()),
("nonce".to_owned(), Json::Number(nonce.to_string())),
("signature".to_owned(), signature.json()),
])
.compact()
}
#[must_use]
pub fn l1(action: &Map, nonce: u64, signature: &Signature, vault: Option<Address>) -> String {
Json::Object(vec![
("action".to_owned(), action.to_json()),
("nonce".to_owned(), Json::Number(nonce.to_string())),
("signature".to_owned(), signature.json()),
("vaultAddress".to_owned(), vault.map_or(Json::Null, |vault| Json::String(vault.to_hex()))),
])
.compact()
}