let (temporary_channel_id, tx, funding_output) = create_funding_transaction(&nodes[0], 100000, 42);
if steps & 0x0f == 3 { return; }
- {
- nodes[0].node.funding_transaction_generated(&temporary_channel_id, funding_output);
- let mut added_monitors = nodes[0].chan_monitor.added_monitors.lock().unwrap();
- assert_eq!(added_monitors.len(), 1);
- assert_eq!(added_monitors[0].0, funding_output);
- added_monitors.clear();
- }
+ nodes[0].node.funding_transaction_generated(&temporary_channel_id, funding_output);
+ check_added_monitors!(nodes[0], 0);
let funding_created = get_event_msg!(nodes[0], MessageSendEvent::SendFundingCreated, nodes[1].node.get_our_node_id());
if steps & 0x0f == 4 { return; }
let events = nodes[0].node.get_and_clear_pending_events();
assert_eq!(events.len(), 1);
- if let &Event::PaymentFailed { payment_hash:_, ref rejected_by_dest, ref error_code } = &events[0] {
+ if let &Event::PaymentFailed { payment_hash:_, ref rejected_by_dest, ref error_code, error_data: _ } = &events[0] {
assert_eq!(*rejected_by_dest, !expected_retryable);
assert_eq!(*error_code, expected_error_code);
} else {
let events = nodes[0].node.get_and_clear_pending_events();
assert_eq!(events.len(), 1);
- if let &Event::PaymentFailed { payment_hash:_, ref rejected_by_dest, ref error_code } = &events[0] {
+ if let &Event::PaymentFailed { payment_hash:_, ref rejected_by_dest, ref error_code, ref error_data } = &events[0] {
assert_eq!(*rejected_by_dest, true);
assert_eq!(error_code.unwrap(), 0x4000|15);
+ // 10_000 msat as u64, followed by a height of 99 as u32
+ assert_eq!(&error_data.as_ref().unwrap()[..], &[
+ ((10_000u64 >> 7*8) & 0xff) as u8,
+ ((10_000u64 >> 6*8) & 0xff) as u8,
+ ((10_000u64 >> 5*8) & 0xff) as u8,
+ ((10_000u64 >> 4*8) & 0xff) as u8,
+ ((10_000u64 >> 3*8) & 0xff) as u8,
+ ((10_000u64 >> 2*8) & 0xff) as u8,
+ ((10_000u64 >> 1*8) & 0xff) as u8,
+ ((10_000u64 >> 0*8) & 0xff) as u8,
+ 0, 0, 0, 99]);
} else {
panic!("Unexpected event");
}