@@ -1553,10 +1553,15 @@ impl Writeable for Event {
1553
1553
} ,
1554
1554
& Event :: PaymentFailed { ref payment_id, ref payment_hash, ref reason } => {
1555
1555
15u8 . write ( writer) ?;
1556
+ let ( payment_hash, invoice_received) = match payment_hash {
1557
+ Some ( payment_hash) => ( payment_hash, true ) ,
1558
+ None => ( & PaymentHash ( [ 0 ; 32 ] ) , false ) ,
1559
+ } ;
1556
1560
write_tlv_fields ! ( writer, {
1557
1561
( 0 , payment_id, required) ,
1558
1562
( 1 , reason, option) ,
1559
- ( 2 , payment_hash, option) ,
1563
+ ( 2 , payment_hash, required) ,
1564
+ ( 3 , invoice_received, required) ,
1560
1565
} )
1561
1566
} ,
1562
1567
& Event :: OpenChannelRequest { .. } => {
@@ -1927,17 +1932,19 @@ impl MaybeReadable for Event {
1927
1932
} ,
1928
1933
15u8 => {
1929
1934
let mut f = || {
1930
- let mut payment_hash = None ;
1935
+ let mut payment_hash = PaymentHash ( [ 0 ; 32 ] ) ;
1931
1936
let mut payment_id = PaymentId ( [ 0 ; 32 ] ) ;
1932
1937
let mut reason = None ;
1938
+ let mut invoice_received = true ;
1933
1939
read_tlv_fields ! ( reader, {
1934
1940
( 0 , payment_id, required) ,
1935
1941
( 1 , reason, upgradable_option) ,
1936
- ( 2 , payment_hash, option) ,
1942
+ ( 2 , payment_hash, required) ,
1943
+ ( 3 , invoice_received, ( default_value, true ) ) ,
1937
1944
} ) ;
1938
1945
Ok ( Some ( Event :: PaymentFailed {
1939
1946
payment_id,
1940
- payment_hash,
1947
+ payment_hash : invoice_received . then ( || payment_hash ) ,
1941
1948
reason,
1942
1949
} ) )
1943
1950
} ;
0 commit comments