mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 07:04:22 +01:00
We recently noticed that the way we unpack the call arguments for hooks and notifications in pylightning breaks pretty quickly once you start changing the hook and notification params. If you add params they will not get mapped correctly causing the plugin to error out. This can be fixed by adding a `VAR_KEYWORD` argument to the calbacks, i.e., by adding a single `**kwargs` argument at the end of the signature. This commit adds a check that such a catch-all argument exists, and emits a warning if it doesn't. It also fixes up the plugins that we ship ourselves. Signed-off-by: Christian Decker <decker.christian@gmail.com>
25 lines
648 B
Python
Executable File
25 lines
648 B
Python
Executable File
#!/usr/bin/env python3
|
|
"""Simple plugin to test the openchannel_hook.
|
|
|
|
We just refuse to let them open channels with an odd amount of millisatoshis.
|
|
"""
|
|
|
|
from lightning import Plugin, Millisatoshi
|
|
|
|
plugin = Plugin()
|
|
|
|
|
|
@plugin.hook('openchannel')
|
|
def on_openchannel(openchannel, plugin, **kwargs):
|
|
print("{} VARS".format(len(openchannel.keys())))
|
|
for k in sorted(openchannel.keys()):
|
|
print("{}={}".format(k, openchannel[k]))
|
|
|
|
if Millisatoshi(openchannel['funding_satoshis']).to_satoshi() % 2 == 1:
|
|
return {'result': 'reject', 'error_message': "I don't like odd amounts"}
|
|
|
|
return {'result': 'continue'}
|
|
|
|
|
|
plugin.run()
|