X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fser.rs;h=5f109e1a93c64529d09e462899fb539abf662c68;hb=65efd92c4a931b3b3622c84c6055bc015152fde0;hp=5e7c6f8565946a938d198fd412583c07922372da;hpb=806b7f0e312c59c87fd628fb71e7c4a77a39645a;p=rust-lightning diff --git a/lightning/src/util/ser.rs b/lightning/src/util/ser.rs index 5e7c6f85..5f109e1a 100644 --- a/lightning/src/util/ser.rs +++ b/lightning/src/util/ser.rs @@ -27,6 +27,7 @@ use bitcoin::secp256k1::{PublicKey, SecretKey}; use bitcoin::secp256k1::constants::{PUBLIC_KEY_SIZE, SECRET_KEY_SIZE, COMPACT_SIGNATURE_SIZE, SCHNORR_SIGNATURE_SIZE}; use bitcoin::secp256k1::ecdsa; use bitcoin::secp256k1::schnorr; +use bitcoin::amount::Amount; use bitcoin::blockdata::constants::ChainHash; use bitcoin::blockdata::script::{self, ScriptBuf}; use bitcoin::blockdata::transaction::{OutPoint, Transaction, TxOut}; @@ -900,7 +901,7 @@ impl Writeable for Vec { fn write(&self, w: &mut W) -> Result<(), io::Error> { (self.len() as u16).write(w)?; for witness in self { - (witness.serialized_len() as u16).write(w)?; + (witness.size() as u16).write(w)?; witness.write(w)?; } Ok(()) @@ -920,7 +921,7 @@ impl Readable for Vec { // of witnesses. We'll just do a sanity check for the lengths and error if there is a mismatch. let witness_len = ::read(r)? as usize; let witness = ::read(r)?; - if witness.serialized_len() != witness_len { + if witness.size() != witness_len { return Err(DecodeError::BadLengthDescriptor); } witnesses.push(witness); @@ -1145,6 +1146,20 @@ impl Readable for Option } } +impl Writeable for Amount { + fn write(&self, w: &mut W) -> Result<(), io::Error> { + self.to_sat().write(w) + } +} + + +impl Readable for Amount { + fn read(r: &mut R) -> Result { + let amount: u64 = Readable::read(r)?; + Ok(Amount::from_sat(amount)) + } +} + impl Writeable for Txid { fn write(&self, w: &mut W) -> Result<(), io::Error> { w.write_all(&self[..])