MCPcopy Create free account
hub / github.com/ElementsProject/lightning / parse_hrn

Function parse_hrn

plugins/bip353-plugin/src/main.rs:105–134  ·  view source on GitHub ↗
(args: serde_json::Value)

Source from the content-addressed store, hash-verified

103}
104
105fn parse_hrn(args: serde_json::Value) -> Result<HumanReadableName, anyhow::Error> {
106 match args {
107 serde_json::Value::String(s) => {
108 HumanReadableName::from_encoded(&s).map_err(|_e| anyhow!("invalid address"))
109 }
110 serde_json::Value::Array(values) => {
111 if values.len() > 1 {
112 return Err(anyhow!("too many arguments"));
113 }
114 if values.is_empty() {
115 return Err(anyhow!("no address given"));
116 }
117 let address = values
118 .first()
119 .unwrap()
120 .as_str()
121 .ok_or_else(|| anyhow!("address is not a string"))?;
122 HumanReadableName::from_encoded(address).map_err(|_e| anyhow!("invalid address"))
123 }
124 serde_json::Value::Object(map) => {
125 let address = map
126 .get("address")
127 .ok_or_else(|| anyhow!("no address given"))?
128 .as_str()
129 .ok_or_else(|| anyhow!("address is not a string"))?;
130 HumanReadableName::from_encoded(address).map_err(|_e| anyhow!("invalid address"))
131 }
132 _ => Err(anyhow!("invalid json type for address")),
133 }
134}
135
136async fn fetch_payment_instructions(
137 plugin: Plugin<()>,

Callers 1

fetch_bip353Function · 0.85

Calls 3

as_strMethod · 0.80
unwrapMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected