use cosmwasm_schema::cw_serde;
use cosmwasm_std::{HexBinary, Timestamp};
pub const MAX_JOB_ID_LEN: usize = 64;
#[cw_serde]
pub enum ProxyExecuteMsg {
GetNextRandomness {
job_id: String,
},
GetRandomnessAfter {
after: Timestamp,
job_id: String,
},
}
#[cw_serde]
pub struct NoisCallback {
pub job_id: String,
pub published: Timestamp,
pub randomness: HexBinary,
}
#[cw_serde]
pub enum ReceiverExecuteMsg {
NoisReceive { callback: NoisCallback },
}
#[cfg(test)]
mod tests {
use super::*;
use cosmwasm_std::to_json_vec;
#[test]
fn receiver_execute_msg_serializes_nicely() {
let msg = ReceiverExecuteMsg::NoisReceive {
callback: NoisCallback {
job_id: "first".to_string(),
published: Timestamp::from_seconds(1682086395),
randomness: HexBinary::from_hex(
"aabbccddaabbccddaabbccddaabbccddaabbccddaabbccddaabbccddaabbccdd",
)
.unwrap(),
},
};
let ser = to_json_vec(&msg).unwrap();
assert_eq!(
ser,
br#"{"nois_receive":{"callback":{"job_id":"first","published":"1682086395000000000","randomness":"aabbccddaabbccddaabbccddaabbccddaabbccddaabbccddaabbccddaabbccdd"}}}"#
);
}
}