[C#] Update auto-generated files
[ldk-java] / c_sharp / src / org / ldk / structs / ProbabilisticScoringDecayParameters.cs
diff --git a/c_sharp/src/org/ldk/structs/ProbabilisticScoringDecayParameters.cs b/c_sharp/src/org/ldk/structs/ProbabilisticScoringDecayParameters.cs
new file mode 100644 (file)
index 0000000..79d2a6c
--- /dev/null
@@ -0,0 +1,157 @@
+using org.ldk.impl;
+using org.ldk.enums;
+using org.ldk.util;
+using System;
+
+namespace org { namespace ldk { namespace structs {
+
+
+/**
+ * Parameters for configuring [`ProbabilisticScorer`].
+ * 
+ * Used to configure decay parameters that are static throughout the lifetime of the scorer.
+ * these decay parameters affect the score of the channel penalty and are not changed on a
+ * per-route penalty cost call.
+ */
+public class ProbabilisticScoringDecayParameters : CommonBase {
+       internal ProbabilisticScoringDecayParameters(object _dummy, long ptr) : base(ptr) { }
+       ~ProbabilisticScoringDecayParameters() {
+               if (ptr != 0) { bindings.ProbabilisticScoringDecayParameters_free(ptr); }
+       }
+
+       /**
+        * If we aren't learning any new datapoints for a channel, the historical liquidity bounds
+        * tracking can simply live on with increasingly stale data. Instead, when a channel has not
+        * seen a liquidity estimate update for this amount of time, the historical datapoints are
+        * decayed by half.
+        * For an example of historical_no_updates_half_life being used see [`historical_estimated_channel_liquidity_probabilities`]
+        * 
+        * Note that after 16 or more half lives all historical data will be completely gone.
+        * 
+        * Default value: 14 days
+        * 
+        * [`historical_estimated_channel_liquidity_probabilities`]: ProbabilisticScorerUsingTime::historical_estimated_channel_liquidity_probabilities
+        */
+       public long get_historical_no_updates_half_life() {
+               long ret = bindings.ProbabilisticScoringDecayParameters_get_historical_no_updates_half_life(this.ptr);
+               GC.KeepAlive(this);
+               return ret;
+       }
+
+       /**
+        * If we aren't learning any new datapoints for a channel, the historical liquidity bounds
+        * tracking can simply live on with increasingly stale data. Instead, when a channel has not
+        * seen a liquidity estimate update for this amount of time, the historical datapoints are
+        * decayed by half.
+        * For an example of historical_no_updates_half_life being used see [`historical_estimated_channel_liquidity_probabilities`]
+        * 
+        * Note that after 16 or more half lives all historical data will be completely gone.
+        * 
+        * Default value: 14 days
+        * 
+        * [`historical_estimated_channel_liquidity_probabilities`]: ProbabilisticScorerUsingTime::historical_estimated_channel_liquidity_probabilities
+        */
+       public void set_historical_no_updates_half_life(long val) {
+               bindings.ProbabilisticScoringDecayParameters_set_historical_no_updates_half_life(this.ptr, val);
+               GC.KeepAlive(this);
+               GC.KeepAlive(val);
+       }
+
+       /**
+        * Whenever this amount of time elapses since the last update to a channel's liquidity bounds,
+        * the distance from the bounds to \"zero\" is cut in half. In other words, the lower-bound on
+        * the available liquidity is halved and the upper-bound moves half-way to the channel's total
+        * capacity.
+        * 
+        * Because halving the liquidity bounds grows the uncertainty on the channel's liquidity,
+        * the penalty for an amount within the new bounds may change. See the [`ProbabilisticScorer`]
+        * struct documentation for more info on the way the liquidity bounds are used.
+        * 
+        * For example, if the channel's capacity is 1 million sats, and the current upper and lower
+        * liquidity bounds are 200,000 sats and 600,000 sats, after this amount of time the upper
+        * and lower liquidity bounds will be decayed to 100,000 and 800,000 sats.
+        * 
+        * Default value: 6 hours
+        * 
+        * # Note
+        * 
+        * When built with the `no-std` feature, time will never elapse. Therefore, the channel
+        * liquidity knowledge will never decay except when the bounds cross.
+        */
+       public long get_liquidity_offset_half_life() {
+               long ret = bindings.ProbabilisticScoringDecayParameters_get_liquidity_offset_half_life(this.ptr);
+               GC.KeepAlive(this);
+               return ret;
+       }
+
+       /**
+        * Whenever this amount of time elapses since the last update to a channel's liquidity bounds,
+        * the distance from the bounds to \"zero\" is cut in half. In other words, the lower-bound on
+        * the available liquidity is halved and the upper-bound moves half-way to the channel's total
+        * capacity.
+        * 
+        * Because halving the liquidity bounds grows the uncertainty on the channel's liquidity,
+        * the penalty for an amount within the new bounds may change. See the [`ProbabilisticScorer`]
+        * struct documentation for more info on the way the liquidity bounds are used.
+        * 
+        * For example, if the channel's capacity is 1 million sats, and the current upper and lower
+        * liquidity bounds are 200,000 sats and 600,000 sats, after this amount of time the upper
+        * and lower liquidity bounds will be decayed to 100,000 and 800,000 sats.
+        * 
+        * Default value: 6 hours
+        * 
+        * # Note
+        * 
+        * When built with the `no-std` feature, time will never elapse. Therefore, the channel
+        * liquidity knowledge will never decay except when the bounds cross.
+        */
+       public void set_liquidity_offset_half_life(long val) {
+               bindings.ProbabilisticScoringDecayParameters_set_liquidity_offset_half_life(this.ptr, val);
+               GC.KeepAlive(this);
+               GC.KeepAlive(val);
+       }
+
+       /**
+        * Constructs a new ProbabilisticScoringDecayParameters given each field
+        */
+       public static ProbabilisticScoringDecayParameters of(long historical_no_updates_half_life_arg, long liquidity_offset_half_life_arg) {
+               long ret = bindings.ProbabilisticScoringDecayParameters_new(historical_no_updates_half_life_arg, liquidity_offset_half_life_arg);
+               GC.KeepAlive(historical_no_updates_half_life_arg);
+               GC.KeepAlive(liquidity_offset_half_life_arg);
+               if (ret >= 0 && ret <= 4096) { return null; }
+               org.ldk.structs.ProbabilisticScoringDecayParameters ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ProbabilisticScoringDecayParameters(null, ret); }
+               if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
+               return ret_hu_conv;
+       }
+
+       internal long clone_ptr() {
+               long ret = bindings.ProbabilisticScoringDecayParameters_clone_ptr(this.ptr);
+               GC.KeepAlive(this);
+               return ret;
+       }
+
+       /**
+        * Creates a copy of the ProbabilisticScoringDecayParameters
+        */
+       public ProbabilisticScoringDecayParameters clone() {
+               long ret = bindings.ProbabilisticScoringDecayParameters_clone(this.ptr);
+               GC.KeepAlive(this);
+               if (ret >= 0 && ret <= 4096) { return null; }
+               org.ldk.structs.ProbabilisticScoringDecayParameters ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ProbabilisticScoringDecayParameters(null, ret); }
+               if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); };
+               return ret_hu_conv;
+       }
+
+       /**
+        * Creates a "default" ProbabilisticScoringDecayParameters. See struct and individual field documentaiton for details on which values are used.
+        */
+       public static ProbabilisticScoringDecayParameters with_default() {
+               long ret = bindings.ProbabilisticScoringDecayParameters_default();
+               if (ret >= 0 && ret <= 4096) { return null; }
+               org.ldk.structs.ProbabilisticScoringDecayParameters ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ProbabilisticScoringDecayParameters(null, ret); }
+               if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
+               return ret_hu_conv;
+       }
+
+}
+} } }