From b2d8b20f74405109f44749ed00a7ab8a05b64915 Mon Sep 17 00:00:00 2001 From: raphjaph Date: Thu, 19 Dec 2024 16:06:42 -0500 Subject: [PATCH] Just some notes --- src/api.rs | 14 ++++++-- src/subcommand/server.rs | 78 ++++++++++++++++++++-------------------- 2 files changed, 50 insertions(+), 42 deletions(-) diff --git a/src/api.rs b/src/api.rs index eae5ac144a..e9cee4730d 100644 --- a/src/api.rs +++ b/src/api.rs @@ -151,13 +151,23 @@ pub struct Inscriptions { pub page_index: u32, } +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] +pub struct OutputRecursive { + pub address: Option>, + pub inscriptions: Option>, + pub runes: Option>, + pub sat_ranges: Option>, + pub script_pubkey: ScriptBuf, + pub value: u64, +} + #[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct Output { pub address: Option>, pub indexed: bool, - pub inscriptions: Vec, + pub inscriptions: Option>, pub outpoint: OutPoint, - pub runes: BTreeMap, + pub runes: Option>, pub sat_ranges: Option>, pub script_pubkey: ScriptBuf, pub spent: bool, diff --git a/src/subcommand/server.rs b/src/subcommand/server.rs index 7cfb5705d1..bd79a21f6c 100644 --- a/src/subcommand/server.rs +++ b/src/subcommand/server.rs @@ -667,10 +667,10 @@ impl Server { ) -> ServerResult { let accept_json = AcceptJson(true); Self::output( - Extension(server_config), - Extension(index), - Path(outpoint), - accept_json, + Extension(server_config), + Extension(index), + Path(outpoint), + accept_json, ) .await } @@ -6343,42 +6343,40 @@ next #[test] fn output_recursive_endpoint() { - let server = TestServer::builder().chain(Chain::Regtest).build(); - - server.mine_blocks(1); - - let inscription = Inscription { - content_type: Some("text/plain".into()), - body: Some("foo".into()), - ..default() - }; - - let txid = server.core.broadcast_tx(TransactionTemplate { - inputs: &[(1, 0, 0, inscription.to_witness())], - ..default() - }); - - server.mine_blocks(1); - - let inscription_id = InscriptionId { txid, index: 0 }; - let outpoint: OutPoint = OutPoint { txid, vout: 0 }; - - let output_response = server.get_json::( - format!("/r/output/{}", outpoint) - ); - - assert_eq!(output_response.outpoint, outpoint); - assert!(!output_response.spent); - assert!(output_response.indexed); - assert_eq!(output_response.inscriptions, vec![inscription_id]); - assert!(output_response.address.is_some()); - assert!(!output_response.script_pubkey.is_empty()); - assert_eq!(output_response.transaction, txid); - assert!(output_response.value > 0); - assert!(output_response.runes.is_empty()); - if let Some(sat_ranges) = &output_response.sat_ranges { - assert!(!sat_ranges.is_empty()); - } + let server = TestServer::builder().chain(Chain::Regtest).build(); + + server.mine_blocks(1); + + let inscription = Inscription { + content_type: Some("text/plain".into()), + body: Some("foo".into()), + ..default() + }; + + let txid = server.core.broadcast_tx(TransactionTemplate { + inputs: &[(1, 0, 0, inscription.to_witness())], + ..default() + }); + + server.mine_blocks(1); + + let inscription_id = InscriptionId { txid, index: 0 }; + let outpoint: OutPoint = OutPoint { txid, vout: 0 }; + + let output_response = server.get_json::(format!("/r/output/{}", outpoint)); + + assert_eq!(output_response.outpoint, outpoint); + assert!(!output_response.spent); + assert!(output_response.indexed); + assert_eq!(output_response.inscriptions, vec![inscription_id]); + assert!(output_response.address.is_some()); + assert!(!output_response.script_pubkey.is_empty()); + assert_eq!(output_response.transaction, txid); + assert!(output_response.value > 0); + assert!(output_response.runes.is_empty()); + if let Some(sat_ranges) = &output_response.sat_ranges { + assert!(!sat_ranges.is_empty()); + } } #[test]