Browse Source
We added a conversion of failcodes that do not have sufficient information in
faac4b28ad
. That means that a failcode that'd require additional information
in order to be a correct error to return in an onion is mapped to a generic
one since we can't backfill the information.
This tests that the mapping is performed correctly and replicates the
situation in #4070
travis-experimental
Christian Decker
4 years ago
committed by
Rusty Russell
2 changed files with 77 additions and 0 deletions
@ -0,0 +1,38 @@ |
|||||
|
#!/usr/bin/env python3 |
||||
|
"""A simply plugin that fails HTLCs with a configurable failcode. |
||||
|
|
||||
|
""" |
||||
|
from pyln.client import Plugin |
||||
|
|
||||
|
|
||||
|
plugin = Plugin() |
||||
|
|
||||
|
|
||||
|
@plugin.hook('htlc_accepted') |
||||
|
def on_htlc_accepted(htlc, onion, plugin, **kwargs): |
||||
|
res = {"result": "fail"} |
||||
|
|
||||
|
if plugin.failmsg is not None: |
||||
|
res['failure_message'] = plugin.failmsg |
||||
|
|
||||
|
if plugin.failcode is not None: |
||||
|
res['failure_code'] = plugin.failcode |
||||
|
|
||||
|
return res |
||||
|
|
||||
|
|
||||
|
@plugin.method('setfailcode') |
||||
|
def setfailcode(plugin, code=None, msg=None): |
||||
|
"""Sets the failcode to return when receiving an incoming HTLC. |
||||
|
""" |
||||
|
plugin.failcode = code |
||||
|
plugin.failmsg = msg |
||||
|
|
||||
|
|
||||
|
@plugin.init() |
||||
|
def on_init(**kwargs): |
||||
|
plugin.failcode = None |
||||
|
plugin.failmsg = None |
||||
|
|
||||
|
|
||||
|
plugin.run() |
Loading…
Reference in new issue