Browse Source

Test and document 'channel_opened' notification

pull/2938/head
darosior 6 years ago
committed by Christian Decker
parent
commit
2683170da8
  1. 19
      doc/PLUGINS.md
  2. 25
      tests/plugins/misc_notifications.py
  3. 13
      tests/test_plugin.py

19
doc/PLUGINS.md

@ -200,6 +200,23 @@ corresponding payloads are listed below.
### Notification Types
#### `channel_opened`
A notification for topic `channel_opened` is sent if a peer successfully funded a channel
with us. It contains the peer id, the funding amount (in millisatoshis), the funding
transaction id, and a boolean indicating if the funding transaction has been included
into a block.
```
{
"channel_opened": {
"id": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
"funding_satoshis": "100000000msat",
"funding_txid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
"funding_locked": false
}
}
```
#### `connect`
A notification for topic `connect` is sent every time a new connection
@ -237,7 +254,6 @@ A notification for topic `invoice_payment` is sent every time an invoie is paid.
}
```
#### `warning`
A notification for topic `warning` is sent every time a new `BROKEN`
@ -266,6 +282,7 @@ forms:
`jcon fd <error_fd_to_jsonrpc>:`, `plugin-manager`;
4. `log` is the context of the original log entry.
## Hooks
Hooks allow a plugin to define custom behavior for `lightningd`

25
tests/plugins/misc_notifications.py

@ -0,0 +1,25 @@
#!/usr/bin/env python3
"""Plugin to be used to test miscellaneous notifications.
Only used for 'channel_opened' for now.
"""
from lightning import Plugin
plugin = Plugin()
@plugin.init()
def init(plugin, options, configuration):
plugin.log("misc_notifications initialized")
@plugin.subscribe("channel_opened")
def channel_opened(plugin, channel_opened):
plugin.log("A channel was opened to us by {}, with an amount"
" of {} and the following funding transaction id: {}"
.format(channel_opened["id"], channel_opened["amount"],
channel_opened["funding_txid"]))
plugin.run()

13
tests/test_plugin.py

@ -494,3 +494,16 @@ def test_invoice_payment_notification(node_factory):
l2.daemon.wait_for_log(r"Received invoice_payment event for label {},"
" preimage {}, and amount of {}msat"
.format(label, preimage, msats))
def test_channel_opened_notification(node_factory):
"""
Test the 'channel_opened' notification sent at channel funding success.
"""
opts = [{}, {"plugin": "tests/plugins/misc_notifications.py"}]
amount = 10**6
l1, l2 = node_factory.line_graph(2, fundchannel=True, fundamount=amount,
opts=opts)
l2.daemon.wait_for_log(r"A channel was opened to us by {}, "
"with an amount of {}*"
.format(l1.info["id"], amount))

Loading…
Cancel
Save