mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-20 02:27:51 +01:00
6e86fa9220
Otherwise what the hook sees is actually a lie, and if it sets it we might override it. The side effect is that we add an explicit "forward_to" field, and allow hooks to override it. This lets a *hook* control channel choice explicitly. Changelod-Added: Plugins: `htlc_accepted_hook` return can specify what channel to forward htlc to. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
32 lines
608 B
Python
Executable File
32 lines
608 B
Python
Executable File
#!/usr/bin/env python3
|
|
"""A plugin that tells us to forward HTLCs to a specific channel.
|
|
|
|
"""
|
|
from pyln.client import Plugin
|
|
|
|
|
|
plugin = Plugin()
|
|
|
|
|
|
@plugin.hook("htlc_accepted")
|
|
def on_htlc_accepted(htlc, onion, plugin, **kwargs):
|
|
if plugin.fwdto is None:
|
|
return {"result": "continue"}
|
|
|
|
return {"result": "continue", "forward_to": plugin.fwdto}
|
|
|
|
|
|
@plugin.method("setfwdto")
|
|
def setfailonion(plugin, fwdto):
|
|
"""Sets the channel_id to forward to when receiving an incoming HTLC.
|
|
"""
|
|
plugin.fwdto = fwdto
|
|
|
|
|
|
@plugin.init()
|
|
def on_init(**kwargs):
|
|
plugin.fwdto = None
|
|
|
|
|
|
plugin.run()
|