diff --git a/feeadjuster/feeadjuster.py b/feeadjuster/feeadjuster.py index cdb9445..355c065 100755 --- a/feeadjuster/feeadjuster.py +++ b/feeadjuster/feeadjuster.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import random +import semver import statistics import time import math @@ -212,8 +213,13 @@ def forward_event(plugin: Plugin, forward_event: dict, **kwargs): out_scid = forward_event["out_channel"] maybe_add_new_balances(plugin, [in_scid, out_scid]) - plugin.adj_balances[in_scid]["our"] += forward_event["in_msatoshi"] - plugin.adj_balances[out_scid]["our"] -= forward_event["out_msatoshi"] + if plugin.rpcversion.major == 0 and plugin.rpcversion.minor < 12: + plugin.adj_balances[in_scid]["our"] += int(forward_event["in_msatoshi"]) + plugin.adj_balances[out_scid]["our"] -= int(forward_event["out_msatoshi"]) + else: + plugin.adj_balances[in_scid]["our"] += int(forward_event["in_msat"]) + plugin.adj_balances[out_scid]["our"] -= int(forward_event["out_msat"]) + try: # Pseudo-randomly add some hysterisis to the update if not plugin.deactivate_fuzz and random.randint(0, 9) == 9: @@ -281,7 +287,15 @@ def feeadjuster_toggle(plugin: Plugin, value: bool = None): @plugin.init() def init(options: dict, configuration: dict, plugin: Plugin, **kwargs): - plugin.our_node_id = plugin.rpc.getinfo()["id"] + # parse semver string to determine RPC version + # strip leading 'v' although semver should ignore it, but it doesn't. + plugin.getinfo = plugin.rpc.getinfo() + rpcversion = plugin.getinfo.get('version') + if rpcversion.startswith('v'): + rpcversion = rpcversion[1:] + plugin.rpcversion = semver.VersionInfo.parse(rpcversion) + + plugin.our_node_id = plugin.getinfo["id"] plugin.deactivate_fuzz = options.get("feeadjuster-deactivate-fuzz") plugin.forward_event_subscription = not options.get("feeadjuster-deactivate-fee-update") plugin.update_threshold = float(options.get("feeadjuster-threshold")) diff --git a/feeadjuster/requirements.txt b/feeadjuster/requirements.txt index 3d7c0c6..96cdf46 100644 --- a/feeadjuster/requirements.txt +++ b/feeadjuster/requirements.txt @@ -1 +1,2 @@ pyln-client>=0.8.2 +semver==2.*