Skip to main content

cashu/nuts/
nut09.rs

1//! NUT-09: Restore signatures
2//!
3//! <https://github.com/cashubtc/nuts/blob/main/09.md>
4
5use serde::{Deserialize, Serialize};
6
7use super::nut00::{BlindSignature, BlindedMessage};
8
9/// Restore Request [NUT-09]
10#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
11pub struct RestoreRequest {
12    /// Outputs
13    pub outputs: Vec<BlindedMessage>,
14}
15
16/// Restore Response [NUT-09]
17#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
18pub struct RestoreResponse {
19    /// Outputs
20    pub outputs: Vec<BlindedMessage>,
21    /// Signatures
22    pub signatures: Vec<BlindSignature>,
23}
24
25mod test {
26
27    #[test]
28    fn restore_response() {
29        use super::*;
30        let rs = r#"{"outputs":[{"B_":"0204bbffa045f28ec836117a29ea0a00d77f1d692e38cf94f72a5145bfda6d8f41","amount":0,"id":"00ffd48b8f5ecf80", "witness":null},{"B_":"025f0615ccba96f810582a6885ffdb04bd57c96dbc590f5aa560447b31258988d7","amount":0,"id":"00ffd48b8f5ecf80"}],"signatures":[{"C_":"02e9701b804dc05a5294b5a580b428237a27c7ee1690a0177868016799b1761c81","amount":8,"dleq":null,"id":"00ffd48b8f5ecf80"},{"C_":"031246ee046519b15648f1b8d8ffcb8e537409c84724e148c8d6800b2e62deb795","amount":2,"dleq":null,"id":"00ffd48b8f5ecf80"}]}"#;
31
32        let _res: RestoreResponse = serde_json::from_str(rs).unwrap();
33    }
34}