X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fevents.rs;h=1bdbff0333a520e0aced1526272d64bb94e75c40;hb=ecddfe1766f454f1609509a4756201523129235b;hp=a5d223c338dfb7a6f2c4bfe1d8efd5801bb873d1;hpb=9e5d9516ddfa4c16e9912432907ef4b13c8cb89a;p=rust-lightning diff --git a/lightning/src/util/events.rs b/lightning/src/util/events.rs index a5d223c3..1bdbff03 100644 --- a/lightning/src/util/events.rs +++ b/lightning/src/util/events.rs @@ -126,7 +126,8 @@ pub enum Event { /// now + 5*time_forwardable). time_forwardable: Duration, }, - /// Used to indicate that an output was generated on-chain which you should know how to spend. + /// Used to indicate that an output which you should know how to spend was confirmed on chain + /// and is now spendable. /// Such an output will *not* ever be spent by rust-lightning, and are not at risk of your /// counterparty spending them due to some kind of timeout. Thus, you need to store them /// somewhere and spend them when you create on-chain transactions. @@ -147,19 +148,18 @@ impl Writeable for Event { &Event::PaymentReceived { ref payment_hash, ref payment_preimage, ref payment_secret, ref amt, ref user_payment_id } => { 1u8.write(writer)?; write_tlv_fields!(writer, { - (0, payment_hash), - (2, payment_secret), - (4, amt), - (6, user_payment_id), - }, { - (8, payment_preimage), + (0, payment_hash, required), + (2, payment_secret, required), + (4, amt, required), + (6, user_payment_id, required), + (8, payment_preimage, option), }); }, &Event::PaymentSent { ref payment_preimage } => { 2u8.write(writer)?; write_tlv_fields!(writer, { - (0, payment_preimage), - }, {}); + (0, payment_preimage, required), + }); payment_preimage.write(writer)?; }, &Event::PaymentFailed { ref payment_hash, ref rejected_by_dest, @@ -174,21 +174,21 @@ impl Writeable for Event { #[cfg(test)] error_data.write(writer)?; write_tlv_fields!(writer, { - (0, payment_hash), - (2, rejected_by_dest), - }, {}); + (0, payment_hash, required), + (2, rejected_by_dest, required), + }); }, &Event::PendingHTLCsForwardable { time_forwardable: _ } => { 4u8.write(writer)?; - write_tlv_fields!(writer, {}, {}); + write_tlv_fields!(writer, {}); // We don't write the time_fordwardable out at all, as we presume when the user // deserializes us at least that much time has elapsed. }, &Event::SpendableOutputs { ref outputs } => { 5u8.write(writer)?; write_tlv_fields!(writer, { - (0, VecWriteWrapper(outputs)), - }, {}); + (0, VecWriteWrapper(outputs), required), + }); }, } Ok(()) @@ -206,12 +206,11 @@ impl MaybeReadable for Event { let mut amt = 0; let mut user_payment_id = 0; read_tlv_fields!(reader, { - (0, payment_hash), - (2, payment_secret), - (4, amt), - (6, user_payment_id), - }, { - (8, payment_preimage), + (0, payment_hash, required), + (2, payment_secret, required), + (4, amt, required), + (6, user_payment_id, required), + (8, payment_preimage, option), }); Ok(Some(Event::PaymentReceived { payment_hash, @@ -227,8 +226,8 @@ impl MaybeReadable for Event { let f = || { let mut payment_preimage = PaymentPreimage([0; 32]); read_tlv_fields!(reader, { - (0, payment_preimage), - }, {}); + (0, payment_preimage, required), + }); Ok(Some(Event::PaymentSent { payment_preimage, })) @@ -244,9 +243,9 @@ impl MaybeReadable for Event { let mut payment_hash = PaymentHash([0; 32]); let mut rejected_by_dest = false; read_tlv_fields!(reader, { - (0, payment_hash), - (2, rejected_by_dest), - }, {}); + (0, payment_hash, required), + (2, rejected_by_dest, required), + }); Ok(Some(Event::PaymentFailed { payment_hash, rejected_by_dest, @@ -260,7 +259,7 @@ impl MaybeReadable for Event { }, 4u8 => { let f = || { - read_tlv_fields!(reader, {}, {}); + read_tlv_fields!(reader, {}); Ok(Some(Event::PendingHTLCsForwardable { time_forwardable: Duration::from_secs(0) })) @@ -271,8 +270,8 @@ impl MaybeReadable for Event { let f = || { let mut outputs = VecReadWrapper(Vec::new()); read_tlv_fields!(reader, { - (0, outputs), - }, {}); + (0, outputs, required), + }); Ok(Some(Event::SpendableOutputs { outputs: outputs.0 })) }; f()