X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fln%2Fmod.rs;h=71b73390d1c80a9590afedecfbee6f542822a076;hb=228e72ca34428ec9d70da677c592fe128e470b3c;hp=e79f4bbd24d90d481735a7c602f64442a128d296;hpb=7c9463668a4f71663746e57bdb09ee6b91797d5a;p=rust-lightning diff --git a/lightning/src/ln/mod.rs b/lightning/src/ln/mod.rs index e79f4bbd..71b73390 100644 --- a/lightning/src/ln/mod.rs +++ b/lightning/src/ln/mod.rs @@ -85,6 +85,8 @@ mod offers_tests; pub use self::peer_channel_encryptor::LN_MAX_MSG_LEN; +use bitcoin::hashes::{sha256::Hash as Sha256, Hash}; + /// payment_hash type, use to cross-lock hop /// /// This is not exported to bindings users as we just use [u8; 32] directly @@ -109,6 +111,13 @@ impl core::fmt::Display for PaymentPreimage { } } +/// Converts a `PaymentPreimage` into a `PaymentHash` by hashing the preimage with SHA256. +impl From for PaymentHash { + fn from(value: PaymentPreimage) -> Self { + PaymentHash(Sha256::hash(&value.0).to_byte_array()) + } +} + /// payment_secret type, use to authenticate sender to the receiver and tie MPP HTLCs together /// /// This is not exported to bindings users as we just use [u8; 32] directly