SHOWING: First 60
#50,361,200text #49,993,097text #49,988,982text #49,988,187text ("text/plain;charset=utf-8", BROTLI_MODE_TEXT, Media::Text, &["txt"]),
("text/x-python", BROTLI_MODE_TEXT, Media::Code(Language::Python), &["py"]),
("video/mp4", BROTLI_MODE_GENERIC, Media::Video, &["mp4"]),
("video/webm", BROTLI_MODE_GENERIC, Media::Video, &["webm"]),
];
pub(crate) fn content_type_for_path(
path: &Path,
) -> Result<(&'static str, BrotliEncoderMode), Error> {
let extension = path
.extension()
.ok_or_else(|| anyhow!("file must have extension"))?
.to_str()
.ok_or_else(|| anyhow!("unrecognized extension"))?;
let extension = extension.to_lowercase();
if extension == "mp4" {
Media::check_mp4_codec(path)?;
}
for (content_type, mode, _, extensions) in Self::TABLE {
if extensions.contains(&extension.as_str()) {
return Ok((*content_type, *mode));
}
}
let mut extensions = Self::TABLE
#44,991,198text );
}
#[test]
fn select_cardinal_utxo_ignores_locked_utxos() {
let utxos = vec![
(outpoint(1), Amount::from_sat(500)),
(outpoint(2), Amount::from_sat(500)),
];
let locked_utxos = vec![outpoint(1)];
let mut tx_builder = TransactionBuilder::new(
satpoint(0, 0),
BTreeMap::new(),
utxos.into_iter().collect(),
locked_utxos.into_iter().collect(),
recipient(),
[change(0), change(1)],
FeeRate::try_from(1.0).unwrap(),
Target::Value(Amount::from_sat(10_000)),
);
assert_eq!(
tx_builder
.select_cardinal_utxo(Amount::from_sat(500), false)
.unwrap()
.0,
outpoint(2),
);
}
}
#44,985,591texttoken-mint1.tapart tapx 44226185#44,723,787taphttps://twitter.com/bitcoinfleurs/status/1664692523695054848?t=x39U_WCtfx3-nTb5vK3HZA&s=19#19,373,503textregFirstinscription.sats#15,971,898sns