X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Fstructs%2FUtilMethods.mts;h=435a99398af8e0adadfe792a886897a930a81a57;hb=ff2768db6ca81caa2dba8da0f29ad2d33818c311;hp=61d7ef1ed3b71d907997b00f00769c316798b724;hpb=13cdf8bde340072288b39a5e29f0946d3e095ad4;p=ldk-java diff --git a/ts/structs/UtilMethods.mts b/ts/structs/UtilMethods.mts index 61d7ef1e..435a9939 100644 --- a/ts/structs/UtilMethods.mts +++ b/ts/structs/UtilMethods.mts @@ -1,10 +1,12 @@ import { TxOut } from '../structs/TxOut.mjs'; +import { BigEndianScalar } from '../structs/BigEndianScalar.mjs'; import { AccessError } from '../enums/AccessError.mjs'; import { COption_NoneZ } from '../enums/COption_NoneZ.mjs'; -import { ChannelMonitorUpdateErr } from '../enums/ChannelMonitorUpdateErr.mjs'; +import { ChannelMonitorUpdateStatus } from '../enums/ChannelMonitorUpdateStatus.mjs'; import { ConfirmationTarget } from '../enums/ConfirmationTarget.mjs'; import { CreationError } from '../enums/CreationError.mjs'; import { Currency } from '../enums/Currency.mjs'; +import { HTLCClaim } from '../enums/HTLCClaim.mjs'; import { IOError } from '../enums/IOError.mjs'; import { Level } from '../enums/Level.mjs'; import { Network } from '../enums/Network.mjs'; @@ -13,17 +15,15 @@ import { Secp256k1Error } from '../enums/Secp256k1Error.mjs'; import { SemanticError } from '../enums/SemanticError.mjs'; import { SiPrefix } from '../enums/SiPrefix.mjs'; import { Bech32Error } from '../structs/Bech32Error.mjs'; +import { Option_HTLCClaimZ } from '../structs/Option_HTLCClaimZ.mjs'; import { Result_NoneNoneZ } from '../structs/Result_NoneNoneZ.mjs'; import { CounterpartyCommitmentSecrets } from '../structs/CounterpartyCommitmentSecrets.mjs'; import { DecodeError } from '../structs/DecodeError.mjs'; import { Result_CounterpartyCommitmentSecretsDecodeErrorZ } from '../structs/Result_CounterpartyCommitmentSecretsDecodeErrorZ.mjs'; -import { Result_SecretKeyErrorZ } from '../structs/Result_SecretKeyErrorZ.mjs'; -import { Result_PublicKeyErrorZ } from '../structs/Result_PublicKeyErrorZ.mjs'; import { TxCreationKeys } from '../structs/TxCreationKeys.mjs'; import { Result_TxCreationKeysDecodeErrorZ } from '../structs/Result_TxCreationKeysDecodeErrorZ.mjs'; import { ChannelPublicKeys } from '../structs/ChannelPublicKeys.mjs'; import { Result_ChannelPublicKeysDecodeErrorZ } from '../structs/Result_ChannelPublicKeysDecodeErrorZ.mjs'; -import { Result_TxCreationKeysErrorZ } from '../structs/Result_TxCreationKeysErrorZ.mjs'; import { Option_u32Z } from '../structs/Option_u32Z.mjs'; import { HTLCOutputInCommitment } from '../structs/HTLCOutputInCommitment.mjs'; import { Result_HTLCOutputInCommitmentDecodeErrorZ } from '../structs/Result_HTLCOutputInCommitmentDecodeErrorZ.mjs'; @@ -46,22 +46,29 @@ import { ShutdownScript } from '../structs/ShutdownScript.mjs'; import { Result_ShutdownScriptDecodeErrorZ } from '../structs/Result_ShutdownScriptDecodeErrorZ.mjs'; import { InvalidShutdownScript } from '../structs/InvalidShutdownScript.mjs'; import { Result_ShutdownScriptInvalidShutdownScriptZ } from '../structs/Result_ShutdownScriptInvalidShutdownScriptZ.mjs'; +import { BlindedPath } from '../structs/BlindedPath.mjs'; +import { Result_BlindedPathNoneZ } from '../structs/Result_BlindedPathNoneZ.mjs'; +import { Result_BlindedPathDecodeErrorZ } from '../structs/Result_BlindedPathDecodeErrorZ.mjs'; +import { BlindedHop } from '../structs/BlindedHop.mjs'; +import { Result_BlindedHopDecodeErrorZ } from '../structs/Result_BlindedHopDecodeErrorZ.mjs'; +import { ChannelDetails } from '../structs/ChannelDetails.mjs'; +import { Route } from '../structs/Route.mjs'; +import { LightningError } from '../structs/LightningError.mjs'; +import { Result_RouteLightningErrorZ } from '../structs/Result_RouteLightningErrorZ.mjs'; import { RouteHop } from '../structs/RouteHop.mjs'; +import { Option_u64Z } from '../structs/Option_u64Z.mjs'; +import { InFlightHtlcs } from '../structs/InFlightHtlcs.mjs'; +import { Result_InFlightHtlcsDecodeErrorZ } from '../structs/Result_InFlightHtlcsDecodeErrorZ.mjs'; import { Result_RouteHopDecodeErrorZ } from '../structs/Result_RouteHopDecodeErrorZ.mjs'; -import { Route } from '../structs/Route.mjs'; import { Result_RouteDecodeErrorZ } from '../structs/Result_RouteDecodeErrorZ.mjs'; import { RouteParameters } from '../structs/RouteParameters.mjs'; import { Result_RouteParametersDecodeErrorZ } from '../structs/Result_RouteParametersDecodeErrorZ.mjs'; import { RouteHint } from '../structs/RouteHint.mjs'; -import { Option_u64Z } from '../structs/Option_u64Z.mjs'; import { PaymentParameters } from '../structs/PaymentParameters.mjs'; import { Result_PaymentParametersDecodeErrorZ } from '../structs/Result_PaymentParametersDecodeErrorZ.mjs'; import { RouteHintHop } from '../structs/RouteHintHop.mjs'; import { Result_RouteHintDecodeErrorZ } from '../structs/Result_RouteHintDecodeErrorZ.mjs'; import { Result_RouteHintHopDecodeErrorZ } from '../structs/Result_RouteHintHopDecodeErrorZ.mjs'; -import { ChannelDetails } from '../structs/ChannelDetails.mjs'; -import { LightningError } from '../structs/LightningError.mjs'; -import { Result_RouteLightningErrorZ } from '../structs/Result_RouteLightningErrorZ.mjs'; import { PaymentPurpose } from '../structs/PaymentPurpose.mjs'; import { Result_PaymentPurposeDecodeErrorZ } from '../structs/Result_PaymentPurposeDecodeErrorZ.mjs'; import { ClosureReason } from '../structs/ClosureReason.mjs'; @@ -70,6 +77,7 @@ import { Result_COption_ClosureReasonZDecodeErrorZ } from '../structs/Result_COp import { HTLCDestination } from '../structs/HTLCDestination.mjs'; import { Option_HTLCDestinationZ } from '../structs/Option_HTLCDestinationZ.mjs'; import { Result_COption_HTLCDestinationZDecodeErrorZ } from '../structs/Result_COption_HTLCDestinationZDecodeErrorZ.mjs'; +import { Option_u128Z } from '../structs/Option_u128Z.mjs'; import { ChannelUpdate } from '../structs/ChannelUpdate.mjs'; import { NetworkUpdate } from '../structs/NetworkUpdate.mjs'; import { Option_NetworkUpdateZ } from '../structs/Option_NetworkUpdateZ.mjs'; @@ -93,7 +101,6 @@ import { ClosingSigned } from '../structs/ClosingSigned.mjs'; import { Shutdown } from '../structs/Shutdown.mjs'; import { ChannelReestablish } from '../structs/ChannelReestablish.mjs'; import { ChannelAnnouncement } from '../structs/ChannelAnnouncement.mjs'; -import { NodeAnnouncement } from '../structs/NodeAnnouncement.mjs'; import { ErrorMessage } from '../structs/ErrorMessage.mjs'; import { WarningMessage } from '../structs/WarningMessage.mjs'; import { ErrorAction } from '../structs/ErrorAction.mjs'; @@ -104,11 +111,10 @@ import { GossipTimestampFilter } from '../structs/GossipTimestampFilter.mjs'; import { MessageSendEvent } from '../structs/MessageSendEvent.mjs'; import { Result_TxOutAccessErrorZ } from '../structs/Result_TxOutAccessErrorZ.mjs'; import { TwoTuple_usizeTransactionZ } from '../structs/TwoTuple_usizeTransactionZ.mjs'; -import { Result_NoneChannelMonitorUpdateErrZ } from '../structs/Result_NoneChannelMonitorUpdateErrZ.mjs'; +import { TwoTuple_TxidBlockHashZ } from '../structs/TwoTuple_TxidBlockHashZ.mjs'; import { HTLCUpdate } from '../structs/HTLCUpdate.mjs'; import { MonitorEvent } from '../structs/MonitorEvent.mjs'; import { ThreeTuple_OutPointCVec_MonitorEventZPublicKeyZ } from '../structs/ThreeTuple_OutPointCVec_MonitorEventZPublicKeyZ.mjs'; -import { Option_C2Tuple_usizeTransactionZZ } from '../structs/Option_C2Tuple_usizeTransactionZZ.mjs'; import { FixedPenaltyScorer } from '../structs/FixedPenaltyScorer.mjs'; import { Result_FixedPenaltyScorerDecodeErrorZ } from '../structs/Result_FixedPenaltyScorerDecodeErrorZ.mjs'; import { TwoTuple_u64u64Z } from '../structs/TwoTuple_u64u64Z.mjs'; @@ -128,12 +134,17 @@ import { Result_NodeFeaturesDecodeErrorZ } from '../structs/Result_NodeFeaturesD import { InvoiceFeatures } from '../structs/InvoiceFeatures.mjs'; import { Result_InvoiceFeaturesDecodeErrorZ } from '../structs/Result_InvoiceFeaturesDecodeErrorZ.mjs'; import { Result_ChannelTypeFeaturesDecodeErrorZ } from '../structs/Result_ChannelTypeFeaturesDecodeErrorZ.mjs'; +import { OfferFeatures } from '../structs/OfferFeatures.mjs'; +import { Result_OfferFeaturesDecodeErrorZ } from '../structs/Result_OfferFeaturesDecodeErrorZ.mjs'; +import { InvoiceRequestFeatures } from '../structs/InvoiceRequestFeatures.mjs'; +import { Result_InvoiceRequestFeaturesDecodeErrorZ } from '../structs/Result_InvoiceRequestFeaturesDecodeErrorZ.mjs'; import { Result_NodeIdDecodeErrorZ } from '../structs/Result_NodeIdDecodeErrorZ.mjs'; import { Result_COption_NetworkUpdateZDecodeErrorZ } from '../structs/Result_COption_NetworkUpdateZDecodeErrorZ.mjs'; import { Access, AccessInterface } from '../structs/Access.mjs'; import { Option_AccessZ } from '../structs/Option_AccessZ.mjs'; import { Result_boolLightningErrorZ } from '../structs/Result_boolLightningErrorZ.mjs'; import { ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ } from '../structs/ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ.mjs'; +import { Option_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ } from '../structs/Option_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ.mjs'; import { Result_NoneLightningErrorZ } from '../structs/Result_NoneLightningErrorZ.mjs'; import { ChannelUpdateInfo } from '../structs/ChannelUpdateInfo.mjs'; import { Result_ChannelUpdateInfoDecodeErrorZ } from '../structs/Result_ChannelUpdateInfoDecodeErrorZ.mjs'; @@ -160,6 +171,9 @@ import { Result_SignatureNoneZ } from '../structs/Result_SignatureNoneZ.mjs'; import { TwoTuple_SignatureSignatureZ } from '../structs/TwoTuple_SignatureSignatureZ.mjs'; import { Result_C2Tuple_SignatureSignatureZNoneZ } from '../structs/Result_C2Tuple_SignatureSignatureZNoneZ.mjs'; import { Result_SecretKeyNoneZ } from '../structs/Result_SecretKeyNoneZ.mjs'; +import { Result_PublicKeyNoneZ } from '../structs/Result_PublicKeyNoneZ.mjs'; +import { Option_ScalarZ } from '../structs/Option_ScalarZ.mjs'; +import { Result_SharedSecretNoneZ } from '../structs/Result_SharedSecretNoneZ.mjs'; import { ClosingTransaction } from '../structs/ClosingTransaction.mjs'; import { UnsignedChannelAnnouncement } from '../structs/UnsignedChannelAnnouncement.mjs'; import { BaseSign, BaseSignInterface } from '../structs/BaseSign.mjs'; @@ -175,8 +189,8 @@ import { APIError } from '../structs/APIError.mjs'; import { Result_NoneAPIErrorZ } from '../structs/Result_NoneAPIErrorZ.mjs'; import { Result__u832APIErrorZ } from '../structs/Result__u832APIErrorZ.mjs'; import { PaymentSendFailure } from '../structs/PaymentSendFailure.mjs'; -import { Result_PaymentIdPaymentSendFailureZ } from '../structs/Result_PaymentIdPaymentSendFailureZ.mjs'; import { Result_NonePaymentSendFailureZ } from '../structs/Result_NonePaymentSendFailureZ.mjs'; +import { Result_PaymentHashPaymentSendFailureZ } from '../structs/Result_PaymentHashPaymentSendFailureZ.mjs'; import { TwoTuple_PaymentHashPaymentIdZ } from '../structs/TwoTuple_PaymentHashPaymentIdZ.mjs'; import { Result_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ } from '../structs/Result_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ.mjs'; import { TwoTuple_PaymentHashPaymentSecretZ } from '../structs/TwoTuple_PaymentHashPaymentSecretZ.mjs'; @@ -209,6 +223,34 @@ import { Option_TypeZ } from '../structs/Option_TypeZ.mjs'; import { Result_COption_TypeZDecodeErrorZ } from '../structs/Result_COption_TypeZDecodeErrorZ.mjs'; import { PaymentError } from '../structs/PaymentError.mjs'; import { Result_PaymentIdPaymentErrorZ } from '../structs/Result_PaymentIdPaymentErrorZ.mjs'; +import { Result_NonePaymentErrorZ } from '../structs/Result_NonePaymentErrorZ.mjs'; +import { Result_StringErrorZ } from '../structs/Result_StringErrorZ.mjs'; +import { Result_PublicKeyErrorZ } from '../structs/Result_PublicKeyErrorZ.mjs'; +import { Result_ChannelMonitorUpdateDecodeErrorZ } from '../structs/Result_ChannelMonitorUpdateDecodeErrorZ.mjs'; +import { Option_MonitorEventZ } from '../structs/Option_MonitorEventZ.mjs'; +import { Result_COption_MonitorEventZDecodeErrorZ } from '../structs/Result_COption_MonitorEventZDecodeErrorZ.mjs'; +import { Result_HTLCUpdateDecodeErrorZ } from '../structs/Result_HTLCUpdateDecodeErrorZ.mjs'; +import { TwoTuple_OutPointScriptZ } from '../structs/TwoTuple_OutPointScriptZ.mjs'; +import { TwoTuple_u32ScriptZ } from '../structs/TwoTuple_u32ScriptZ.mjs'; +import { TwoTuple_TxidCVec_C2Tuple_u32ScriptZZZ } from '../structs/TwoTuple_TxidCVec_C2Tuple_u32ScriptZZZ.mjs'; +import { TwoTuple_u32TxOutZ } from '../structs/TwoTuple_u32TxOutZ.mjs'; +import { TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ } from '../structs/TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ.mjs'; +import { Balance } from '../structs/Balance.mjs'; +import { TwoTuple_BlockHashChannelMonitorZ } from '../structs/TwoTuple_BlockHashChannelMonitorZ.mjs'; +import { Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ } from '../structs/Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.mjs'; +import { TwoTuple_PublicKeyTypeZ } from '../structs/TwoTuple_PublicKeyTypeZ.mjs'; +import { CustomOnionMessageContents, CustomOnionMessageContentsInterface } from '../structs/CustomOnionMessageContents.mjs'; +import { Option_CustomOnionMessageContentsZ } from '../structs/Option_CustomOnionMessageContentsZ.mjs'; +import { Result_COption_CustomOnionMessageContentsZDecodeErrorZ } from '../structs/Result_COption_CustomOnionMessageContentsZDecodeErrorZ.mjs'; +import { Option_NetAddressZ } from '../structs/Option_NetAddressZ.mjs'; +import { PeerHandleError } from '../structs/PeerHandleError.mjs'; +import { Result_CVec_u8ZPeerHandleErrorZ } from '../structs/Result_CVec_u8ZPeerHandleErrorZ.mjs'; +import { Result_NonePeerHandleErrorZ } from '../structs/Result_NonePeerHandleErrorZ.mjs'; +import { Result_boolPeerHandleErrorZ } from '../structs/Result_boolPeerHandleErrorZ.mjs'; +import { SendError } from '../structs/SendError.mjs'; +import { Result_NoneSendErrorZ } from '../structs/Result_NoneSendErrorZ.mjs'; +import { GraphSyncError } from '../structs/GraphSyncError.mjs'; +import { Result_u32GraphSyncErrorZ } from '../structs/Result_u32GraphSyncErrorZ.mjs'; import { ParseError } from '../structs/ParseError.mjs'; import { Result_SiPrefixParseErrorZ } from '../structs/Result_SiPrefixParseErrorZ.mjs'; import { Invoice } from '../structs/Invoice.mjs'; @@ -229,25 +271,6 @@ import { Result_InvoiceSemanticErrorZ } from '../structs/Result_InvoiceSemanticE import { Description } from '../structs/Description.mjs'; import { Result_DescriptionCreationErrorZ } from '../structs/Result_DescriptionCreationErrorZ.mjs'; import { Result_PrivateRouteCreationErrorZ } from '../structs/Result_PrivateRouteCreationErrorZ.mjs'; -import { Result_StringErrorZ } from '../structs/Result_StringErrorZ.mjs'; -import { Result_ChannelMonitorUpdateDecodeErrorZ } from '../structs/Result_ChannelMonitorUpdateDecodeErrorZ.mjs'; -import { Option_MonitorEventZ } from '../structs/Option_MonitorEventZ.mjs'; -import { Result_COption_MonitorEventZDecodeErrorZ } from '../structs/Result_COption_MonitorEventZDecodeErrorZ.mjs'; -import { Result_HTLCUpdateDecodeErrorZ } from '../structs/Result_HTLCUpdateDecodeErrorZ.mjs'; -import { TwoTuple_OutPointScriptZ } from '../structs/TwoTuple_OutPointScriptZ.mjs'; -import { TwoTuple_u32ScriptZ } from '../structs/TwoTuple_u32ScriptZ.mjs'; -import { TwoTuple_TxidCVec_C2Tuple_u32ScriptZZZ } from '../structs/TwoTuple_TxidCVec_C2Tuple_u32ScriptZZZ.mjs'; -import { TwoTuple_u32TxOutZ } from '../structs/TwoTuple_u32TxOutZ.mjs'; -import { TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ } from '../structs/TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ.mjs'; -import { Balance } from '../structs/Balance.mjs'; -import { TwoTuple_BlockHashChannelMonitorZ } from '../structs/TwoTuple_BlockHashChannelMonitorZ.mjs'; -import { Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ } from '../structs/Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.mjs'; -import { TwoTuple_PublicKeyTypeZ } from '../structs/TwoTuple_PublicKeyTypeZ.mjs'; -import { Option_NetAddressZ } from '../structs/Option_NetAddressZ.mjs'; -import { PeerHandleError } from '../structs/PeerHandleError.mjs'; -import { Result_CVec_u8ZPeerHandleErrorZ } from '../structs/Result_CVec_u8ZPeerHandleErrorZ.mjs'; -import { Result_NonePeerHandleErrorZ } from '../structs/Result_NonePeerHandleErrorZ.mjs'; -import { Result_boolPeerHandleErrorZ } from '../structs/Result_boolPeerHandleErrorZ.mjs'; import { Result_NoneErrorZ } from '../structs/Result_NoneErrorZ.mjs'; import { Result_NetAddressDecodeErrorZ } from '../structs/Result_NetAddressDecodeErrorZ.mjs'; import { UpdateAddHTLC } from '../structs/UpdateAddHTLC.mjs'; @@ -276,6 +299,8 @@ import { UpdateFee } from '../structs/UpdateFee.mjs'; import { Result_UpdateFeeDecodeErrorZ } from '../structs/Result_UpdateFeeDecodeErrorZ.mjs'; import { Result_UpdateFulfillHTLCDecodeErrorZ } from '../structs/Result_UpdateFulfillHTLCDecodeErrorZ.mjs'; import { Result_UpdateAddHTLCDecodeErrorZ } from '../structs/Result_UpdateAddHTLCDecodeErrorZ.mjs'; +import { OnionMessage } from '../structs/OnionMessage.mjs'; +import { Result_OnionMessageDecodeErrorZ } from '../structs/Result_OnionMessageDecodeErrorZ.mjs'; import { Ping } from '../structs/Ping.mjs'; import { Result_PingDecodeErrorZ } from '../structs/Result_PingDecodeErrorZ.mjs'; import { Pong } from '../structs/Pong.mjs'; @@ -289,6 +314,7 @@ import { Result_ErrorMessageDecodeErrorZ } from '../structs/Result_ErrorMessageD import { Result_WarningMessageDecodeErrorZ } from '../structs/Result_WarningMessageDecodeErrorZ.mjs'; import { UnsignedNodeAnnouncement } from '../structs/UnsignedNodeAnnouncement.mjs'; import { Result_UnsignedNodeAnnouncementDecodeErrorZ } from '../structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.mjs'; +import { NodeAnnouncement } from '../structs/NodeAnnouncement.mjs'; import { Result_NodeAnnouncementDecodeErrorZ } from '../structs/Result_NodeAnnouncementDecodeErrorZ.mjs'; import { Result_QueryShortChannelIdsDecodeErrorZ } from '../structs/Result_QueryShortChannelIdsDecodeErrorZ.mjs'; import { ReplyShortChannelIdsEnd } from '../structs/ReplyShortChannelIdsEnd.mjs'; @@ -303,21 +329,27 @@ import { Filter, FilterInterface } from '../structs/Filter.mjs'; import { Option_FilterZ } from '../structs/Option_FilterZ.mjs'; import { LockedChannelMonitor } from '../structs/LockedChannelMonitor.mjs'; import { Result_LockedChannelMonitorNoneZ } from '../structs/Result_LockedChannelMonitorNoneZ.mjs'; +import { MonitorUpdateId } from '../structs/MonitorUpdateId.mjs'; +import { TwoTuple_OutPointCVec_MonitorUpdateIdZZ } from '../structs/TwoTuple_OutPointCVec_MonitorUpdateIdZZ.mjs'; import { MessageSendEventsProvider, MessageSendEventsProviderInterface } from '../structs/MessageSendEventsProvider.mjs'; +import { OnionMessageProvider, OnionMessageProviderInterface } from '../structs/OnionMessageProvider.mjs'; import { EventHandler, EventHandlerInterface } from '../structs/EventHandler.mjs'; import { EventsProvider, EventsProviderInterface } from '../structs/EventsProvider.mjs'; import { BigSize } from '../structs/BigSize.mjs'; import { ChannelUsage } from '../structs/ChannelUsage.mjs'; import { Score, ScoreInterface } from '../structs/Score.mjs'; -import { MultiThreadedLockableScore } from '../structs/MultiThreadedLockableScore.mjs'; +import { LockableScore, LockableScoreInterface } from '../structs/LockableScore.mjs'; +import { WriteableScore, WriteableScoreInterface } from '../structs/WriteableScore.mjs'; import { Persister, PersisterInterface } from '../structs/Persister.mjs'; +import { PrintableString } from '../structs/PrintableString.mjs'; +import { FutureCallback, FutureCallbackInterface } from '../structs/FutureCallback.mjs'; +import { Future } from '../structs/Future.mjs'; import { ChannelHandshakeConfig } from '../structs/ChannelHandshakeConfig.mjs'; import { ChannelHandshakeLimits } from '../structs/ChannelHandshakeLimits.mjs'; import { UserConfig } from '../structs/UserConfig.mjs'; import { BestBlock } from '../structs/BestBlock.mjs'; import { Listen, ListenInterface } from '../structs/Listen.mjs'; import { Confirm, ConfirmInterface } from '../structs/Confirm.mjs'; -import { MonitorUpdateId } from '../structs/MonitorUpdateId.mjs'; import { Persist, PersistInterface } from '../structs/Persist.mjs'; import { ChainMonitor } from '../structs/ChainMonitor.mjs'; import { KeysManager } from '../structs/KeysManager.mjs'; @@ -328,9 +360,11 @@ import { ChannelManagerReadArgs } from '../structs/ChannelManagerReadArgs.mjs'; import { ExpandedKey } from '../structs/ExpandedKey.mjs'; import { DataLossProtect } from '../structs/DataLossProtect.mjs'; import { RoutingMessageHandler, RoutingMessageHandlerInterface } from '../structs/RoutingMessageHandler.mjs'; +import { OnionMessageHandler, OnionMessageHandlerInterface } from '../structs/OnionMessageHandler.mjs'; import { CustomMessageReader, CustomMessageReaderInterface } from '../structs/CustomMessageReader.mjs'; import { CustomMessageHandler, CustomMessageHandlerInterface } from '../structs/CustomMessageHandler.mjs'; import { IgnoringMessageHandler } from '../structs/IgnoringMessageHandler.mjs'; +import { CustomOnionMessageHandler, CustomOnionMessageHandlerInterface } from '../structs/CustomOnionMessageHandler.mjs'; import { ErroringMessageHandler } from '../structs/ErroringMessageHandler.mjs'; import { MessageHandler } from '../structs/MessageHandler.mjs'; import { SocketDescriptor, SocketDescriptorInterface } from '../structs/SocketDescriptor.mjs'; @@ -340,24 +374,48 @@ import { ReadOnlyNetworkGraph } from '../structs/ReadOnlyNetworkGraph.mjs'; import { P2PGossipSync } from '../structs/P2PGossipSync.mjs'; import { DirectedChannelInfo } from '../structs/DirectedChannelInfo.mjs'; import { EffectiveCapacity } from '../structs/EffectiveCapacity.mjs'; -import { LockableScore, LockableScoreInterface } from '../structs/LockableScore.mjs'; +import { DefaultRouter } from '../structs/DefaultRouter.mjs'; +import { Router, RouterInterface } from '../structs/Router.mjs'; +import { ScorerAccountingForInFlightHtlcs } from '../structs/ScorerAccountingForInFlightHtlcs.mjs'; +import { MultiThreadedLockableScore } from '../structs/MultiThreadedLockableScore.mjs'; +import { MultiThreadedScoreLock } from '../structs/MultiThreadedScoreLock.mjs'; import { ProbabilisticScoringParameters } from '../structs/ProbabilisticScoringParameters.mjs'; +import { OnionMessenger } from '../structs/OnionMessenger.mjs'; +import { Destination } from '../structs/Destination.mjs'; +import { OnionMessageContents } from '../structs/OnionMessageContents.mjs'; +import { RapidGossipSync } from '../structs/RapidGossipSync.mjs'; import { RawDataPart } from '../structs/RawDataPart.mjs'; import { Sha256 } from '../structs/Sha256.mjs'; import { ExpiryTime } from '../structs/ExpiryTime.mjs'; import { MinFinalCltvExpiry } from '../structs/MinFinalCltvExpiry.mjs'; import { Fallback } from '../structs/Fallback.mjs'; import { Payer, PayerInterface } from '../structs/Payer.mjs'; -import { Router, RouterInterface } from '../structs/Router.mjs'; import { InvoicePayer } from '../structs/InvoicePayer.mjs'; import { Retry } from '../structs/Retry.mjs'; -import { DefaultRouter } from '../structs/DefaultRouter.mjs'; import { CommonBase, UInt5, WitnessVersion, UnqualifiedError } from './CommonBase.mjs'; import * as bindings from '../bindings.mjs' export class UtilMethods extends CommonBase { + /** + * Gets the 128-bit integer, as 16 little-endian bytes + */ + public static constructor_U128_le_bytes(val: bigint): Uint8Array { + const ret: number = bindings.U128_le_bytes(bindings.encodeUint128(val)); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Constructs a new U128 from 16 little-endian bytes + */ + public static constructor_U128_new(le_bytes: Uint8Array): bigint { + const ret: number = bindings.U128_new(bindings.encodeUint8Array(bindings.check_arr_len(le_bytes, 16))); + const ret_conv: bigint = bindings.decodeUint128(ret); + return ret_conv; + } + /** * Constructs a new COption_NoneZ containing a */ @@ -458,6 +516,39 @@ export class UtilMethods extends CommonBase { return ret_hu_conv; } + /** + * Fetches the set of [`NodeFeatures`] flags which are provided by or required by + * [`ChannelManager`]. + */ + public static constructor_provided_node_features(): NodeFeatures { + const ret: bigint = bindings.provided_node_features(); + const ret_hu_conv: NodeFeatures = new NodeFeatures(null, ret); + CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv); + return ret_hu_conv; + } + + /** + * Fetches the set of [`ChannelFeatures`] flags which are provided by or required by + * [`ChannelManager`]. + */ + public static constructor_provided_channel_features(): ChannelFeatures { + const ret: bigint = bindings.provided_channel_features(); + const ret_hu_conv: ChannelFeatures = new ChannelFeatures(null, ret); + CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv); + return ret_hu_conv; + } + + /** + * Fetches the set of [`InitFeatures`] flags which are provided by or required by + * [`ChannelManager`]. + */ + public static constructor_provided_init_features(): InitFeatures { + const ret: bigint = bindings.provided_init_features(); + const ret_hu_conv: InitFeatures = new InitFeatures(null, ret); + CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv); + return ret_hu_conv; + } + /** * Read a C2Tuple_BlockHashChannelManagerZ from a byte array, created by C2Tuple_BlockHashChannelManagerZ_write */ @@ -527,6 +618,16 @@ export class UtilMethods extends CommonBase { return ret; } + /** + * Check if a given input witness attempts to claim a HTLC. + */ + public static constructor_HTLCClaim_from_witness(witness: Uint8Array): Option_HTLCClaimZ { + const ret: bigint = bindings.HTLCClaim_from_witness(bindings.encodeUint8Array(witness)); + const ret_hu_conv: Option_HTLCClaimZ = Option_HTLCClaimZ.constr_from_ptr(ret); + CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv); + return ret_hu_conv; + } + /** * Build the commitment secret from the seed and the commitment number */ @@ -548,28 +649,22 @@ export class UtilMethods extends CommonBase { /** * Derives a per-commitment-transaction private key (eg an htlc key or delayed_payment key) * from the base secret and the per_commitment_point. - * - * Note that this is infallible iff we trust that at least one of the two input keys are randomly - * generated (ie our own). */ - public static constructor_derive_private_key(per_commitment_point: Uint8Array, base_secret: Uint8Array): Result_SecretKeyErrorZ { - const ret: bigint = bindings.derive_private_key(bindings.encodeUint8Array(bindings.check_arr_len(per_commitment_point, 33)), bindings.encodeUint8Array(bindings.check_arr_len(base_secret, 32))); - const ret_hu_conv: Result_SecretKeyErrorZ = Result_SecretKeyErrorZ.constr_from_ptr(ret); - return ret_hu_conv; + public static constructor_derive_private_key(per_commitment_point: Uint8Array, base_secret: Uint8Array): Uint8Array { + const ret: number = bindings.derive_private_key(bindings.encodeUint8Array(bindings.check_arr_len(per_commitment_point, 33)), bindings.encodeUint8Array(bindings.check_arr_len(base_secret, 32))); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } /** * Derives a per-commitment-transaction public key (eg an htlc key or a delayed_payment key) * from the base point and the per_commitment_key. This is the public equivalent of * derive_private_key - using only public keys to derive a public key instead of private keys. - * - * Note that this is infallible iff we trust that at least one of the two input keys are randomly - * generated (ie our own). */ - public static constructor_derive_public_key(per_commitment_point: Uint8Array, base_point: Uint8Array): Result_PublicKeyErrorZ { - const ret: bigint = bindings.derive_public_key(bindings.encodeUint8Array(bindings.check_arr_len(per_commitment_point, 33)), bindings.encodeUint8Array(bindings.check_arr_len(base_point, 33))); - const ret_hu_conv: Result_PublicKeyErrorZ = Result_PublicKeyErrorZ.constr_from_ptr(ret); - return ret_hu_conv; + public static constructor_derive_public_key(per_commitment_point: Uint8Array, base_point: Uint8Array): Uint8Array { + const ret: number = bindings.derive_public_key(bindings.encodeUint8Array(bindings.check_arr_len(per_commitment_point, 33)), bindings.encodeUint8Array(bindings.check_arr_len(base_point, 33))); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } /** @@ -579,14 +674,11 @@ export class UtilMethods extends CommonBase { * commitment transaction, thus per_commitment_secret always come from cheater * and revocation_base_secret always come from punisher, which is the broadcaster * of the transaction spending with this key knowledge. - * - * Note that this is infallible iff we trust that at least one of the two input keys are randomly - * generated (ie our own). */ - public static constructor_derive_private_revocation_key(per_commitment_secret: Uint8Array, countersignatory_revocation_base_secret: Uint8Array): Result_SecretKeyErrorZ { - const ret: bigint = bindings.derive_private_revocation_key(bindings.encodeUint8Array(bindings.check_arr_len(per_commitment_secret, 32)), bindings.encodeUint8Array(bindings.check_arr_len(countersignatory_revocation_base_secret, 32))); - const ret_hu_conv: Result_SecretKeyErrorZ = Result_SecretKeyErrorZ.constr_from_ptr(ret); - return ret_hu_conv; + public static constructor_derive_private_revocation_key(per_commitment_secret: Uint8Array, countersignatory_revocation_base_secret: Uint8Array): Uint8Array { + const ret: number = bindings.derive_private_revocation_key(bindings.encodeUint8Array(bindings.check_arr_len(per_commitment_secret, 32)), bindings.encodeUint8Array(bindings.check_arr_len(countersignatory_revocation_base_secret, 32))); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } /** @@ -602,10 +694,10 @@ export class UtilMethods extends CommonBase { * Note that this is infallible iff we trust that at least one of the two input keys are randomly * generated (ie our own). */ - public static constructor_derive_public_revocation_key(per_commitment_point: Uint8Array, countersignatory_revocation_base_point: Uint8Array): Result_PublicKeyErrorZ { - const ret: bigint = bindings.derive_public_revocation_key(bindings.encodeUint8Array(bindings.check_arr_len(per_commitment_point, 33)), bindings.encodeUint8Array(bindings.check_arr_len(countersignatory_revocation_base_point, 33))); - const ret_hu_conv: Result_PublicKeyErrorZ = Result_PublicKeyErrorZ.constr_from_ptr(ret); - return ret_hu_conv; + public static constructor_derive_public_revocation_key(per_commitment_point: Uint8Array, countersignatory_revocation_base_point: Uint8Array): Uint8Array { + const ret: number = bindings.derive_public_revocation_key(bindings.encodeUint8Array(bindings.check_arr_len(per_commitment_point, 33)), bindings.encodeUint8Array(bindings.check_arr_len(countersignatory_revocation_base_point, 33))); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } /** @@ -648,8 +740,28 @@ export class UtilMethods extends CommonBase { * Panics if htlc.transaction_output_index.is_none() (as such HTLCs do not appear in the * commitment transaction). */ - public static constructor_build_htlc_transaction(commitment_txid: Uint8Array, feerate_per_kw: number, contest_delay: number, htlc: HTLCOutputInCommitment, opt_anchors: boolean, broadcaster_delayed_payment_key: Uint8Array, revocation_key: Uint8Array): Uint8Array { - const ret: number = bindings.build_htlc_transaction(bindings.encodeUint8Array(bindings.check_arr_len(commitment_txid, 32)), feerate_per_kw, contest_delay, htlc == null ? 0n : CommonBase.get_ptr_of(htlc), opt_anchors, bindings.encodeUint8Array(bindings.check_arr_len(broadcaster_delayed_payment_key, 33)), bindings.encodeUint8Array(bindings.check_arr_len(revocation_key, 33))); + public static constructor_build_htlc_transaction(commitment_txid: Uint8Array, feerate_per_kw: number, contest_delay: number, htlc: HTLCOutputInCommitment, opt_anchors: boolean, use_non_zero_fee_anchors: boolean, broadcaster_delayed_payment_key: Uint8Array, revocation_key: Uint8Array): Uint8Array { + const ret: number = bindings.build_htlc_transaction(bindings.encodeUint8Array(bindings.check_arr_len(commitment_txid, 32)), feerate_per_kw, contest_delay, htlc == null ? 0n : CommonBase.get_ptr_of(htlc), opt_anchors, use_non_zero_fee_anchors, bindings.encodeUint8Array(bindings.check_arr_len(broadcaster_delayed_payment_key, 33)), bindings.encodeUint8Array(bindings.check_arr_len(revocation_key, 33))); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Returns the witness required to satisfy and spend a HTLC input. + * + * Note that preimage (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public static constructor_build_htlc_input_witness(local_sig: Uint8Array, remote_sig: Uint8Array, preimage: Uint8Array|null, redeem_script: Uint8Array, opt_anchors: boolean): Uint8Array { + const ret: number = bindings.build_htlc_input_witness(bindings.encodeUint8Array(bindings.check_arr_len(local_sig, 64)), bindings.encodeUint8Array(bindings.check_arr_len(remote_sig, 64)), bindings.encodeUint8Array(bindings.check_arr_len(preimage, 32)), bindings.encodeUint8Array(redeem_script), opt_anchors); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Gets the witnessScript for the to_remote output when anchors are enabled. + */ + public static constructor_get_to_countersignatory_with_anchors_redeemscript(payment_point: Uint8Array): Uint8Array { + const ret: number = bindings.get_to_countersignatory_with_anchors_redeemscript(bindings.encodeUint8Array(bindings.check_arr_len(payment_point, 33))); const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); return ret_conv; } @@ -668,6 +780,15 @@ export class UtilMethods extends CommonBase { return ret_conv; } + /** + * Returns the witness required to satisfy and spend an anchor input. + */ + public static constructor_build_anchor_input_witness(funding_key: Uint8Array, funding_sig: Uint8Array): Uint8Array { + const ret: number = bindings.build_anchor_input_witness(bindings.encodeUint8Array(bindings.check_arr_len(funding_key, 33)), bindings.encodeUint8Array(bindings.check_arr_len(funding_sig, 64))); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; + } + /** * Commitment transaction numbers which appear in the transactions themselves are XOR'd with a * shared secret first. This prevents on-chain observers from discovering how many commitment @@ -723,12 +844,12 @@ export class UtilMethods extends CommonBase { * * Note that first_hops (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public static constructor_find_route(our_node_pubkey: Uint8Array, route_params: RouteParameters, network_graph: NetworkGraph, first_hops: ChannelDetails[], logger: Logger, scorer: Score, random_seed_bytes: Uint8Array): Result_RouteLightningErrorZ { + public static constructor_find_route(our_node_pubkey: Uint8Array, route_params: RouteParameters, network_graph: NetworkGraph, first_hops: ChannelDetails[]|null, logger: Logger, scorer: Score, random_seed_bytes: Uint8Array): Result_RouteLightningErrorZ { const ret: bigint = bindings.find_route(bindings.encodeUint8Array(bindings.check_arr_len(our_node_pubkey, 33)), route_params == null ? 0n : CommonBase.get_ptr_of(route_params), network_graph == null ? 0n : CommonBase.get_ptr_of(network_graph), bindings.encodeUint64Array(first_hops != null ? first_hops.map(first_hops_conv_16 => first_hops_conv_16 == null ? 0n : CommonBase.get_ptr_of(first_hops_conv_16)) : null), logger == null ? 0n : CommonBase.get_ptr_of(logger), scorer == null ? 0n : CommonBase.get_ptr_of(scorer), bindings.encodeUint8Array(bindings.check_arr_len(random_seed_bytes, 32))); const ret_hu_conv: Result_RouteLightningErrorZ = Result_RouteLightningErrorZ.constr_from_ptr(ret); CommonBase.add_ref_from(ret_hu_conv, route_params); CommonBase.add_ref_from(ret_hu_conv, network_graph); - first_hops.forEach((first_hops_conv_16: ChannelDetails) => { CommonBase.add_ref_from(ret_hu_conv, first_hops_conv_16); }); + if (first_hops != null) { first_hops.forEach((first_hops_conv_16: ChannelDetails) => { CommonBase.add_ref_from(ret_hu_conv, first_hops_conv_16); }) }; CommonBase.add_ref_from(ret_hu_conv, logger); CommonBase.add_ref_from(ret_hu_conv, scorer); return ret_hu_conv; @@ -754,11 +875,12 @@ export class UtilMethods extends CommonBase { * This version can be used in a `no_std` environment, where [`std::time::SystemTime`] is not * available and the current time is supplied by the caller. */ - public static constructor_create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch(channelmanager: ChannelManager, keys_manager: KeysInterface, network: Currency, amt_msat: Option_u64Z, description_hash: Sha256, duration_since_epoch: bigint, invoice_expiry_delta_secs: number): Result_InvoiceSignOrCreationErrorZ { - const ret: bigint = bindings.create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch(channelmanager == null ? 0n : CommonBase.get_ptr_of(channelmanager), keys_manager == null ? 0n : CommonBase.get_ptr_of(keys_manager), network, CommonBase.get_ptr_of(amt_msat), description_hash == null ? 0n : CommonBase.get_ptr_of(description_hash), duration_since_epoch, invoice_expiry_delta_secs); + public static constructor_create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch(channelmanager: ChannelManager, keys_manager: KeysInterface, logger: Logger, network: Currency, amt_msat: Option_u64Z, description_hash: Sha256, duration_since_epoch: bigint, invoice_expiry_delta_secs: number): Result_InvoiceSignOrCreationErrorZ { + const ret: bigint = bindings.create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch(channelmanager == null ? 0n : CommonBase.get_ptr_of(channelmanager), keys_manager == null ? 0n : CommonBase.get_ptr_of(keys_manager), logger == null ? 0n : CommonBase.get_ptr_of(logger), network, CommonBase.get_ptr_of(amt_msat), description_hash == null ? 0n : CommonBase.get_ptr_of(description_hash), duration_since_epoch, invoice_expiry_delta_secs); const ret_hu_conv: Result_InvoiceSignOrCreationErrorZ = Result_InvoiceSignOrCreationErrorZ.constr_from_ptr(ret); CommonBase.add_ref_from(ret_hu_conv, channelmanager); CommonBase.add_ref_from(ret_hu_conv, keys_manager); + CommonBase.add_ref_from(ret_hu_conv, logger); CommonBase.add_ref_from(ret_hu_conv, description_hash); return ret_hu_conv; } @@ -768,11 +890,27 @@ export class UtilMethods extends CommonBase { * This version can be used in a `no_std` environment, where [`std::time::SystemTime`] is not * available and the current time is supplied by the caller. */ - public static constructor_create_invoice_from_channelmanager_and_duration_since_epoch(channelmanager: ChannelManager, keys_manager: KeysInterface, network: Currency, amt_msat: Option_u64Z, description: string, duration_since_epoch: bigint, invoice_expiry_delta_secs: number): Result_InvoiceSignOrCreationErrorZ { - const ret: bigint = bindings.create_invoice_from_channelmanager_and_duration_since_epoch(channelmanager == null ? 0n : CommonBase.get_ptr_of(channelmanager), keys_manager == null ? 0n : CommonBase.get_ptr_of(keys_manager), network, CommonBase.get_ptr_of(amt_msat), bindings.encodeString(description), duration_since_epoch, invoice_expiry_delta_secs); + public static constructor_create_invoice_from_channelmanager_and_duration_since_epoch(channelmanager: ChannelManager, keys_manager: KeysInterface, logger: Logger, network: Currency, amt_msat: Option_u64Z, description: string, duration_since_epoch: bigint, invoice_expiry_delta_secs: number): Result_InvoiceSignOrCreationErrorZ { + const ret: bigint = bindings.create_invoice_from_channelmanager_and_duration_since_epoch(channelmanager == null ? 0n : CommonBase.get_ptr_of(channelmanager), keys_manager == null ? 0n : CommonBase.get_ptr_of(keys_manager), logger == null ? 0n : CommonBase.get_ptr_of(logger), network, CommonBase.get_ptr_of(amt_msat), bindings.encodeString(description), duration_since_epoch, invoice_expiry_delta_secs); + const ret_hu_conv: Result_InvoiceSignOrCreationErrorZ = Result_InvoiceSignOrCreationErrorZ.constr_from_ptr(ret); + CommonBase.add_ref_from(ret_hu_conv, channelmanager); + CommonBase.add_ref_from(ret_hu_conv, keys_manager); + CommonBase.add_ref_from(ret_hu_conv, logger); + return ret_hu_conv; + } + + /** + * See [`create_invoice_from_channelmanager_and_duration_since_epoch`] + * This version allows for providing a custom [`PaymentHash`] for the invoice. + * This may be useful if you're building an on-chain swap or involving another protocol where + * the payment hash is also involved outside the scope of lightning. + */ + public static constructor_create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash(channelmanager: ChannelManager, keys_manager: KeysInterface, logger: Logger, network: Currency, amt_msat: Option_u64Z, description: string, duration_since_epoch: bigint, invoice_expiry_delta_secs: number, payment_hash: Uint8Array): Result_InvoiceSignOrCreationErrorZ { + const ret: bigint = bindings.create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash(channelmanager == null ? 0n : CommonBase.get_ptr_of(channelmanager), keys_manager == null ? 0n : CommonBase.get_ptr_of(keys_manager), logger == null ? 0n : CommonBase.get_ptr_of(logger), network, CommonBase.get_ptr_of(amt_msat), bindings.encodeString(description), duration_since_epoch, invoice_expiry_delta_secs, bindings.encodeUint8Array(bindings.check_arr_len(payment_hash, 32))); const ret_hu_conv: Result_InvoiceSignOrCreationErrorZ = Result_InvoiceSignOrCreationErrorZ.constr_from_ptr(ret); CommonBase.add_ref_from(ret_hu_conv, channelmanager); CommonBase.add_ref_from(ret_hu_conv, keys_manager); + CommonBase.add_ref_from(ret_hu_conv, logger); return ret_hu_conv; }