X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=ldk-java;a=blobdiff_plain;f=ts%2Fstructs%2FFeeEstimator.mts;h=c22e1672223b10a8c2d34de7c2ddc6a4da12d175;hp=04442ad514068b5914102928ca560f5350540f20;hb=c629a01650402c8e2f9b9db8ced9ed63ce687727;hpb=d1d0121c000b713c10fd0bedd249eb8dda2e4db7 diff --git a/ts/structs/FeeEstimator.mts b/ts/structs/FeeEstimator.mts index 04442ad5..c22e1672 100644 --- a/ts/structs/FeeEstimator.mts +++ b/ts/structs/FeeEstimator.mts @@ -283,7 +283,17 @@ import * as bindings from '../bindings.mjs' +/** An implementation of FeeEstimator */ export interface FeeEstimatorInterface { + /**Gets estimated satoshis of fee required per 1000 Weight-Units. + * + * Must return a value no smaller than 253 (ie 1 satoshi-per-byte rounded up to ensure later + * round-downs don't put us below 1 satoshi-per-byte). + * + * This method can be implemented with the following unit conversions: + * max(satoshis-per-byte * 250, 253) + * max(satoshis-per-kbyte / 4, 253) + */ get_est_sat_per_1000_weight(confirmation_target: ConfirmationTarget): number; } @@ -291,6 +301,13 @@ class LDKFeeEstimatorHolder { held: FeeEstimator; } +/** + * A trait which should be implemented to provide feerate information on a number of time + * horizons. + * + * Note that all of the functions implemented here *must* be reentrant-safe (obviously - they're + * called from inside the library in response to chain events, P2P events, or timer events). + */ export class FeeEstimator extends CommonBase { /* @internal */ public bindings_instance?: bindings.LDKFeeEstimator; @@ -301,7 +318,8 @@ export class FeeEstimator extends CommonBase { this.bindings_instance = null; } - static new_impl(arg: FeeEstimatorInterface): FeeEstimator { + /** Creates a new instance of FeeEstimator from a given implementation */ + public static new_impl(arg: FeeEstimatorInterface): FeeEstimator { const impl_holder: LDKFeeEstimatorHolder = new LDKFeeEstimatorHolder(); let structImplementation = { get_est_sat_per_1000_weight (confirmation_target: ConfirmationTarget): number { @@ -315,6 +333,17 @@ export class FeeEstimator extends CommonBase { impl_holder.held.bindings_instance = structImplementation; return impl_holder.held; } + + /** + * Gets estimated satoshis of fee required per 1000 Weight-Units. + * + * Must return a value no smaller than 253 (ie 1 satoshi-per-byte rounded up to ensure later + * round-downs don't put us below 1 satoshi-per-byte). + * + * This method can be implemented with the following unit conversions: + * max(satoshis-per-byte * 250, 253) + * max(satoshis-per-kbyte / 4, 253) + */ public get_est_sat_per_1000_weight(confirmation_target: ConfirmationTarget): number { const ret: number = bindings.FeeEstimator_get_est_sat_per_1000_weight(this.ptr, confirmation_target); return ret;